UNPKG

@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 • 75.1 kB
/* * Copyright (c) 2003-2026, 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 _0x457ea2,Editor as _0x4fef2f,Plugin as _0x5df03c}from'@ckeditor/ckeditor5-core/dist/index.js';import{CKEditorError as _0x398820,Collection as _0x3efaa1,uid as _0x4c7fdb,toArray as _0x49242c,first as _0x5a94f4,FocusTracker as _0x53965e,KeystrokeHandler as _0x1530c5}from'@ckeditor/ckeditor5-utils/dist/index.js';import{View as _0x419a48,IconView as _0x4bc51c,ButtonView as _0xe6496c,DropdownButtonView as _0x1d5d84,FocusCycler as _0x4c79c1,isViewWithFocusCycler as _0x4da2d2}from'@ckeditor/ckeditor5-ui/dist/index.js';import{IconNotification as _0xba78b1,IconCheck as _0x1e0f05,IconCancel as _0x223b22}from'@ckeditor/ckeditor5-icons/dist/index.js';import{setHighlightHandling as _0x298e2a,toWidget as _0x18ae6a}from'@ckeditor/ckeditor5-widget/dist/index.js';import{DateTime as _0x439436}from'luxon';import{InsertOperation as _0x213791,MoveOperation as _0x251268,ModelPosition as _0x1dcc9f,ModelRange as _0x38d06d,MarkerOperation as _0x16644f,MergeOperation as _0x21f947,SplitOperation as _0x329678,RenameOperation as _0x4be650,AttributeOperation as _0x6e5aa6,ModelTreeWalker as _0x1cbe11,ModelText as _0x15387e}from'@ckeditor/ckeditor5-engine/dist/index.js';import{diffArrays as _0x32551e}from'diff';class Permissions extends _0x457ea2{static get['pluginName'](){return'Permissions';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}['setPermissions'](_0x9e2608,_0xbd1752){let _0x222d81;if(_0xbd1752||(_0xbd1752=this['context']['config']['get']('collaboration.channelId')),this['context']['config']['get']('collaboration.channelId')==_0xbd1752?_0x222d81=this['context']:'editors'in this['context']&&this['context']['editors']&&(_0x222d81=this['context']['editors']['find'](_0x3be1f7=>_0x3be1f7['config']['get']('collaboration.channelId')==_0xbd1752)),!_0x222d81)throw new _0x398820('permissions-set-permissions-invalid-channel-id',null);const _0x429e48=_0x222d81['plugins'],_0x27734c=_0x429e48['has']('CommentsRepository')?_0x429e48['get']('CommentsRepository'):void 0x0,_0x3f0408=_0x429e48['has']('CommentsOnly')&&_0x429e48['get']('CommentsOnly'),_0x38d0c1=_0x9e2608['includes']('document:write'),_0x35dc6d=_0x9e2608['includes']('comment:modify_all'),_0x3deae5=_0x9e2608['includes']('comment:admin'),_0x4a787c=_0x9e2608['includes']('comment:write'),_0x48ed0c=_0x4a787c||_0x3deae5,_0x4428a1=_0x48ed0c||_0x35dc6d,_0x31b0ca=_0x38d0c1||_0x48ed0c;(_0x3f0408&&(_0x3f0408['isEnabled']=!_0x38d0c1&&_0x4428a1),_0x222d81 instanceof _0x4fef2f)&&(!(_0x38d0c1||_0x4428a1&&_0x27734c)?_0x222d81['enableReadOnlyMode']('no-permissions'):_0x222d81['disableReadOnlyMode']('no-permissions'));if(_0x27734c){_0x27734c['setPermissions']({'admin':_0x3deae5,'modifyAll':_0x35dc6d,'write':_0x4a787c,'resolve':_0x31b0ca},_0xbd1752);const _0x304a31=_0x222d81 instanceof _0x4fef2f&&_0x222d81['commands']['get']('addCommentThread');_0x304a31&&(_0x48ed0c?_0x304a31['clearForceDisabled']('noPermissions'):_0x304a31['forceDisabled']('noPermissions'));}}}function B(_0x1de1e8,_0x2968e9){const t=_0x1de1e8['t'];switch(_0x2968e9){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 Users extends _0x457ea2{['users'];['_lastColor'];['_myId'];['_locale'];static get['pluginName'](){return'Users';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}static get['requires'](){return[Permissions];}constructor(_0x33ef2d){super(_0x33ef2d),this['context']['config']['define']('users.anonymousUserId','anonymous-user'),this['context']['config']['define']('users.colorsCount',0x8),this['users']=new _0x3efaa1(),this['_locale']=_0x33ef2d['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:_0x242a96,name:_0x1f6086,..._0x59bca4}){if(!_0x242a96||'string'!=typeof _0x242a96)throw new _0x398820('users-add-invalid-id');if(this['users']['has'](_0x242a96))throw new _0x398820('users-add-duplicated-id',null,{'id':_0x242a96});const _0x25bdb6=this['context']['config']['get']('users.getInitialsCallback'),_0x606ada={..._0x59bca4,'id':_0x242a96,'name':N(this['_locale'],_0x1f6086),'color':this['_getNextColor']()};_0x606ada['name']=N(this['_locale'],_0x606ada['name']);const _0x3ca0b2=new User(_0x606ada,_0x25bdb6);return this['users']['add'](_0x3ca0b2),_0x3ca0b2;}['getUser'](_0x2b4c7f){return this['users']['get'](_0x2b4c7f);}['useAnonymousUser'](){const _0x4be853=this['context']['config']['get']('users.anonymousUserId');this['_myId']||this['defineMe'](_0x4be853);}['defineMe'](_0x3c5677){if(this['_myId'])throw new _0x398820('users-me-already-defined',null);const _0x43e3a1=this['getUser'](_0x3c5677);if(!_0x43e3a1)throw new _0x398820('users-me-missing-user',null);this['_myId']=_0x3c5677,_0x43e3a1['_isMe']=!0x0;}['getOperationAuthor'](){return this['me'];}['_getNextColor'](){const _0x21063e=this['context']['config']['get']('users.colorsCount');return this['_lastColor']>=_0x21063e&&(this['_lastColor']=0x0),new CollaborationUserColor(this['_lastColor']++);}['_addAnonymousUser'](){const _0x3191c3=this['context']['config']['get']('users.anonymousUserId');this['addUser']({'id':_0x3191c3,'name':B(this['_locale'],'Anonymous')})['_isAnonymous']=!0x0;}}class User{['id'];['color'];['name'];['initials'];['avatar'];['_isMe'];['_isAnonymous'];constructor(_0x3fe232,_0x2c2064){this['id']=_0x3fe232['id'],this['color']=_0x3fe232['color'],this['name']=_0x3fe232['name'],this['initials']=_0x2c2064?_0x2c2064(this['name']):this['_computeInitials'](),this['avatar']=_0x3fe232['avatar'],this['_isAnonymous']=!0x1,this['_isMe']=!0x1;}get['isAnonymous'](){return this['_isAnonymous'];}get['isMe'](){return this['_isMe'];}['_computeInitials'](){const _0x165011=this['name']['split']('\x20')['filter'](_0x4e29bd=>/^[\p{Letter}]/u['test'](_0x4e29bd));return 0x1===_0x165011['length']?this['_getInitial'](_0x165011[0x0]):0x0===_0x165011['length']?this['_getInitial'](this['name']):this['_getInitial'](_0x165011[0x0])+this['_getInitial'](_0x165011[_0x165011['length']-0x1]);}['_getInitial'](_0x5b4b94){return String['fromCodePoint'](_0x5b4b94['codePointAt'](0x0))['toUpperCase']();}}function N(_0x16e7ea,_0x48cc40=''){return''==(_0x48cc40=_0x48cc40['trim']())?B(_0x16e7ea,'Anonymous'):_0x48cc40;}class CollaborationUserColor{['_id'];constructor(_0x5ef810){this['_id']=_0x5ef810;}get['id'](){return this['_id'];}['getBackgroundColorClass'](){return'ck-user__bg-color--'+this['id'];}['getSelectionClass'](){return'ck-user__selection--'+this['id'];}['getMarkerClass'](){return'ck-user__marker--'+this['id'];}['getColorVariable'](){return'var(--ck-user-colors--'+this['id']+',\x20var(--ck-user-colors--0))';}['getColorAlphaVariable'](){return'var(--ck-user-colors--'+this['id']+'-alpha,\x20var(--ck-user-colors--0-alpha))';}}class UserView extends _0x419a48{['name'];['notificationView'];constructor(_0x37cfac,_0x1beabd,_0x5e845f){super(_0x37cfac),this['name']=_0x1beabd['name'],this['notificationView']=null;const _0x3d399e=['ck','ck-user'],_0x2fa2af=['ck','ck-user__img'];if(_0x1beabd['isAnonymous']&&_0x2fa2af['push']('ck-user__anonymous'),!_0x1beabd['isAnonymous']&&_0x1beabd['isMe']&&_0x3d399e['push']('ck-user_me'),_0x1beabd['avatar']&&_0x2fa2af['push']('ck-user__avatar'),_0x5e845f){const _0x46e921=new _0x4bc51c();_0x46e921['extendTemplate']({'attributes':{'class':['ck-user__icon']}}),_0x46e921['content']=_0xba78b1,this['notificationView']={'tag':'div','attributes':{'class':['ck','ck-user__notification'],'data-cke-tooltip-position':'n','data-cke-tooltip-text':_0x5e845f},'children':[_0x46e921]};}const _0x56d268=[{'tag':'div','attributes':{'class':_0x2fa2af,'style':{'background-image':_0x1beabd['avatar']?'url(\x27'+_0x1beabd['avatar']+'\x27)':''}}},{'tag':'div','attributes':{'class':_0x1beabd['avatar']?'ck\x20ck-user__name\x20ck-user__name--hidden':'ck\x20ck-user__name','aria-label':_0x1beabd['name']},'children':[{'text':_0x1beabd['initials']}]}];this['notificationView']&&_0x56d268['push'](this['notificationView']),this['setTemplate']({'tag':'div','attributes':{'class':_0x3d399e,'data-user-id':_0x1beabd['id']},'children':_0x56d268});}}class AriaDescriptionView extends _0x419a48{['id'];constructor(_0x296ae8,_0x11fe5b){super(_0x296ae8),this['id']='ck-aria-description-'+_0x4c7fdb(),this['setTemplate']({'tag':'span','attributes':{'class':['ck','ck-aria-description'],'id':this['id']},'children':[{'text':_0x11fe5b}]});}}class LateFocusButtonView extends _0xe6496c{['render'](){super['render'](),U(this);}}class LateFocusDropdownButtonView extends _0x1d5d84{['render'](){super['render'](),U(this);}}function U(_0x5c474b){_0x5c474b['listenTo'](_0x5c474b['element'],'mousedown',(_0x596edc,_0x21665d)=>{_0x21665d['stopPropagation'](),_0x21665d['preventDefault']();}),_0x5c474b['listenTo'](_0x5c474b['element'],'mouseup',()=>{_0x5c474b['element']['focus']();});}function O(_0x5b0790){const _0x4534a1=_0x5b0790['split'](':');return{'group':_0x4534a1[0x0],'type':_0x4534a1[0x1],'subType':_0x4534a1['length']>=0x5?_0x4534a1[0x2]:null,'id':_0x4534a1['length']<0x5?_0x4534a1[0x2]:_0x4534a1[0x3],'authorId':_0x4534a1['length']<0x5?_0x4534a1[0x3]:_0x4534a1[0x4],'markerCount':0x6==_0x4534a1['length']?_0x4534a1[0x5]:null};}function $(_0x4862f5,_0x225ca4){const _0x462d83=_0x4862f5['end']['nodeBefore'];if(_0x462d83&&_0x462d83['is']('element')&&_0x225ca4['schema']['isBlock'](_0x462d83)&&!_0x225ca4['schema']['isObject'](_0x462d83)){const _0x1bfcef=_0x225ca4['createPositionAt'](_0x462d83,'end');return _0x225ca4['createRange'](_0x4862f5['start'],_0x1bfcef);}return _0x4862f5;}class SuggestionsConversionAlignment extends _0x5df03c{['afterInit'](){const _0x4ea715=this['editor'];if(!_0x4ea715['plugins']['has']('AlignmentEditing'))return;_0x4ea715['plugins']['get']('SuggestionsConversion')['registerBlockAttribute']('alignment');}}const F=['BoldEditing','ItalicEditing','UnderlineEditing','CodeEditing','StrikethroughEditing','SubscriptEditing','SuperscriptEditing'];class SuggestionsConversionBasicStyles extends _0x5df03c{['afterInit'](){const _0x3ab138=this['editor'],_0x23bd7b=_0x3ab138['plugins']['get']('SuggestionsConversion');for(const _0x59bbfe of F){if(!_0x3ab138['plugins']['has'](_0x59bbfe))continue;const _0x4df6d1=_0x59bbfe['slice'](0x0,-0x7)['toLowerCase']();_0x23bd7b['registerInlineAttribute'](_0x4df6d1);}}}class SuggestionsConversionBookmark extends _0x5df03c{['afterInit'](){const _0x1ddcf1=this['editor'],_0xaae851=_0x1ddcf1['plugins']['get']('SuggestionsConversion');_0x1ddcf1['plugins']['has']('BookmarkEditing')&&_0xaae851['registerBlockAttribute']('bookmarkId');}}const H=[{'pluginName':'FontSizeEditing','commandName':'fontSize'},{'pluginName':'FontFamilyEditing','commandName':'fontFamily'},{'pluginName':'FontColorEditing','commandName':'fontColor'},{'pluginName':'FontBackgroundColorEditing','commandName':'fontBackgroundColor'}];class SuggestionsConversionFont extends _0x5df03c{['afterInit'](){const _0x52d073=this['editor']['plugins']['get']('SuggestionsConversion');for(const {pluginName:_0x9d09f9,commandName:_0x38c3bf}of H)this['editor']['plugins']['has'](_0x9d09f9)&&_0x52d073['registerInlineAttribute'](_0x38c3bf);}}class SuggestionsConversionFootnotes extends _0x5df03c{['afterInit'](){const {editor:_0x28f0b0}=this;if(!_0x28f0b0['plugins']['has']('FootnotesPropertiesEditing'))return;const _0x427a38=_0x28f0b0['plugins']['get']('SuggestionsConversion');_0x427a38['registerBlockAttribute']('footnotesListStyle'),_0x427a38['registerBlockAttribute']('footnotesListStart');}}class SuggestionsConversionHighlight extends _0x5df03c{['afterInit'](){const _0xf36bb=this['editor'];if(!_0xf36bb['plugins']['has']('HighlightEditing'))return;_0xf36bb['plugins']['get']('SuggestionsConversion')['registerInlineAttribute']('highlight');}}class SuggestionsConversionHtmlEmbed extends _0x5df03c{['afterInit'](){const _0x2da608=this['editor'];if(!_0x2da608['plugins']['has']('HtmlEmbed'))return;_0x2da608['plugins']['get']('SuggestionsConversion')['registerBlockAttribute']('value');}}class SuggestionsConversionImage extends _0x5df03c{['afterInit'](){const _0x1b674c=this['editor'];if(!_0x1b674c['plugins']['has']('ImageEditing'))return;const _0x20b2f0=_0x1b674c['plugins']['get']('SuggestionsConversion');_0x20b2f0['registerBlockAttribute']('src'),_0x1b674c['plugins']['has']('ImageResize')&&_0x20b2f0['registerBlockAttribute']('resizedWidth'),_0x1b674c['plugins']['has']('ImageTextAlternativeEditing')&&_0x20b2f0['registerBlockAttribute']('alt'),_0x1b674c['plugins']['has']('PictureEditing')&&_0x20b2f0['registerBlockAttribute']('sources'),_0x1b674c['plugins']['has']('ImageSizeAttributes')&&(_0x20b2f0['registerBlockAttribute']('width'),_0x20b2f0['registerBlockAttribute']('height'));}}class SuggestionsConversionIndent extends _0x5df03c{['afterInit'](){const _0x447b72=this['editor'],_0x2cbd64=_0x447b72['plugins']['get']('SuggestionsConversion');_0x447b72['plugins']['has']('IndentBlock')&&(_0x2cbd64['registerBlockAttribute']('blockIndent'),_0x447b72['plugins']['has']('ListEditing')&&(_0x2cbd64['registerBlockAttribute']('blockIndentList'),_0x2cbd64['registerBlockAttribute']('blockIndentListItem')));}}class SuggestionsConversionLineHeight extends _0x5df03c{['afterInit'](){const _0x501155=this['editor'];if(!_0x501155['plugins']['has']('LineHeight'))return;_0x501155['plugins']['get']('SuggestionsConversion')['registerBlockAttribute']('lineHeight');}}class SuggestionsConversionLink extends _0x5df03c{['afterInit'](){const _0x262ef6=this['editor'];if(!_0x262ef6['plugins']['has']('LinkEditing'))return;const _0xaf08ed=_0x262ef6['plugins']['get']('SuggestionsConversion'),_0x1c54e5=_0x262ef6['commands']['get']('link');_0xaf08ed['registerInlineAttribute']('linkHref');for(const _0x25789f of _0x1c54e5['manualDecorators'])_0xaf08ed['registerInlineAttribute'](_0x25789f['id']);}}class SuggestionsConversionList extends _0x5df03c{['afterInit'](){const _0x203ce2=this['editor'];if(!_0x203ce2['plugins']['has']('ListEditing'))return;const _0x511f84=_0x203ce2['plugins']['get']('SuggestionsConversion'),_0x4bd194=_0x203ce2['plugins']['has']('TodoListEditing');_0x511f84['registerBlockAttribute']('listItemId'),_0x511f84['registerBlockAttribute']('listType'),_0x511f84['registerBlockAttribute']('listIndent'),_0x4bd194&&_0x511f84['registerBlockAttribute']('todoListChecked');}}class SuggestionsConversionListProperties extends _0x5df03c{['afterInit'](){if(!this['editor']['plugins']['has']('ListPropertiesEditing'))return;const _0x1bd997=this['editor']['config']['get']('list.properties'),_0x837a31=this['editor']['plugins']['get']('SuggestionsConversion');_0x1bd997['styles']&&_0x837a31['registerBlockAttribute']('listStyle'),_0x1bd997['reversed']&&_0x837a31['registerBlockAttribute']('listReversed'),_0x1bd997['startIndex']&&_0x837a31['registerBlockAttribute']('listStart');}}class SuggestionsConversionMultiLevelList extends _0x5df03c{['afterInit'](){const _0x27cc8f=this['editor'],_0x15cd8b=_0x27cc8f['plugins']['get']('SuggestionsConversion');_0x27cc8f['plugins']['has']('MultiLevelList')&&_0x15cd8b['registerBlockAttribute']('listMarkerStyle');}}class SuggestionsConversionStylesDropdown extends _0x5df03c{['afterInit'](){const _0x158802=this['editor'];if(!_0x158802['plugins']['has']('Style')||!_0x158802['plugins']['has']('DataSchema')||!_0x158802['config']['get']('style.definitions'))return;const _0x1a0e9a=_0x158802['plugins']['get']('SuggestionsConversion'),_0x3ccd89=_0x158802['config']['get']('style.definitions'),_0x23c789=_0x158802['plugins']['get']('GeneralHtmlSupport'),_0x57ed6b=_0x158802['plugins']['get']('StyleUtils')['normalizeConfig'](_0x158802['plugins']['get']('DataSchema'),_0x3ccd89),_0x413141=new Set();for(const _0x28fa49 of _0x57ed6b['block']){const _0x300f50=_0x23c789['getGhsAttributeNameForElement'](_0x28fa49['element']);_0x413141['add'](_0x300f50);}const _0x2c397d=new Set();for(const _0x7d6ac7 of _0x57ed6b['inline']){const _0xa3d162=_0x23c789['getGhsAttributeNameForElement'](_0x7d6ac7['element']);_0x2c397d['add'](_0xa3d162);for(const _0x3557e3 of _0x7d6ac7['ghsAttributes'])_0x2c397d['add'](_0x3557e3);}for(const _0x12416a of _0x413141)_0x1a0e9a['registerBlockAttribute'](_0x12416a);for(const _0x35e6c5 of _0x2c397d)_0x1a0e9a['registerInlineAttribute'](_0x35e6c5);}}class SuggestionsConversionTableHeadings extends _0x5df03c{['afterInit'](){const _0x2884f5=this['editor'];if(!_0x2884f5['plugins']['has']('TableEditing'))return;const _0x4154fc=_0x2884f5['plugins']['get']('SuggestionsConversion');_0x4154fc['registerBlockAttribute']('headingRows'),_0x4154fc['registerBlockAttribute']('headingColumns');}}class SuggestionsConversionTableProperties extends _0x5df03c{['afterInit'](){const {plugins:_0xdfd411}=this['editor'];if(!_0xdfd411['has']('TablePropertiesEditing'))return;const _0x507edb=_0xdfd411['get']('SuggestionsConversion'),_0x5080b4=['tableBorderColor','tableBorderStyle','tableBorderWidth','tableAlignment','tableWidth','tableHeight','tableBackgroundColor'];for(const _0x5dc016 of _0x5080b4)_0x507edb['registerBlockAttribute'](_0x5dc016);}}class SuggestionsConversionTableLayout extends _0x5df03c{['afterInit'](){const _0x10a081=this['editor'],_0x518dff=_0x10a081['plugins']['get']('SuggestionsConversion');_0x10a081['plugins']['has']('TableLayout')&&_0x518dff['registerBlockAttribute']('tableType');}}class SuggestionsConversionUploadcare extends _0x5df03c{['afterInit'](){const _0x307483=this['editor'],_0x3a9a9a=this['editor']['plugins']['get']('SuggestionsConversion');_0x307483['plugins']['has']('Uploadcare')&&_0x307483['plugins']['has']('UploadcareImageEdit')&&_0x3a9a9a['registerBlockAttribute']('uploadcareImageId');}}class SuggestionsConversionShiftEnter extends _0x5df03c{['afterInit'](){const _0x233bb0=this['editor'];if(!_0x233bb0['plugins']['has']('ShiftEnter'))return;const _0x15575a=_0x233bb0['plugins']['get']('SuggestionsConversion'),_0x1ca296=(_0x577433,_0x46350c,_0x38fbaa,_0x457a1a)=>{if(_0x457a1a&&!_0x38fbaa['options']['showSuggestionHighlights'])return;if(!_0x38fbaa['consumable']['test'](_0x46350c['markerRange'],_0x577433['name']))return;const _0x47473a=_0x233bb0['model'];for(const _0xfaa87 of _0x46350c['markerRange']['getItems']()){if(!_0xfaa87['is']('element','softBreak'))continue;const _0x305f7e='deletion'==_0x46350c['markerName']['split'](':')[0x1]?'merge':'split',{id:_0x2980ab,authorId:_0x53e97c}=O(_0x46350c['markerName']),_0x62eee7=_0x38fbaa['writer']['createUIElement']('span',{'class':'ck-suggestion-marker-'+_0x305f7e,'data-suggestion':_0x2980ab,'data-author-id':_0x53e97c}),_0x35b095=_0x38fbaa['mapper']['toViewPosition'](_0x47473a['createPositionBefore'](_0xfaa87));!_0x457a1a&&_0x15575a['_activeMarkers']['includes'](_0x46350c['markerName'])&&_0x38fbaa['writer']['addClass']('ck-suggestion-marker--active',_0x62eee7),_0x38fbaa['writer']['insert'](_0x35b095,_0x62eee7),_0x38fbaa['mapper']['bindElementToMarker'](_0x62eee7,_0x46350c['markerName']);}};_0x233bb0['editing']['downcastDispatcher']['on']('addMarker:suggestion:insertion',(_0x3a9a29,_0x3fb1cb,_0x559314)=>{_0x1ca296(_0x3a9a29,_0x3fb1cb,_0x559314,!0x1);},{'priority':'high'}),_0x233bb0['editing']['downcastDispatcher']['on']('addMarker:suggestion:deletion',(_0x3407b0,_0x5689b1,_0x4cced1)=>{_0x1ca296(_0x3407b0,_0x5689b1,_0x4cced1,!0x1);},{'priority':'high'}),_0x233bb0['data']['downcastDispatcher']['on']('addMarker:suggestion:insertion',(_0x19db27,_0x957e21,_0xc90396)=>{_0x1ca296(_0x19db27,_0x957e21,_0xc90396,!0x0);},{'priority':'high'}),_0x233bb0['data']['downcastDispatcher']['on']('addMarker:suggestion:deletion',(_0x5005ad,_0x50411c,_0x175837)=>{_0x1ca296(_0x5005ad,_0x50411c,_0x175837,!0x0);},{'priority':'high'});}}class SuggestionsConversionMediaEmbed extends _0x5df03c{['afterInit'](){const _0x47e00e=this['editor'];_0x47e00e['plugins']['has']('MediaEmbedEditing')&&(_0x47e00e['conversion']['for']('dataDowncast')['elementToElement']({'model':'media','view':(_0x6d187f,{writer:_0x2b9c29,options:_0x2f1c5e})=>{if(_0x2f1c5e['showSuggestionHighlights'])return _0x2b9c29['createEmptyElement']('div');},'converterPriority':'high'}),_0x47e00e['data']['downcastDispatcher']['on']('attribute:url:media',(_0x34a75e,_0x271b27,_0x29b760)=>{_0x29b760['options']['showSuggestionHighlights']&&_0x34a75e['stop']();},{'priority':'high'}));}}class SuggestionsConversionTable extends _0x5df03c{['afterInit'](){const _0x49cfa4=this['editor'];if(!_0x49cfa4['plugins']['has']('Table'))return;_0x49cfa4['data']['downcastDispatcher']['on']('addMarker:suggestion',(_0x1dd47,_0xc083f3,_0x589b3b)=>{((_0x507d52,_0x48df22,_0x355e04)=>{if(!_0x355e04['options']['showSuggestionHighlights'])return;const _0x3c96c0=_0x48df22['item'];if(!_0x3c96c0||!_0x3c96c0['is']('element','tableCell'))return;const _0x4bfbba=_0x355e04['mapper']['toViewElement'](_0x3c96c0);if(_0x4bfbba){const {id:_0x329344,authorId:_0x20fb53}=O(_0x48df22['markerName']);_0x298e2a(_0x4bfbba,_0x355e04['writer'],(_0x55e7a5,_0x132934,_0x24da4)=>{_0x24da4['addClass'](_0x49242c(_0x132934['classes']),_0x55e7a5),_0x24da4['setAttribute']('data-suggestion',_0x329344,_0x55e7a5),_0x24da4['setAttribute']('data-author-id',_0x20fb53,_0x55e7a5);});}})(0x0,_0xc083f3,_0x589b3b);},{'priority':'highest'});}}class SuggestionsConversionHorizontalLine extends _0x5df03c{['afterInit'](){const _0x253ad8=this['editor'];_0x253ad8['plugins']['has']('HorizontalLineEditing')&&_0x253ad8['conversion']['for']('dataDowncast')['elementToStructure']({'model':'horizontalLine','view':(_0x61196b,{writer:_0x3202ea,options:_0x3d9b66})=>{if(!_0x3d9b66['showSuggestionHighlights'])return null;const _0xae0ef0=_0x3202ea['createContainerElement']('div'),_0x4082bc=_0x3202ea['createEmptyElement']('hr');return _0x3202ea['addClass']('ck-horizontal-line',_0xae0ef0),_0x3202ea['insert'](_0x3202ea['createPositionAt'](_0xae0ef0,0x0),_0x4082bc),_0xae0ef0;},'converterPriority':'high'});}}class SuggestionsConversionTableCellProperties extends _0x5df03c{['afterInit'](){const {plugins:_0x5b27c6,model:_0x55329e}=this['editor'];if(!_0x5b27c6['has']('TableCellPropertiesEditing'))return;const _0x204ebd=_0x5b27c6['get']('SuggestionsConversion'),_0x2244ec=['tableCellBorderColor','tableCellBorderStyle','tableCellBorderWidth','tableCellPadding','tableCellWidth','tableCellHeight','tableCellBackgroundColor','tableCellHorizontalAlignment','tableCellVerticalAlignment'];for(const _0x384077 of _0x2244ec)_0x204ebd['registerBlockAttribute'](_0x384077);_0x55329e['schema']['checkAttribute']('tableCell','tableCellType')&&_0x204ebd['registerBlockAttribute']('tableCellType');}}class SuggestionsConversionTableFooters extends _0x5df03c{['afterInit'](){const _0xd8f925=this['editor'];if(!_0xd8f925['plugins']['has']('TableEditing')||!_0xd8f925['config']['get']('table.enableFooters'))return;_0xd8f925['plugins']['get']('SuggestionsConversion')['registerBlockAttribute']('footerRows');}}class SuggestionsConversion extends _0x5df03c{['_activeMarkers']=[];['_blockAttributeKeys']=new Set(['$elementName']);['_inlineAttributeKeys']=new Set();static get['pluginName'](){return'SuggestionsConversion';}static get['requires'](){return[SuggestionsConversionAlignment,SuggestionsConversionBasicStyles,SuggestionsConversionBookmark,SuggestionsConversionFont,SuggestionsConversionFootnotes,SuggestionsConversionHighlight,SuggestionsConversionHorizontalLine,SuggestionsConversionHtmlEmbed,SuggestionsConversionImage,SuggestionsConversionIndent,SuggestionsConversionLineHeight,SuggestionsConversionLink,SuggestionsConversionList,SuggestionsConversionListProperties,SuggestionsConversionMediaEmbed,SuggestionsConversionMultiLevelList,SuggestionsConversionShiftEnter,SuggestionsConversionStylesDropdown,SuggestionsConversionTable,SuggestionsConversionTableHeadings,SuggestionsConversionTableFooters,SuggestionsConversionTableLayout,SuggestionsConversionTableCellProperties,SuggestionsConversionTableProperties,SuggestionsConversionUploadcare];}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}['init'](){const _0x1d8545=this['editor'],_0x369be4=(_0x83e1ca,_0x3773d8,_0x42936b)=>{const {id:_0x48660c,authorId:_0x37da46,type:_0x2adca4,subType:_0x187b8e}=O(_0x83e1ca['markerName']),_0x5483c3=['ck-suggestion-marker',this['_getClassName'](_0x2adca4,_0x187b8e)];let _0x4a8c91=0xbb8;return!_0x42936b&&(this['_activeMarkers']['includes'](_0x83e1ca['markerName'])&&(_0x5483c3['push']('ck-suggestion-marker--active'),_0x4a8c91=0xbc2)),('deletion'==_0x2adca4&&(_0x4a8c91+=0x5),{'classes':_0x5483c3,'attributes':{'data-suggestion':_0x48660c,'data-author-id':_0x37da46},'priority':_0x4a8c91});};_0x1d8545['conversion']['for']('editingDowncast')['markerToHighlight']({'model':'suggestion','view':(_0x490a09,_0x4d40e0)=>_0x369be4(_0x490a09,0x0,!0x1)}),_0x1d8545['conversion']['for']('dataDowncast')['markerToHighlight']({'model':'suggestion','view':(_0xac19f5,_0x1f87b6)=>_0x369be4(_0xac19f5,0x0,!0x0)}),_0x1d8545['conversion']['for']('dataDowncast')['add'](_0x447768=>{_0x447768['on']('addMarker:suggestion',(_0x119244,_0x240ca1,_0x4566fb)=>{if(!_0x4566fb['options']['showSuggestionHighlights'])return;const _0x45949e=_0x240ca1['item'];if(!_0x45949e)return;const _0x190454=_0x4566fb['mapper']['toViewElement'](_0x45949e);_0x1d8545['model']['schema']['isObject'](_0x45949e)&&_0x190454&&!_0x190454['getCustomProperty']('widget')&&_0x190454['is']('containerElement')&&_0x18ae6a(_0x190454,_0x4566fb['writer']);},{'priority':'high'});});const _0x4578ce=(_0x30b163,_0x47c52d,_0x1a80a1,_0xacc880,_0x58b1b3)=>{if(_0xacc880&&!_0x1a80a1['options']['showSuggestionHighlights'])return;if(!_0x47c52d['item'])return;const {id:_0x473422,authorId:_0x158116,subType:_0x538ca4}=O(_0x47c52d['markerName']);if(_0x58b1b3){const _0x1f813a=_0x538ca4['split']('|')[0x0];if(!this['isBlockAttribute'](_0x1f813a))return;}if(_0x47c52d['item']['is']('selection'))return void _0x1a80a1['consumable']['consume'](_0x47c52d['item'],_0x30b163['name']);const _0x44f151=_0x1a80a1['mapper']['toViewElement'](_0x47c52d['item']);if(_0x47c52d['item']['is']('element')&&_0x1d8545['model']['schema']['isBlock'](_0x47c52d['item'])&&!_0x44f151['getCustomProperty']('addHighlight')){_0x1a80a1['writer']['addClass'](['ck-suggestion-marker','ck-suggestion-marker-formatBlock'],_0x44f151),_0x1a80a1['writer']['setAttribute']('data-suggestion',_0x473422,_0x44f151),_0x1a80a1['writer']['setAttribute']('data-author-id',_0x158116,_0x44f151),_0x1a80a1['mapper']['bindElementToMarker'](_0x44f151,_0x47c52d['markerName']),_0xacc880||(this['_activeMarkers']['includes'](_0x47c52d['markerName'])?_0x1a80a1['writer']['addClass']('ck-suggestion-marker--active',_0x44f151):_0x1a80a1['writer']['removeClass']('ck-suggestion-marker--active',_0x44f151));for(const _0x3a255c of _0x1d8545['model']['createRangeIn'](_0x47c52d['item'])['getItems']())_0x1a80a1['consumable']['consume'](_0x3a255c,_0x30b163['name']);_0x1a80a1['consumable']['consume'](_0x47c52d['item'],_0x30b163['name']);}},_0xf5495b=(_0x3da1f9,_0x203d10,_0x18e9a3,_0x1a84c4)=>{const _0x388cc8=_0x18e9a3['mapper']['markerNameToElements'](_0x203d10['markerName']);if(_0x388cc8){if(_0x1a84c4){const {subType:_0x4a9ccd}=O(_0x203d10['markerName']),_0x229ae3=_0x4a9ccd['split']('|')[0x0];if(!this['isBlockAttribute'](_0x229ae3))return;}for(const _0x18d60a of _0x388cc8)_0x18d60a['getCustomProperty']('addHighlight')||(_0x18e9a3['writer']['removeClass'](['ck-suggestion-marker','ck-suggestion-marker-formatBlock','ck-suggestion-marker--active'],_0x18d60a),_0x18e9a3['writer']['removeAttribute']('data-suggestion',_0x18d60a),_0x18e9a3['writer']['removeAttribute']('data-author-id',_0x18d60a),_0x18e9a3['mapper']['unbindElementFromMarkerName'](_0x18d60a,_0x203d10['markerName']));}};_0x1d8545['conversion']['for']('editingDowncast')['add'](_0x52348d=>{_0x52348d['on']('addMarker:suggestion:formatBlock',(_0x5deee0,_0x2680c7,_0x27f643)=>{_0x4578ce(_0x5deee0,_0x2680c7,_0x27f643,!0x1,!0x1);},{'priority':'high'});}),_0x1d8545['conversion']['for']('editingDowncast')['add'](_0x119248=>{_0x119248['on']('addMarker:suggestion:attribute',(_0x5e85bf,_0x28a0a3,_0x195bad)=>{_0x4578ce(_0x5e85bf,_0x28a0a3,_0x195bad,!0x1,!0x0);},{'priority':'high'});}),_0x1d8545['conversion']['for']('editingDowncast')['add'](_0x39ab81=>{_0x39ab81['on']('removeMarker:suggestion:formatBlock',(_0x38148f,_0x41c2ca,_0x5a9cf7)=>{_0xf5495b(0x0,_0x41c2ca,_0x5a9cf7,!0x1);},{'priority':'high'});}),_0x1d8545['conversion']['for']('editingDowncast')['add'](_0x6672d4=>{_0x6672d4['on']('removeMarker:suggestion:attribute',(_0x1e93a8,_0x4278c6,_0x2a35e0)=>{_0xf5495b(0x0,_0x4278c6,_0x2a35e0,!0x0);},{'priority':'high'});}),_0x1d8545['conversion']['for']('dataDowncast')['add'](_0x5e6d51=>{_0x5e6d51['on']('addMarker:suggestion:formatBlock',(_0x5be87f,_0x420c8b,_0x27f6a8)=>{_0x4578ce(_0x5be87f,_0x420c8b,_0x27f6a8,!0x0,!0x1);},{'priority':'highest'});}),_0x1d8545['conversion']['for']('dataDowncast')['add'](_0x29c27e=>{_0x29c27e['on']('addMarker:suggestion:attribute',(_0x2fcf46,_0x17d133,_0x4f986c)=>{_0x4578ce(_0x2fcf46,_0x17d133,_0x4f986c,!0x0,!0x0);},{'priority':'highest'});}),_0x1d8545['conversion']['for']('dataDowncast')['markerToData']({'model':'suggestion','view':(_0x19d16a,_0x2fb71c)=>_0x2fb71c['options']['showSuggestionHighlights']?null:{'group':'suggestion','name':_0x19d16a['substr'](0xb)}});const _0x5bb973=(_0x5553fa,_0x585fa0,_0x57b00b,_0x306567,_0x4ebd68)=>{if(_0x306567&&!_0x57b00b['options']['showSuggestionHighlights'])return;if(!_0x57b00b['consumable']['test'](_0x585fa0['markerRange'],_0x5553fa['name']))return;const _0x2f237f=this['_activeMarkers'],_0xa8b230=_0x585fa0['markerRange']['getWalker'](),_0x1661c5=_0x585fa0['markerRange']['start'],_0x4eb460=_0x1d8545['model']['schema'];let _0x328ac9=null,_0x4c465a=null,_0x560801=!0x1,_0x1b737a=!0x1;for(const _0x557e57 of _0xa8b230){const _0x4c07ac=_0x557e57['item'];_0x560801=_0x560801||_0x4eb460['isContent'](_0x4c07ac);const _0x268269=_0x57b00b['mapper']['toViewElement'](_0x4c07ac);if(_0x268269&&_0x268269['getCustomProperty']('addHighlight'))return;'elementEnd'==_0x557e57['type']&&(_0x4eb460['isBlock'](_0x4c07ac)&&!_0x4eb460['isLimit'](_0x4c07ac)&&(_0x4c07ac['nextSibling']||_0x1661c5['isAtEnd']?_0x328ac9&&_0x328ac9['parent']==_0x4c07ac||(_0x328ac9=_0x4c07ac,_0x2adee1(_0x557e57['previousPosition']),_0x1b737a=!0x0):_0x4c465a=_0x4c465a||_0x557e57['previousPosition']));}function _0x2adee1(_0x5eadae){const {id:_0x1f766b,authorId:_0x47fc4e}=O(_0x585fa0['markerName']),_0xa1afd8=_0x57b00b['writer']['createUIElement']('span',{'class':'ck-suggestion-marker-'+_0x4ebd68,'data-suggestion':_0x1f766b,'data-author-id':_0x47fc4e}),_0x5ba124=_0x57b00b['mapper']['toViewPosition'](_0x5eadae);!_0x306567&&_0x2f237f['includes'](_0x585fa0['markerName'])&&_0x57b00b['writer']['addClass']('ck-suggestion-marker--active',_0xa1afd8),_0x57b00b['writer']['insert'](_0x5ba124,_0xa1afd8),_0x57b00b['mapper']['bindElementToMarker'](_0xa1afd8,_0x585fa0['markerName']);}_0x560801||_0x1b737a||!_0x4c465a||_0x2adee1(_0x4c465a);};_0x1d8545['editing']['downcastDispatcher']['on']('addMarker:suggestion:deletion',(_0x40da26,_0x4a3292,_0x21b717)=>{_0x5bb973(_0x40da26,_0x4a3292,_0x21b717,!0x1,'merge');},{'priority':'high'}),_0x1d8545['data']['downcastDispatcher']['on']('addMarker:suggestion:deletion',(_0x5a32b9,_0x23c537,_0x40371b)=>{_0x5bb973(_0x5a32b9,_0x23c537,_0x40371b,!0x0,'merge');},{'priority':'high'}),_0x1d8545['editing']['downcastDispatcher']['on']('addMarker:suggestion:insertion',(_0x294e40,_0x8d9671,_0x521bfb)=>{_0x5bb973(_0x294e40,_0x8d9671,_0x521bfb,!0x1,'split');},{'priority':'high'}),_0x1d8545['data']['downcastDispatcher']['on']('addMarker:suggestion:insertion',(_0x59dde0,_0x77020f,_0x2072d1)=>{_0x5bb973(_0x59dde0,_0x77020f,_0x2072d1,!0x0,'split');},{'priority':'high'}),_0x1d8545['editing']['downcastDispatcher']['on']('removeMarker:suggestion',(_0x5357d5,_0xc3eda,_0x5bcd0c)=>{((_0x1d2953,_0x2f6ef8,_0x15bcfd)=>{const _0x571073=_0x15bcfd['mapper']['markerNameToElements'](_0x2f6ef8['markerName']);if(_0x571073){for(const _0x5c7310 of _0x571073)(_0x5c7310['hasClass']('ck-suggestion-marker-split')||_0x5c7310['hasClass']('ck-suggestion-marker-merge'))&&(_0x15bcfd['mapper']['unbindElementFromMarkerName'](_0x5c7310,_0x2f6ef8['markerName']),_0x15bcfd['writer']['remove'](_0x5c7310));}})(0x0,_0xc3eda,_0x5bcd0c);},{'priority':'high'});const _0xd21b4a=(_0x12c926,_0x465505,_0x438c03,_0x12e215)=>{if(_0x12e215&&!_0x438c03['options']['showSuggestionHighlights'])return;const _0x391fa9=_0x465505['markerRange']['start'],_0xe1dc8b=_0x465505['markerRange']['end'],_0x215d6e=_0x1d8545['model']['schema'];if(!_0x391fa9['isTouching'](_0xe1dc8b)||!_0x391fa9['nodeAfter'])return;const _0x288042=_0x391fa9['nodeAfter'];if(_0x215d6e['isBlock'](_0x288042)&&!_0x215d6e['isLimit'](_0x288042)&&_0x215d6e['checkChild'](_0x288042,'$text')){if(!_0x438c03['consumable']['consume'](_0x465505['markerRange'],_0x12c926['name']))return;const {id:_0x3d5b6e,authorId:_0x522fd0}=O(_0x465505['markerName']),_0x5e2c56=_0x438c03['writer']['createUIElement']('span',{'class':'ck-suggestion-marker-split','data-suggestion':_0x3d5b6e,'data-author-id':_0x522fd0}),_0x5d1c2c=_0x438c03['mapper']['toViewPosition'](_0xe1dc8b);!_0x12e215&&this['_activeMarkers']['includes'](_0x465505['markerName'])&&_0x438c03['writer']['addClass']('ck-suggestion-marker--active',_0x5e2c56),_0x438c03['writer']['insert'](_0x5d1c2c,_0x5e2c56),_0x438c03['mapper']['bindElementToMarker'](_0x5e2c56,_0x465505['markerName']);}};_0x1d8545['editing']['downcastDispatcher']['on']('addMarker:suggestion:insertion',(_0x2e1239,_0x114c47,_0x208d6b)=>{_0xd21b4a(_0x2e1239,_0x114c47,_0x208d6b,!0x1);},{'priority':'high'}),_0x1d8545['data']['downcastDispatcher']['on']('addMarker:suggestion:insertion',(_0x2f825f,_0xa3085f,_0x3d2b6b)=>{_0xd21b4a(_0x2f825f,_0xa3085f,_0x3d2b6b,!0x0);},{'priority':'high'});}['afterInit'](){this['editor']['plugins']['has']('TrackChangesEditing')&&this['listenTo'](this['editor']['plugins']['get']('TrackChangesEditing'),'change:activeMarkers',(_0x1cbd9b,_0x1c7702,_0x21d39a)=>{this['_activeMarkers']=_0x21d39a['slice']();},{'priority':'highest'});}['registerBlockAttribute'](_0x19bcd6){this['_blockAttributeKeys']['add'](_0x19bcd6);}['registerInlineAttribute'](_0x1814da){this['_inlineAttributeKeys']['add'](_0x1814da);}['isBlockAttribute'](_0x4681aa){return this['_blockAttributeKeys']['has'](_0x4681aa);}['isInlineAttribute'](_0x24e669){return this['_inlineAttributeKeys']['has'](_0x24e669);}['isRegisteredAttribute'](_0x2e4c73){return this['isInlineAttribute'](_0x2e4c73)||this['isBlockAttribute'](_0x2e4c73);}['_getClassName'](_0x163237,_0x10e753){if('attribute'!=_0x163237)return'ck-suggestion-marker-'+_0x163237;const _0x4b0604=_0x10e753['split']('|')[0x0];return this['isBlockAttribute'](_0x4b0604)?'ck-suggestion-marker-formatBlock':'ck-suggestion-marker-formatInline';}}function R(_0x31e193={},_0x2e42b7){if(void 0x0!==_0x31e193['dateTimeFormat']&&'function'!=typeof _0x31e193['dateTimeFormat'])throw new _0x398820('invalid-date-time-format');return _0x2fe571=>{const _0x48d68f='string'==typeof _0x2fe571?_0x439436['fromISO'](_0x2fe571):_0x439436['fromJSDate'](_0x2fe571),_0x2b8cb2=_0x439436['now'](),_0x3bfcc9=Math['floor'](_0x2b8cb2['diff'](_0x48d68f,'days')['days']);return _0x31e193['dateTimeFormat']?_0x31e193['dateTimeFormat'](_0x48d68f['toJSDate'](),_0x2e42b7&&_0x2e42b7['t']?_0x2e42b7['t']:void 0x0):0x0===_0x3bfcc9?_0x2e42b7?B(_0x2e42b7,'Today')+'\x20'+_0x48d68f['toFormat']('hh:mma'):_0x48d68f['toFormat']('\x27Today\x27\x20hh:mma'):0x1===_0x3bfcc9?_0x2e42b7?B(_0x2e42b7,'Yesterday')+'\x20'+_0x48d68f['toFormat']('hh:mma'):_0x48d68f['toFormat']('\x27Yesterday\x27\x20hh:mma'):_0x3bfcc9<0x7?_0x2e42b7?B(_0x2e42b7,'Last')+'\x20'+B(_0x2e42b7,_0x48d68f['toFormat']('EEEE'))+'\x20'+_0x48d68f['toFormat']('hh:mma'):_0x48d68f['toFormat']('\x27Last\x27\x20EEEE\x20hh:mma'):_0x48d68f['toFormat']('LL-dd-yyyy\x20hh:mma');};}function z(_0x360b54,_0x1701dc){const _0x7c9933=_0x360b54['mapper']['markerNameToElements'](_0x1701dc['name']);if(!_0x7c9933)return null;const _0x261936=_0x5a94f4(_0x7c9933['values']());return _0x360b54['view']['domConverter']['mapViewToDom'](_0x261936)||null;}function W(_0x46caf7,_0x5019fb){if(0x0===_0x5019fb['length'])return null;const _0x17e46c=[],_0x3f5d17=_0x46caf7['view']['domConverter'];for(const _0x1640eb of _0x5019fb){const _0x5ea74c=_0x46caf7['mapper']['markerNameToElements'](_0x1640eb['name']);if(!_0x5ea74c)continue;const _0x24addd=Array['from'](_0x5ea74c)['map'](_0xa9e7a2=>_0x3f5d17['mapViewToDom'](_0xa9e7a2))['filter'](_0x6296ff=>!!_0x6296ff);_0x17e46c['push'](..._0x24addd);}if(0x0===_0x17e46c['length'])return null;const _0xcc4d62=[];for(const _0x1787ff of _0x17e46c){const _0x27d93a=_0x1787ff['getClientRects']()['item'](0x0);_0x27d93a&&_0xcc4d62['push']({'x':_0x27d93a['x'],'y':_0x27d93a['y'],'domElement':_0x1787ff});}return 0x0===_0xcc4d62['length']?null:(_0xcc4d62['sort']((_0x415d0e,_0x4b1235)=>_0x415d0e['y']-_0x4b1235['y']||_0x415d0e['x']-_0x4b1235['x']),_0xcc4d62['map'](_0x48bbc9=>_0x48bbc9['domElement']));}function j(_0x3369f8,{limit:_0x150278,suffix:_0x5488b5='...'}){const _0x2766c2=[];let _0x57f500=0x0;const _0x18b526=_0x3369f8['replace'](/</g,'\x0a<')['replace'](/>/g,'>\x0a')['replace'](/^\n/g,'')['replace'](/\n$/g,'')['split']('\x0a');for(let _0x1da004=0x0;_0x1da004<_0x18b526['length'];_0x1da004++){let _0x2d0629=_0x18b526[_0x1da004];const _0x1791cb=Y(_0x2d0629);if(_0x2d0629['startsWith']('<')){if(_0x57f500>=_0x150278){const _0x19a608=_0x2d0629['match'](/[a-zA-Z]+/);if(!_0x19a608){_0x18b526[_0x1da004]='';continue;}const _0xe2fe95=_0x19a608[0x0];_0x2d0629['startsWith']('</')?(_0x2766c2['length']&&(_0x2d0629=''),_0x2766c2['pop']()):(_0x2766c2['push'](_0xe2fe95),_0x2d0629='');}}else{if(_0x57f500>=_0x150278)_0x2d0629='';else{if(_0x57f500+_0x1791cb['length']>=_0x150278){let _0x4c67f3=_0x150278-_0x57f500;if('\x20'===_0x1791cb[_0x4c67f3-0x1])_0x4c67f3--;else{const _0x1b3954=_0x1791cb['slice'](_0x4c67f3)['indexOf']('\x20');-0x1!==_0x1b3954?_0x4c67f3+=_0x1b3954:_0x4c67f3=_0x2d0629['length'];}_0x2d0629=_0x1791cb['slice'](0x0,_0x4c67f3)['join']('')+_0x5488b5,_0x57f500=_0x150278;}else _0x57f500+=_0x1791cb['length'];}}_0x18b526[_0x1da004]=_0x2d0629;}return _0x18b526['join']('\x0a')['replace'](/\n/g,'');}function Y(_0x23ab70){const _0x3870dc=[];for(let _0x40d7a1=0x0;_0x40d7a1<_0x23ab70['length'];_0x40d7a1++){const _0x337a61=_0x23ab70['substring'](_0x40d7a1)['match'](/^&[a-z0-9#]+;/);if(_0x337a61){const _0x2fd9a8=_0x337a61[0x0];_0x3870dc['push'](_0x2fd9a8),_0x40d7a1+=_0x2fd9a8['length']-0x1;}else _0x3870dc['push'](_0x23ab70[_0x40d7a1]);}return _0x3870dc;}class ConfirmView extends _0x419a48{['submitView'];['cancelView'];['focusTracker'];['keystrokes'];['focusCycler'];['focusables'];constructor(_0x40cf1e){super(_0x40cf1e);const _0x38e22a=this['bindTemplate'];this['set']('message',B(_0x40cf1e,'Are\x20you\x20sure?')),this['submitView']=this['_createButtonView'](_0x40cf1e,B(_0x40cf1e,'Yes'),_0x1e0f05,'submit'),this['cancelView']=this['_createButtonView'](_0x40cf1e,B(_0x40cf1e,'No'),_0x223b22,'cancel'),this['focusables']=this['createCollection']([this['submitView'],this['cancelView']]),this['focusTracker']=new _0x53965e(),this['keystrokes']=new _0x1530c5(),this['focusCycler']=new _0x4c79c1({'focusables':this['focusables'],'focusTracker':this['focusTracker'],'keystrokeHandler':this['keystrokes'],'actions':{'focusPrevious':'shift+tab','focusNext':'tab'}}),this['setTemplate']({'tag':'div','attributes':{'class':['ck','ck-confirm-view'],'tabindex':-0x1,'role':'alertdialog'},'children':[{'tag':'div','attributes':{'class':'ck-confirm-view-inner','role':'presentation'},'children':[{'tag':'p','children':[{'text':_0x38e22a['to']('message')}]},{'tag':'div','attributes':{'class':'ck-confirm-view-actions'},'children':[this['submitView'],this['cancelView']]}]}]});}['render'](){super['render'](),this['_setupKeyboardNavigation']();}['focus'](){this['cancelView']['element']['focus']({'preventScroll':!0x0});}['_createButtonView'](_0x86d370,_0x5b3224,_0x28e8bf,_0x14c685){const _0x16e5d9=new _0xe6496c(_0x86d370);return _0x16e5d9['label']=_0x5b3224,_0x16e5d9['icon']=_0x28e8bf,_0x16e5d9['extendTemplate']({'attributes':{'class':'ck-confirm-view-'+_0x14c685}}),_0x16e5d9['on']('execute',()=>this['fire'](_0x14c685)),_0x16e5d9;}['_setupKeyboardNavigation'](){this['focusables']['forEach'](_0x1cee99=>{this['keystrokes']['listenTo'](_0x1cee99['element']),this['focusTracker']['add'](_0x1cee99['element']);}),this['keystrokes']['set']('esc',(_0x3f5c9c,_0x333ad9)=>{this['fire']('cancel'),_0x333ad9();});}}function J(_0x49000e){return class _0xf112a5 extends _0x49000e{['showConfirm'](_0x3f286d,_0x426f85){return this['confirmView']=new ConfirmView(this['locale']),this['confirmView']['render'](),this['confirmView']['message']=_0x3f286d,this['confirmView']['once']('cancel',()=>{this['_removeConfirm']();}),this['confirmView']['once']('submit',()=>{this['_removeConfirm']();}),_0x426f85['appendChild'](this['confirmView']['element']),_0x426f85['classList']['add']('ck-confirm-view-active'),this['registerChild'](this['confirmView']),this['confirmView']['focus'](),this['set']('isConfirm',!0x0),this['on']('change:isConfirm',(_0x2a1d81,_0x4d1dcd,_0x45eede)=>{_0x45eede||_0x426f85['classList']['remove']('ck-confirm-view-active');}),new Promise(_0xb009ba=>this['confirmView']['on']('submit',_0xb009ba));}['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 K(_0xc70bec){let _0x385312=0x0,_0x2acd0f=0x0;for(const _0xafa8f3 of G(_0xc70bec))_0x385312=(_0x385312<<0x5)-_0x385312+_0xafa8f3,_0x385312&=_0x385312,[_0x385312,_0x2acd0f]=[_0x2acd0f,_0x385312];return X(_0x385312)+X(_0x2acd0f);}function*q(_0x305f2b){null==_0x305f2b||null==_0x305f2b?yield 0x12b9b0a1:0x0===_0x305f2b||!0x1===_0x305f2b?yield 0x0:0x1===_0x305f2b||0x1==_0x305f2b?yield 0x1:Array['isArray'](_0x305f2b)?yield*function*(_0xf43579){for(const _0x286bb1 of _0xf43579)yield*q(_0x286bb1);}(_0x305f2b):'object'==typeof _0x305f2b?yield*G(_0x305f2b):'string'==typeof _0x305f2b?yield*Z(_0x305f2b):'number'==typeof _0x305f2b&&(yield _0x305f2b);}function*G(_0xcb0395){if(yield Q('{'),_0xcb0395){const _0x24f795=Object['keys'](_0xcb0395)['sort']();for(const _0x5372eb of _0x24f795){yield*Z(_0x5372eb),yield Q(':');const _0x55fe90=_0xcb0395[_0x5372eb];yield*q(_0x55fe90);}}yield Q('}');}function*Z(_0x1b2f04){yield Q('\x22');for(const _0x30f1be of _0x1b2f04)yield Q(_0x30f1be);yield Q('\x22');}function Q(_0x20e921){return _0x20e921['charCodeAt'](0x0);}function X(_0x45f2ec){return(_0x45f2ec*=Math['sign'](_0x45f2ec))['toString'](0x24);}const tt=['root','roots','initialData','context','toolbar','rootsAttributes'],et=['WebSocketGateway','RevisionTracker','Autosave','WordCount','DocumentOutline','WProofreader'];function st(_0xefcf2e,_0x1daed9,_0x15c8af,_0x1e3ef9=[]){const _0xc0237='string'==typeof _0xefcf2e?_0x15c8af['get'](_0xefcf2e)['constructor']:_0xefcf2e['prototype']['constructor'];if(_0x1daed9['has'](_0xc0237))return _0x1daed9['get'](_0xc0237);_0x1daed9['set'](_0xc0237,!0x0);const _0x4d1a08=[...et,..._0x1e3ef9]['map'](_0x36afa4=>{if(_0x15c8af['has'](_0x36afa4))return _0x15c8af['get'](_0x36afa4)['constructor'];})['filter'](_0x49fbb6=>_0x49fbb6);if(_0xc0237&&_0x4d1a08['includes'](_0xc0237))return _0x1daed9['set'](_0xc0237,!0x1),!0x1;if(!_0xc0237['requires'])return _0x1daed9['set'](_0xc0237,!0x0),!0x0;const _0x33695f=_0xc0237['requires']['every'](_0x529b19=>st(_0x529b19,_0x1daed9,_0x15c8af,_0x1e3ef9));return _0x1daed9['set'](_0xc0237,_0x33695f),_0x33695f;}function it(_0x48a5aa,_0x3272c3){const _0x2ed636={};for(const _0x58d396 of _0x48a5aa['config']['names']())tt['includes'](_0x58d396)||(_0x2ed636[_0x58d396]=_0x48a5aa['config']['get'](_0x58d396));const _0x1f5bee=_0x2ed636['plugins']||[],_0x3983ce=_0x48a5aa['constructor']['builtinPlugins']||[],_0x74a73a=_0x1f5bee['length']?_0x1f5bee:_0x3983ce,_0x3fbcbf=_0x2ed636['extraPlugins']||[];delete _0x2ed636['extraPlugins'];const _0x420dfc=_0x2ed636['removePlugins']||[];delete _0x2ed636['removePlugins'];const _0x2cf267=_0x48a5aa['_context']['config']['get']('plugins')||[],_0x159ad6=_0x74a73a['concat'](_0x3fbcbf)['concat'](_0x2cf267)['map'](_0x1e5175=>'string'==typeof _0x1e5175?_0x3983ce['find'](_0xf4b40f=>_0xf4b40f['pluginName']==_0x1e5175):_0x1e5175)['filter'](_0x3ca639=>!_0x420dfc['includes'](_0x3ca639)&&!_0x420dfc['includes'](_0x3ca639['pluginName'])),_0x8dc7f0=Array['from'](new Set(_0x159ad6)),_0x471174=new Map();return _0x2ed636['plugins']=_0x8dc7f0['filter'](_0x2836b6=>st(_0x2836b6,_0x471174,_0x48a5aa['plugins'],_0x3272c3)),_0x2ed636;}function nt(_0x375525,_0x3ba42a){const _0x401b46=[];_0x375525['document']['selection']['on']('change:range',()=>{const _0x2c5600=function(_0x498da9,_0x383177){const _0x2bb231=[];for(const _0x5c4140 of _0x498da9['markers']){const _0x20c579=_0x5c4140['getRange']();(_0x20c579['containsPosition'](_0x383177)||_0x20c579['start']['isEqual'](_0x383177)||_0x20c579['end']['isEqual'](_0x383177))&&_0x2bb231['push'](_0x5c4140);}return _0x2bb231;}(_0x375525,_0x375525['document']['selection']['focus']),_0x175a09=[],_0x130c36=[],_0x54d824=[];for(const _0x2125c2 of _0x401b46)_0x2c5600['includes'](_0x2125c2)||_0x175a09['push'](_0x2125c2);for(const _0xaf1fdb of _0x2c5600)_0x401b46['includes'](_0xaf1fdb)||_0x130c36['push'](_0xaf1fdb),_0x54d824['push'](_0xaf1fdb);(_0x175a09['length']||_0x130c36['length'])&&_0x3ba42a({'left':_0x175a09,'entered':_0x130c36}),_0x401b46['length']=0x0,_0x401b46['push'](..._0x54d824);});}const ot='Ctrl+Shift+E';function rt(_0x23a96a,_0x3f0243){const _0x39666a=_0x23a96a['element'];_0x23a96a['keystrokes']['listenTo'](_0x39666a);for(const _0x36c6e1 of _0x3f0243)at(_0x23a96a,_0x36c6e1);_0x3f0243['on']('change',(_0x4757a1,_0xd7d0fc)=>{for(const _0x3c062d of _0xd7d0fc['removed'])ct(_0x23a96a,_0x3c062d);for(const _0x41de1c of Array['from'](_0xd7d0fc['added'])['reverse']())at(_0x23a96a,_0x41de1c);}),_0x23a96a['keystrokes']['set']('enter',(_0x4dfd95,_0x30f382)=>{_0x39666a===_0x4dfd95['target']&&(_0x23a96a['focusCycler']['focusFirst'](),_0x30f382());},{'filter':_0x29bac4=>_0x29bac4['target']===_0x39666a}),_0x23a96a['keystrokes']['set']('esc',(_0x3f7b5,_0x552fc3)=>{_0x39666a!==_0x3f7b5['target']?_0x23a96a['focus']():_0x23a96a['fire']('escape'),_0x552fc3();}),_0x23a96a['keystrokes']['set']('arrowdown',(_0x35809e,_0x237cb0)=>{_0x39666a===_0x35809e['target']&&(_0x23a96a['fire']('arrowdown'),_0x237cb0());}),_0x23a96a['keystrokes']['set']('arrowup',(_0x4dfb47,_0x482001)=>{_0x39666a===_0x4dfb47['target']&&(_0x23a96a['fire']('arrowup'),_0x482001());});}function at(_0x12f1ca,_0x423cef){_0x423cef['isRendered']&&(_0x12f1ca['focusTracker']['add'](_0x423cef['element']),_0x12f1ca['keystrokes']['listenTo'](_0x423cef['element']),_0x4da2d2(_0x423cef)&&function(_0xbbdc29,_0xf40103){const _0x2cfdc6=_0xbbdc29['actions'],_0x26ff5d=_0xf40103['actions'];for(const _0xd3138d of Object['keys'](_0x2cfdc6))if(_0xd3138d in _0x26ff5d&&_0x2cfdc6[_0xd3138d]!==_0x26ff5d[_0xd3138d])return!0x1;return!0x0;}(_0x12f1ca['focusCycler'],_0x423cef['focusCycler'])&&_0x12f1ca['focusCycler']['chain'](_0x423cef['focusCycler']));}function ct(_0x33491f,_0xacc72a){_0x33491f['focusTracker']['remove'](_0xacc72a['element']),_0x33491f['keystrokes']['stopListening'](_0xacc72a['element']),_0x4da2d2(_0xacc72a)&&_0x33491f['focusCycler']['unchain'](_0xacc72a['focusCycler']);}const lt='$elementId',ut='data-id';class DocumentCompare extends _0x457ea2{static get['pluginName'](){return'DocumentCompare';}static get['isOfficialPlugin'](){return!0x0;}static get['isPremiumPlugin'](){return!0x0;}async['init'](){this['context']instanceof _0x4fef2f?this['_integrateEditor'](this['context']):this['listenTo'](this['context']['editors'],'add',(_0x2df01e,_0x24880a)=>{_0x24880a['on']('ready',()=>{this['_integrateEditor'](_0x24880a);});});}get['editor'](){if(this['context']instanceof _0x4fef2f)return this['context'];{const _0x259f6f=this['context']['editors']['first'];if(!_0x259f6f)throw new _0x398820('documentcompare-no-editor',this);return _0x259f6f;}}['getDiff'](_0x4646ed,_0x43289e,_0x37e402={'anchor':'main','markDeletions':!0x1}){const _0x533835=_0x37e402['targetEditor']||this['editor'];let _0x21e706,_0x2dc188;if('string'==typeof _0x37e402['anchor']){const _0x7