@ckeditor/ckeditor5-fullscreen 45.0.0-alpha.6 → 45.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.
@@ -2,4 +2,4 @@
2
2
  /*!
3
3
  * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.
4
4
  * For licensing, see LICENSE.md.
5
- */(()=>{var e={21:e=>{"use strict";e.exports=function(e,t){Object.keys(t).forEach((function(i){e.setAttribute(i,t[i])}))}},51:e=>{"use strict";e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},109:(e,t,i)=>{"use strict";i.d(t,{A:()=>l});var n=i(758),o=i.n(n),r=i(935),s=i.n(r)()(o());s.push([e.id,'body.ck-fullscreen,html.ck-fullscreen{--ck-z-fullscreen:10000;overflow:hidden;--ck-z-default:calc(var(--ck-z-fullscreen) + 1);--ck-z-panel:calc(var(--ck-z-default) + 999);--ck-z-dialog:100000}body.ck-fullscreen .ckbox-reset:not(#n)>.ckbox--dialog,html.ck-fullscreen .ckbox-reset:not(#n)>.ckbox--dialog{--ckbox-z-index-root:calc(var(--ck-z-dialog) + 1)}body.ck-fullscreen .ckbox:not(#n) .ckbox-img-editor,html.ck-fullscreen .ckbox:not(#n) .ckbox-img-editor{--ckbox-z-index-preview:calc(var(--ck-z-dialog) + 1)}body.ck-fullscreen .ck-pagination-view-line,html.ck-fullscreen .ck-pagination-view-line{z-index:calc(var(--ck-z-fullscreen) + 1)}body.ck-fullscreen .page-break__label,html.ck-fullscreen .page-break__label{z-index:calc(var(--ck-z-fullscreen) + 2)}.ck.ck-fullscreen__main-wrapper{background:var(--ck-color-base-foreground);display:flex;flex-direction:column;height:100%;left:0;position:fixed;top:0;width:100%;z-index:var(--ck-z-fullscreen)}.ck.ck-fullscreen__main-wrapper .ck.ck-revision-history-ui__changes-navigation{margin-bottom:0;margin-top:0}:not(body>.ck-fullscreen__main-wrapper).ck-fullscreen__main-wrapper{position:absolute}.ck-fullscreen__menu-bar .ck.ck-menu-bar{border:none}.ck-fullscreen__main-wrapper .ck-fullscreen__editable-wrapper{--ck-fullscreen-editor-top-margin:28px;--ck-fullscreen-editor-bottom-margin:28px;display:flex;justify-content:flex-start;max-height:100%;overflow:auto}.ck-fullscreen__sidebar{flex-shrink:0;margin-left:10px;margin-top:var(--ck-fullscreen-editor-top-margin);width:300px}.ck-fullscreen__sidebar[data-ck-fullscreen=right-sidebar]{margin-right:auto}.ck-fullscreen__main-wrapper .ck-fullscreen__editable{height:100%;margin-bottom:56px;margin-left:auto;margin-top:var(--ck-fullscreen-editor-top-margin)}.ck-fullscreen__main-wrapper .ck-fullscreen__editable:after{content:"";display:block;height:var(--ck-fullscreen-editor-bottom-margin)}.ck-fullscreen__main-wrapper .ck-fullscreen__editable .ck.ck-editor__editable:not(.ck-editor__nested-editable){background:#fff;border:1px solid var(--ck-color-base-border);box-shadow:0 2px 3px rgba(0,0,0,.078);box-sizing:border-box;height:fit-content;min-height:297mm;padding:20mm 12mm;width:210.52917mm}.ck-fullscreen__main-wrapper .ck-fullscreen__editable .ck-source-editing-area{width:210.52917mm}.ck-fullscreen__left-sidebar{font-family:Helvetica,Arial,sans-serif;--ck-user-avatar-size:28px;align-self:flex-start;background-color:transparent;box-sizing:border-box;display:flex;flex-direction:column;height:100%;margin-top:0;position:sticky;top:0}.ck-fullscreen__left-sidebar .ck.ck-presence-list--collapsed{--ck-user-avatar-size:32px}.ck-fullscreen__left-sidebar>:first-child{padding-top:var(--ck-fullscreen-editor-top-margin)}.ck-fullscreen__left-sidebar .ck-presence-list__users-counter__text,.ck-fullscreen__left-sidebar .ck-user{font-size:.85em}.ck-fullscreen__left-sidebar-item{margin-bottom:var(--ck-spacing-medium);padding:var(--ck-spacing-medium)}.ck-fullscreen__left-sidebar-item:last-child{margin-bottom:0}.ck-fullscreen__left-sidebar-header{--ck-fullscreen-presence-list-header-font-size:0.875em;color:var(--ck-document-outline-item-default-color);font-size:var(--ck-fullscreen-presence-list-header-font-size);font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ck-fullscreen__left-sidebar--sticky{position:sticky;top:0}.ck-fullscreen__left-sidebar--sticky>:first-child{padding-top:0}.ck-fullscreen__presence-list{margin-top:var(--ck-spacing-medium)}.ck-fullscreen__left-sidebar-item--no-margin{margin:0}.ck-fullscreen__left-sidebar .ck.ck-document-outline{padding-left:0;padding-right:0;padding-top:0}.ck-fullscreen__document-outline-wrapper{overflow-y:auto;padding-top:0}',""]);const l=s},128:e=>{"use strict";var t={};e.exports=function(e,i){var n=function(e){if(void 0===t[e]){var i=document.querySelector(e);if(window.HTMLIFrameElement&&i instanceof window.HTMLIFrameElement)try{i=i.contentDocument.head}catch(e){i=null}t[e]=i}return t[e]}(e);if(!n)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");n.appendChild(i)}},237:e=>{"use strict";e.exports=CKEditor5.dll},311:(e,t,i)=>{e.exports=i(237)("./src/ui.js")},355:(e,t,i)=>{e.exports=i(237)("./src/icons.js")},584:(e,t,i)=>{e.exports=i(237)("./src/utils.js")},590:(e,t,i)=>{"use strict";i.d(t,{A:()=>l});var n=i(758),o=i.n(n),r=i(935),s=i.n(r)()(o());s.push([e.id,".ck.ck-editor{position:relative}.ck.ck-editor .ck-editor__top .ck-sticky-panel .ck-toolbar{z-index:var(--ck-z-panel)}.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content{border:solid var(--ck-color-base-border);border-radius:0;border-width:1px 1px 0}.ck-rounded-corners .ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content,.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content.ck-rounded-corners{border-radius:var(--ck-border-radius);border-bottom-left-radius:0;border-bottom-right-radius:0}.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content.ck-sticky-panel__content_sticky{border-bottom-width:1px}.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content .ck-menu-bar{border:0;border-bottom:1px solid var(--ck-color-base-border)}.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content .ck-toolbar{border:0}.ck.ck-editor__main>.ck-editor__editable{background:var(--ck-color-base-background);border-radius:0}.ck-rounded-corners .ck.ck-editor__main>.ck-editor__editable,.ck.ck-editor__main>.ck-editor__editable.ck-rounded-corners{border-radius:var(--ck-border-radius);border-top-left-radius:0;border-top-right-radius:0}.ck.ck-editor__main>.ck-editor__editable:not(.ck-focused){border-color:var(--ck-color-base-border)}",""]);const l=s},591:e=>{"use strict";var t=[];function i(e){for(var i=-1,n=0;n<t.length;n++)if(t[n].identifier===e){i=n;break}return i}function n(e,n){for(var r={},s=[],l=0;l<e.length;l++){var a=e[l],c=n.base?a[0]+n.base:a[0],d=r[c]||0,u="".concat(c," ").concat(d);r[c]=d+1;var h=i(u),p={css:a[1],media:a[2],sourceMap:a[3],supports:a[4],layer:a[5]};if(-1!==h)t[h].references++,t[h].updater(p);else{var g=o(p,n);n.byIndex=l,t.splice(l,0,{identifier:u,updater:g,references:1})}s.push(u)}return s}function o(e,t){var i=t.domAPI(t);i.update(e);return function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap&&t.supports===e.supports&&t.layer===e.layer)return;i.update(e=t)}else i.remove()}}e.exports=function(e,o){var r=n(e=e||[],o=o||{});return function(e){e=e||[];for(var s=0;s<r.length;s++){var l=i(r[s]);t[l].references--}for(var a=n(e,o),c=0;c<r.length;c++){var d=i(r[c]);0===t[d].references&&(t[d].updater(),t.splice(d,1))}r=a}}},639:e=>{"use strict";var t,i=(t=[],function(e,i){return t[e]=i,t.filter(Boolean).join("\n")});function n(e,t,n,o){var r;if(n)r="";else{r="",o.supports&&(r+="@supports (".concat(o.supports,") {")),o.media&&(r+="@media ".concat(o.media," {"));var s=void 0!==o.layer;s&&(r+="@layer".concat(o.layer.length>0?" ".concat(o.layer):""," {")),r+=o.css,s&&(r+="}"),o.media&&(r+="}"),o.supports&&(r+="}")}if(e.styleSheet)e.styleSheet.cssText=i(t,r);else{var l=document.createTextNode(r),a=e.childNodes;a[t]&&e.removeChild(a[t]),a.length?e.insertBefore(l,a[t]):e.appendChild(l)}}var o={singleton:null,singletonCounter:0};e.exports=function(e){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var t=o.singletonCounter++,i=o.singleton||(o.singleton=e.insertStyleElement(e));return{update:function(e){n(i,t,!1,e)},remove:function(e){n(i,t,!0,e)}}}},758:e=>{"use strict";e.exports=function(e){return e[1]}},782:(e,t,i)=>{e.exports=i(237)("./src/core.js")},783:(e,t,i)=>{e.exports=i(237)("./src/engine.js")},935:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var i="",n=void 0!==t[5];return t[4]&&(i+="@supports (".concat(t[4],") {")),t[2]&&(i+="@media ".concat(t[2]," {")),n&&(i+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),i+=e(t),n&&(i+="}"),t[2]&&(i+="}"),t[4]&&(i+="}"),i})).join("")},t.i=function(e,i,n,o,r){"string"==typeof e&&(e=[[null,e,void 0]]);var s={};if(n)for(var l=0;l<this.length;l++){var a=this[l][0];null!=a&&(s[a]=!0)}for(var c=0;c<e.length;c++){var d=[].concat(e[c]);n&&s[d[0]]||(void 0!==r&&(void 0===d[5]||(d[1]="@layer".concat(d[5].length>0?" ".concat(d[5]):""," {").concat(d[1],"}")),d[5]=r),i&&(d[2]?(d[1]="@media ".concat(d[2]," {").concat(d[1],"}"),d[2]=i):d[2]=i),o&&(d[4]?(d[1]="@supports (".concat(d[4],") {").concat(d[1],"}"),d[4]=o):d[4]="".concat(o)),t.push(d))}},t}}},t={};function i(n){var o=t[n];if(void 0!==o)return o.exports;var r=t[n]={id:n,exports:{}};return e[n](r,r.exports,i),r.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var n in t)i.o(t,n)&&!i.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};(()=>{"use strict";i.r(n),i.d(n,{Fullscreen:()=>A,FullscreenEditing:()=>V,FullscreenUI:()=>M});var e=i(782),t=i(584),o=i(311),r=i(783);class s extends o.EditorUI{view;_toolbarConfig;_elementReplacer;constructor(e,i){super(e),this.view=i,this._toolbarConfig=(0,o.normalizeToolbarConfig)(e.config.get("toolbar")),this._elementReplacer=new t.ElementReplacer,this.listenTo(e.editing.view,"scrollToTheSelection",this._handleScrollToTheSelectionWithStickyPanel.bind(this))}get element(){return this.view.element}init(e){const t=this.editor,i=this.view,n=t.editing.view,o=i.editable,r=n.document.getRoot();o.name=r.rootName,i.render();const s=o.element;this.setEditableElement(o.name,s),i.editable.bind("isFocused").to(this.focusTracker),n.attachDomRoot(s),e&&this._elementReplacer.replace(e,this.element),this._initPlaceholder(),this._initToolbar(),i.menuBarView&&this.initMenuBar(i.menuBarView),this._initDialogPluginIntegration(),this._initContextualBalloonIntegration(),this.fire("ready")}destroy(){super.destroy();const e=this.view,t=this.editor.editing.view;this._elementReplacer.restore(),t.getDomRoot(e.editable.name)&&t.detachDomRoot(e.editable.name),e.destroy()}_initToolbar(){const e=this.view;e.stickyPanel.bind("isActive").to(this.focusTracker,"isFocused"),e.stickyPanel.limiterElement=e.element,e.stickyPanel.bind("viewportTopOffset").to(this,"viewportOffset",(({top:e})=>e||0)),e.toolbar.fillFromConfig(this._toolbarConfig,this.componentFactory),this.addToolbar(e.toolbar)}_initPlaceholder(){const e=this.editor,t=e.editing.view,i=t.document.getRoot(),n=e.sourceElement;let o;const s=e.config.get("placeholder");s&&(o="string"==typeof s?s:s[this.view.editable.name]),!o&&n&&"textarea"===n.tagName.toLowerCase()&&(o=n.getAttribute("placeholder")),o&&(i.placeholder=o),(0,r.enablePlaceholder)({view:t,element:i,isDirectHost:!1,keepOnFocus:!0})}_initContextualBalloonIntegration(){if(!this.editor.plugins.has("ContextualBalloon"))return;const{stickyPanel:e}=this.view,i=this.editor.plugins.get("ContextualBalloon");i.on("getPositionOptions",(i=>{const n=i.return;if(!n||!e.isSticky||!e.element)return;const o=new t.Rect(e.element).height,r="function"==typeof n.target?n.target():n.target,s="function"==typeof n.limiter?n.limiter():n.limiter;if(r&&s&&new t.Rect(r).height>=new t.Rect(s).height-o)return;const l={...n.viewportOffsetConfig},a=(l.top||0)+o;i.return={...n,viewportOffsetConfig:{...l,top:a}}}),{priority:"low"});const n=()=>{i.visibleView&&i.updatePosition()};this.listenTo(e,"change:isSticky",n),this.listenTo(this.editor.ui,"change:viewportOffset",n)}_handleScrollToTheSelectionWithStickyPanel(e,i,n){const o=this.view.stickyPanel;if(o.isSticky){const e=new t.Rect(o.element).height;i.viewportOffset.top+=e}else{const e=()=>{this.editor.editing.view.scrollToTheSelection(n)};this.listenTo(o,"change:isSticky",e),setTimeout((()=>{this.stopListening(o,"change:isSticky",e)}),20)}}_initDialogPluginIntegration(){if(!this.editor.plugins.has("Dialog"))return;const e=this.view.stickyPanel,i=this.editor.plugins.get("Dialog");i.on("show",(()=>{const n=i.view;n.on("moveTo",((i,r)=>{if(!e.isSticky||n.wasMoved||n.isModal)return;const s=new t.Rect(e.contentPanelElement);r[1]<s.bottom+o.DialogView.defaultOffset&&(r[1]=s.bottom+o.DialogView.defaultOffset)}),{priority:"high"})}),{priority:"low"})}}var l=i(591),a=i.n(l),c=i(639),d=i.n(c),u=i(128),h=i.n(u),p=i(21),g=i.n(p),f=i(51),m=i.n(f),_=i(590),b={attributes:{"data-cke":!0}};b.setAttributes=g(),b.insert=h().bind(null,"head"),b.domAPI=d(),b.insertStyleElement=m();a()(_.A,b);_.A&&_.A.locals&&_.A.locals;class k extends o.BoxedEditorUIView{stickyPanel;toolbar;editable;constructor(e,t,i={}){super(e),this.stickyPanel=new o.StickyPanelView(e),this.toolbar=new o.ToolbarView(e,{shouldGroupWhenFull:i.shouldToolbarGroupWhenFull}),i.useMenuBar&&(this.menuBarView=new o.MenuBarView(e)),this.editable=new o.InlineEditableUIView(e,t,void 0,{label:i.label})}render(){super.render(),this.menuBarView?this.stickyPanel.content.addMany([this.menuBarView,this.toolbar]):this.stickyPanel.content.add(this.toolbar),this.top.add(this.stickyPanel),this.main.add(this.editable)}}function v(e){return function(e){return"object"==typeof e&&null!==e}(e)&&1===e.nodeType&&!function(e){if("object"!=typeof e)return!1;if(null==e)return!1;if(null===Object.getPrototypeOf(e))return!0;if("[object Object]"!==Object.prototype.toString.call(e)){const t=e[Symbol.toStringTag];return null!=t&&(!!Object.getOwnPropertyDescriptor(e,Symbol.toStringTag)?.writable&&e.toString()===`[object ${t}]`)}let t=e;for(;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}(e)}class w extends((0,e.ElementApiMixin)(e.Editor)){static get editorName(){return"ClassicEditor"}ui;constructor(i,n={}){if(!y(i)&&void 0!==n.initialData)throw new t.CKEditorError("editor-create-initial-data",null);super(n),this.config.define("menuBar.isVisible",!1),void 0===this.config.get("initialData")&&this.config.set("initialData",function(e){return y(e)?(0,t.getDataFromElement)(e):e}(i)),y(i)&&(this.sourceElement=i),this.model.document.createRoot();const o=!this.config.get("toolbar.shouldNotGroupWhenFull"),r=this.config.get("menuBar"),l=new k(this.locale,this.editing.view,{shouldToolbarGroupWhenFull:o,useMenuBar:r.isVisible,label:this.config.get("label")});this.ui=new s(this,l),(0,e.attachToForm)(this)}destroy(){return this.sourceElement&&this.updateSourceElement(),this.ui.destroy(),super.destroy()}static create(e,t={}){return new Promise((i=>{const n=new this(e,t);i(n.initPlugins().then((()=>n.ui.init(y(e)?e:null))).then((()=>n.data.init(n.config.get("initialData")))).then((()=>n.fire("ready"))).then((()=>n)))}))}}function y(e){return v(e)}class E extends o.EditorUI{view;constructor(e,t){super(e),this.view=t}init(){const e=this.editor,t=this.view,i=e.editing.view,n=t.editable,o=i.document.getRoot();n.name=o.rootName,t.render();const r=n.element;this.setEditableElement(n.name,r),t.editable.bind("isFocused").to(this.focusTracker),i.attachDomRoot(r),this._initPlaceholder(),this._initToolbar(),this.initMenuBar(this.view.menuBarView),this.fire("ready")}destroy(){super.destroy();const e=this.view,t=this.editor.editing.view;t.getDomRoot(e.editable.name)&&t.detachDomRoot(e.editable.name),e.destroy()}_initToolbar(){const e=this.editor,t=this.view;t.toolbar.fillFromConfig(e.config.get("toolbar"),this.componentFactory),this.addToolbar(t.toolbar)}_initPlaceholder(){const e=this.editor,t=e.editing.view,i=t.document.getRoot(),n=e.config.get("placeholder");if(n){const e="string"==typeof n?n:n[i.rootName];e&&(i.placeholder=e)}(0,r.enablePlaceholder)({view:t,element:i,isDirectHost:!1,keepOnFocus:!0})}}class x extends o.EditorUIView{toolbar;editable;menuBarView;constructor(e,t,i={}){super(e),this.toolbar=new o.ToolbarView(e,{shouldGroupWhenFull:i.shouldToolbarGroupWhenFull}),this.menuBarView=new o.MenuBarView(e),this.editable=new o.InlineEditableUIView(e,t,i.editableElement,{label:i.label}),this.toolbar.extendTemplate({attributes:{class:["ck-reset_all","ck-rounded-corners"],dir:e.uiLanguageDirection}}),this.menuBarView.extendTemplate({attributes:{class:["ck-reset_all","ck-rounded-corners"],dir:e.uiLanguageDirection}})}render(){super.render(),this.registerChild([this.menuBarView,this.toolbar,this.editable])}}class C extends((0,e.ElementApiMixin)(e.Editor)){static get editorName(){return"DecoupledEditor"}ui;constructor(i,n={}){if(!T(i)&&void 0!==n.initialData)throw new t.CKEditorError("editor-create-initial-data",null);super(n),void 0===this.config.get("initialData")&&this.config.set("initialData",function(e){return T(e)?(0,t.getDataFromElement)(e):e}(i)),T(i)&&(this.sourceElement=i,(0,e.secureSourceElement)(this,i)),this.model.document.createRoot();const o=!this.config.get("toolbar.shouldNotGroupWhenFull"),r=new x(this.locale,this.editing.view,{editableElement:this.sourceElement,shouldToolbarGroupWhenFull:o,label:this.config.get("label")});this.ui=new E(this,r)}destroy(){const e=this.getData();return this.ui.destroy(),super.destroy().then((()=>{this.sourceElement&&this.updateSourceElement(e)}))}static create(e,i={}){return new Promise((n=>{if(T(e)&&"TEXTAREA"===e.tagName)throw new t.CKEditorError("editor-wrong-element",null);const o=new this(e,i);n(o.initPlugins().then((()=>o.ui.init())).then((()=>o.data.init(o.config.get("initialData")))).then((()=>o.fire("ready"))).then((()=>o)))}))}}function T(e){return v(e)}class D{_placeholderMap;_wrapper=null;_document;_annotationsUIsData=null;_paginationBodyCollection=null;_sourceEditingCallback=(e,t,i)=>{this.getWrapper().querySelector(".ck-fullscreen__document-outline-header").style.display=i?"none":""};_hiddenElements=new Map;_showRevisionViewerCallback=null;_closeRevisionViewerCallback=null;constructor(e){this._placeholderMap=new Map,e.plugins.has("RevisionHistory")&&(this._showRevisionViewerCallback=e.config.get("revisionHistory").showRevisionViewerCallback,this._closeRevisionViewerCallback=e.config.get("revisionHistory").closeRevisionViewerCallback),this._editor=e,this._document=this._editor.sourceElement?this._editor.sourceElement.ownerDocument:t.global.document,this._editor.config.define("fullscreen.container",this._document.body),e.on("destroy",(()=>{this._wrapper&&this.destroy()}))}moveToFullscreen(e,i){const n=(0,t.createElement)(this._document,"div");n.setAttribute("data-ck-fullscreen-placeholder",i),e.replaceWith(n),this.getWrapper().querySelector(`[data-ck-fullscreen="${i}"]`).append(e),this._placeholderMap.set(i,{placeholderElement:n,movedElement:e})}restoreMovedElementLocation(e){if(!this._placeholderMap.has(e))return;const{placeholderElement:t,movedElement:i}=this._placeholderMap.get(e);t.replaceWith(i),t.remove(),this._placeholderMap.delete(e),0===this._placeholderMap.size&&this._destroyContainer()}getWrapper(){return this._wrapper||(this._wrapper=(0,t.createElement)(this._document,"div",{class:"ck ck-fullscreen__main-wrapper"}),this._wrapper.innerHTML='\n\t\t\t\t<div class="ck ck-fullscreen__top-wrapper ck-reset_all">\n\t\t\t\t\t<div class="ck ck-fullscreen__menu-bar" data-ck-fullscreen="menu-bar"></div>\n\t\t\t\t\t<div class="ck ck-fullscreen__toolbar" data-ck-fullscreen="toolbar"></div>\n\t\t\t\t</div>\n\t\t\t\t<div class="ck ck-fullscreen__editable-wrapper">\n\t\t\t\t\t<div class="ck ck-fullscreen__sidebar ck-fullscreen__left-sidebar" data-ck-fullscreen="left-sidebar">\n\t\t\t\t\t\t<div class="ck ck-fullscreen__left-sidebar--sticky" data-ck-fullscreen="left-sidebar-sticky"></div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class="ck ck-fullscreen__editable" data-ck-fullscreen="editable">\n\t\t\t\t\t\t<div class="ck ck-fullscreen__pagination-view" data-ck-fullscreen="pagination-view"></div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class="ck ck-fullscreen__sidebar ck-fullscreen__right-sidebar" data-ck-fullscreen="right-sidebar"></div>\n\t\t\t\t</div>\n\t\t\t\t<div class="ck ck-fullscreen__bottom-wrapper">\n\t\t\t\t\t<div class="ck ck-fullscreen__body-wrapper" data-ck-fullscreen="body-wrapper"></div>\n\t\t\t\t</div>\n\t\t\t',this._editor.config.get("fullscreen.container").appendChild(this._wrapper)),this._wrapper}enable(){if(this._defaultOnEnter(),this._editor.config.get("fullscreen.container")===this._document.body&&(this._document.body.classList.add("ck-fullscreen"),this._document.body.parentElement.classList.add("ck-fullscreen")),this._editor.plugins.has("Dialog")&&this._registerFullscreenDialogPositionAdjustments(),this._editor.plugins.has("PresenceListUI")&&this._generatePresenceListContainer(),this._editor.plugins.has("DocumentOutlineUI")&&this._generateDocumentOutlineContainer(),this._editor.plugins.has("Pagination")&&this._editor.plugins.get("Pagination").isEnabled){const e=this._editor.plugins.get("PaginationRenderer");e.setupScrollableAncestor(),this._paginationBodyCollection=new o.BodyCollection(this._editor.locale),this._paginationBodyCollection.attachToDom(),e.linesRepository.setViewCollection(this._paginationBodyCollection),this._editor.once("destroy",(()=>{this._paginationBodyCollection.detachFromDom()})),this.moveToFullscreen(this._paginationBodyCollection.bodyCollectionContainer,"body-wrapper")}this._editor.plugins.has("AnnotationsUIs")&&this._overrideAnnotationsUIs(),this._editor.plugins.has("RevisionHistory")&&(this._editor.plugins.get("RevisionHistory").isRevisionViewerOpen&&this._editor.config.get("revisionHistory.closeRevisionViewerCallback")(),this._overrideRevisionHistoryCallbacks()),this._editor.plugins.has("SourceEditing")&&this._editor.plugins.has("DocumentOutlineUI")&&this._editor.plugins.get("SourceEditing").on("change:isSourceEditingMode",this._sourceEditingCallback);for(const e of this._editor.config.get("fullscreen.container").children)e===this._wrapper||e.classList.contains("ck-body-wrapper")||e.classList.contains("ckbox-wrapper")||"none"===e.style.display||(this._hiddenElements.set(e,e.style.display),e.style.display="none");this._editor.config.get("fullscreen.onEnterCallback")&&this._editor.config.get("fullscreen.onEnterCallback")(this.getWrapper())}disable(){this._editor.config.get("fullscreen.onLeaveCallback")&&this._editor.config.get("fullscreen.onLeaveCallback")(this.getWrapper()),this._document.body.classList.remove("ck-fullscreen"),this._document.body.parentElement.classList.remove("ck-fullscreen"),this._editor.plugins.has("DocumentOutlineUI")&&this._restoreDocumentOutlineDefaultContainer(),this._annotationsUIsData&&this._restoreAnnotationsUIs(),this._editor.plugins.has("RevisionHistory")&&this._restoreRevisionHistoryCallbacks(),this._editor.plugins.has("SourceEditing")&&this._editor.plugins.has("DocumentOutlineUI")&&this._editor.plugins.get("SourceEditing").off("change:isSourceEditingMode",this._sourceEditingCallback);for(const e of this._placeholderMap.keys())this.restoreMovedElementLocation(e);if(this._editor.ui.view.toolbar.switchBehavior(!0===this._editor.config.get("toolbar.shouldNotGroupWhenFull")?"static":"dynamic"),0===this._placeholderMap.size&&this._destroyContainer(),this._editor.plugins.has("Pagination")&&this._editor.plugins.get("Pagination").isEnabled){const e=this._editor.plugins.get("PaginationRenderer");e.setupScrollableAncestor(),e.linesRepository.setViewCollection(this._editor.ui.view.body),this._paginationBodyCollection.detachFromDom(),this._paginationBodyCollection?.destroy()}this._editor.plugins.has("Dialog")&&this._unregisterFullscreenDialogPositionAdjustments()}destroy(){for(const{placeholderElement:e,movedElement:t}of this._placeholderMap.values())e.remove(),t.remove();this._destroyContainer(),this._document.body.classList.remove("ck-fullscreen"),this._document.body.parentElement.classList.remove("ck-fullscreen")}_defaultOnEnter(){return this.getWrapper()}_destroyContainer(){if(this._wrapper){this._wrapper.remove(),this._wrapper=null;for(const[e,t]of this._hiddenElements)e.style.display=t;this._hiddenElements.clear()}}_generatePresenceListContainer(){const e=(0,t.createElement)(document,"div",{class:"ck ck-fullscreen__left-sidebar-item"});e.innerHTML='\n\t\t\t<div class="ck ck-fullscreen__left-sidebar-header">Connected users</div>\n\t\t\t<div class="ck ck-fullscreen__presence-list" data-ck-fullscreen="presence-list"></div>\n\t\t',document.querySelector('[data-ck-fullscreen="left-sidebar-sticky"]').appendChild(e);const i=this._editor.plugins.get("PresenceListUI");this.moveToFullscreen(i.view.element,"presence-list")}_generateDocumentOutlineContainer(){const e=(0,t.createElement)(document,"div",{class:"ck-fullscreen__left-sidebar-item ck-fullscreen__left-sidebar-item--no-margin"});e.innerHTML='\n\t\t\t<div class="ck ck-fullscreen__left-sidebar-header ck-fullscreen__document-outline-header">\n\t\t\t\tDocument outline\n\t\t\t</div>\n\t\t';const i=(0,t.createElement)(document,"div",{class:"ck ck-fullscreen__left-sidebar-item ck-fullscreen__document-outline-wrapper"});i.innerHTML='\n\t\t\t<div class="ck ck-fullscreen__document-outline" data-ck-fullscreen="document-outline"></div>\n\t\t',document.querySelector('[data-ck-fullscreen="left-sidebar"]').appendChild(i),document.querySelector('[data-ck-fullscreen="left-sidebar-sticky"]').appendChild(e);const n=this._editor.plugins.get("DocumentOutlineUI");n.view.documentOutlineContainer=document.querySelector('[data-ck-fullscreen="left-sidebar"]'),this.moveToFullscreen(n.view.element,"document-outline")}_restoreDocumentOutlineDefaultContainer(){const e=this._editor.plugins.get("DocumentOutlineUI");e.view.documentOutlineContainer=e.view.element}_overrideAnnotationsUIs(){const e=this._editor.plugins.get("AnnotationsUIs");this._annotationsUIsData=new Map(e.uisData);const t=this._editor.plugins.get("Sidebar");t.container||t.setContainer(this.getWrapper().querySelector('[data-ck-fullscreen="right-sidebar"]'));const i=new Map;for(const[t,n]of[...this._annotationsUIsData])n.filter!==e.defaultFilter&&i.set(t,n.filter);e.deactivateAll(),i.has("wideSidebar")?e.activate("wideSidebar",i.get("wideSidebar")):i.size?e.activate("wideSidebar",(e=>[...i.values()].some((t=>t(e))))):e.switchTo("wideSidebar"),this.moveToFullscreen(t.container.firstElementChild,"right-sidebar")}_restoreAnnotationsUIs(){const e=this._editor.plugins.get("AnnotationsUIs");e.deactivateAll();for(const[t,i]of[...this._annotationsUIsData])e.activate(t,i.filter);this._annotationsUIsData=null}_overrideRevisionHistoryCallbacks(){this._editor.config.set("revisionHistory.showRevisionViewerCallback",(async()=>{const e=await this._showRevisionViewerCallback();return this._editor.plugins.has("DocumentOutlineUI")&&(this.getWrapper().querySelector(".ck-fullscreen__document-outline-header").style.display="none"),this.restoreMovedElementLocation("editable"),this.restoreMovedElementLocation("toolbar"),this.restoreMovedElementLocation("right-sidebar"),this._annotationsUIsData&&this._restoreAnnotationsUIs(),this._editor.ui.view.menuBarView&&this._editor.ui.view.menuBarView.disable(),this.moveToFullscreen(e.ui.getEditableElement(),"editable"),this.moveToFullscreen(e.ui.view.toolbar.element,"toolbar"),this.moveToFullscreen(this._editor.config.get("revisionHistory.viewerSidebarContainer"),"right-sidebar"),e})),this._editor.config.set("revisionHistory.closeRevisionViewerCallback",(async()=>{this.restoreMovedElementLocation("toolbar"),this.restoreMovedElementLocation("editable"),this.restoreMovedElementLocation("right-sidebar"),this._editor.plugins.has("DocumentOutlineUI")&&(this.getWrapper().querySelector(".ck-fullscreen__document-outline-header").style.display=""),this.moveToFullscreen(this._editor.ui.getEditableElement(),"editable"),this.moveToFullscreen(this._editor.ui.view.toolbar.element,"toolbar"),await this._closeRevisionViewerCallback(),this._editor.plugins.has("AnnotationsUIs")&&this._overrideAnnotationsUIs(),this._editor.ui.view.menuBarView&&this._editor.ui.view.menuBarView.enable()}))}_restoreRevisionHistoryCallbacks(){this._editor.config.set("revisionHistory.showRevisionViewerCallback",(async()=>this._showRevisionViewerCallback())),this._editor.config.set("revisionHistory.closeRevisionViewerCallback",(async()=>this._closeRevisionViewerCallback()))}_registerFullscreenDialogPositionAdjustments(){const e=this._editor.plugins.get("Dialog");this._setNewDialogPosition(),e.on("change:isOpen",this.updateDialogPositionCallback,{priority:"highest"})}_unregisterFullscreenDialogPositionAdjustments(){const e=this._editor.plugins.get("Dialog"),t=e.view;t&&null===t.position&&(t.position=o.DialogViewPosition.EDITOR_TOP_SIDE),t&&t.updatePosition(),e.off("change:isOpen",this.updateDialogPositionCallback)}updateDialogPositionCallback=this._updateDialogPosition.bind(this);_updateDialogPosition(e,t,i){i&&this._setNewDialogPosition()}_setNewDialogPosition(){const e=this._editor.plugins.get("Dialog").view;if(!e||e.position!==o.DialogViewPosition.EDITOR_TOP_SIDE)return;const i=new t.Rect(this._wrapper).getVisible(),n=new t.Rect(document.querySelector(".ck-fullscreen__editable")).getVisible(),r=new t.Rect(e.element.querySelector(".ck-dialog")).getVisible(),s=new t.Rect(document.querySelector(".ck-fullscreen__editable-wrapper")).excludeScrollbarsAndBorders().getVisible().width-new t.Rect(document.querySelector(".ck-fullscreen__editable-wrapper")).getVisible().width;i&&n&&r&&(e.position=null,e.moveTo(i.left+i.width-r.width-28+s,n.top))}}class P extends D{_editor;constructor(e){super(e),this._editor=e}_defaultOnEnter(){const e=this._editor.ui,t=e.view;return this._editor.plugins.has("Pagination")&&this._editor.plugins.get("Pagination").isEnabled&&this.moveToFullscreen(e.getEditableElement().parentElement.querySelector(".ck-pagination-view"),"pagination-view"),this.moveToFullscreen(e.getEditableElement(),"editable"),this.moveToFullscreen(t.toolbar.element,"toolbar"),t.toolbar.switchBehavior(!0===this._editor.config.get("fullscreen.toolbar.shouldNotGroupWhenFull")?"static":"dynamic"),this.getWrapper().setAttribute("dir",t.element.getAttribute("dir")),this.getWrapper().classList.add("ck-rounded-corners"),this._editor.config.get("fullscreen.menuBar.isVisible")&&(t.menuBarView||(t.menuBarView=new o.MenuBarView(this._editor.locale),t.menuBarView.render(),e.initMenuBar(t.menuBarView)),this.moveToFullscreen(t.menuBarView.element,"menu-bar")),this.getWrapper()}}class F extends D{_editor;constructor(e){super(e),this._editor=e}_defaultOnEnter(){return this._editor.plugins.has("Pagination")&&this._editor.plugins.get("Pagination").isEnabled&&this.moveToFullscreen(this._editor.ui.getEditableElement().parentElement.querySelector(".ck-pagination-view"),"pagination-view"),this.moveToFullscreen(this._editor.ui.getEditableElement(),"editable"),this.moveToFullscreen(this._editor.ui.view.toolbar.element,"toolbar"),this._editor.ui.view.toolbar.switchBehavior(!0===this._editor.config.get("fullscreen.toolbar.shouldNotGroupWhenFull")?"static":"dynamic"),this._editor.config.get("fullscreen.menuBar.isVisible")&&this.moveToFullscreen(this._editor.ui.view.menuBarView.element,"menu-bar"),this.getWrapper()}}class S extends e.Command{_fullscreenHandler;constructor(e){super(e),this.affectsData=!1,this.isEnabled=!0,this.value=!1,this._fullscreenHandler=e instanceof w?new P(e):e instanceof C?new F(e):new D(e)}execute(){this.value?this._disableFullscreenMode():this._enableFullscreenMode()}_enableFullscreenMode(){this._fullscreenHandler.enable(),this.value=!0}_disableFullscreenMode(){this._fullscreenHandler.disable(),this.value=!1}}class V extends e.Plugin{static get pluginName(){return"FullscreenEditing"}static get isOfficialPlugin(){return!0}constructor(e){super(e),e.config.define("fullscreen.menuBar.isVisible",!0),e.config.define("fullscreen.toolbar.shouldNotGroupWhenFull",!0===e.config.get("toolbar.shouldNotGroupWhenFull"))}init(){this.editor.commands.add("toggleFullscreen",new S(this.editor));const e=this.editor.locale.t;this.editor.keystrokes.set("Ctrl+Shift+F",((e,i)=>{this.editor.execute("toggleFullscreen"),t.env.isBlink||(this.editor.editing.view.document.isFocused=!1),this.editor.editing.view.focus(),i()})),this.editor.accessibility.addKeystrokeInfos({keystrokes:[{label:e("Toggle fullscreen mode"),keystroke:"CTRL+SHIFT+F"}],categoryId:"navigation"})}}var B=i(355),O=i(109),R={attributes:{"data-cke":!0}};R.setAttributes=g(),R.insert=h().bind(null,"head"),R.domAPI=d(),R.insertStyleElement=m();a()(O.A,R);O.A&&O.A.locals&&O.A.locals;const I="toggleFullscreen";class M extends e.Plugin{static get requires(){return[V]}static get pluginName(){return"FullscreenUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor;e.ui.componentFactory.add("fullscreen",(()=>this._createButton(o.ButtonView))),e.ui.componentFactory.add("menuBar:fullscreen",(()=>this._createButton(o.MenuBarMenuListItemButtonView)))}_createButton(e){const t=this.editor,i=t.t,n=t.commands.get(I),r=new e(t.locale);return r.set({isToggleable:!0}),r.bind("isEnabled").to(n,"isEnabled"),r.bind("isOn").to(n,"value"),r instanceof o.MenuBarMenuListItemButtonView?r.set({role:"menuitemcheckbox",label:i("Fullscreen mode")}):(r.bind("icon").to(n,"value",(e=>e?B.IconFullscreenLeave:B.IconFullscreenEnter)),r.bind("label").to(n,"value",(e=>i(e?"Leave fullscreen mode":"Enter fullscreen mode"))),r.set({tooltip:!0})),this.listenTo(r,"execute",(()=>{t.execute(I),t.editing.view.focus()})),r}}class A extends e.Plugin{static get requires(){return[V,M]}static get pluginName(){return"Fullscreen"}static get isOfficialPlugin(){return!0}}})(),(window.CKEditor5=window.CKEditor5||{}).fullscreen=n})();
5
+ */(()=>{var e={21:e=>{"use strict";e.exports=function(e,t){Object.keys(t).forEach((function(i){e.setAttribute(i,t[i])}))}},51:e=>{"use strict";e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},109:(e,t,i)=>{"use strict";i.d(t,{A:()=>l});var o=i(758),n=i.n(o),r=i(935),s=i.n(r)()(n());s.push([e.id,'body.ck-fullscreen,html.ck-fullscreen{--ck-z-fullscreen:10000;overflow:hidden;--ck-z-default:calc(var(--ck-z-fullscreen) + 1);--ck-z-panel:calc(var(--ck-z-default) + 999);--ck-z-dialog:100000}body.ck-fullscreen .ckbox-reset:not(#n)>.ckbox--dialog,html.ck-fullscreen .ckbox-reset:not(#n)>.ckbox--dialog{--ckbox-z-index-root:calc(var(--ck-z-dialog) + 1)}body.ck-fullscreen .ckbox:not(#n) .ckbox-img-editor,html.ck-fullscreen .ckbox:not(#n) .ckbox-img-editor{--ckbox-z-index-preview:calc(var(--ck-z-dialog) + 1)}body.ck-fullscreen .ck-pagination-view-line,html.ck-fullscreen .ck-pagination-view-line{z-index:calc(var(--ck-z-fullscreen) + 1)}body.ck-fullscreen .page-break__label,html.ck-fullscreen .page-break__label{z-index:calc(var(--ck-z-fullscreen) + 2)}.ck.ck-fullscreen__main-wrapper{background:var(--ck-color-base-foreground);display:flex;flex-direction:column;height:100%;left:0;position:fixed;top:0;width:100%;z-index:var(--ck-z-fullscreen)}.ck.ck-fullscreen__main-wrapper .ck.ck-revision-history-ui__changes-navigation{margin-bottom:0;margin-top:0}:not(body>.ck-fullscreen__main-wrapper).ck-fullscreen__main-wrapper{position:absolute}.ck-fullscreen__menu-bar .ck.ck-menu-bar{border:none}.ck-fullscreen__main-wrapper .ck-fullscreen__editable-wrapper{--ck-fullscreen-editor-top-margin:28px;--ck-fullscreen-editor-bottom-margin:28px;display:flex;justify-content:flex-start;max-height:100%;overflow:auto}.ck-fullscreen__sidebar{flex-shrink:0;margin-left:10px;margin-top:var(--ck-fullscreen-editor-top-margin);width:300px}.ck-fullscreen__sidebar[data-ck-fullscreen=right-sidebar]{margin-right:auto}.ck-fullscreen__main-wrapper .ck-fullscreen__editable{height:100%;margin-bottom:56px;margin-left:auto;margin-top:var(--ck-fullscreen-editor-top-margin)}.ck-fullscreen__main-wrapper .ck-fullscreen__editable:after{content:"";display:block;height:var(--ck-fullscreen-editor-bottom-margin)}.ck-fullscreen__main-wrapper .ck-fullscreen__editable .ck.ck-editor__editable:not(.ck-editor__nested-editable){background:#fff;border:1px solid var(--ck-color-base-border);box-shadow:0 2px 3px rgba(0,0,0,.078);box-sizing:border-box;height:fit-content;min-height:297mm;padding:20mm 12mm;width:210.52917mm}.ck-fullscreen__main-wrapper .ck-fullscreen__editable .ck-source-editing-area{width:210.52917mm}.ck-fullscreen__left-sidebar{font-family:Helvetica,Arial,sans-serif;--ck-user-avatar-size:28px;align-self:flex-start;background-color:transparent;box-sizing:border-box;display:flex;flex-direction:column;height:100%;margin-top:0;position:sticky;top:0}.ck-fullscreen__left-sidebar .ck.ck-presence-list--collapsed{--ck-user-avatar-size:32px}.ck-fullscreen__left-sidebar>:first-child{padding-top:var(--ck-fullscreen-editor-top-margin)}.ck-fullscreen__left-sidebar .ck-presence-list__users-counter__text,.ck-fullscreen__left-sidebar .ck-user{font-size:.85em}.ck-fullscreen__left-sidebar-item{margin-bottom:var(--ck-spacing-medium);padding:var(--ck-spacing-medium)}.ck-fullscreen__left-sidebar-item:last-child{margin-bottom:0}.ck-fullscreen__left-sidebar-header{--ck-fullscreen-presence-list-header-font-size:0.875em;color:var(--ck-document-outline-item-default-color);font-size:var(--ck-fullscreen-presence-list-header-font-size);font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ck-fullscreen__left-sidebar--sticky{position:sticky;top:0}.ck-fullscreen__left-sidebar--sticky>:first-child{padding-top:0}.ck-fullscreen__presence-list{margin-top:var(--ck-spacing-medium)}.ck-fullscreen__left-sidebar-item--no-margin{margin:0}.ck-fullscreen__left-sidebar .ck.ck-document-outline{padding-left:0;padding-right:0;padding-top:0}.ck-fullscreen__document-outline-wrapper{overflow-y:auto;padding-top:0}',""]);const l=s},128:e=>{"use strict";var t={};e.exports=function(e,i){var o=function(e){if(void 0===t[e]){var i=document.querySelector(e);if(window.HTMLIFrameElement&&i instanceof window.HTMLIFrameElement)try{i=i.contentDocument.head}catch(e){i=null}t[e]=i}return t[e]}(e);if(!o)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");o.appendChild(i)}},237:e=>{"use strict";e.exports=CKEditor5.dll},311:(e,t,i)=>{e.exports=i(237)("./src/ui.js")},355:(e,t,i)=>{e.exports=i(237)("./src/icons.js")},584:(e,t,i)=>{e.exports=i(237)("./src/utils.js")},590:(e,t,i)=>{"use strict";i.d(t,{A:()=>l});var o=i(758),n=i.n(o),r=i(935),s=i.n(r)()(n());s.push([e.id,".ck.ck-editor{position:relative}.ck.ck-editor .ck-editor__top .ck-sticky-panel .ck-toolbar{z-index:var(--ck-z-panel)}.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content{border:solid var(--ck-color-base-border);border-radius:0;border-width:1px 1px 0}.ck-rounded-corners .ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content,.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content.ck-rounded-corners{border-radius:var(--ck-border-radius);border-bottom-left-radius:0;border-bottom-right-radius:0}.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content.ck-sticky-panel__content_sticky{border-bottom-width:1px}.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content .ck-menu-bar{border:0;border-bottom:1px solid var(--ck-color-base-border)}.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content .ck-toolbar{border:0}.ck.ck-editor__main>.ck-editor__editable{background:var(--ck-color-base-background);border-radius:0}.ck-rounded-corners .ck.ck-editor__main>.ck-editor__editable,.ck.ck-editor__main>.ck-editor__editable.ck-rounded-corners{border-radius:var(--ck-border-radius);border-top-left-radius:0;border-top-right-radius:0}.ck.ck-editor__main>.ck-editor__editable:not(.ck-focused){border-color:var(--ck-color-base-border)}",""]);const l=s},591:e=>{"use strict";var t=[];function i(e){for(var i=-1,o=0;o<t.length;o++)if(t[o].identifier===e){i=o;break}return i}function o(e,o){for(var r={},s=[],l=0;l<e.length;l++){var a=e[l],c=o.base?a[0]+o.base:a[0],d=r[c]||0,u="".concat(c," ").concat(d);r[c]=d+1;var h=i(u),p={css:a[1],media:a[2],sourceMap:a[3],supports:a[4],layer:a[5]};if(-1!==h)t[h].references++,t[h].updater(p);else{var g=n(p,o);o.byIndex=l,t.splice(l,0,{identifier:u,updater:g,references:1})}s.push(u)}return s}function n(e,t){var i=t.domAPI(t);i.update(e);return function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap&&t.supports===e.supports&&t.layer===e.layer)return;i.update(e=t)}else i.remove()}}e.exports=function(e,n){var r=o(e=e||[],n=n||{});return function(e){e=e||[];for(var s=0;s<r.length;s++){var l=i(r[s]);t[l].references--}for(var a=o(e,n),c=0;c<r.length;c++){var d=i(r[c]);0===t[d].references&&(t[d].updater(),t.splice(d,1))}r=a}}},639:e=>{"use strict";var t,i=(t=[],function(e,i){return t[e]=i,t.filter(Boolean).join("\n")});function o(e,t,o,n){var r;if(o)r="";else{r="",n.supports&&(r+="@supports (".concat(n.supports,") {")),n.media&&(r+="@media ".concat(n.media," {"));var s=void 0!==n.layer;s&&(r+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),r+=n.css,s&&(r+="}"),n.media&&(r+="}"),n.supports&&(r+="}")}if(e.styleSheet)e.styleSheet.cssText=i(t,r);else{var l=document.createTextNode(r),a=e.childNodes;a[t]&&e.removeChild(a[t]),a.length?e.insertBefore(l,a[t]):e.appendChild(l)}}var n={singleton:null,singletonCounter:0};e.exports=function(e){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var t=n.singletonCounter++,i=n.singleton||(n.singleton=e.insertStyleElement(e));return{update:function(e){o(i,t,!1,e)},remove:function(e){o(i,t,!0,e)}}}},758:e=>{"use strict";e.exports=function(e){return e[1]}},782:(e,t,i)=>{e.exports=i(237)("./src/core.js")},783:(e,t,i)=>{e.exports=i(237)("./src/engine.js")},935:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var i="",o=void 0!==t[5];return t[4]&&(i+="@supports (".concat(t[4],") {")),t[2]&&(i+="@media ".concat(t[2]," {")),o&&(i+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),i+=e(t),o&&(i+="}"),t[2]&&(i+="}"),t[4]&&(i+="}"),i})).join("")},t.i=function(e,i,o,n,r){"string"==typeof e&&(e=[[null,e,void 0]]);var s={};if(o)for(var l=0;l<this.length;l++){var a=this[l][0];null!=a&&(s[a]=!0)}for(var c=0;c<e.length;c++){var d=[].concat(e[c]);o&&s[d[0]]||(void 0!==r&&(void 0===d[5]||(d[1]="@layer".concat(d[5].length>0?" ".concat(d[5]):""," {").concat(d[1],"}")),d[5]=r),i&&(d[2]?(d[1]="@media ".concat(d[2]," {").concat(d[1],"}"),d[2]=i):d[2]=i),n&&(d[4]?(d[1]="@supports (".concat(d[4],") {").concat(d[1],"}"),d[4]=n):d[4]="".concat(n)),t.push(d))}},t}}},t={};function i(o){var n=t[o];if(void 0!==n)return n.exports;var r=t[o]={id:o,exports:{}};return e[o](r,r.exports,i),r.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var o in t)i.o(t,o)&&!i.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var o={};(()=>{"use strict";i.r(o),i.d(o,{Fullscreen:()=>A,FullscreenEditing:()=>V,FullscreenUI:()=>M});var e=i(782),t=i(584),n=i(311),r=i(783);class s extends n.EditorUI{view;_toolbarConfig;_elementReplacer;constructor(e,i){super(e),this.view=i,this._toolbarConfig=(0,n.normalizeToolbarConfig)(e.config.get("toolbar")),this._elementReplacer=new t.ElementReplacer,this.listenTo(e.editing.view,"scrollToTheSelection",this._handleScrollToTheSelectionWithStickyPanel.bind(this))}get element(){return this.view.element}init(e){const t=this.editor,i=this.view,o=t.editing.view,n=i.editable,r=o.document.getRoot();n.name=r.rootName,i.render();const s=n.element;this.setEditableElement(n.name,s),i.editable.bind("isFocused").to(this.focusTracker),o.attachDomRoot(s),e&&this._elementReplacer.replace(e,this.element),this._initPlaceholder(),this._initToolbar(),i.menuBarView&&this.initMenuBar(i.menuBarView),this._initDialogPluginIntegration(),this._initContextualBalloonIntegration(),this.fire("ready")}destroy(){super.destroy();const e=this.view,t=this.editor.editing.view;this._elementReplacer.restore(),t.getDomRoot(e.editable.name)&&t.detachDomRoot(e.editable.name),e.destroy()}_initToolbar(){const e=this.view;e.stickyPanel.bind("isActive").to(this.focusTracker,"isFocused"),e.stickyPanel.limiterElement=e.element,e.stickyPanel.bind("viewportTopOffset").to(this,"viewportOffset",(({top:e})=>e||0)),e.toolbar.fillFromConfig(this._toolbarConfig,this.componentFactory),this.addToolbar(e.toolbar)}_initPlaceholder(){const e=this.editor,t=e.editing.view,i=t.document.getRoot(),o=e.sourceElement;let n;const s=e.config.get("placeholder");s&&(n="string"==typeof s?s:s[this.view.editable.name]),!n&&o&&"textarea"===o.tagName.toLowerCase()&&(n=o.getAttribute("placeholder")),n&&(i.placeholder=n),(0,r.enablePlaceholder)({view:t,element:i,isDirectHost:!1,keepOnFocus:!0})}_initContextualBalloonIntegration(){if(!this.editor.plugins.has("ContextualBalloon"))return;const{stickyPanel:e}=this.view,i=this.editor.plugins.get("ContextualBalloon");i.on("getPositionOptions",(i=>{const o=i.return;if(!o||!e.isSticky||!e.element)return;const n=new t.Rect(e.element).height,r="function"==typeof o.target?o.target():o.target,s="function"==typeof o.limiter?o.limiter():o.limiter;if(r&&s&&new t.Rect(r).height>=new t.Rect(s).height-n)return;const l={...o.viewportOffsetConfig},a=(l.top||0)+n;i.return={...o,viewportOffsetConfig:{...l,top:a}}}),{priority:"low"});const o=()=>{i.visibleView&&i.updatePosition()};this.listenTo(e,"change:isSticky",o),this.listenTo(this.editor.ui,"change:viewportOffset",o)}_handleScrollToTheSelectionWithStickyPanel(e,i,o){const n=this.view.stickyPanel;if(n.isSticky){const e=new t.Rect(n.element).height;i.viewportOffset.top+=e}else{const e=()=>{this.editor.editing.view.scrollToTheSelection(o)};this.listenTo(n,"change:isSticky",e),setTimeout((()=>{this.stopListening(n,"change:isSticky",e)}),20)}}_initDialogPluginIntegration(){if(!this.editor.plugins.has("Dialog"))return;const e=this.view.stickyPanel,i=this.editor.plugins.get("Dialog");i.on("show",(()=>{const o=i.view;o.on("moveTo",((i,r)=>{if(!e.isSticky||o.wasMoved||o.isModal)return;const s=new t.Rect(e.contentPanelElement);r[1]<s.bottom+n.DialogView.defaultOffset&&(r[1]=s.bottom+n.DialogView.defaultOffset)}),{priority:"high"})}),{priority:"low"})}}var l=i(591),a=i.n(l),c=i(639),d=i.n(c),u=i(128),h=i.n(u),p=i(21),g=i.n(p),f=i(51),m=i.n(f),_=i(590),b={attributes:{"data-cke":!0}};b.setAttributes=g(),b.insert=h().bind(null,"head"),b.domAPI=d(),b.insertStyleElement=m();a()(_.A,b);_.A&&_.A.locals&&_.A.locals;class k extends n.BoxedEditorUIView{stickyPanel;toolbar;editable;constructor(e,t,i={}){super(e),this.stickyPanel=new n.StickyPanelView(e),this.toolbar=new n.ToolbarView(e,{shouldGroupWhenFull:i.shouldToolbarGroupWhenFull}),i.useMenuBar&&(this.menuBarView=new n.MenuBarView(e)),this.editable=new n.InlineEditableUIView(e,t,void 0,{label:i.label})}render(){super.render(),this.menuBarView?this.stickyPanel.content.addMany([this.menuBarView,this.toolbar]):this.stickyPanel.content.add(this.toolbar),this.top.add(this.stickyPanel),this.main.add(this.editable)}}function v(e){return function(e){return"object"==typeof e&&null!==e}(e)&&1===e.nodeType&&!function(e){if("object"!=typeof e)return!1;if(null==e)return!1;if(null===Object.getPrototypeOf(e))return!0;if("[object Object]"!==Object.prototype.toString.call(e)){const t=e[Symbol.toStringTag];return null!=t&&(!!Object.getOwnPropertyDescriptor(e,Symbol.toStringTag)?.writable&&e.toString()===`[object ${t}]`)}let t=e;for(;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}(e)}class w extends((0,e.ElementApiMixin)(e.Editor)){static get editorName(){return"ClassicEditor"}ui;constructor(i,o={}){if(!y(i)&&void 0!==o.initialData)throw new t.CKEditorError("editor-create-initial-data",null);super(o),this.config.define("menuBar.isVisible",!1),void 0===this.config.get("initialData")&&this.config.set("initialData",function(e){return y(e)?(0,t.getDataFromElement)(e):e}(i)),y(i)&&(this.sourceElement=i),this.model.document.createRoot();const n=!this.config.get("toolbar.shouldNotGroupWhenFull"),r=this.config.get("menuBar"),l=new k(this.locale,this.editing.view,{shouldToolbarGroupWhenFull:n,useMenuBar:r.isVisible,label:this.config.get("label")});this.ui=new s(this,l),(0,e.attachToForm)(this)}destroy(){return this.sourceElement&&this.updateSourceElement(),this.ui.destroy(),super.destroy()}static create(e,t={}){return new Promise((i=>{const o=new this(e,t);i(o.initPlugins().then((()=>o.ui.init(y(e)?e:null))).then((()=>o.data.init(o.config.get("initialData")))).then((()=>o.fire("ready"))).then((()=>o)))}))}}function y(e){return v(e)}class E extends n.EditorUI{view;constructor(e,t){super(e),this.view=t}init(){const e=this.editor,t=this.view,i=e.editing.view,o=t.editable,n=i.document.getRoot();o.name=n.rootName,t.render();const r=o.element;this.setEditableElement(o.name,r),t.editable.bind("isFocused").to(this.focusTracker),i.attachDomRoot(r),this._initPlaceholder(),this._initToolbar(),this.initMenuBar(this.view.menuBarView),this.fire("ready")}destroy(){super.destroy();const e=this.view,t=this.editor.editing.view;t.getDomRoot(e.editable.name)&&t.detachDomRoot(e.editable.name),e.destroy()}_initToolbar(){const e=this.editor,t=this.view;t.toolbar.fillFromConfig(e.config.get("toolbar"),this.componentFactory),this.addToolbar(t.toolbar)}_initPlaceholder(){const e=this.editor,t=e.editing.view,i=t.document.getRoot(),o=e.config.get("placeholder");if(o){const e="string"==typeof o?o:o[i.rootName];e&&(i.placeholder=e)}(0,r.enablePlaceholder)({view:t,element:i,isDirectHost:!1,keepOnFocus:!0})}}class T extends n.EditorUIView{toolbar;editable;menuBarView;constructor(e,t,i={}){super(e),this.toolbar=new n.ToolbarView(e,{shouldGroupWhenFull:i.shouldToolbarGroupWhenFull}),this.menuBarView=new n.MenuBarView(e),this.editable=new n.InlineEditableUIView(e,t,i.editableElement,{label:i.label}),this.toolbar.extendTemplate({attributes:{class:["ck-reset_all","ck-rounded-corners"],dir:e.uiLanguageDirection}}),this.menuBarView.extendTemplate({attributes:{class:["ck-reset_all","ck-rounded-corners"],dir:e.uiLanguageDirection}})}render(){super.render(),this.registerChild([this.menuBarView,this.toolbar,this.editable])}}class x extends((0,e.ElementApiMixin)(e.Editor)){static get editorName(){return"DecoupledEditor"}ui;constructor(i,o={}){if(!C(i)&&void 0!==o.initialData)throw new t.CKEditorError("editor-create-initial-data",null);super(o),void 0===this.config.get("initialData")&&this.config.set("initialData",function(e){return C(e)?(0,t.getDataFromElement)(e):e}(i)),C(i)&&(this.sourceElement=i,(0,e.secureSourceElement)(this,i)),this.model.document.createRoot();const n=!this.config.get("toolbar.shouldNotGroupWhenFull"),r=new T(this.locale,this.editing.view,{editableElement:this.sourceElement,shouldToolbarGroupWhenFull:n,label:this.config.get("label")});this.ui=new E(this,r)}destroy(){const e=this.getData();return this.ui.destroy(),super.destroy().then((()=>{this.sourceElement&&this.updateSourceElement(e)}))}static create(e,i={}){return new Promise((o=>{if(C(e)&&"TEXTAREA"===e.tagName)throw new t.CKEditorError("editor-wrong-element",null);const n=new this(e,i);o(n.initPlugins().then((()=>n.ui.init())).then((()=>n.data.init(n.config.get("initialData")))).then((()=>n.fire("ready"))).then((()=>n)))}))}}function C(e){return v(e)}class S{_placeholderMap;_wrapper=null;_document;_annotationsUIsData=null;_paginationBodyCollection=null;_sourceEditingCallback=(e,t,i)=>{this.getWrapper().querySelector(".ck-fullscreen__document-outline-header").style.display=i?"none":""};_hiddenElements=new Map;_savedAncestorsScrollPositions=new Map;_showRevisionViewerCallback=null;_closeRevisionViewerCallback=null;constructor(e){this._placeholderMap=new Map,e.plugins.has("RevisionHistory")&&(this._showRevisionViewerCallback=e.config.get("revisionHistory").showRevisionViewerCallback,this._closeRevisionViewerCallback=e.config.get("revisionHistory").closeRevisionViewerCallback),this._editor=e,this._document=this._editor.sourceElement?this._editor.sourceElement.ownerDocument:t.global.document,this._editor.config.define("fullscreen.container",this._document.body),e.on("destroy",(()=>{this._wrapper&&this.destroy()}))}moveToFullscreen(e,i){const o=(0,t.createElement)(this._document,"div");o.setAttribute("data-ck-fullscreen-placeholder",i),e.replaceWith(o),this.getWrapper().querySelector(`[data-ck-fullscreen="${i}"]`).append(e),this._placeholderMap.set(i,{placeholderElement:o,movedElement:e})}restoreMovedElementLocation(e){if(!this._placeholderMap.has(e))return;const{placeholderElement:t,movedElement:i}=this._placeholderMap.get(e);t.replaceWith(i),t.remove(),this._placeholderMap.delete(e),0===this._placeholderMap.size&&this._destroyContainer()}getWrapper(){return this._wrapper||(this._wrapper=(0,t.createElement)(this._document,"div",{class:"ck ck-fullscreen__main-wrapper"}),this._wrapper.innerHTML='\n\t\t\t\t<div class="ck ck-fullscreen__top-wrapper ck-reset_all">\n\t\t\t\t\t<div class="ck ck-fullscreen__menu-bar" data-ck-fullscreen="menu-bar"></div>\n\t\t\t\t\t<div class="ck ck-fullscreen__toolbar" data-ck-fullscreen="toolbar"></div>\n\t\t\t\t</div>\n\t\t\t\t<div class="ck ck-fullscreen__editable-wrapper">\n\t\t\t\t\t<div class="ck ck-fullscreen__sidebar ck-fullscreen__left-sidebar" data-ck-fullscreen="left-sidebar">\n\t\t\t\t\t\t<div class="ck ck-fullscreen__left-sidebar--sticky" data-ck-fullscreen="left-sidebar-sticky"></div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class="ck ck-fullscreen__editable" data-ck-fullscreen="editable">\n\t\t\t\t\t\t<div class="ck ck-fullscreen__pagination-view" data-ck-fullscreen="pagination-view"></div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class="ck ck-fullscreen__sidebar ck-fullscreen__right-sidebar" data-ck-fullscreen="right-sidebar"></div>\n\t\t\t\t</div>\n\t\t\t\t<div class="ck ck-fullscreen__bottom-wrapper">\n\t\t\t\t\t<div class="ck ck-fullscreen__body-wrapper" data-ck-fullscreen="body-wrapper"></div>\n\t\t\t\t</div>\n\t\t\t',this._editor.config.get("fullscreen.container").appendChild(this._wrapper)),this._wrapper}enable(){if(this._saveAncestorsScrollPositions(this._editor.ui.getEditableElement()),this._defaultOnEnter(),this._editor.config.get("fullscreen.container")===this._document.body&&(this._document.body.classList.add("ck-fullscreen"),this._document.body.parentElement.classList.add("ck-fullscreen")),this._editor.plugins.has("Dialog")&&this._registerFullscreenDialogPositionAdjustments(),this._editor.plugins.has("PresenceListUI")&&this._generatePresenceListContainer(),this._editor.plugins.has("DocumentOutlineUI")&&this._generateDocumentOutlineContainer(),this._editor.plugins.has("Pagination")&&this._editor.plugins.get("Pagination").isEnabled){const e=this._editor.plugins.get("PaginationRenderer");e.setupScrollableAncestor(),this._paginationBodyCollection=new n.BodyCollection(this._editor.locale),this._paginationBodyCollection.attachToDom(),e.linesRepository.setViewCollection(this._paginationBodyCollection),this._editor.once("destroy",(()=>{this._paginationBodyCollection.detachFromDom()})),this.moveToFullscreen(this._paginationBodyCollection.bodyCollectionContainer,"body-wrapper")}this._editor.plugins.has("AnnotationsUIs")&&this._overrideAnnotationsUIs(),this._editor.plugins.has("RevisionHistory")&&(this._editor.plugins.get("RevisionHistory").isRevisionViewerOpen&&this._editor.config.get("revisionHistory.closeRevisionViewerCallback")(),this._overrideRevisionHistoryCallbacks()),this._editor.plugins.has("SourceEditing")&&this._editor.plugins.has("DocumentOutlineUI")&&this._editor.plugins.get("SourceEditing").on("change:isSourceEditingMode",this._sourceEditingCallback);for(const e of this._editor.config.get("fullscreen.container").children)e===this._wrapper||e.classList.contains("ck-body-wrapper")||e.classList.contains("ckbox-wrapper")||"none"===e.style.display||(this._hiddenElements.set(e,e.style.display),e.style.display="none");this._editor.config.get("fullscreen.onEnterCallback")&&this._editor.config.get("fullscreen.onEnterCallback")(this.getWrapper())}disable(){this._editor.config.get("fullscreen.onLeaveCallback")&&this._editor.config.get("fullscreen.onLeaveCallback")(this.getWrapper()),this._document.body.classList.remove("ck-fullscreen"),this._document.body.parentElement.classList.remove("ck-fullscreen"),this._editor.plugins.has("DocumentOutlineUI")&&this._restoreDocumentOutlineDefaultContainer(),this._annotationsUIsData&&this._restoreAnnotationsUIs(),this._editor.plugins.has("RevisionHistory")&&this._restoreRevisionHistoryCallbacks(),this._editor.plugins.has("SourceEditing")&&this._editor.plugins.has("DocumentOutlineUI")&&this._editor.plugins.get("SourceEditing").off("change:isSourceEditingMode",this._sourceEditingCallback);for(const e of this._placeholderMap.keys())this.restoreMovedElementLocation(e);this._editor.ui.view.toolbar.switchBehavior(!0===this._editor.config.get("toolbar.shouldNotGroupWhenFull")?"static":"dynamic"),0===this._placeholderMap.size&&this._destroyContainer();for(const[e,t]of this._savedAncestorsScrollPositions)e.scrollTo(t.scrollLeft,t.scrollTop);if(this._savedAncestorsScrollPositions.clear(),this._editor.plugins.has("Pagination")&&this._editor.plugins.get("Pagination").isEnabled){const e=this._editor.plugins.get("PaginationRenderer");e.setupScrollableAncestor(),e.linesRepository.setViewCollection(this._editor.ui.view.body),this._paginationBodyCollection.detachFromDom(),this._paginationBodyCollection?.destroy()}this._editor.plugins.has("Dialog")&&this._unregisterFullscreenDialogPositionAdjustments()}destroy(){for(const{placeholderElement:e,movedElement:t}of this._placeholderMap.values())e.remove(),t.remove();this._destroyContainer(),this._document.body.classList.remove("ck-fullscreen"),this._document.body.parentElement.classList.remove("ck-fullscreen")}_defaultOnEnter(){return this.getWrapper()}_destroyContainer(){if(this._wrapper){this._wrapper.remove(),this._wrapper=null;for(const[e,t]of this._hiddenElements)e.style.display=t;this._hiddenElements.clear()}}_generatePresenceListContainer(){const e=(0,t.createElement)(document,"div",{class:"ck ck-fullscreen__left-sidebar-item"});e.innerHTML='\n\t\t\t<div class="ck ck-fullscreen__left-sidebar-header">Connected users</div>\n\t\t\t<div class="ck ck-fullscreen__presence-list" data-ck-fullscreen="presence-list"></div>\n\t\t',document.querySelector('[data-ck-fullscreen="left-sidebar-sticky"]').appendChild(e);const i=this._editor.plugins.get("PresenceListUI");this.moveToFullscreen(i.view.element,"presence-list")}_generateDocumentOutlineContainer(){const e=(0,t.createElement)(document,"div",{class:"ck-fullscreen__left-sidebar-item ck-fullscreen__left-sidebar-item--no-margin"});e.innerHTML='\n\t\t\t<div class="ck ck-fullscreen__left-sidebar-header ck-fullscreen__document-outline-header">\n\t\t\t\tDocument outline\n\t\t\t</div>\n\t\t';const i=(0,t.createElement)(document,"div",{class:"ck ck-fullscreen__left-sidebar-item ck-fullscreen__document-outline-wrapper"});i.innerHTML='\n\t\t\t<div class="ck ck-fullscreen__document-outline" data-ck-fullscreen="document-outline"></div>\n\t\t',document.querySelector('[data-ck-fullscreen="left-sidebar"]').appendChild(i),document.querySelector('[data-ck-fullscreen="left-sidebar-sticky"]').appendChild(e);const o=this._editor.plugins.get("DocumentOutlineUI");o.view.documentOutlineContainer=document.querySelector('[data-ck-fullscreen="left-sidebar"]'),this.moveToFullscreen(o.view.element,"document-outline")}_restoreDocumentOutlineDefaultContainer(){const e=this._editor.plugins.get("DocumentOutlineUI");e.view.documentOutlineContainer=e.view.element}_overrideAnnotationsUIs(){const e=this._editor.plugins.get("AnnotationsUIs");this._annotationsUIsData=new Map(e.uisData);const t=this._editor.plugins.get("Sidebar");t.container||t.setContainer(this.getWrapper().querySelector('[data-ck-fullscreen="right-sidebar"]'));const i=new Map;for(const[t,o]of[...this._annotationsUIsData])o.filter!==e.defaultFilter&&i.set(t,o.filter);e.deactivateAll(),i.has("wideSidebar")?e.activate("wideSidebar",i.get("wideSidebar")):i.size?e.activate("wideSidebar",(e=>[...i.values()].some((t=>t(e))))):e.switchTo("wideSidebar"),this.moveToFullscreen(t.container.firstElementChild,"right-sidebar")}_restoreAnnotationsUIs(){const e=this._editor.plugins.get("AnnotationsUIs");e.deactivateAll();for(const[t,i]of[...this._annotationsUIsData])e.activate(t,i.filter);this._annotationsUIsData=null}_overrideRevisionHistoryCallbacks(){this._editor.config.set("revisionHistory.showRevisionViewerCallback",(async()=>{const e=await this._showRevisionViewerCallback();return this._editor.plugins.has("DocumentOutlineUI")&&(this.getWrapper().querySelector(".ck-fullscreen__document-outline-header").style.display="none"),this.restoreMovedElementLocation("editable"),this.restoreMovedElementLocation("toolbar"),this.restoreMovedElementLocation("right-sidebar"),this._annotationsUIsData&&this._restoreAnnotationsUIs(),this._editor.ui.view.menuBarView&&this._editor.ui.view.menuBarView.disable(),this.moveToFullscreen(e.ui.getEditableElement(),"editable"),this.moveToFullscreen(e.ui.view.toolbar.element,"toolbar"),this.moveToFullscreen(this._editor.config.get("revisionHistory.viewerSidebarContainer"),"right-sidebar"),e})),this._editor.config.set("revisionHistory.closeRevisionViewerCallback",(async()=>{this.restoreMovedElementLocation("toolbar"),this.restoreMovedElementLocation("editable"),this.restoreMovedElementLocation("right-sidebar"),this._editor.plugins.has("DocumentOutlineUI")&&(this.getWrapper().querySelector(".ck-fullscreen__document-outline-header").style.display=""),this.moveToFullscreen(this._editor.ui.getEditableElement(),"editable"),this.moveToFullscreen(this._editor.ui.view.toolbar.element,"toolbar"),await this._closeRevisionViewerCallback(),this._editor.plugins.has("AnnotationsUIs")&&this._overrideAnnotationsUIs(),this._editor.ui.view.menuBarView&&this._editor.ui.view.menuBarView.enable()}))}_restoreRevisionHistoryCallbacks(){this._editor.config.set("revisionHistory.showRevisionViewerCallback",(async()=>this._showRevisionViewerCallback())),this._editor.config.set("revisionHistory.closeRevisionViewerCallback",(async()=>this._closeRevisionViewerCallback()))}_registerFullscreenDialogPositionAdjustments(){const e=this._editor.plugins.get("Dialog");this._setNewDialogPosition(),e.on("change:isOpen",this.updateDialogPositionCallback,{priority:"highest"})}_unregisterFullscreenDialogPositionAdjustments(){const e=this._editor.plugins.get("Dialog"),t=e.view;t&&null===t.position&&(t.position=n.DialogViewPosition.EDITOR_TOP_SIDE),t&&t.updatePosition(),e.off("change:isOpen",this.updateDialogPositionCallback)}updateDialogPositionCallback=this._updateDialogPosition.bind(this);_updateDialogPosition(e,t,i){i&&this._setNewDialogPosition()}_setNewDialogPosition(){const e=this._editor.plugins.get("Dialog").view;if(!e||e.position!==n.DialogViewPosition.EDITOR_TOP_SIDE)return;const i=new t.Rect(this._wrapper).getVisible(),o=new t.Rect(document.querySelector(".ck-fullscreen__editable")).getVisible(),r=new t.Rect(e.element.querySelector(".ck-dialog")).getVisible(),s=new t.Rect(document.querySelector(".ck-fullscreen__editable-wrapper")).excludeScrollbarsAndBorders().getVisible().width-new t.Rect(document.querySelector(".ck-fullscreen__editable-wrapper")).getVisible().width;i&&o&&r&&(e.position=null,e.moveTo(i.left+i.width-r.width-28+s,o.top))}_saveAncestorsScrollPositions(e){let i=e.parentElement;if(i)for(;i;){const e=i.style.overflowY||t.global.window.getComputedStyle(i).overflowY,o=i.style.overflowX||t.global.window.getComputedStyle(i).overflowX;("auto"===e||"scroll"===e||"auto"===o||"scroll"===o||"HTML"===i.tagName)&&this._savedAncestorsScrollPositions.set(i,{scrollLeft:i.scrollLeft,scrollTop:i.scrollTop}),i=i.parentElement}}}class P extends S{_editor;constructor(e){super(e),this._editor=e}_defaultOnEnter(){const e=this._editor.ui,t=e.view;return this._editor.plugins.has("Pagination")&&this._editor.plugins.get("Pagination").isEnabled&&this.moveToFullscreen(e.getEditableElement().parentElement.querySelector(".ck-pagination-view"),"pagination-view"),this.moveToFullscreen(e.getEditableElement(),"editable"),this.moveToFullscreen(t.toolbar.element,"toolbar"),t.toolbar.switchBehavior(!0===this._editor.config.get("fullscreen.toolbar.shouldNotGroupWhenFull")?"static":"dynamic"),this.getWrapper().setAttribute("dir",t.element.getAttribute("dir")),this.getWrapper().classList.add("ck-rounded-corners"),this._editor.config.get("fullscreen.menuBar.isVisible")&&(t.menuBarView||(t.menuBarView=new n.MenuBarView(this._editor.locale),t.menuBarView.render(),e.initMenuBar(t.menuBarView)),this.moveToFullscreen(t.menuBarView.element,"menu-bar")),this.getWrapper()}}class D extends S{_editor;constructor(e){super(e),this._editor=e}_defaultOnEnter(){return this._editor.plugins.has("Pagination")&&this._editor.plugins.get("Pagination").isEnabled&&this.moveToFullscreen(this._editor.ui.getEditableElement().parentElement.querySelector(".ck-pagination-view"),"pagination-view"),this.moveToFullscreen(this._editor.ui.getEditableElement(),"editable"),this.moveToFullscreen(this._editor.ui.view.toolbar.element,"toolbar"),this._editor.ui.view.toolbar.switchBehavior(!0===this._editor.config.get("fullscreen.toolbar.shouldNotGroupWhenFull")?"static":"dynamic"),this._editor.config.get("fullscreen.menuBar.isVisible")&&this.moveToFullscreen(this._editor.ui.view.menuBarView.element,"menu-bar"),this.getWrapper()}}class F extends e.Command{_fullscreenHandler;constructor(e){super(e),this.affectsData=!1,this.isEnabled=!0,this.value=!1,this._fullscreenHandler=e instanceof w?new P(e):e instanceof x?new D(e):new S(e)}execute(){this.value?this._disableFullscreenMode():this._enableFullscreenMode()}_enableFullscreenMode(){this._fullscreenHandler.enable(),this.value=!0}_disableFullscreenMode(){this._fullscreenHandler.disable(),this.value=!1}}class V extends e.Plugin{static get pluginName(){return"FullscreenEditing"}static get isOfficialPlugin(){return!0}constructor(e){super(e),e.config.define("fullscreen.menuBar.isVisible",!0),e.config.define("fullscreen.toolbar.shouldNotGroupWhenFull",!0===e.config.get("toolbar.shouldNotGroupWhenFull"))}init(){this.editor.commands.add("toggleFullscreen",new F(this.editor));const e=this.editor.locale.t;this.editor.keystrokes.set("Ctrl+Shift+F",((e,i)=>{this.editor.execute("toggleFullscreen"),t.env.isBlink||(this.editor.editing.view.document.isFocused=!1),this.editor.editing.view.focus(),this.editor.editing.view.scrollToTheSelection(),i()})),this.editor.accessibility.addKeystrokeInfos({keystrokes:[{label:e("Toggle fullscreen mode"),keystroke:"CTRL+SHIFT+F"}],categoryId:"navigation"})}}var B=i(355),O=i(109),R={attributes:{"data-cke":!0}};R.setAttributes=g(),R.insert=h().bind(null,"head"),R.domAPI=d(),R.insertStyleElement=m();a()(O.A,R);O.A&&O.A.locals&&O.A.locals;const I="toggleFullscreen";class M extends e.Plugin{static get requires(){return[V]}static get pluginName(){return"FullscreenUI"}static get isOfficialPlugin(){return!0}init(){const e=this.editor;e.ui.componentFactory.add("fullscreen",(()=>this._createButton(n.ButtonView))),e.ui.componentFactory.add("menuBar:fullscreen",(()=>this._createButton(n.MenuBarMenuListItemButtonView)))}_createButton(e){const t=this.editor,i=t.t,o=t.commands.get(I),r=new e(t.locale);return r.set({isToggleable:!0}),r.bind("isEnabled").to(o,"isEnabled"),r.bind("isOn").to(o,"value"),r instanceof n.MenuBarMenuListItemButtonView?r.set({role:"menuitemcheckbox",label:i("Fullscreen mode")}):(r.bind("icon").to(o,"value",(e=>e?B.IconFullscreenLeave:B.IconFullscreenEnter)),r.bind("label").to(o,"value",(e=>i(e?"Leave fullscreen mode":"Enter fullscreen mode"))),r.set({tooltip:!0})),this.listenTo(r,"execute",(()=>{t.execute(I),t.editing.view.focus(),t.editing.view.scrollToTheSelection()})),r}}class A extends e.Plugin{static get requires(){return[V,M]}static get pluginName(){return"Fullscreen"}static get isOfficialPlugin(){return!0}}})(),(window.CKEditor5=window.CKEditor5||{}).fullscreen=o})();
package/dist/index.js CHANGED
@@ -40,6 +40,9 @@ const DIALOG_OFFSET = 28;
40
40
  * It is used to restore their previous visibility when leaving the fullscreen mode and avoid showing elements
41
41
  * that were hidden before entering the fullscreen mode.
42
42
  */ _hiddenElements = new Map();
43
+ /**
44
+ * A map matching the ancestors of the editable element with their scroll positions before entering fullscreen mode.
45
+ */ _savedAncestorsScrollPositions = new Map();
43
46
  /**
44
47
  * A callback that shows the revision viewer, stored to restore the original one after exiting the fullscreen mode.
45
48
  */ _showRevisionViewerCallback = null;
@@ -122,6 +125,7 @@ const DIALOG_OFFSET = 28;
122
125
  /**
123
126
  * Enables the fullscreen mode. It executes the editor-specific enable handler and then the configured callback.
124
127
  */ enable() {
128
+ this._saveAncestorsScrollPositions(this._editor.ui.getEditableElement());
125
129
  this._defaultOnEnter();
126
130
  // Block scroll if the fullscreen container is the body element. Otherwise the document has to stay scrollable.
127
131
  if (this._editor.config.get('fullscreen.container') === this._document.body) {
@@ -208,6 +212,13 @@ const DIALOG_OFFSET = 28;
208
212
  if (this._placeholderMap.size === 0) {
209
213
  this._destroyContainer();
210
214
  }
215
+ // Restore scroll positions of all ancestors. It may include the closest editable wrapper causing the editor to change
216
+ // the visible content, which is not what we want. Thus, after executing the command, we use
217
+ // `editor.editing.view.scrollToTheSelection()` to scroll the editor viewport to the current selection.
218
+ for (const [ancestor, value] of this._savedAncestorsScrollPositions){
219
+ ancestor.scrollTo(value.scrollLeft, value.scrollTop);
220
+ }
221
+ this._savedAncestorsScrollPositions.clear();
211
222
  // Pagination has to be restored after leaving fullscreen mode to ensure proper rendering.
212
223
  // Code coverage is provided in the commercial package repository as integration unit tests.
213
224
  /* istanbul ignore next -- @preserve */ if (this._editor.plugins.has('Pagination') && this._editor.plugins.get('Pagination').isEnabled) {
@@ -459,6 +470,31 @@ const DIALOG_OFFSET = 28;
459
470
  dialogView.moveTo(fullscreenViewContainerRect.left + fullscreenViewContainerRect.width - dialogRect.width - DIALOG_OFFSET + scrollOffset, editorContainerRect.top);
460
471
  }
461
472
  }
473
+ /**
474
+ * Saves the scroll positions of all ancestors of the given element.
475
+ */ _saveAncestorsScrollPositions(domElement) {
476
+ let element = domElement.parentElement;
477
+ if (!element) {
478
+ return;
479
+ }
480
+ while(element){
481
+ const overflowY = element.style.overflowY || global.window.getComputedStyle(element).overflowY;
482
+ const overflowX = element.style.overflowX || global.window.getComputedStyle(element).overflowX;
483
+ // Out of 5 possible keyword values: visible, hidden, clip, scroll and auto - only the last two allow for scrolling.
484
+ if (overflowY === 'auto' || overflowY === 'scroll' || overflowX === 'auto' || overflowX === 'scroll') {
485
+ this._savedAncestorsScrollPositions.set(element, {
486
+ scrollLeft: element.scrollLeft,
487
+ scrollTop: element.scrollTop
488
+ });
489
+ } else if (element.tagName === 'HTML') {
490
+ this._savedAncestorsScrollPositions.set(element, {
491
+ scrollLeft: element.scrollLeft,
492
+ scrollTop: element.scrollTop
493
+ });
494
+ }
495
+ element = element.parentElement;
496
+ }
497
+ }
462
498
  }
463
499
 
464
500
  /**
@@ -621,6 +657,7 @@ const DIALOG_OFFSET = 28;
621
657
  this.editor.editing.view.document.isFocused = false;
622
658
  }
623
659
  this.editor.editing.view.focus();
660
+ this.editor.editing.view.scrollToTheSelection();
624
661
  cancel();
625
662
  });
626
663
  // Add the information about the keystroke to the accessibility database.
@@ -691,6 +728,7 @@ const COMMAND_NAME = 'toggleFullscreen';
691
728
  this.listenTo(view, 'execute', ()=>{
692
729
  editor.execute(COMMAND_NAME);
693
730
  editor.editing.view.focus();
731
+ editor.editing.view.scrollToTheSelection();
694
732
  });
695
733
  return view;
696
734
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["index.js","../src/handlers/abstracteditorhandler.ts","../src/handlers/classiceditorhandler.ts","../src/handlers/decouplededitorhandler.ts","../src/fullscreencommand.ts","../src/fullscreenediting.ts","../src/fullscreenui.ts","../src/fullscreen.ts"],"names":["DIALOG_OFFSET","AbstractEditorHandler","_wrapper","_annotationsUIsData","_paginationBodyCollection","_sourceEditingCallback","_evt","_name","value","getWrapper","querySelector","style","display","_hiddenElements","Map","_showRevisionViewerCallback","_closeRevisionViewerCallback","constructor","editor","_placeholderMap","plugins","has","config","get","showRevisionViewerCallback","closeRevisionViewerCallback","_editor","_document","sourceElement","ownerDocument","global","document","define","body","on","destroy","moveToFullscreen","elementToMove","placeholderName","placeholderElement","createElement","setAttribute","replaceWith","append","set","movedElement","restoreMovedElementLocation","remove","delete","size","_destroyContainer","class","innerHTML","appendChild","_defaultOnEnter","classList","add","parentElement","_registerFullscreenDialogPositionAdjustments","_generatePresenceListContainer","_generateDocumentOutlineContainer","isEnabled","paginationRenderer","setupScrollableAncestor","BodyCollection","locale","attachToDom","linesRepository","setViewCollection","once","detachFromDom","bodyCollectionContainer","_overrideAnnotationsUIs","isRevisionViewerOpen","_overrideRevisionHistoryCallbacks","element","children","contains","_restoreDocumentOutlineDefaultContainer","_restoreAnnotationsUIs","_restoreRevisionHistoryCallbacks","off","keys","ui","view","toolbar","switchBehavior","_unregisterFullscreenDialogPositionAdjustments","values","displayValue","clear","presenceListElement","presenceListUI","documentOutlineHeaderElement","documentOutlineBodyWrapper","documentOutlineUI","documentOutlineContainer","annotationsUIs","uisData","sidebarPlugin","container","setContainer","annotationsFilters","uiName","data","filter","defaultFilter","deactivateAll","activate","annotation","some","switchTo","firstElementChild","revisionViewerEditor","menuBarView","disable","getEditableElement","enable","dialog","_setNewDialogPosition","updateDialogPositionCallback","priority","dialogView","position","DialogViewPosition","EDITOR_TOP_SIDE","updatePosition","_updateDialogPosition","bind","isOpen","fullscreenViewContainerRect","Rect","getVisible","editorContainerRect","dialogRect","scrollOffset","excludeScrollbarsAndBorders","width","moveTo","left","top","ClassicEditorHandler","editorUI","editorUIView","getAttribute","MenuBarView","render","initMenuBar","DecoupledEditorHandler","FullscreenCommand","Command","affectsData","ClassicEditor","_fullscreenHandler","DecoupledEditor","_disableFullscreenMode","_enableFullscreenMode","FullscreenEditing","Plugin","pluginName","isOfficialPlugin","commands","t","keystrokes","evt","cancel","execute","env","isBlink","editing","isFocused","focus","accessibility","addKeystrokeInfos","label","keystroke","categoryId","COMMAND_NAME","FullscreenUI","requires","componentFactory","_createButton","ButtonView","MenuBarMenuListItemButtonView","ButtonClass","command","isToggleable","to","role","IconFullscreenLeave","IconFullscreenEnter","tooltip","listenTo","Fullscreen"],"mappings":"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","file":"index.js.map","sourcesContent":["import { Command, Plugin } from '@ckeditor/ckeditor5-core/dist/index.js';\nimport { global, createElement, Rect, env } from '@ckeditor/ckeditor5-utils/dist/index.js';\nimport { ClassicEditor } from '@ckeditor/ckeditor5-editor-classic/dist/index.js';\nimport { DecoupledEditor } from '@ckeditor/ckeditor5-editor-decoupled/dist/index.js';\nimport { BodyCollection, DialogViewPosition, MenuBarView, ButtonView, MenuBarMenuListItemButtonView } from '@ckeditor/ckeditor5-ui/dist/index.js';\nimport { IconFullscreenLeave, IconFullscreenEnter } from '@ckeditor/ckeditor5-icons/dist/index.js';\n\nconst DIALOG_OFFSET = 28;\n/**\n * The abstract editor type handler. It should be extended by the particular editor type handler.\n */ class AbstractEditorHandler {\n /**\n\t * Maps placeholder names to placeholder elements and moved elements.\n\t */ _placeholderMap;\n /**\n\t * The wrapper element that holds the fullscreen mode layout.\n\t */ _wrapper = null;\n /**\n\t * The document object in which the editor is located.\n\t */ _document;\n /**\n\t * Data of the annotations UIs that were active before entering the fullscreen mode.\n\t */ _annotationsUIsData = null;\n /**\n\t * The pagination body collection that is used in the fullscreen mode.\n\t * If we don't move pagination lines to the fullscreen container, they won't be visible.\n\t */ _paginationBodyCollection = null;\n /**\n\t * A callback that hides the document outline header when the source editing mode is enabled.\n\t * Document outline element itself is hidden by source editing plugin.\n\t */ /* istanbul ignore next -- @preserve */ _sourceEditingCallback = (_evt, _name, value)=>{\n this.getWrapper().querySelector('.ck-fullscreen__document-outline-header').style.display = value ? 'none' : '';\n };\n /**\n\t * A map of elements that were hidden when entering the fullscreen mode.\n\t * It is used to restore their previous visibility when leaving the fullscreen mode and avoid showing elements\n\t * that were hidden before entering the fullscreen mode.\n\t */ _hiddenElements = new Map();\n /**\n\t * A callback that shows the revision viewer, stored to restore the original one after exiting the fullscreen mode.\n\t */ _showRevisionViewerCallback = null;\n /**\n\t * A callback that closes the revision viewer, stored to restore the original one after exiting the fullscreen mode.\n\t */ _closeRevisionViewerCallback = null;\n /**\n\t * @inheritDoc\n\t */ constructor(editor){\n this._placeholderMap = new Map();\n if (editor.plugins.has('RevisionHistory')) {\n this._showRevisionViewerCallback = editor.config.get('revisionHistory').showRevisionViewerCallback;\n this._closeRevisionViewerCallback = editor.config.get('revisionHistory').closeRevisionViewerCallback;\n }\n this._editor = editor;\n this._document = this._editor.sourceElement ? this._editor.sourceElement.ownerDocument : global.document;\n this._editor.config.define('fullscreen.container', this._document.body);\n editor.on('destroy', ()=>{\n if (this._wrapper) {\n this.destroy();\n }\n });\n }\n /**\n\t * Moves the given element to the fullscreen mode container, leaving a placeholder in its place.\n\t */ moveToFullscreen(elementToMove, placeholderName) {\n const placeholderElement = createElement(this._document, 'div');\n placeholderElement.setAttribute('data-ck-fullscreen-placeholder', placeholderName);\n elementToMove.replaceWith(placeholderElement);\n this.getWrapper().querySelector(`[data-ck-fullscreen=\"${placeholderName}\"]`).append(elementToMove);\n this._placeholderMap.set(placeholderName, {\n placeholderElement,\n movedElement: elementToMove\n });\n }\n /**\n\t * Returns a single moved element to its original place.\n\t */ restoreMovedElementLocation(placeholderName) {\n if (!this._placeholderMap.has(placeholderName)) {\n return;\n }\n const { placeholderElement, movedElement } = this._placeholderMap.get(placeholderName);\n placeholderElement.replaceWith(movedElement);\n placeholderElement.remove();\n this._placeholderMap.delete(placeholderName);\n if (this._placeholderMap.size === 0) {\n this._destroyContainer();\n }\n }\n /**\n\t * Returns the fullscreen mode container element.\n\t */ getWrapper() {\n if (!this._wrapper) {\n this._wrapper = createElement(this._document, 'div', {\n class: 'ck ck-fullscreen__main-wrapper'\n });\n // For now, the container is generated in a very straightforward way. If necessary, it may be rewritten using our UI lib.\n this._wrapper.innerHTML = `\n\t\t\t\t<div class=\"ck ck-fullscreen__top-wrapper ck-reset_all\">\n\t\t\t\t\t<div class=\"ck ck-fullscreen__menu-bar\" data-ck-fullscreen=\"menu-bar\"></div>\n\t\t\t\t\t<div class=\"ck ck-fullscreen__toolbar\" data-ck-fullscreen=\"toolbar\"></div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"ck ck-fullscreen__editable-wrapper\">\n\t\t\t\t\t<div class=\"ck ck-fullscreen__sidebar ck-fullscreen__left-sidebar\" data-ck-fullscreen=\"left-sidebar\">\n\t\t\t\t\t\t<div class=\"ck ck-fullscreen__left-sidebar--sticky\" data-ck-fullscreen=\"left-sidebar-sticky\"></div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"ck ck-fullscreen__editable\" data-ck-fullscreen=\"editable\">\n\t\t\t\t\t\t<div class=\"ck ck-fullscreen__pagination-view\" data-ck-fullscreen=\"pagination-view\"></div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"ck ck-fullscreen__sidebar ck-fullscreen__right-sidebar\" data-ck-fullscreen=\"right-sidebar\"></div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"ck ck-fullscreen__bottom-wrapper\">\n\t\t\t\t\t<div class=\"ck ck-fullscreen__body-wrapper\" data-ck-fullscreen=\"body-wrapper\"></div>\n\t\t\t\t</div>\n\t\t\t`;\n this._editor.config.get('fullscreen.container').appendChild(this._wrapper);\n }\n return this._wrapper;\n }\n /**\n\t * Enables the fullscreen mode. It executes the editor-specific enable handler and then the configured callback.\n\t */ enable() {\n this._defaultOnEnter();\n // Block scroll if the fullscreen container is the body element. Otherwise the document has to stay scrollable.\n if (this._editor.config.get('fullscreen.container') === this._document.body) {\n this._document.body.classList.add('ck-fullscreen');\n this._document.body.parentElement.classList.add('ck-fullscreen');\n }\n if (this._editor.plugins.has('Dialog')) {\n this._registerFullscreenDialogPositionAdjustments();\n }\n // Code coverage is provided in the commercial package repository as integration unit tests.\n /* istanbul ignore if -- @preserve */ if (this._editor.plugins.has('PresenceListUI')) {\n this._generatePresenceListContainer();\n }\n // Code coverage is provided in the commercial package repository as integration unit tests.\n /* istanbul ignore if -- @preserve */ if (this._editor.plugins.has('DocumentOutlineUI')) {\n this._generateDocumentOutlineContainer();\n }\n // Code coverage is provided in the commercial package repository as integration unit tests.\n /* istanbul ignore next -- @preserve */ if (this._editor.plugins.has('Pagination') && this._editor.plugins.get('Pagination').isEnabled) {\n const paginationRenderer = this._editor.plugins.get('PaginationRenderer');\n paginationRenderer.setupScrollableAncestor();\n this._paginationBodyCollection = new BodyCollection(this._editor.locale);\n this._paginationBodyCollection.attachToDom();\n paginationRenderer.linesRepository.setViewCollection(this._paginationBodyCollection);\n this._editor.once('destroy', ()=>{\n this._paginationBodyCollection.detachFromDom();\n });\n this.moveToFullscreen(this._paginationBodyCollection.bodyCollectionContainer, 'body-wrapper');\n }\n // Code coverage is provided in the commercial package repository as integration unit tests.\n /* istanbul ignore if -- @preserve */ if (this._editor.plugins.has('AnnotationsUIs')) {\n this._overrideAnnotationsUIs();\n }\n if (this._editor.plugins.has('RevisionHistory')) {\n // Code coverage is provided in the commercial package repository as integration unit tests.\n /* istanbul ignore if -- @preserve */ if (this._editor.plugins.get('RevisionHistory').isRevisionViewerOpen) {\n // Keep in mind that closing the revision history viewer is an asynchronous operation.\n this._editor.config.get('revisionHistory.closeRevisionViewerCallback')();\n }\n this._overrideRevisionHistoryCallbacks();\n }\n if (this._editor.plugins.has('SourceEditing') && this._editor.plugins.has('DocumentOutlineUI')) {\n this._editor.plugins.get('SourceEditing').on('change:isSourceEditingMode', this._sourceEditingCallback);\n }\n // Hide all other elements in the container to ensure they don't create an empty unscrollable space.\n for (const element of this._editor.config.get('fullscreen.container').children){\n // Do not hide body wrapper and ckbox wrapper to keep dialogs, balloons etc visible.\n if (element !== this._wrapper && !element.classList.contains('ck-body-wrapper') && !element.classList.contains('ckbox-wrapper') && // Already hidden elements are not hidden again to avoid accidentally showing them after leaving fullscreen.\n element.style.display !== 'none') {\n this._hiddenElements.set(element, element.style.display);\n element.style.display = 'none';\n }\n }\n if (this._editor.config.get('fullscreen.onEnterCallback')) {\n this._editor.config.get('fullscreen.onEnterCallback')(this.getWrapper());\n }\n }\n /**\n\t * Disables the fullscreen mode by restoring all moved elements and destroying the fullscreen container.\n\t */ disable() {\n if (this._editor.config.get('fullscreen.onLeaveCallback')) {\n this._editor.config.get('fullscreen.onLeaveCallback')(this.getWrapper());\n }\n this._document.body.classList.remove('ck-fullscreen');\n this._document.body.parentElement.classList.remove('ck-fullscreen');\n // Code coverage is provided in the commercial package repository as integration unit tests.\n /* istanbul ignore if -- @preserve */ if (this._editor.plugins.has('DocumentOutlineUI')) {\n this._restoreDocumentOutlineDefaultContainer();\n }\n // Code coverage is provided in the commercial package repository as integration unit tests.\n /* istanbul ignore if -- @preserve */ if (this._annotationsUIsData) {\n this._restoreAnnotationsUIs();\n }\n if (this._editor.plugins.has('RevisionHistory')) {\n this._restoreRevisionHistoryCallbacks();\n }\n if (this._editor.plugins.has('SourceEditing') && this._editor.plugins.has('DocumentOutlineUI')) {\n this._editor.plugins.get('SourceEditing').off('change:isSourceEditingMode', this._sourceEditingCallback);\n }\n for (const placeholderName of this._placeholderMap.keys()){\n this.restoreMovedElementLocation(placeholderName);\n }\n this._editor.ui.view.toolbar.switchBehavior(this._editor.config.get('toolbar.shouldNotGroupWhenFull') === true ? 'static' : 'dynamic');\n if (this._placeholderMap.size === 0) {\n this._destroyContainer();\n }\n // Pagination has to be restored after leaving fullscreen mode to ensure proper rendering.\n // Code coverage is provided in the commercial package repository as integration unit tests.\n /* istanbul ignore next -- @preserve */ if (this._editor.plugins.has('Pagination') && this._editor.plugins.get('Pagination').isEnabled) {\n const paginationRenderer = this._editor.plugins.get('PaginationRenderer');\n paginationRenderer.setupScrollableAncestor();\n paginationRenderer.linesRepository.setViewCollection(this._editor.ui.view.body);\n this._paginationBodyCollection.detachFromDom();\n this._paginationBodyCollection?.destroy();\n }\n // Also dialog position needs to be recalculated after leaving fullscreen mode.\n if (this._editor.plugins.has('Dialog')) {\n this._unregisterFullscreenDialogPositionAdjustments();\n }\n }\n /**\n\t * @inheritDoc\n\t */ destroy() {\n for (const { placeholderElement, movedElement } of this._placeholderMap.values()){\n placeholderElement.remove();\n movedElement.remove();\n }\n this._destroyContainer();\n this._document.body.classList.remove('ck-fullscreen');\n this._document.body.parentElement.classList.remove('ck-fullscreen');\n }\n /**\n\t * A function that moves the editor UI elements to the fullscreen mode. It should be set by the particular editor type handler.\n\t *\n\t * Returns the fullscreen mode container element so it can be further customized via\n\t * `fullscreen.onEnterCallback` configuration property.\n\t */ _defaultOnEnter() {\n return this.getWrapper();\n }\n /**\n\t * Destroys the fullscreen mode container.\n\t */ _destroyContainer() {\n if (!this._wrapper) {\n return;\n }\n this._wrapper.remove();\n this._wrapper = null;\n // Restore visibility of all other elements in the container.\n for (const [element, displayValue] of this._hiddenElements){\n element.style.display = displayValue;\n }\n this._hiddenElements.clear();\n }\n /**\n\t * Checks if the PresenceListUI plugin is available and moves its elements to fullscreen mode.\n\t */ // Code coverage is provided in the commercial package repository as integration unit tests.\n /* istanbul ignore next -- @preserve */ _generatePresenceListContainer() {\n const presenceListElement = createElement(document, 'div', {\n class: 'ck ck-fullscreen__left-sidebar-item'\n });\n presenceListElement.innerHTML = `\n\t\t\t<div class=\"ck ck-fullscreen__left-sidebar-header\">Connected users</div>\n\t\t\t<div class=\"ck ck-fullscreen__presence-list\" data-ck-fullscreen=\"presence-list\"></div>\n\t\t`;\n document.querySelector('[data-ck-fullscreen=\"left-sidebar-sticky\"]').appendChild(presenceListElement);\n const presenceListUI = this._editor.plugins.get('PresenceListUI');\n this.moveToFullscreen(presenceListUI.view.element, 'presence-list');\n }\n /**\n\t * Checks if the DocumentOutlineUI plugin is available and moves its elements to fullscreen mode.\n\t */ // Code coverage is provided in the commercial package repository as integration unit tests.\n /* istanbul ignore next -- @preserve */ _generateDocumentOutlineContainer() {\n const documentOutlineHeaderElement = createElement(document, 'div', {\n class: 'ck-fullscreen__left-sidebar-item ck-fullscreen__left-sidebar-item--no-margin'\n });\n documentOutlineHeaderElement.innerHTML = `\n\t\t\t<div class=\"ck ck-fullscreen__left-sidebar-header ck-fullscreen__document-outline-header\">\n\t\t\t\tDocument outline\n\t\t\t</div>\n\t\t`;\n const documentOutlineBodyWrapper = createElement(document, 'div', {\n class: 'ck ck-fullscreen__left-sidebar-item ck-fullscreen__document-outline-wrapper'\n });\n documentOutlineBodyWrapper.innerHTML = `\n\t\t\t<div class=\"ck ck-fullscreen__document-outline\" data-ck-fullscreen=\"document-outline\"></div>\n\t\t`;\n document.querySelector('[data-ck-fullscreen=\"left-sidebar\"]').appendChild(documentOutlineBodyWrapper);\n document.querySelector('[data-ck-fullscreen=\"left-sidebar-sticky\"]').appendChild(documentOutlineHeaderElement);\n const documentOutlineUI = this._editor.plugins.get('DocumentOutlineUI');\n documentOutlineUI.view.documentOutlineContainer = document.querySelector('[data-ck-fullscreen=\"left-sidebar\"]');\n this.moveToFullscreen(documentOutlineUI.view.element, 'document-outline');\n }\n /**\n\t * Restores the default value of documentOutlineContainer, which is modified in fullscreen mode.\n\t */ // Code coverage is provided in the commercial package repository as integration unit tests.\n /* istanbul ignore next -- @preserve */ _restoreDocumentOutlineDefaultContainer() {\n const documentOutlineUI = this._editor.plugins.get('DocumentOutlineUI');\n documentOutlineUI.view.documentOutlineContainer = documentOutlineUI.view.element;\n }\n /**\n\t * Stores the current state of the annotations UIs to restore it when leaving fullscreen mode.\n\t */ // Code coverage is provided in the commercial package repository as integration unit tests.\n /* istanbul ignore next -- @preserve */ _overrideAnnotationsUIs() {\n const annotationsUIs = this._editor.plugins.get('AnnotationsUIs');\n this._annotationsUIsData = new Map(annotationsUIs.uisData);\n // Switch to the wide sidebar.\n const sidebarPlugin = this._editor.plugins.get('Sidebar');\n if (!sidebarPlugin.container) {\n sidebarPlugin.setContainer(this.getWrapper().querySelector('[data-ck-fullscreen=\"right-sidebar\"]'));\n }\n const annotationsFilters = new Map();\n for (const [uiName, data] of [\n ...this._annotationsUIsData\n ]){\n // Default filter is `() => true`. Only store filters that are different.\n if (data.filter !== annotationsUIs.defaultFilter) {\n annotationsFilters.set(uiName, data.filter);\n }\n }\n annotationsUIs.deactivateAll();\n // Check if someone has a filter defined for `wideSidebar`. If so, retrieve and apply it in fullscreen. Do not show any other UI.\n if (annotationsFilters.has('wideSidebar')) {\n annotationsUIs.activate('wideSidebar', annotationsFilters.get('wideSidebar'));\n } else if (annotationsFilters.size) {\n annotationsUIs.activate('wideSidebar', (annotation)=>[\n ...annotationsFilters.values()\n ].some((filter)=>filter(annotation)));\n } else {\n annotationsUIs.switchTo('wideSidebar');\n }\n this.moveToFullscreen(sidebarPlugin.container.firstElementChild, 'right-sidebar');\n }\n /**\n\t * Restores the saved state of the annotations UIs.\n\t */ // Code coverage is provided in the commercial package repository as integration unit tests.\n /* istanbul ignore next -- @preserve */ _restoreAnnotationsUIs() {\n const annotationsUIs = this._editor.plugins.get('AnnotationsUIs');\n annotationsUIs.deactivateAll();\n for (const [uiName, data] of [\n ...this._annotationsUIsData\n ]){\n annotationsUIs.activate(uiName, data.filter);\n }\n this._annotationsUIsData = null;\n }\n /**\n\t * Modifies the revision history viewer callbacks to display the viewer in the fullscreen mode.\n\t */ _overrideRevisionHistoryCallbacks() {\n // * Hide editor's editable, toolbar and sidebar;\n // * Disable menu bar;\n // * Show revision viewer editable, toolbar and sidebar.\n // Code coverage is provided in the commercial package repository as integration unit tests.\n /* istanbul ignore next -- @preserve */ this._editor.config.set('revisionHistory.showRevisionViewerCallback', async ()=>{\n const revisionViewerEditor = await this._showRevisionViewerCallback();\n if (this._editor.plugins.has('DocumentOutlineUI')) {\n this.getWrapper().querySelector('.ck-fullscreen__document-outline-header').style.display = 'none';\n }\n this.restoreMovedElementLocation('editable');\n this.restoreMovedElementLocation('toolbar');\n this.restoreMovedElementLocation('right-sidebar');\n if (this._annotationsUIsData) {\n this._restoreAnnotationsUIs();\n }\n if (this._editor.ui.view.menuBarView) {\n this._editor.ui.view.menuBarView.disable();\n }\n this.moveToFullscreen(revisionViewerEditor.ui.getEditableElement(), 'editable');\n this.moveToFullscreen(revisionViewerEditor.ui.view.toolbar.element, 'toolbar');\n this.moveToFullscreen(this._editor.config.get('revisionHistory.viewerSidebarContainer'), 'right-sidebar');\n return revisionViewerEditor;\n });\n // * Hide revision viewer editable, toolbar and sidebar;\n // * Enable menu bar;\n // * Show editor's editable, toolbar and sidebar.\n // Code coverage is provided in the commercial package repository as integration unit tests.\n /* istanbul ignore next -- @preserve */ this._editor.config.set('revisionHistory.closeRevisionViewerCallback', async ()=>{\n this.restoreMovedElementLocation('toolbar');\n this.restoreMovedElementLocation('editable');\n this.restoreMovedElementLocation('right-sidebar');\n if (this._editor.plugins.has('DocumentOutlineUI')) {\n this.getWrapper().querySelector('.ck-fullscreen__document-outline-header').style.display = '';\n }\n this.moveToFullscreen(this._editor.ui.getEditableElement(), 'editable');\n this.moveToFullscreen(this._editor.ui.view.toolbar.element, 'toolbar');\n await this._closeRevisionViewerCallback();\n if (this._editor.plugins.has('AnnotationsUIs')) {\n this._overrideAnnotationsUIs();\n }\n if (this._editor.ui.view.menuBarView) {\n this._editor.ui.view.menuBarView.enable();\n }\n });\n }\n /**\n\t * Resets the revision history viewer callbacks to their original values.\n\t */ _restoreRevisionHistoryCallbacks() {\n // Code coverage is provided in the commercial package repository as integration unit tests.\n /* istanbul ignore next -- @preserve */ this._editor.config.set('revisionHistory.showRevisionViewerCallback', async ()=>{\n return this._showRevisionViewerCallback();\n });\n // Code coverage is provided in the commercial package repository as integration unit tests.\n /* istanbul ignore next -- @preserve */ this._editor.config.set('revisionHistory.closeRevisionViewerCallback', async ()=>{\n return this._closeRevisionViewerCallback();\n });\n }\n /**\n\t * Adds an event listener when the dialog opens to adjust its position in fullscreen mode,\n\t * utilizing the empty space on the right side of the editable element.\n\t */ _registerFullscreenDialogPositionAdjustments() {\n const dialog = this._editor.plugins.get('Dialog');\n this._setNewDialogPosition();\n dialog.on('change:isOpen', this.updateDialogPositionCallback, {\n priority: 'highest'\n });\n }\n /**\n\t * Removes an event listener that adjusts the dialog's position in fullscreen mode.\n\t */ _unregisterFullscreenDialogPositionAdjustments() {\n const dialog = this._editor.plugins.get('Dialog');\n const dialogView = dialog.view;\n if (dialogView && dialogView.position === null) {\n dialogView.position = DialogViewPosition.EDITOR_TOP_SIDE;\n }\n if (dialogView) {\n dialogView.updatePosition();\n }\n dialog.off('change:isOpen', this.updateDialogPositionCallback);\n }\n /**\n\t * Stores a bound reference to the _updateDialogPosition method, allowing it to be attached and detached from change event.\n\t */ updateDialogPositionCallback = this._updateDialogPosition.bind(this);\n /**\n\t * If dialog is open, adjust its positioning.\n\t */ _updateDialogPosition(_evt, _name, isOpen) {\n if (isOpen) {\n this._setNewDialogPosition();\n }\n }\n /**\n\t * Adjusts the dialog position to utilize the empty space on the right side of the editable.\n\t * The new dialog position should be on the right side of the fullscreen view with a 30px margin.\n\t * Only dialogs with the position set to \"editor-top-side\" should have their position changed.\n\t */ _setNewDialogPosition() {\n const dialog = this._editor.plugins.get('Dialog');\n const dialogView = dialog.view;\n if (!dialogView || dialogView.position !== DialogViewPosition.EDITOR_TOP_SIDE) {\n return;\n }\n const fullscreenViewContainerRect = new Rect(this._wrapper).getVisible();\n const editorContainerRect = new Rect(document.querySelector('.ck-fullscreen__editable')).getVisible();\n const dialogRect = new Rect(dialogView.element.querySelector('.ck-dialog')).getVisible();\n const scrollOffset = new Rect(document.querySelector('.ck-fullscreen__editable-wrapper')).excludeScrollbarsAndBorders().getVisible().width - new Rect(document.querySelector('.ck-fullscreen__editable-wrapper')).getVisible().width;\n if (fullscreenViewContainerRect && editorContainerRect && dialogRect) {\n dialogView.position = null;\n dialogView.moveTo(fullscreenViewContainerRect.left + fullscreenViewContainerRect.width - dialogRect.width - DIALOG_OFFSET + scrollOffset, editorContainerRect.top);\n }\n }\n}\n\n/**\n * The classic editor fullscreen mode handler.\n */ class ClassicEditorHandler extends AbstractEditorHandler {\n /**\n\t * An editor instance.\n\t */ _editor;\n /**\n\t * @inheritDoc\n\t */ constructor(editor){\n super(editor);\n this._editor = editor;\n }\n /**\n\t * A function that moves the editor UI elements to the fullscreen mode.\n\t */ _defaultOnEnter() {\n const editorUI = this._editor.ui;\n const editorUIView = editorUI.view;\n // Code coverage is provided in the commercial package repository as integration unit tests.\n /* istanbul ignore next -- @preserve */ if (this._editor.plugins.has('Pagination') && this._editor.plugins.get('Pagination').isEnabled) {\n this.moveToFullscreen(editorUI.getEditableElement().parentElement.querySelector('.ck-pagination-view'), 'pagination-view');\n }\n this.moveToFullscreen(editorUI.getEditableElement(), 'editable');\n this.moveToFullscreen(editorUIView.toolbar.element, 'toolbar');\n editorUIView.toolbar.switchBehavior(this._editor.config.get('fullscreen.toolbar.shouldNotGroupWhenFull') === true ? 'static' : 'dynamic');\n // In classic editor, the `dir` attribute is set on the top-level container and it affects the styling\n // in both menu bar and toolbar (adding the side padding to the elements).\n // Since we don't move the whole container but only parts, we need to reapply the attribute value manually.\n // Decupled editor doesn't have this issue because there is no top-level container,\n // so `dir` attribute is set on each component separately.\n this.getWrapper().setAttribute('dir', editorUIView.element.getAttribute('dir'));\n // The `ck-rounded-corners` class is added to the wrapper element to ensure that the corners in menu bar, toolbar etc are rounded\n // when the editor is in fullscreen mode.\n // Decupled editor doesn't have this issue because there is no top-level container,\n // so `ck-rounded-corners` class is set on each component separately.\n this.getWrapper().classList.add('ck-rounded-corners');\n if (this._editor.config.get('fullscreen.menuBar.isVisible')) {\n if (!editorUIView.menuBarView) {\n editorUIView.menuBarView = new MenuBarView(this._editor.locale);\n editorUIView.menuBarView.render();\n editorUI.initMenuBar(editorUIView.menuBarView);\n }\n this.moveToFullscreen(editorUIView.menuBarView.element, 'menu-bar');\n }\n return this.getWrapper();\n }\n}\n\n/**\n * The decoupled editor fullscreen mode handler.\n */ class DecoupledEditorHandler extends AbstractEditorHandler {\n /**\n\t * An editor instance.\n\t */ _editor;\n /**\n\t * @inheritDoc\n\t */ constructor(editor){\n super(editor);\n this._editor = editor;\n }\n /**\n\t * A function that moves the editor UI elements to the fullscreen mode.\n\t */ _defaultOnEnter() {\n // Code coverage is provided in the commercial package repository as integration unit tests.\n /* istanbul ignore next -- @preserve */ if (this._editor.plugins.has('Pagination') && this._editor.plugins.get('Pagination').isEnabled) {\n this.moveToFullscreen(this._editor.ui.getEditableElement().parentElement.querySelector('.ck-pagination-view'), 'pagination-view');\n }\n this.moveToFullscreen(this._editor.ui.getEditableElement(), 'editable');\n this.moveToFullscreen(this._editor.ui.view.toolbar.element, 'toolbar');\n this._editor.ui.view.toolbar.switchBehavior(this._editor.config.get('fullscreen.toolbar.shouldNotGroupWhenFull') === true ? 'static' : 'dynamic');\n if (this._editor.config.get('fullscreen.menuBar.isVisible')) {\n this.moveToFullscreen(this._editor.ui.view.menuBarView.element, 'menu-bar');\n }\n return this.getWrapper();\n }\n}\n\n/**\n * A command toggling the fullscreen mode.\n */ class FullscreenCommand extends Command {\n /**\n\t * Specialized class handling the fullscreen mode toggling for a specific editor type.\n\t */ _fullscreenHandler;\n /**\n\t * @inheritDoc\n\t */ constructor(editor){\n super(editor);\n this.affectsData = false;\n this.isEnabled = true;\n this.value = false;\n // Choose the appropriate handler based on the editor type.\n // Currently only ClassicEditor and DecoupledEditor are supported. For other editor types, the abstract handler is used\n // which will throw if user tries to enable the fullscreen mode.\n if (editor instanceof ClassicEditor) {\n this._fullscreenHandler = new ClassicEditorHandler(editor);\n } else if (editor instanceof DecoupledEditor) {\n this._fullscreenHandler = new DecoupledEditorHandler(editor);\n } else {\n this._fullscreenHandler = new AbstractEditorHandler(editor);\n }\n }\n /**\n\t * Toggles the fullscreen mode.\n\t */ execute() {\n if (this.value) {\n this._disableFullscreenMode();\n } else {\n this._enableFullscreenMode();\n }\n }\n /**\n\t * Enables the fullscreen mode.\n\t */ _enableFullscreenMode() {\n this._fullscreenHandler.enable();\n this.value = true;\n }\n /**\n\t * Disables the fullscreen mode.\n\t */ _disableFullscreenMode() {\n this._fullscreenHandler.disable();\n this.value = false;\n }\n}\n\n/**\n * A plugin that registers the fullscreen mode command.\n */ class FullscreenEditing extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'FullscreenEditing';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ constructor(editor){\n super(editor);\n editor.config.define('fullscreen.menuBar.isVisible', true);\n // By default, toolbar should behave the same way in fullscreen mode as in normal mode.\n // This means that the toolbar buttons should be grouped when the toolbar is full.\n editor.config.define('fullscreen.toolbar.shouldNotGroupWhenFull', editor.config.get('toolbar.shouldNotGroupWhenFull') === true);\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n this.editor.commands.add('toggleFullscreen', new FullscreenCommand(this.editor));\n const t = this.editor.locale.t;\n // Set the Ctrl+Shift+F keystroke.\n this.editor.keystrokes.set('Ctrl+Shift+F', (evt, cancel)=>{\n this.editor.execute('toggleFullscreen');\n // On non-Chromium browsers, the editor view is not blurred properly after moving the editable,\n // even though the `document.activeElement` is changed. Hence we need to blur the view manually.\n // Fixes https://github.com/ckeditor/ckeditor5/issues/18250 and https://github.com/ckeditor/ckeditor5/issues/18247.\n if (!env.isBlink) {\n this.editor.editing.view.document.isFocused = false;\n }\n this.editor.editing.view.focus();\n cancel();\n });\n // Add the information about the keystroke to the accessibility database.\n this.editor.accessibility.addKeystrokeInfos({\n keystrokes: [\n {\n label: t('Toggle fullscreen mode'),\n keystroke: 'CTRL+SHIFT+F'\n }\n ],\n categoryId: 'navigation'\n });\n }\n}\n\nconst COMMAND_NAME = 'toggleFullscreen';\n/**\n * A plugin registering the fullscreen mode buttons.\n */ class FullscreenUI extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n FullscreenEditing\n ];\n }\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'FullscreenUI';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const editor = this.editor;\n editor.ui.componentFactory.add('fullscreen', ()=>this._createButton(ButtonView));\n editor.ui.componentFactory.add('menuBar:fullscreen', ()=>this._createButton(MenuBarMenuListItemButtonView));\n }\n /**\n\t * Creates a button that toggles the fullscreen mode.\n\t */ _createButton(ButtonClass) {\n const editor = this.editor;\n const t = editor.t;\n const command = editor.commands.get(COMMAND_NAME);\n const view = new ButtonClass(editor.locale);\n view.set({\n isToggleable: true\n });\n view.bind('isEnabled').to(command, 'isEnabled');\n view.bind('isOn').to(command, 'value');\n if (view instanceof MenuBarMenuListItemButtonView) {\n view.set({\n role: 'menuitemcheckbox',\n label: t('Fullscreen mode')\n });\n } else {\n view.bind('icon').to(command, 'value', (value)=>value ? IconFullscreenLeave : IconFullscreenEnter);\n view.bind('label').to(command, 'value', (value)=>value ? t('Leave fullscreen mode') : t('Enter fullscreen mode'));\n view.set({\n tooltip: true\n });\n }\n this.listenTo(view, 'execute', ()=>{\n editor.execute(COMMAND_NAME);\n editor.editing.view.focus();\n });\n return view;\n }\n}\n\n/**\n * The fullscreen mode feature.\n */ class Fullscreen extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n FullscreenEditing,\n FullscreenUI\n ];\n }\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'Fullscreen';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n}\n\nexport { Fullscreen, FullscreenEditing, FullscreenUI };\n//# sourceMappingURL=index.js.map\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module fullscreen/handlers/abstracteditorhandler\n */\n\nimport { BodyCollection, DialogViewPosition } from 'ckeditor5/src/ui.js';\nimport { global, createElement, Rect, type EventInfo } from 'ckeditor5/src/utils.js';\nimport type { ElementApi, Editor, EditorConfig } from 'ckeditor5/src/core.js';\nimport type { PresenceListUI } from '@ckeditor/ckeditor5-real-time-collaboration';\nimport type { DocumentOutlineUI } from '@ckeditor/ckeditor5-document-outline';\nimport type { PaginationRenderer } from '@ckeditor/ckeditor5-pagination';\nimport type { RevisionViewerEditor } from '@ckeditor/ckeditor5-revision-history';\nimport type { Annotation, AnnotationsUIs, Sidebar } from '@ckeditor/ckeditor5-comments';\n\nconst DIALOG_OFFSET = 28;\n\n/**\n * The abstract editor type handler. It should be extended by the particular editor type handler.\n */\nexport default class AbstractEditorHandler {\n\t/**\n\t * Maps placeholder names to placeholder elements and moved elements.\n\t */\n\tprivate _placeholderMap: Map<string, { placeholderElement: HTMLElement; movedElement: HTMLElement }>;\n\n\t/**\n\t * The wrapper element that holds the fullscreen mode layout.\n\t */\n\tprivate _wrapper: HTMLElement | null = null;\n\n\t/**\n\t * The document object in which the editor is located.\n\t */\n\tprivate _document: Document;\n\n\t/**\n\t * Data of the annotations UIs that were active before entering the fullscreen mode.\n\t */\n\tprivate _annotationsUIsData: Map<string, Record<string, any>> | null = null;\n\n\t/**\n\t * The pagination body collection that is used in the fullscreen mode.\n\t * If we don't move pagination lines to the fullscreen container, they won't be visible.\n\t */\n\tprivate _paginationBodyCollection: BodyCollection | null = null;\n\n\t/**\n\t * A callback that hides the document outline header when the source editing mode is enabled.\n\t * Document outline element itself is hidden by source editing plugin.\n\t */\n\t/* istanbul ignore next -- @preserve */\n\tprivate _sourceEditingCallback = ( _evt: EventInfo, _name: string, value: boolean ) => {\n\t\t( this.getWrapper().querySelector( '.ck-fullscreen__document-outline-header' ) as HTMLElement ).style.display =\n\t\t\tvalue ? 'none' : '';\n\t};\n\n\t/**\n\t * A map of elements that were hidden when entering the fullscreen mode.\n\t * It is used to restore their previous visibility when leaving the fullscreen mode and avoid showing elements\n\t * that were hidden before entering the fullscreen mode.\n\t */\n\tprivate _hiddenElements: Map<HTMLElement, string> = new Map();\n\n\t/**\n\t * A callback that shows the revision viewer, stored to restore the original one after exiting the fullscreen mode.\n\t */\n\tprotected _showRevisionViewerCallback: ( ( config?: EditorConfig ) => Promise<RevisionViewerEditor | null> ) | null = null;\n\n\t/**\n\t * A callback that closes the revision viewer, stored to restore the original one after exiting the fullscreen mode.\n\t */\n\tprotected _closeRevisionViewerCallback: ( ( viewerEditor?: RevisionViewerEditor ) => Promise<unknown> ) | null = null;\n\n\t/**\n\t * An editor instance. It should be set by the particular editor type handler.\n\t */\n\tdeclare protected _editor: Editor & Partial<ElementApi>;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( editor: Editor ) {\n\t\tthis._placeholderMap = new Map();\n\n\t\tif ( editor.plugins.has( 'RevisionHistory' ) ) {\n\t\t\tthis._showRevisionViewerCallback = editor.config.get( 'revisionHistory' )!.showRevisionViewerCallback;\n\t\t\tthis._closeRevisionViewerCallback = editor.config.get( 'revisionHistory' )!.closeRevisionViewerCallback;\n\t\t}\n\n\t\tthis._editor = editor;\n\t\tthis._document = this._editor.sourceElement ? this._editor.sourceElement.ownerDocument : global.document;\n\t\tthis._editor.config.define( 'fullscreen.container', this._document.body );\n\n\t\teditor.on( 'destroy', () => {\n\t\t\tif ( this._wrapper ) {\n\t\t\t\tthis.destroy();\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Moves the given element to the fullscreen mode container, leaving a placeholder in its place.\n\t */\n\tpublic moveToFullscreen( elementToMove: HTMLElement, placeholderName: string ): void {\n\t\tconst placeholderElement = createElement( this._document, 'div' );\n\n\t\tplaceholderElement.setAttribute( 'data-ck-fullscreen-placeholder', placeholderName );\n\t\telementToMove.replaceWith( placeholderElement );\n\n\t\tthis.getWrapper().querySelector( `[data-ck-fullscreen=\"${ placeholderName }\"]` )!.append( elementToMove );\n\n\t\tthis._placeholderMap.set( placeholderName, { placeholderElement, movedElement: elementToMove } );\n\t}\n\n\t/**\n\t * Returns a single moved element to its original place.\n\t */\n\tpublic restoreMovedElementLocation( placeholderName: string ): void {\n\t\tif ( !this._placeholderMap.has( placeholderName ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { placeholderElement, movedElement } = this._placeholderMap.get( placeholderName )!;\n\n\t\tplaceholderElement.replaceWith( movedElement );\n\t\tplaceholderElement.remove();\n\n\t\tthis._placeholderMap.delete( placeholderName );\n\n\t\tif ( this._placeholderMap.size === 0 ) {\n\t\t\tthis._destroyContainer();\n\t\t}\n\t}\n\n\t/**\n\t * Returns the fullscreen mode container element.\n\t */\n\tpublic getWrapper(): HTMLElement {\n\t\tif ( !this._wrapper ) {\n\t\t\tthis._wrapper = createElement( this._document, 'div', {\n\t\t\t\tclass: 'ck ck-fullscreen__main-wrapper'\n\t\t\t} );\n\n\t\t\t// For now, the container is generated in a very straightforward way. If necessary, it may be rewritten using our UI lib.\n\t\t\tthis._wrapper.innerHTML = `\n\t\t\t\t<div class=\"ck ck-fullscreen__top-wrapper ck-reset_all\">\n\t\t\t\t\t<div class=\"ck ck-fullscreen__menu-bar\" data-ck-fullscreen=\"menu-bar\"></div>\n\t\t\t\t\t<div class=\"ck ck-fullscreen__toolbar\" data-ck-fullscreen=\"toolbar\"></div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"ck ck-fullscreen__editable-wrapper\">\n\t\t\t\t\t<div class=\"ck ck-fullscreen__sidebar ck-fullscreen__left-sidebar\" data-ck-fullscreen=\"left-sidebar\">\n\t\t\t\t\t\t<div class=\"ck ck-fullscreen__left-sidebar--sticky\" data-ck-fullscreen=\"left-sidebar-sticky\"></div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"ck ck-fullscreen__editable\" data-ck-fullscreen=\"editable\">\n\t\t\t\t\t\t<div class=\"ck ck-fullscreen__pagination-view\" data-ck-fullscreen=\"pagination-view\"></div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"ck ck-fullscreen__sidebar ck-fullscreen__right-sidebar\" data-ck-fullscreen=\"right-sidebar\"></div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"ck ck-fullscreen__bottom-wrapper\">\n\t\t\t\t\t<div class=\"ck ck-fullscreen__body-wrapper\" data-ck-fullscreen=\"body-wrapper\"></div>\n\t\t\t\t</div>\n\t\t\t`;\n\n\t\t\tthis._editor.config.get( 'fullscreen.container' )!.appendChild( this._wrapper );\n\t\t}\n\n\t\treturn this._wrapper;\n\t}\n\n\t/**\n\t * Enables the fullscreen mode. It executes the editor-specific enable handler and then the configured callback.\n\t */\n\tpublic enable(): void {\n\t\tthis._defaultOnEnter();\n\n\t\t// Block scroll if the fullscreen container is the body element. Otherwise the document has to stay scrollable.\n\t\tif ( this._editor.config.get( 'fullscreen.container' ) === this._document.body ) {\n\t\t\tthis._document.body.classList.add( 'ck-fullscreen' );\n\t\t\tthis._document.body.parentElement!.classList.add( 'ck-fullscreen' );\n\t\t}\n\n\t\tif ( this._editor.plugins.has( 'Dialog' ) ) {\n\t\t\tthis._registerFullscreenDialogPositionAdjustments();\n\t\t}\n\n\t\t// Code coverage is provided in the commercial package repository as integration unit tests.\n\t\t/* istanbul ignore if -- @preserve */\n\t\tif ( this._editor.plugins.has( 'PresenceListUI' ) ) {\n\t\t\tthis._generatePresenceListContainer();\n\t\t}\n\n\t\t// Code coverage is provided in the commercial package repository as integration unit tests.\n\t\t/* istanbul ignore if -- @preserve */\n\t\tif ( this._editor.plugins.has( 'DocumentOutlineUI' ) ) {\n\t\t\tthis._generateDocumentOutlineContainer();\n\t\t}\n\n\t\t// Code coverage is provided in the commercial package repository as integration unit tests.\n\t\t/* istanbul ignore next -- @preserve */\n\t\tif ( this._editor.plugins.has( 'Pagination' ) && this._editor.plugins.get( 'Pagination' ).isEnabled ) {\n\t\t\tconst paginationRenderer = this._editor.plugins.get( 'PaginationRenderer' ) as PaginationRenderer;\n\n\t\t\tpaginationRenderer.setupScrollableAncestor();\n\n\t\t\tthis._paginationBodyCollection = new BodyCollection( this._editor.locale );\n\n\t\t\tthis._paginationBodyCollection.attachToDom();\n\t\t\tpaginationRenderer.linesRepository.setViewCollection( this._paginationBodyCollection );\n\n\t\t\tthis._editor.once( 'destroy', () => {\n\t\t\t\tthis._paginationBodyCollection!.detachFromDom();\n\t\t\t} );\n\n\t\t\tthis.moveToFullscreen( this._paginationBodyCollection.bodyCollectionContainer!, 'body-wrapper' );\n\t\t}\n\n\t\t// Code coverage is provided in the commercial package repository as integration unit tests.\n\t\t/* istanbul ignore if -- @preserve */\n\t\tif ( this._editor.plugins.has( 'AnnotationsUIs' ) ) {\n\t\t\tthis._overrideAnnotationsUIs();\n\t\t}\n\n\t\tif ( this._editor.plugins.has( 'RevisionHistory' ) ) {\n\t\t\t// Code coverage is provided in the commercial package repository as integration unit tests.\n\t\t\t/* istanbul ignore if -- @preserve */\n\t\t\tif ( this._editor.plugins.get( 'RevisionHistory' ).isRevisionViewerOpen ) {\n\t\t\t\t// Keep in mind that closing the revision history viewer is an asynchronous operation.\n\t\t\t\tthis._editor.config.get( 'revisionHistory.closeRevisionViewerCallback' )!();\n\t\t\t}\n\n\t\t\tthis._overrideRevisionHistoryCallbacks();\n\t\t}\n\n\t\tif ( this._editor.plugins.has( 'SourceEditing' ) && this._editor.plugins.has( 'DocumentOutlineUI' ) ) {\n\t\t\tthis._editor.plugins.get( 'SourceEditing' ).on( 'change:isSourceEditingMode', this._sourceEditingCallback );\n\t\t}\n\n\t\t// Hide all other elements in the container to ensure they don't create an empty unscrollable space.\n\t\tfor ( const element of this._editor.config.get( 'fullscreen.container' )!.children ) {\n\t\t\t// Do not hide body wrapper and ckbox wrapper to keep dialogs, balloons etc visible.\n\t\t\tif (\n\t\t\t\telement !== this._wrapper &&\n\t\t\t\t!element.classList.contains( 'ck-body-wrapper' ) &&\n\t\t\t\t!element.classList.contains( 'ckbox-wrapper' ) &&\n\t\t\t\t// Already hidden elements are not hidden again to avoid accidentally showing them after leaving fullscreen.\n\t\t\t\t( element as HTMLElement ).style.display !== 'none'\n\t\t\t) {\n\t\t\t\tthis._hiddenElements.set( element as HTMLElement, ( element as HTMLElement ).style.display );\n\t\t\t\t( element as HTMLElement ).style.display = 'none';\n\t\t\t}\n\t\t}\n\n\t\tif ( this._editor.config.get( 'fullscreen.onEnterCallback' ) ) {\n\t\t\tthis._editor.config.get( 'fullscreen.onEnterCallback' )!( this.getWrapper() );\n\t\t}\n\t}\n\n\t/**\n\t * Disables the fullscreen mode by restoring all moved elements and destroying the fullscreen container.\n\t */\n\tpublic disable(): void {\n\t\tif ( this._editor.config.get( 'fullscreen.onLeaveCallback' ) ) {\n\t\t\tthis._editor.config.get( 'fullscreen.onLeaveCallback' )!( this.getWrapper() );\n\t\t}\n\n\t\tthis._document.body.classList.remove( 'ck-fullscreen' );\n\t\tthis._document.body.parentElement!.classList.remove( 'ck-fullscreen' );\n\n\t\t// Code coverage is provided in the commercial package repository as integration unit tests.\n\t\t/* istanbul ignore if -- @preserve */\n\t\tif ( this._editor.plugins.has( 'DocumentOutlineUI' ) ) {\n\t\t\tthis._restoreDocumentOutlineDefaultContainer();\n\t\t}\n\n\t\t// Code coverage is provided in the commercial package repository as integration unit tests.\n\t\t/* istanbul ignore if -- @preserve */\n\t\tif ( this._annotationsUIsData ) {\n\t\t\tthis._restoreAnnotationsUIs();\n\t\t}\n\n\t\tif ( this._editor.plugins.has( 'RevisionHistory' ) ) {\n\t\t\tthis._restoreRevisionHistoryCallbacks();\n\t\t}\n\n\t\tif ( this._editor.plugins.has( 'SourceEditing' ) && this._editor.plugins.has( 'DocumentOutlineUI' ) ) {\n\t\t\tthis._editor.plugins.get( 'SourceEditing' ).off( 'change:isSourceEditingMode', this._sourceEditingCallback );\n\t\t}\n\n\t\tfor ( const placeholderName of this._placeholderMap.keys() ) {\n\t\t\tthis.restoreMovedElementLocation( placeholderName );\n\t\t}\n\n\t\tthis._editor.ui.view.toolbar!.switchBehavior(\n\t\t\tthis._editor.config.get( 'toolbar.shouldNotGroupWhenFull' ) === true ? 'static' : 'dynamic'\n\t\t);\n\n\t\tif ( this._placeholderMap.size === 0 ) {\n\t\t\tthis._destroyContainer();\n\t\t}\n\n\t\t// Pagination has to be restored after leaving fullscreen mode to ensure proper rendering.\n\t\t// Code coverage is provided in the commercial package repository as integration unit tests.\n\t\t/* istanbul ignore next -- @preserve */\n\t\tif ( this._editor.plugins.has( 'Pagination' ) && this._editor.plugins.get( 'Pagination' ).isEnabled ) {\n\t\t\tconst paginationRenderer = this._editor.plugins.get( 'PaginationRenderer' ) as PaginationRenderer;\n\n\t\t\tpaginationRenderer.setupScrollableAncestor();\n\t\t\tpaginationRenderer.linesRepository.setViewCollection( this._editor.ui.view.body );\n\n\t\t\tthis._paginationBodyCollection!.detachFromDom();\n\t\t\tthis._paginationBodyCollection?.destroy();\n\t\t}\n\n\t\t// Also dialog position needs to be recalculated after leaving fullscreen mode.\n\t\tif ( this._editor.plugins.has( 'Dialog' ) ) {\n\t\t\tthis._unregisterFullscreenDialogPositionAdjustments();\n\t\t}\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic destroy(): void {\n\t\tfor ( const { placeholderElement, movedElement } of this._placeholderMap.values() ) {\n\t\t\tplaceholderElement.remove();\n\t\t\tmovedElement.remove();\n\t\t}\n\n\t\tthis._destroyContainer();\n\n\t\tthis._document.body.classList.remove( 'ck-fullscreen' );\n\t\tthis._document.body.parentElement!.classList.remove( 'ck-fullscreen' );\n\t}\n\n\t/**\n\t * A function that moves the editor UI elements to the fullscreen mode. It should be set by the particular editor type handler.\n\t *\n\t * Returns the fullscreen mode container element so it can be further customized via\n\t * `fullscreen.onEnterCallback` configuration property.\n\t */\n\tprotected _defaultOnEnter(): HTMLElement {\n\t\treturn this.getWrapper();\n\t}\n\n\t/**\n\t * Destroys the fullscreen mode container.\n\t */\n\tprivate _destroyContainer(): void {\n\t\tif ( !this._wrapper ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._wrapper.remove();\n\t\tthis._wrapper = null;\n\n\t\t// Restore visibility of all other elements in the container.\n\t\tfor ( const [ element, displayValue ] of this._hiddenElements ) {\n\t\t\telement.style.display = displayValue;\n\t\t}\n\n\t\tthis._hiddenElements.clear();\n\t}\n\n\t/**\n\t * Checks if the PresenceListUI plugin is available and moves its elements to fullscreen mode.\n\t */\n\t// Code coverage is provided in the commercial package repository as integration unit tests.\n\t/* istanbul ignore next -- @preserve */\n\tprivate _generatePresenceListContainer(): void {\n\t\tconst presenceListElement = createElement( document, 'div', {\n\t\t\tclass: 'ck ck-fullscreen__left-sidebar-item'\n\t\t} );\n\n\t\tpresenceListElement.innerHTML = `\n\t\t\t<div class=\"ck ck-fullscreen__left-sidebar-header\">Connected users</div>\n\t\t\t<div class=\"ck ck-fullscreen__presence-list\" data-ck-fullscreen=\"presence-list\"></div>\n\t\t`;\n\n\t\tdocument.querySelector( '[data-ck-fullscreen=\"left-sidebar-sticky\"]' )!.appendChild( presenceListElement );\n\n\t\tconst presenceListUI = this._editor.plugins.get( 'PresenceListUI' ) as PresenceListUI;\n\n\t\tthis.moveToFullscreen( presenceListUI.view.element!, 'presence-list' );\n\t}\n\n\t/**\n\t * Checks if the DocumentOutlineUI plugin is available and moves its elements to fullscreen mode.\n\t */\n\t// Code coverage is provided in the commercial package repository as integration unit tests.\n\t/* istanbul ignore next -- @preserve */\n\tprivate _generateDocumentOutlineContainer(): void {\n\t\tconst documentOutlineHeaderElement = createElement( document, 'div', {\n\t\t\tclass: 'ck-fullscreen__left-sidebar-item ck-fullscreen__left-sidebar-item--no-margin'\n\t\t} );\n\n\t\tdocumentOutlineHeaderElement.innerHTML = `\n\t\t\t<div class=\"ck ck-fullscreen__left-sidebar-header ck-fullscreen__document-outline-header\">\n\t\t\t\tDocument outline\n\t\t\t</div>\n\t\t`;\n\n\t\tconst documentOutlineBodyWrapper = createElement( document, 'div', {\n\t\t\tclass: 'ck ck-fullscreen__left-sidebar-item ck-fullscreen__document-outline-wrapper'\n\t\t} );\n\n\t\tdocumentOutlineBodyWrapper.innerHTML = `\n\t\t\t<div class=\"ck ck-fullscreen__document-outline\" data-ck-fullscreen=\"document-outline\"></div>\n\t\t`;\n\n\t\tdocument.querySelector( '[data-ck-fullscreen=\"left-sidebar\"]' )!.appendChild( documentOutlineBodyWrapper );\n\t\tdocument.querySelector( '[data-ck-fullscreen=\"left-sidebar-sticky\"]' )!.appendChild( documentOutlineHeaderElement );\n\n\t\tconst documentOutlineUI = this._editor.plugins.get( 'DocumentOutlineUI' ) as DocumentOutlineUI;\n\t\tdocumentOutlineUI.view.documentOutlineContainer = document.querySelector( '[data-ck-fullscreen=\"left-sidebar\"]' ) as HTMLElement;\n\n\t\tthis.moveToFullscreen( documentOutlineUI.view.element!, 'document-outline' );\n\t}\n\n\t/**\n\t * Restores the default value of documentOutlineContainer, which is modified in fullscreen mode.\n\t */\n\t// Code coverage is provided in the commercial package repository as integration unit tests.\n\t/* istanbul ignore next -- @preserve */\n\tprivate _restoreDocumentOutlineDefaultContainer(): void {\n\t\tconst documentOutlineUI = this._editor.plugins.get( 'DocumentOutlineUI' ) as DocumentOutlineUI;\n\t\tdocumentOutlineUI.view.documentOutlineContainer = documentOutlineUI.view.element as HTMLElement;\n\t}\n\n\t/**\n\t * Stores the current state of the annotations UIs to restore it when leaving fullscreen mode.\n\t */\n\t// Code coverage is provided in the commercial package repository as integration unit tests.\n\t/* istanbul ignore next -- @preserve */\n\tprivate _overrideAnnotationsUIs() {\n\t\tconst annotationsUIs = this._editor.plugins.get( 'AnnotationsUIs' ) as AnnotationsUIs;\n\n\t\tthis._annotationsUIsData = new Map( annotationsUIs.uisData );\n\n\t\t// Switch to the wide sidebar.\n\t\tconst sidebarPlugin = this._editor.plugins.get( 'Sidebar' ) as Sidebar;\n\n\t\tif ( !sidebarPlugin.container ) {\n\t\t\tsidebarPlugin.setContainer(\n\t\t\t\tthis.getWrapper().querySelector( '[data-ck-fullscreen=\"right-sidebar\"]' ) as HTMLElement\n\t\t\t);\n\t\t}\n\n\t\tconst annotationsFilters = new Map<string, ( annotation: Annotation ) => boolean>();\n\n\t\tfor ( const [ uiName, data ] of [ ...this._annotationsUIsData! ] ) {\n\t\t\t// Default filter is `() => true`. Only store filters that are different.\n\t\t\tif ( data.filter !== annotationsUIs.defaultFilter ) {\n\t\t\t\tannotationsFilters.set( uiName, data.filter );\n\t\t\t}\n\t\t}\n\n\t\tannotationsUIs.deactivateAll();\n\n\t\t// Check if someone has a filter defined for `wideSidebar`. If so, retrieve and apply it in fullscreen. Do not show any other UI.\n\t\tif ( annotationsFilters.has( 'wideSidebar' ) ) {\n\t\t\tannotationsUIs.activate( 'wideSidebar', annotationsFilters.get( 'wideSidebar' ) );\n\t\t}\n\t\t// If no filter is defined for `wideSidebar`, read the filters for the active display(s) mode and apply them.\n\t\t// It's possible there are filters for both `narrowSidebar` and `inline` modes, so display annotations that match any of them.\n\t\telse if ( annotationsFilters.size ) {\n\t\t\tannotationsUIs.activate( 'wideSidebar',\n\t\t\t\tannotation => [ ...annotationsFilters.values() ].some( filter => filter( annotation ) )\n\t\t\t);\n\t\t}\n\t\t// If no filters are defined for the active display mode(s), simply display all annotations in the wide sidebar.\n\t\telse {\n\t\t\tannotationsUIs.switchTo( 'wideSidebar' );\n\t\t}\n\n\t\tthis.moveToFullscreen( ( sidebarPlugin.container!.firstElementChild as HTMLElement ), 'right-sidebar' );\n\t}\n\n\t/**\n\t * Restores the saved state of the annotations UIs.\n\t */\n\t// Code coverage is provided in the commercial package repository as integration unit tests.\n\t/* istanbul ignore next -- @preserve */\n\tprivate _restoreAnnotationsUIs() {\n\t\tconst annotationsUIs = this._editor.plugins.get( 'AnnotationsUIs' ) as AnnotationsUIs;\n\n\t\tannotationsUIs.deactivateAll();\n\n\t\tfor ( const [ uiName, data ] of [ ...this._annotationsUIsData! ] ) {\n\t\t\tannotationsUIs.activate( uiName, data.filter );\n\t\t}\n\n\t\tthis._annotationsUIsData = null;\n\t}\n\n\t/**\n\t * Modifies the revision history viewer callbacks to display the viewer in the fullscreen mode.\n\t */\n\tprivate _overrideRevisionHistoryCallbacks(): void {\n\t\t// * Hide editor's editable, toolbar and sidebar;\n\t\t// * Disable menu bar;\n\t\t// * Show revision viewer editable, toolbar and sidebar.\n\t\t// Code coverage is provided in the commercial package repository as integration unit tests.\n\t\t/* istanbul ignore next -- @preserve */\n\t\tthis._editor.config.set( 'revisionHistory.showRevisionViewerCallback', async () => {\n\t\t\tconst revisionViewerEditor = await this._showRevisionViewerCallback!();\n\n\t\t\tif ( this._editor.plugins.has( 'DocumentOutlineUI' ) ) {\n\t\t\t\t( this.getWrapper().querySelector( '.ck-fullscreen__document-outline-header' ) as HTMLElement ).style.display = 'none';\n\t\t\t}\n\n\t\t\tthis.restoreMovedElementLocation( 'editable' );\n\t\t\tthis.restoreMovedElementLocation( 'toolbar' );\n\t\t\tthis.restoreMovedElementLocation( 'right-sidebar' );\n\n\t\t\tif ( this._annotationsUIsData ) {\n\t\t\t\tthis._restoreAnnotationsUIs();\n\t\t\t}\n\n\t\t\tif ( this._editor.ui.view.menuBarView ) {\n\t\t\t\tthis._editor.ui.view.menuBarView.disable();\n\t\t\t}\n\n\t\t\tthis.moveToFullscreen( revisionViewerEditor!.ui.getEditableElement()!, 'editable' );\n\t\t\tthis.moveToFullscreen( revisionViewerEditor!.ui.view.toolbar.element!, 'toolbar' );\n\t\t\tthis.moveToFullscreen( this._editor.config.get( 'revisionHistory.viewerSidebarContainer' )!, 'right-sidebar' );\n\n\t\t\treturn revisionViewerEditor;\n\t\t} );\n\n\t\t// * Hide revision viewer editable, toolbar and sidebar;\n\t\t// * Enable menu bar;\n\t\t// * Show editor's editable, toolbar and sidebar.\n\t\t// Code coverage is provided in the commercial package repository as integration unit tests.\n\t\t/* istanbul ignore next -- @preserve */\n\t\tthis._editor.config.set( 'revisionHistory.closeRevisionViewerCallback', async () => {\n\t\t\tthis.restoreMovedElementLocation( 'toolbar' );\n\t\t\tthis.restoreMovedElementLocation( 'editable' );\n\t\t\tthis.restoreMovedElementLocation( 'right-sidebar' );\n\n\t\t\tif ( this._editor.plugins.has( 'DocumentOutlineUI' ) ) {\n\t\t\t\t( this.getWrapper().querySelector( '.ck-fullscreen__document-outline-header' ) as HTMLElement ).style.display = '';\n\t\t\t}\n\n\t\t\tthis.moveToFullscreen( this._editor.ui.getEditableElement()!, 'editable' );\n\t\t\tthis.moveToFullscreen( this._editor.ui.view.toolbar!.element!, 'toolbar' );\n\n\t\t\tawait this._closeRevisionViewerCallback!();\n\n\t\t\tif ( this._editor.plugins.has( 'AnnotationsUIs' ) ) {\n\t\t\t\tthis._overrideAnnotationsUIs();\n\t\t\t}\n\n\t\t\tif ( this._editor.ui.view.menuBarView ) {\n\t\t\t\tthis._editor.ui.view.menuBarView.enable();\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Resets the revision history viewer callbacks to their original values.\n\t */\n\tprivate _restoreRevisionHistoryCallbacks(): void {\n\t\t// Code coverage is provided in the commercial package repository as integration unit tests.\n\t\t/* istanbul ignore next -- @preserve */\n\t\tthis._editor.config.set( 'revisionHistory.showRevisionViewerCallback', async () => {\n\t\t\treturn this._showRevisionViewerCallback!();\n\t\t} );\n\n\t\t// Code coverage is provided in the commercial package repository as integration unit tests.\n\t\t/* istanbul ignore next -- @preserve */\n\t\tthis._editor.config.set( 'revisionHistory.closeRevisionViewerCallback', async () => {\n\t\t\treturn this._closeRevisionViewerCallback!();\n\t\t} );\n\t}\n\n\t/**\n\t * Adds an event listener when the dialog opens to adjust its position in fullscreen mode,\n\t * utilizing the empty space on the right side of the editable element.\n\t */\n\tprivate _registerFullscreenDialogPositionAdjustments(): void {\n\t\tconst dialog = this._editor.plugins.get( 'Dialog' );\n\n\t\tthis._setNewDialogPosition();\n\n\t\tdialog.on( 'change:isOpen', this.updateDialogPositionCallback, { priority: 'highest' } );\n\t}\n\n\t/**\n\t * Removes an event listener that adjusts the dialog's position in fullscreen mode.\n\t */\n\tprivate _unregisterFullscreenDialogPositionAdjustments(): void {\n\t\tconst dialog = this._editor.plugins.get( 'Dialog' );\n\t\tconst dialogView = dialog.view;\n\n\t\tif ( dialogView && dialogView.position === null ) {\n\t\t\tdialogView.position = DialogViewPosition.EDITOR_TOP_SIDE;\n\t\t}\n\n\t\tif ( dialogView ) {\n\t\t\tdialogView.updatePosition();\n\t\t}\n\n\t\tdialog.off( 'change:isOpen', this.updateDialogPositionCallback );\n\t}\n\n\t/**\n\t * Stores a bound reference to the _updateDialogPosition method, allowing it to be attached and detached from change event.\n\t */\n\tpublic updateDialogPositionCallback = this._updateDialogPosition.bind( this );\n\n\t/**\n\t * If dialog is open, adjust its positioning.\n\t */\n\tprivate _updateDialogPosition( _evt: EventInfo, _name: string, isOpen: boolean ): void {\n\t\tif ( isOpen ) {\n\t\t\tthis._setNewDialogPosition();\n\t\t}\n\t}\n\n\t/**\n\t * Adjusts the dialog position to utilize the empty space on the right side of the editable.\n\t * The new dialog position should be on the right side of the fullscreen view with a 30px margin.\n\t * Only dialogs with the position set to \"editor-top-side\" should have their position changed.\n\t */\n\tprivate _setNewDialogPosition(): void {\n\t\tconst dialog = this._editor.plugins.get( 'Dialog' );\n\t\tconst dialogView = dialog.view!;\n\n\t\tif ( !dialogView || dialogView.position !== DialogViewPosition.EDITOR_TOP_SIDE ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst fullscreenViewContainerRect = new Rect( this._wrapper! ).getVisible();\n\t\tconst editorContainerRect = new Rect( document.querySelector( '.ck-fullscreen__editable' ) as HTMLElement ).getVisible();\n\t\tconst dialogRect = new Rect( dialogView.element!.querySelector( '.ck-dialog' ) as HTMLElement ).getVisible();\n\t\tconst scrollOffset = new Rect( document.querySelector( '.ck-fullscreen__editable-wrapper' ) as HTMLElement )\n\t\t\t.excludeScrollbarsAndBorders().getVisible()!.width -\n\t\t\tnew Rect( document.querySelector( '.ck-fullscreen__editable-wrapper' ) as HTMLElement ).getVisible()!.width;\n\n\t\tif ( fullscreenViewContainerRect && editorContainerRect && dialogRect ) {\n\t\t\tdialogView.position = null;\n\n\t\t\tdialogView.moveTo(\n\t\t\t\tfullscreenViewContainerRect.left + fullscreenViewContainerRect.width - dialogRect.width - DIALOG_OFFSET + scrollOffset,\n\t\t\t\teditorContainerRect.top\n\t\t\t);\n\t\t}\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module fullscreen/handlers/classiceditorhandler\n */\n\nimport { MenuBarView } from 'ckeditor5/src/ui.js';\nimport type { ClassicEditor } from '@ckeditor/ckeditor5-editor-classic';\n\nimport AbstractEditorHandler from './abstracteditorhandler.js';\n\n/**\n * The classic editor fullscreen mode handler.\n */\nexport default class ClassicEditorHandler extends AbstractEditorHandler {\n\t/**\n\t * An editor instance.\n\t */\n\tprotected override readonly _editor: ClassicEditor;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( editor: ClassicEditor ) {\n\t\tsuper( editor );\n\n\t\tthis._editor = editor;\n\t}\n\n\t/**\n\t * A function that moves the editor UI elements to the fullscreen mode.\n\t */\n\tprotected override _defaultOnEnter(): HTMLElement {\n\t\tconst editorUI = this._editor.ui;\n\t\tconst editorUIView = editorUI.view;\n\n\t\t// Code coverage is provided in the commercial package repository as integration unit tests.\n\t\t/* istanbul ignore next -- @preserve */\n\t\tif ( this._editor.plugins.has( 'Pagination' ) && this._editor.plugins.get( 'Pagination' ).isEnabled ) {\n\t\t\tthis.moveToFullscreen(\n\t\t\t\teditorUI.getEditableElement()!.parentElement!.querySelector( '.ck-pagination-view' )!, 'pagination-view'\n\t\t\t);\n\t\t}\n\n\t\tthis.moveToFullscreen( editorUI.getEditableElement()!, 'editable' );\n\t\tthis.moveToFullscreen( editorUIView.toolbar.element!, 'toolbar' );\n\n\t\teditorUIView.toolbar.switchBehavior(\n\t\t\tthis._editor.config.get( 'fullscreen.toolbar.shouldNotGroupWhenFull' ) === true ? 'static' : 'dynamic'\n\t\t);\n\n\t\t// In classic editor, the `dir` attribute is set on the top-level container and it affects the styling\n\t\t// in both menu bar and toolbar (adding the side padding to the elements).\n\t\t// Since we don't move the whole container but only parts, we need to reapply the attribute value manually.\n\t\t// Decupled editor doesn't have this issue because there is no top-level container,\n\t\t// so `dir` attribute is set on each component separately.\n\t\tthis.getWrapper().setAttribute( 'dir', editorUIView.element!.getAttribute( 'dir' )! );\n\n\t\t// The `ck-rounded-corners` class is added to the wrapper element to ensure that the corners in menu bar, toolbar etc are rounded\n\t\t// when the editor is in fullscreen mode.\n\t\t// Decupled editor doesn't have this issue because there is no top-level container,\n\t\t// so `ck-rounded-corners` class is set on each component separately.\n\t\tthis.getWrapper().classList.add( 'ck-rounded-corners' );\n\n\t\tif ( this._editor.config.get( 'fullscreen.menuBar.isVisible' ) ) {\n\t\t\tif ( !editorUIView.menuBarView ) {\n\t\t\t\teditorUIView.menuBarView = new MenuBarView( this._editor.locale );\n\t\t\t\teditorUIView.menuBarView.render();\n\t\t\t\teditorUI.initMenuBar( editorUIView.menuBarView );\n\t\t\t}\n\n\t\t\tthis.moveToFullscreen( editorUIView.menuBarView.element!, 'menu-bar' );\n\t\t}\n\n\t\treturn this.getWrapper();\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module fullscreen/handlers/decouplededitorhandler\n */\n\nimport type { DecoupledEditor } from '@ckeditor/ckeditor5-editor-decoupled';\n\nimport AbstractEditorHandler from './abstracteditorhandler.js';\n\n/**\n * The decoupled editor fullscreen mode handler.\n */\nexport default class DecoupledEditorHandler extends AbstractEditorHandler {\n\t/**\n\t * An editor instance.\n\t */\n\tprotected override readonly _editor: DecoupledEditor;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( editor: DecoupledEditor ) {\n\t\tsuper( editor );\n\n\t\tthis._editor = editor;\n\t}\n\n\t/**\n\t * A function that moves the editor UI elements to the fullscreen mode.\n\t */\n\tprotected override _defaultOnEnter(): HTMLElement {\n\t\t// Code coverage is provided in the commercial package repository as integration unit tests.\n\t\t/* istanbul ignore next -- @preserve */\n\t\tif ( this._editor.plugins.has( 'Pagination' ) && this._editor.plugins.get( 'Pagination' ).isEnabled ) {\n\t\t\tthis.moveToFullscreen(\n\t\t\t\tthis._editor.ui.getEditableElement()!.parentElement!.querySelector( '.ck-pagination-view' )!, 'pagination-view'\n\t\t\t);\n\t\t}\n\n\t\tthis.moveToFullscreen( this._editor.ui.getEditableElement()!, 'editable' );\n\t\tthis.moveToFullscreen( this._editor.ui.view.toolbar.element!, 'toolbar' );\n\n\t\tthis._editor.ui.view.toolbar.switchBehavior(\n\t\t\tthis._editor.config.get( 'fullscreen.toolbar.shouldNotGroupWhenFull' ) === true ? 'static' : 'dynamic'\n\t\t);\n\n\t\tif ( this._editor.config.get( 'fullscreen.menuBar.isVisible' ) ) {\n\t\t\tthis.moveToFullscreen( this._editor.ui.view.menuBarView.element!, 'menu-bar' );\n\t\t}\n\n\t\treturn this.getWrapper();\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module fullscreen/fullscreencommand\n */\n\nimport { Command, type Editor } from 'ckeditor5/src/core.js';\nimport { ClassicEditor } from '@ckeditor/ckeditor5-editor-classic';\nimport { DecoupledEditor } from '@ckeditor/ckeditor5-editor-decoupled';\n\nimport AbstractEditorHandler from './handlers/abstracteditorhandler.js';\nimport ClassicEditorHandler from './handlers/classiceditorhandler.js';\nimport DecoupledEditorHandler from './handlers/decouplededitorhandler.js';\n\n/**\n * A command toggling the fullscreen mode.\n */\nexport default class FullscreenCommand extends Command {\n\t/**\n\t * Indicates whether the fullscreen mode is enabled.\n\t *\n\t * @observable\n\t * @readonly\n\t */\n\tdeclare public value: boolean;\n\n\t/**\n\t * Specialized class handling the fullscreen mode toggling for a specific editor type.\n\t */\n\tprivate _fullscreenHandler: AbstractEditorHandler;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic constructor( editor: Editor ) {\n\t\tsuper( editor );\n\n\t\tthis.affectsData = false;\n\t\tthis.isEnabled = true;\n\t\tthis.value = false;\n\n\t\t// Choose the appropriate handler based on the editor type.\n\t\t// Currently only ClassicEditor and DecoupledEditor are supported. For other editor types, the abstract handler is used\n\t\t// which will throw if user tries to enable the fullscreen mode.\n\t\tif ( editor instanceof ClassicEditor ) {\n\t\t\tthis._fullscreenHandler = new ClassicEditorHandler( editor );\n\t\t} else if ( editor instanceof DecoupledEditor ) {\n\t\t\tthis._fullscreenHandler = new DecoupledEditorHandler( editor );\n\t\t} else {\n\t\t\tthis._fullscreenHandler = new AbstractEditorHandler( editor );\n\t\t}\n\t}\n\n\t/**\n\t * Toggles the fullscreen mode.\n\t */\n\tpublic override execute(): void {\n\t\tif ( this.value ) {\n\t\t\tthis._disableFullscreenMode();\n\t\t} else {\n\t\t\tthis._enableFullscreenMode();\n\t\t}\n\t}\n\n\t/**\n\t * Enables the fullscreen mode.\n\t */\n\tprivate _enableFullscreenMode(): void {\n\t\tthis._fullscreenHandler.enable();\n\n\t\tthis.value = true;\n\t}\n\n\t/**\n\t * Disables the fullscreen mode.\n\t */\n\tprivate _disableFullscreenMode(): void {\n\t\tthis._fullscreenHandler.disable();\n\n\t\tthis.value = false;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module fullscreen/fullscreenediting\n */\n\nimport { Plugin, type Editor } from 'ckeditor5/src/core.js';\nimport { env } from 'ckeditor5/src/utils.js';\n\nimport FullscreenCommand from './fullscreencommand.js';\n\n/**\n * A plugin that registers the fullscreen mode command.\n */\nexport default class FullscreenEditing extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'FullscreenEditing' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( editor: Editor ) {\n\t\tsuper( editor );\n\n\t\teditor.config.define( 'fullscreen.menuBar.isVisible', true );\n\n\t\t// By default, toolbar should behave the same way in fullscreen mode as in normal mode.\n\t\t// This means that the toolbar buttons should be grouped when the toolbar is full.\n\t\teditor.config.define( 'fullscreen.toolbar.shouldNotGroupWhenFull', editor.config.get( 'toolbar.shouldNotGroupWhenFull' ) === true );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tthis.editor.commands.add( 'toggleFullscreen', new FullscreenCommand( this.editor ) );\n\n\t\tconst t = this.editor.locale.t;\n\n\t\t// Set the Ctrl+Shift+F keystroke.\n\t\tthis.editor.keystrokes.set( 'Ctrl+Shift+F', ( evt, cancel ) => {\n\t\t\tthis.editor.execute( 'toggleFullscreen' );\n\n\t\t\t// On non-Chromium browsers, the editor view is not blurred properly after moving the editable,\n\t\t\t// even though the `document.activeElement` is changed. Hence we need to blur the view manually.\n\t\t\t// Fixes https://github.com/ckeditor/ckeditor5/issues/18250 and https://github.com/ckeditor/ckeditor5/issues/18247.\n\t\t\tif ( !env.isBlink ) {\n\t\t\t\tthis.editor.editing.view.document.isFocused = false;\n\t\t\t}\n\n\t\t\tthis.editor.editing.view.focus();\n\n\t\t\tcancel();\n\t\t} );\n\n\t\t// Add the information about the keystroke to the accessibility database.\n\t\tthis.editor.accessibility.addKeystrokeInfos( {\n\t\t\tkeystrokes: [\n\t\t\t\t{\n\t\t\t\t\tlabel: t( 'Toggle fullscreen mode' ),\n\t\t\t\t\tkeystroke: 'CTRL+SHIFT+F'\n\t\t\t\t}\n\t\t\t],\n\t\t\tcategoryId: 'navigation'\n\t\t} );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module fullscreen/fullscreenui\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport { ButtonView, MenuBarMenuListItemButtonView } from 'ckeditor5/src/ui.js';\nimport { IconFullscreenEnter, IconFullscreenLeave } from 'ckeditor5/src/icons.js';\n\nimport FullscreenEditing from './fullscreenediting.js';\nimport '../theme/fullscreen.css';\n\nconst COMMAND_NAME = 'toggleFullscreen';\n\n/**\n * A plugin registering the fullscreen mode buttons.\n */\nexport default class FullscreenUI extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ FullscreenEditing ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'FullscreenUI' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\n\t\teditor.ui.componentFactory.add( 'fullscreen', () => this._createButton( ButtonView ) );\n\t\teditor.ui.componentFactory.add( 'menuBar:fullscreen', () => this._createButton( MenuBarMenuListItemButtonView ) );\n\t}\n\n\t/**\n\t * Creates a button that toggles the fullscreen mode.\n\t */\n\tprivate _createButton( ButtonClass: typeof ButtonView | typeof MenuBarMenuListItemButtonView ) {\n\t\tconst editor = this.editor;\n\t\tconst t = editor.t;\n\t\tconst command = editor.commands.get( COMMAND_NAME )!;\n\t\tconst view = new ButtonClass( editor.locale );\n\n\t\tview.set( {\n\t\t\tisToggleable: true\n\t\t} );\n\n\t\tview.bind( 'isEnabled' ).to( command, 'isEnabled' );\n\t\tview.bind( 'isOn' ).to( command, 'value' );\n\n\t\tif ( ( view instanceof MenuBarMenuListItemButtonView ) ) {\n\t\t\tview.set( {\n\t\t\t\trole: 'menuitemcheckbox',\n\t\t\t\tlabel: t( 'Fullscreen mode' )\n\t\t\t} );\n\t\t} else {\n\t\t\tview.bind( 'icon' ).to( command, 'value', value => value ? IconFullscreenLeave : IconFullscreenEnter );\n\t\t\tview.bind( 'label' ).to( command, 'value', value => value ? t( 'Leave fullscreen mode' ) : t( 'Enter fullscreen mode' ) );\n\t\t\tview.set( {\n\t\t\t\ttooltip: true\n\t\t\t} );\n\t\t}\n\n\t\tthis.listenTo( view, 'execute', () => {\n\t\t\teditor.execute( COMMAND_NAME );\n\t\t\teditor.editing.view.focus();\n\t\t} );\n\n\t\treturn view;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module fullscreen/fullscreen\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\n\nimport FullscreenEditing from './fullscreenediting.js';\nimport FullscreenUI from './fullscreenui.js';\n\n/**\n * The fullscreen mode feature.\n */\nexport default class Fullscreen extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ FullscreenEditing, FullscreenUI ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'Fullscreen' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n}\n"]}
1
+ {"version":3,"sources":["index.js","../src/handlers/abstracteditorhandler.ts","../src/handlers/classiceditorhandler.ts","../src/handlers/decouplededitorhandler.ts","../src/fullscreencommand.ts","../src/fullscreenediting.ts","../src/fullscreenui.ts","../src/fullscreen.ts"],"names":["DIALOG_OFFSET","AbstractEditorHandler","_wrapper","_annotationsUIsData","_paginationBodyCollection","_sourceEditingCallback","_evt","_name","value","getWrapper","querySelector","style","display","_hiddenElements","Map","_savedAncestorsScrollPositions","_showRevisionViewerCallback","_closeRevisionViewerCallback","constructor","editor","_placeholderMap","plugins","has","config","get","showRevisionViewerCallback","closeRevisionViewerCallback","_editor","_document","sourceElement","ownerDocument","global","document","define","body","on","destroy","moveToFullscreen","elementToMove","placeholderName","placeholderElement","createElement","setAttribute","replaceWith","append","set","movedElement","restoreMovedElementLocation","remove","delete","size","_destroyContainer","class","innerHTML","appendChild","_saveAncestorsScrollPositions","ui","getEditableElement","_defaultOnEnter","classList","add","parentElement","_registerFullscreenDialogPositionAdjustments","_generatePresenceListContainer","_generateDocumentOutlineContainer","isEnabled","paginationRenderer","setupScrollableAncestor","BodyCollection","locale","attachToDom","linesRepository","setViewCollection","once","detachFromDom","bodyCollectionContainer","_overrideAnnotationsUIs","isRevisionViewerOpen","_overrideRevisionHistoryCallbacks","element","children","contains","_restoreDocumentOutlineDefaultContainer","_restoreAnnotationsUIs","_restoreRevisionHistoryCallbacks","off","keys","view","toolbar","switchBehavior","ancestor","scrollTo","scrollLeft","scrollTop","clear","_unregisterFullscreenDialogPositionAdjustments","values","displayValue","presenceListElement","presenceListUI","documentOutlineHeaderElement","documentOutlineBodyWrapper","documentOutlineUI","documentOutlineContainer","annotationsUIs","uisData","sidebarPlugin","container","setContainer","annotationsFilters","uiName","data","filter","defaultFilter","deactivateAll","activate","annotation","some","switchTo","firstElementChild","revisionViewerEditor","menuBarView","disable","enable","dialog","_setNewDialogPosition","updateDialogPositionCallback","priority","dialogView","position","DialogViewPosition","EDITOR_TOP_SIDE","updatePosition","_updateDialogPosition","bind","isOpen","fullscreenViewContainerRect","Rect","getVisible","editorContainerRect","dialogRect","scrollOffset","excludeScrollbarsAndBorders","width","moveTo","left","top","domElement","overflowY","window","getComputedStyle","overflowX","tagName","ClassicEditorHandler","editorUI","editorUIView","getAttribute","MenuBarView","render","initMenuBar","DecoupledEditorHandler","FullscreenCommand","Command","affectsData","ClassicEditor","_fullscreenHandler","DecoupledEditor","_disableFullscreenMode","_enableFullscreenMode","FullscreenEditing","Plugin","pluginName","isOfficialPlugin","commands","t","keystrokes","evt","cancel","execute","env","isBlink","editing","isFocused","focus","scrollToTheSelection","accessibility","addKeystrokeInfos","label","keystroke","categoryId","COMMAND_NAME","FullscreenUI","requires","componentFactory","_createButton","ButtonView","MenuBarMenuListItemButtonView","ButtonClass","command","isToggleable","to","role","IconFullscreenLeave","IconFullscreenEnter","tooltip","listenTo","Fullscreen"],"mappings":";;;;AAAA,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;AACxE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;AAC1F,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;AAChF,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;AACpF,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,kBAAkB,CAAC,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;AACjJ,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;;ACalG,KAAMA,CAAAA,aAAgB,CAAA,CAAA,CAAA,EAAA;AAEtB,CAAA,CAAA;ADXA,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO;ACa/F,CACc,CAAA,CAAA,CAAA,KAAA,CAAMC,qBAAAA,CAAAA;AACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADZD,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ;ACcnE,CAAA,CAAA,CAAA,CAAA,CACD,eAAqG;AAErG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADdD,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM;AAC7D,CCgBSC,CAAAA,CAAAA,CAAAA,CAAAA,QAAAA,CAAAA,CAAAA,CAA+B,IAAK;AAE5C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADhBD,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO;ACkBpD,CAAA,CAAA,CAAA,CAAA,CACD,SAA4B;AAE5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADlBD,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI;AACpF,CCoBSC,CAAAA,CAAAA,CAAAA,CAAAA,mBAAAA,CAAAA,CAAAA,CAA+D,IAAK;AAE5E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADpBD,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI;AACtE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO;AACxF,CCsBSC,CAAAA,CAAAA,CAAAA,CAAAA,yBAAAA,CAAAA,CAAAA,CAAmD,IAAK;AAEhE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADtBD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO;AAC7F,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM;ACwBpE,CAEOC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,QAAAA,CAAAA,MAAAA,CAAAA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,QAAAA,CAAAA,CAAAA,CAAAA,CAAAA,sBAAyB,CAAA,CAAA,CAAA,CAAEC,IAAAA,CAAAA,CAAiBC,KAAeC,CAAAA,CAAAA,KAAAA,CAAAA,CAAAA,CAAAA;ADxBpE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCyBH,IAAI,CAACC,UAAU,CAAA,CAAA,CAAGC,aAAa,CAAE,CAA6DC,CAAAA,EAAAA,CAAAA,oBAAAA,CAAAA,OAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,KAAK,CAACC,OAAO,CAAA,CAAA,CAC5GJ,KAAAA,CAAQ,CAAA,CAAA,CAAA,IAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA;ADzBpB,CC0BG,CAAA,CAAA,CAAA,CAAA;AAEF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AD1BD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI;AACxE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;AACvG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI;AACxD,CAAC,CAAC,CAAC,CAAC,CC4BKK,eAA4C,CAAA,CAAA,CAAA,GAAIC,CAAAA,GAAM,CAAA,CAAA;AAE9D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AD5BD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI;AACpH,CAAC,CAAC,CAAC,CAAC,CC8BKC,8BAA8F,CAAA,CAAA,CAAA,GAAID,CAAAA,GAAM,CAAA,CAAA;AAEhH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AD9BD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI;AACnH,CCgCWE,CAAAA,CAAAA,CAAAA,CAAAA,2BAAAA,CAAAA,CAAAA,CAA4G,IAAK;AAE3H,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADhCD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI;AACpH,CCkCWC,CAAAA,CAAAA,CAAAA,CAAAA,4BAAAA,CAAAA,CAAAA,CAAuG,IAAK;AAOtH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADvCD,CAAC,CAAC,CAAC,CAAC,CAAC;AACL,CCyCCC,CAAAA,CAAAA,CAAAA,CAAAA,WAAAA,CAAaC,MAAc,CAAG;ADxC/B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCyCL,IAAI,CAACC,eAAe,CAAG,CAAA,CAAA,GAAA,CAAIN,GAAAA,CAAAA,CAAAA;AAE3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAKK,MAAOE,CAAAA,OAAO,CAACC,GAAG,CAAE,CAAsB,eAAA,CAAA,CAAA,CAAA,CAAA;ADzCjD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CC0CR,IAAI,CAACN,2BAA2B,CAAA,CAAA,CAAGG,MAAAA,CAAOI,MAAM,CAACC,GAAG,CAAE,CAAA,eAAA,CAAA,CAAA,CAAqBC,0BAA0B;ADzCxG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CC0CR,IAAI,CAACR,4BAA4B,CAAA,CAAA,CAAGE,MAAAA,CAAOI,MAAM,CAACC,GAAG,CAAE,CAAA,eAAA,CAAA,CAAA,CAAqBE,2BAA2B;AACxG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADzCF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CC2CL,IAAI,CAACC,OAAO,CAAA,CAAA,CAAGR,MAAAA;AACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACS,SAAS,CAAA,CAAA,CAAG,IAAI,CAACD,OAAO,CAACE,aAAa,CAAA,CAAA,CAAG,IAAI,CAACF,OAAO,CAACE,aAAa,CAACC,aAAa,CAAGC,CAAAA,CAAAA,MAAAA,CAAOC,QAAQ;AACxG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACL,OAAO,CAACJ,MAAM,CAACU,MAAM,CAAE,CAAA,UAAA,CAAA,SAAA,CAAA,CAAA,CAAwB,IAAI,CAACL,SAAS,CAACM,IAAI,CAAA;AD1CzE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CC4CLf,MAAOgB,CAAAA,EAAE,CAAE,CAAA,OAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AD3CxB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CC4CR,EAAK,CAAA,CAAA,IAAI,CAACjC,QAAQ,CAAG,CAAA;AACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACkC,OAAO,CAAA,CAAA;AACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AD5CD,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK;AC8C9F,CAAA,CAAA,CAAA,CAAA,CACD,gBAAOC,CAAkBC,aAA0B,CAAA,CAAEC,eAAuB,CAAS,CAAA;AACpF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMC,kBAAqBC,CAAAA,CAAAA,CAAAA,aAAAA,CAAe,IAAI,CAACb,SAAS,CAAE,CAAA,CAAA,GAAA,CAAA,CAAA;AD7C5D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CC+CLY,kBAAmBE,CAAAA,YAAY,CAAE,CAAkCH,IAAAA,CAAAA,EAAAA,CAAAA,UAAAA,CAAAA,WAAAA,CAAAA,CAAAA,CAAAA,eAAAA,CAAAA;AACnED,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,aAAAA,CAAcK,WAAW,CAAEH,kBAAAA,CAAAA;AAE3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC/B,UAAU,CAAA,CAAGC,CAAAA,aAAa,CAAE,CAAC,CAAA,IAAA,CAAA,EAAA,CAAA,UAAA,CAAA,CAAqB,CAAA,CAAG6B,eAAiB,CAAA,CAAA,CAAE,CAAC,CAAA,CAAIK,MAAM,CAAEN,aAAAA,CAAAA;AAE1F,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAClB,eAAe,CAACyB,GAAG,CAAEN,eAAiB,CAAA,CAAA;AAAEC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,kBAAAA;AD/C/C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CC+CwDM,YAAcR,CAAAA,CAAAA;AAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAC9F,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AD9CD,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK;AACxD,CCgDQS,CAAAA,CAAAA,CAAAA,CAAAA,2BAA6BR,CAAAA,eAAuB,CAAS,CAAA;AACnE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,CAAC,IAAI,CAACnB,eAAe,CAACE,GAAG,CAAEiB,eAAoB,CAAA,CAAA,CAAA;AACnD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AD/CF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCiDL,KAAM,CAAA,CAAA,CAAEC,kBAAkB,CAAA,CAAEM,YAAY,CAAE,CAAA,CAAA,CAAA,CAAG,IAAI,CAAC1B,eAAe,CAACI,GAAG,CAAEe,eAAAA,CAAAA;AAEvEC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,kBAAAA,CAAmBG,WAAW,CAAEG,YAAAA,CAAAA;AAChCN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,kBAAAA,CAAmBQ,MAAM,CAAA,CAAA;AAEzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC5B,eAAe,CAAC6B,MAAM,CAAEV,eAAAA,CAAAA;AAE7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,IAAI,CAACnB,eAAe,CAAC8B,IAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAI,CAAA,CAAA;AACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACC,iBAAiB,CAAA,CAAA;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADpDD,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO;ACsD/C,CAAA,CAAA,CAAA,CAAA,CACD,UAAiC,CAAA,CAAA,CAAA;AAChC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAK,CAAA,CAAA,CAAC,IAAI,CAACjD,QAAQ,CAAG,CAAA;ADrDxB,CCsDG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACA,QAAQ,CAAGuC,CAAAA,CAAAA,aAAAA,CAAe,IAAI,CAACb,SAAS,CAAE,CAAA,CAAA,GAAA,CAAO,CAAA,CAAA;ADrDzD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCsDXwB,KAAO,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,gBAAA,CAAA,OAAA;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADrDH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG;ACwDjI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAClD,QAAQ,CAACmD,SAAS,CAAG,CAAA,CAAA;ADtD7B,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC;AAC3D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG;AAChF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG;AAC9E,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;AACT,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,OAAO,CAAC;AACnD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;AACzG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG;AACxG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;AACV,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC;AAC1E,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG;AAC/F,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;AACV,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,EAAE,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG;AACjH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;AACT,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,OAAO,CAAC;AACjD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG;AACxF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;AACT,CAAC,CAAC,CCuDC,CAAC;AAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC1B,OAAO,CAACJ,MAAM,CAACC,GAAG,CAAE,CAAA,UAAA,CAAA,SAAA,CAAA,CAAA,CAA0B8B,WAAW,CAAE,IAAI,CAACpD,QAAQ,CAAA;AAC9E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADvDF,CCyDE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAO,IAAI,CAACA,QAAQ;AACrB,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADzDD,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ;AC2D9G,CAAA,CAAA,CAAA,CAAA,CACD,MAAsB,CAAA,CAAA,CAAA;AD1DvB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CC2DL,IAAI,CAACqD,6BAA6B,CAAE,IAAI,CAAC5B,OAAO,CAAC6B,EAAE,CAACC,kBAAkB,CAAA,CAAA,CAAA;AACtE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACC,eAAe,CAAA,CAAA;AD1DtB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU;AC6DpH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,IAAI,CAAC/B,OAAO,CAACJ,MAAM,CAACC,GAAG,CAAE,CAAA,UAAA,CAAA,SAAA,CAAA,CAAA,CAA6B,CAAA,CAAA,CAAA,CAAA,IAAI,CAACI,SAAS,CAACM,IAAI,CAAG,CAAA;AD3DnF,CC4DG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACN,SAAS,CAACM,IAAI,CAACyB,SAAS,CAACC,GAAG,CAAE,CAAA,EAAA,CAAA,UAAA,CAAA,CAAA;AD3DtC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CC4DR,IAAI,CAAChC,SAAS,CAACM,IAAI,CAAC2B,aAAa,CAAEF,SAAS,CAACC,GAAG,CAAE,CAAA,EAAA,CAAA,UAAA,CAAA,CAAA;AACnD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AD3DF,CC6DE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,IAAI,CAACjC,OAAO,CAACN,OAAO,CAACC,GAAG,CAAE,CAAa,MAAA,CAAA,CAAA,CAAA,CAAA;AAC3C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACwC,4CAA4C,CAAA,CAAA;AAClD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AD5DF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK;AACnG,CC+DE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,MAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,IAAI,CAACnC,OAAO,CAACN,OAAO,CAACC,GAAG,CAAE,CAAqB,cAAA,CAAA,CAAA,CAAA,CAAA;AACnD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACyC,8BAA8B,CAAA,CAAA;AACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AD9DF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK;AACnG,CCiEE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,MAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,IAAI,CAACpC,OAAO,CAACN,OAAO,CAACC,GAAG,CAAE,CAAwB,iBAAA,CAAA,CAAA,CAAA,CAAA;AACtD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC0C,iCAAiC,CAAA,CAAA;AACvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADhEF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK;AACnG,CCmEE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,IAAI,CAACrC,OAAO,CAACN,OAAO,CAACC,GAAG,CAAE,CAAA,UAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,IAAI,CAACK,OAAO,CAACN,OAAO,CAACG,GAAG,CAAE,CAAeyC,UAAAA,CAAAA,CAAAA,CAAAA,SAAS,CAAG,CAAA;ADlExG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCmER,KAAMC,CAAAA,kBAAAA,CAAqB,CAAA,CAAA,IAAI,CAACvC,OAAO,CAACN,OAAO,CAACG,GAAG,CAAE,CAAA,kBAAA,CAAA,CAAA;AAErD0C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,kBAAAA,CAAmBC,uBAAuB,CAAA,CAAA;ADnE7C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCqER,IAAI,CAAC/D,yBAAyB,CAAA,CAAA,CAAG,GAAIgE,CAAAA,cAAAA,CAAgB,IAAI,CAACzC,OAAO,CAAC0C,MAAM,CAAA;ADpE3E,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCsER,IAAI,CAACjE,yBAAyB,CAACkE,WAAW,CAAA,CAAA;AAC1CJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,kBAAAA,CAAmBK,eAAe,CAACC,iBAAiB,CAAE,IAAI,CAACpE,yBAAyB,CAAA;AAEpF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACuB,OAAO,CAAC8C,IAAI,CAAE,CAAA,OAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADtEjC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCuEX,IAAI,CAACrE,yBAAyB,CAAEsE,aAAa,CAAA,CAAA;AAC9C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADtEH,CCwEG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACrC,gBAAgB,CAAE,IAAI,CAACjC,yBAAyB,CAACuE,uBAAuB,CAAG,CAAA,CAAA,IAAA,CAAA,OAAA,CAAA,CAAA;AACjF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADvEF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK;AACnG,CC0EE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,MAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,IAAI,CAAChD,OAAO,CAACN,OAAO,CAACC,GAAG,CAAE,CAAqB,cAAA,CAAA,CAAA,CAAA,CAAA;AACnD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACsD,uBAAuB,CAAA,CAAA;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADzEF,CC2EE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,IAAI,CAACjD,OAAO,CAACN,OAAO,CAACC,GAAG,CAAE,CAAsB,eAAA,CAAA,CAAA,CAAA,CAAA;AD1EvD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK;AC4EpG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,MAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,CAAA,CAAA,CACA,EAAK,CAAA,CAAA,IAAI,CAACK,OAAO,CAACN,OAAO,CAACG,GAAG,CAAE,CAAA,eAAA,CAAoBqD,CAAAA,CAAAA,oBAAoB,CAAG,CAAA;AD3E7E,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS;AC6EjG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAClD,OAAO,CAACJ,MAAM,CAACC,GAAG,CAAE,CAAA,eAAA,CAAA,2BAAA,CAAA,CAAA,CAAA,CAAA;AAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACsD,iCAAiC,CAAA,CAAA;AACvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,IAAI,CAACnD,OAAO,CAACN,OAAO,CAACC,GAAG,CAAE,CAAqB,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACK,OAAO,CAACN,OAAO,CAACC,GAAG,CAAE,CAAwB,iBAAA,CAAA,CAAA,CAAA,CAAA;AACrG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACK,OAAO,CAACN,OAAO,CAACG,GAAG,CAAE,CAAA,aAAA,CAAA,CAAA,CAAkBW,EAAE,CAAE,CAAA,MAAA,CAAA,mBAAA,CAA8B,CAAA,CAAA,IAAI,CAAC9B,sBAAsB,CAAA;AAC1G,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AD7EF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK;ACgFzG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAM,KAAM0E,CAAAA,OAAAA,CAAW,EAAA,CAAA,IAAI,CAACpD,OAAO,CAACJ,MAAM,CAACC,GAAG,CAAE,CAAA,UAAA,CAAA,SAAA,CAA0BwD,CAAAA,CAAAA,QAAQ,CAAG;AD9EvF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO;AAC/F,CC+EG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CACCD,OAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY,IAAI,CAAC7E,QAAQ,CACzB,CAAA,CAAA,CAAA,CAAC6E,OAAAA,CAAQpB,SAAS,CAACsB,QAAQ,CAAE,CAAA,EAAA,CAAA,IAAA,CAAA,OAAA,CAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAACF,OAAAA,CAAQpB,SAAS,CAACsB,QAAQ,CAAE,CAAA,KAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,CAAA,MAAA,CAAA,QAAA,CAAA,GAAA,CAAA,GAAA,CAAA,MAAA,CAAA,KAAA,CAAA,EAAA,CAAA,KAAA,CAAA,YAAA,CAAA,OAAA,CAAA,IAAA,CAAA,KAAA,CAAA,OAAA,CAAA,UAAA;AAE3BF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAyBpE,KAAK,CAACC,OAAO,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,IAAA,CAC5C,CAAA,CAAA;ADnFL,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCoFX,IAAI,CAACC,eAAe,CAACgC,GAAG,CAAEkC,OAAAA,CAAAA,CAAwB,OAAEA,CAAyBpE,KAAK,CAACC,OAAO,CAAA;ADnF9F,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCoFTmE,OAAyBpE,CAAAA,KAAK,CAACC,OAAO,CAAA,CAAA,CAAG,CAAA,IAAA,CAAA;AAC5C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADnFF,CCqFE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,IAAI,CAACe,OAAO,CAACJ,MAAM,CAACC,GAAG,CAAE,CAAiC,UAAA,CAAA,eAAA,CAAA,CAAA,CAAA,CAAA;ADpFjE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCqFR,IAAI,CAACG,OAAO,CAACJ,MAAM,CAACC,GAAG,CAAE,CAAA,UAAA,CAAA,eAAA,CAAA,CAAA,CAAiC,IAAI,CAACf,UAAU,CAAA,CAAA,CAAA;AAC1E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADrFD,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS;ACuFtG,CAAA,CAAA,CAAA,CAAA,CACD,OAAuB,CAAA,CAAA,CAAA;ADtFxB,CCuFE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,IAAI,CAACkB,OAAO,CAACJ,MAAM,CAACC,GAAG,CAAE,CAAiC,UAAA,CAAA,eAAA,CAAA,CAAA,CAAA,CAAA;ADtFjE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCuFR,IAAI,CAACG,OAAO,CAACJ,MAAM,CAACC,GAAG,CAAE,CAAA,UAAA,CAAA,eAAA,CAAA,CAAA,CAAiC,IAAI,CAACf,UAAU,CAAA,CAAA,CAAA;AAC1E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADtFF,CCwFE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACmB,SAAS,CAACM,IAAI,CAACyB,SAAS,CAACX,MAAM,CAAE,CAAA,EAAA,CAAA,UAAA,CAAA,CAAA;ADvFxC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCwFL,IAAI,CAACpB,SAAS,CAACM,IAAI,CAAC2B,aAAa,CAAEF,SAAS,CAACX,MAAM,CAAE,CAAA,EAAA,CAAA,UAAA,CAAA,CAAA;ADvFvD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK;AACnG,CC0FE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,MAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,IAAI,CAACrB,OAAO,CAACN,OAAO,CAACC,GAAG,CAAE,CAAwB,iBAAA,CAAA,CAAA,CAAA,CAAA;AACtD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC4D,uCAAuC,CAAA,CAAA;AAC7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADzFF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK;AC4FjG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,MAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,CAAA,CAAA,CACA,EAAK,CAAA,CAAA,IAAI,CAAC/E,mBAAmB,CAAG,CAAA;AAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACgF,sBAAsB,CAAA,CAAA;AAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AD3FF,CC6FE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,IAAI,CAACxD,OAAO,CAACN,OAAO,CAACC,GAAG,CAAE,CAAsB,eAAA,CAAA,CAAA,CAAA,CAAA;AACpD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC8D,gCAAgC,CAAA,CAAA;AACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,IAAI,CAACzD,OAAO,CAACN,OAAO,CAACC,GAAG,CAAE,CAAqB,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACK,OAAO,CAACN,OAAO,CAACC,GAAG,CAAE,CAAwB,iBAAA,CAAA,CAAA,CAAA,CAAA;AACrG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACK,OAAO,CAACN,OAAO,CAACG,GAAG,CAAE,CAAA,aAAA,CAAA,CAAA,CAAkB6D,GAAG,CAAE,CAAA,MAAA,CAAA,mBAAA,CAA8B,CAAA,CAAA,IAAI,CAAChF,sBAAsB,CAAA;AAC3G,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAM,KAAMkC,CAAAA,eAAmB,CAAA,EAAA,CAAA,IAAI,CAACnB,eAAe,CAACkE,IAAI,CAAA,CAAK,CAAA;AD9F/D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CC+FR,IAAI,CAACvC,2BAA2B,CAAER,eAAAA,CAAAA;AACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AD9FF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCgGL,IAAI,CAACZ,OAAO,CAAC6B,EAAE,CAAC+B,IAAI,CAACC,OAAO,CAAEC,cAAc,CAC3C,IAAI,CAAC9D,OAAO,CAACJ,MAAM,CAACC,GAAG,CAAE,CAAuC,OAAA,CAAA,sBAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAO,CAAA,CAAA,CAAA,MAAA,CAAW,CAAA,CAAA,CAAA,CAAA,OAAA,CAAA,CAAA;AAGnF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,IAAI,CAACJ,eAAe,CAAC8B,IAAI,CAAA,CAAA,CAAA,CAAA,CAAK,CAAI,CAAA,CAAA;AACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACC,iBAAiB,CAAA,CAAA;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADlGF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;AACxH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;AACjG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS;AAC9G,CCoGE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAM,KAAM,CAAA,CAAEuC,QAAUlF,CAAAA,CAAAA,KAAAA,CAAO,CAAI,EAAA,CAAA,IAAI,CAACO,8BAA8B,CAAG;AACxE2E,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,QAAAA,CAASC,QAAQ,CAAEnF,KAAAA,CAAMoF,UAAU,CAAEpF,CAAAA,KAAAA,CAAMqF,SAAS,CAAA;AACrD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADnGF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCqGL,IAAI,CAAC9E,8BAA8B,CAAC+E,KAAK,CAAA,CAAA;ADpG3C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS;AACjG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK;AACnG,CCuGE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,IAAI,CAACnE,OAAO,CAACN,OAAO,CAACC,GAAG,CAAE,CAAA,UAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,IAAI,CAACK,OAAO,CAACN,OAAO,CAACG,GAAG,CAAE,CAAeyC,UAAAA,CAAAA,CAAAA,CAAAA,SAAS,CAAG,CAAA;ADtGxG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCuGR,KAAMC,CAAAA,kBAAAA,CAAqB,CAAA,CAAA,IAAI,CAACvC,OAAO,CAACN,OAAO,CAACG,GAAG,CAAE,CAAA,kBAAA,CAAA,CAAA;AAErD0C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,kBAAAA,CAAmBC,uBAAuB,CAAA,CAAA;AAC1CD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,kBAAAA,CAAmBK,eAAe,CAACC,iBAAiB,CAAE,IAAI,CAAC7C,OAAO,CAAC6B,EAAE,CAAC+B,IAAI,CAACrD,IAAI,CAAA;ADvGlF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCyGR,IAAI,CAAC9B,yBAAyB,CAAEsE,aAAa,CAAA,CAAA;ADxGhD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCyGR,IAAI,CAACtE,yBAAyB,CAAA,CAAEgC,OAAAA,CAAAA,CAAAA;AACjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADxGF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI;AACtF,CC0GE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,IAAI,CAACT,OAAO,CAACN,OAAO,CAACC,GAAG,CAAE,CAAa,MAAA,CAAA,CAAA,CAAA,CAAA;AAC3C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACyE,8CAA8C,CAAA,CAAA;AACpD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AD1GD,CAAC,CAAC,CAAC,CAAC,CAAC;AC4GH,CAAA,CAAA,CAAA,CAAA,CACD,OAAuB,CAAA,CAAA,CAAA;AACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAM,CAAA,CAAA,KAAA,CAAM,CAAEvD,CAAAA,kBAAkB,CAAA,CAAEM,YAAY,CAAA,CAAE,CAAI,EAAA,CAAA,IAAI,CAAC1B,eAAe,CAAC4E,MAAM,CAAA,CAAK,CAAA;AACnFxD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,kBAAAA,CAAmBQ,MAAM,CAAA,CAAA;AACzBF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,YAAAA,CAAaE,MAAM,CAAA,CAAA;AACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACG,iBAAiB,CAAA,CAAA;AD5GxB,CC8GE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACvB,SAAS,CAACM,IAAI,CAACyB,SAAS,CAACX,MAAM,CAAE,CAAA,EAAA,CAAA,UAAA,CAAA,CAAA;AD7GxC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CC8GL,IAAI,CAACpB,SAAS,CAACM,IAAI,CAAC2B,aAAa,CAAEF,SAAS,CAACX,MAAM,CAAE,CAAA,EAAA,CAAA,UAAA,CAAA,CAAA;AACtD,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AD9GD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO;AAC/H,CAAC,CAAC;AACF,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC;AAClF,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,aAAa,CAAC,QAAQ;ACgHrD,CAAA,CAAA,CAAA,CAAA,CACD,eAAyC,CAAA,CAAA,CAAA;AD/G1C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCgHL,MAAO,CAAA,IAAI,CAACvC,UAAU,CAAA,CAAA;AACvB,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADhHD,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS;ACkHxC,CAAA,CAAA,CAAA,CAAA,CACD,iBAAkC,CAAA,CAAA,CAAA;AACjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAK,CAAA,CAAA,CAAC,IAAI,CAACP,QAAQ,CAAG,CAAA;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADjHF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCmHL,IAAI,CAACA,QAAQ,CAAC8C,MAAM,CAAA,CAAA;ADlHtB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCmHL,IAAI,CAAC9C,QAAQ,CAAA,CAAA,CAAG,IAAA;ADlHlB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS;AACpE,CCoHE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAM,KAAM,CAAA,CAAE6E,OAASkB,CAAAA,CAAAA,YAAAA,CAAc,CAAI,EAAA,CAAA,IAAI,CAACpF,eAAe,CAAG;ADnHlE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCoHRkE,OAAQpE,CAAAA,KAAK,CAACC,OAAO,CAAA,CAAA,CAAGqF,YAAAA;AACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADnHF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCqHL,IAAI,CAACpF,eAAe,CAACiF,KAAK,CAAA,CAAA;AAC3B,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADrHD,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI;ACuH5F,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,QAAA,CAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,GAAA,CAAA,UAAA,CAAA,OAAA,CAAA,UAAA,CAAA,EAAA,CAAA,WAAA,CAAA,IAAA,CAAA,KAAA;ADrHF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CCwH1C,8BAA+C,CAAA,CAAA,CAAA;ADvHhD,CCwHE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMI,mBAAAA,CAAsBzD,CAAAA,CAAAA,aAAeT,CAAAA,QAAAA,CAAAA,CAAU,CAAA,GAAA,CAAO,CAAA,CAAA;ADvH9D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCwHRoB,KAAO,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,gBAAA,CAAA,OAAA,CAAA,IAAA;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADvHF,CCyHE8C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,mBAAoB7C,CAAAA,SAAS,CAAG,CAAA,CAAA;ADxHlC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,GAAG;AAC1E,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG;AACxF,CAAC,CCyHC,CAAC;AAEDrB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,QAAAA,CAAStB,aAAa,CAAE,CAAA,CAAA,IAAA,CAAA,EAAA,CAAA,UAAA,CAAA,CAAA,IAAA,CAAA,OAAA,CAAA,MAAA,CAAA,CAAA,CAAgD4C,CAAAA,CAAAA,WAAW,CAAE4C,mBAAAA,CAAAA;ADzHvF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CC2HL,KAAMC,CAAAA,cAAAA,CAAiB,CAAA,CAAA,IAAI,CAACxE,OAAO,CAACN,OAAO,CAACG,GAAG,CAAE,CAAA,cAAA,CAAA,CAAA;AAEjD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACa,gBAAgB,CAAE8D,cAAAA,CAAeZ,IAAI,CAACR,OAAO,CAAG,CAAA,CAAA,QAAA,CAAA,IAAA,CAAA,CAAA;AACtD,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AD5HD,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI;AC8H/F,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,QAAA,CAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,GAAA,CAAA,UAAA,CAAA,OAAA,CAAA,UAAA,CAAA,EAAA,CAAA,WAAA,CAAA,IAAA,CAAA,KAAA;AD5HF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CC+H1C,iCAAkD,CAAA,CAAA,CAAA;AD9HnD,CC+HE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMqB,4BAAAA,CAA+B3D,CAAAA,CAAAA,aAAeT,CAAAA,QAAAA,CAAAA,CAAU,CAAA,GAAA,CAAO,CAAA,CAAA;AD9HvE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CC+HRoB,KAAO,CAAA,CAAA,CAAA,EAAA,CAAA,gBAAA,CAAA,OAAA,CAAA,IAAA,CAAA,EAAA,CAAA,gBAAA,CAAA,OAAA,CAAA,IAAA,CAAA,CAAA,EAAA,CAAA,MAAA;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AD9HF,CCgIEgD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,4BAA6B/C,CAAAA,SAAS,CAAG,CAAA,CAAA;AD/H3C,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,oBAAoB,CAAC,OAAO,CAAC,MAAM,CAAC;AAC5F,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AACb,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;AACR,CAAC,CCgIC,CAAC;AD/HH,CCiIE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMgD,0BAAAA,CAA6B5D,CAAAA,CAAAA,aAAeT,CAAAA,QAAAA,CAAAA,CAAU,CAAA,GAAA,CAAO,CAAA,CAAA;ADhIrE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCiIRoB,KAAO,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,gBAAA,CAAA,OAAA,CAAA,IAAA,CAAA,EAAA,CAAA,oBAAA,CAAA,OAAA,CAAA,OAAA;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADhIF,CCkIEiD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,0BAA2BhD,CAAAA,SAAS,CAAG,CAAA,CAAA;ADjIzC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG;AAC9F,CAAC,CCkIC,CAAC;AAEDrB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,QAAAA,CAAStB,aAAa,CAAE,CAAA,CAAA,IAAA,CAAA,EAAA,CAAA,UAAA,CAAA,CAAA,IAAA,CAAA,OAAA,CAAA,CAAA,CAAyC4C,CAAAA,CAAAA,WAAW,CAAE+C,0BAAAA,CAAAA;AAC9ErE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,QAAAA,CAAStB,aAAa,CAAE,CAAA,CAAA,IAAA,CAAA,EAAA,CAAA,UAAA,CAAA,CAAA,IAAA,CAAA,OAAA,CAAA,MAAA,CAAA,CAAA,CAAgD4C,CAAAA,CAAAA,WAAW,CAAE8C,4BAAAA,CAAAA;ADlIvF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCoIL,KAAME,CAAAA,iBAAAA,CAAoB,CAAA,CAAA,IAAI,CAAC3E,OAAO,CAACN,OAAO,CAACG,GAAG,CAAE,CAAA,iBAAA,CAAA,CAAA;AACpD8E,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,iBAAAA,CAAkBf,IAAI,CAACgB,wBAAwB,CAAGvE,CAAAA,CAAAA,QAAAA,CAAStB,aAAa,CAAE,CAAA,CAAA,IAAA,CAAA,EAAA,CAAA,UAAA,CAAA,CAAA,IAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA;AAE1E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC2B,gBAAgB,CAAEiE,iBAAAA,CAAkBf,IAAI,CAACR,OAAO,CAAG,CAAA,CAAA,QAAA,CAAA,OAAA,CAAA,CAAA;AACzD,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADrID,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI;ACuI9F,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,QAAA,CAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,GAAA,CAAA,UAAA,CAAA,OAAA,CAAA,UAAA,CAAA,EAAA,CAAA,WAAA,CAAA,IAAA,CAAA,KAAA;ADrIF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CCwI1C,uCAAwD,CAAA,CAAA,CAAA;ADvIzD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCwIL,KAAMuB,CAAAA,iBAAAA,CAAoB,CAAA,CAAA,IAAI,CAAC3E,OAAO,CAACN,OAAO,CAACG,GAAG,CAAE,CAAA,iBAAA,CAAA,CAAA;AACpD8E,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,iBAAAA,CAAkBf,IAAI,CAACgB,wBAAwB,CAAA,CAAA,CAAGD,iBAAkBf,CAAAA,IAAI,CAACR,OAAO;AACjF,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADxID,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI;AC0I5F,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,QAAA,CAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,GAAA,CAAA,UAAA,CAAA,OAAA,CAAA,UAAA,CAAA,EAAA,CAAA,WAAA,CAAA,IAAA,CAAA,KAAA;ADxIF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CC2I1C,uBAAkC,CAAA,CAAA,CAAA;AD1InC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CC2IL,KAAMyB,CAAAA,cAAAA,CAAiB,CAAA,CAAA,IAAI,CAAC7E,OAAO,CAACN,OAAO,CAACG,GAAG,CAAE,CAAA,cAAA,CAAA,CAAA;AAEjD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACrB,mBAAmB,CAAG,CAAA,CAAA,GAAA,CAAIW,GAAAA,CAAK0F,cAAAA,CAAeC,OAAO,CAAA;AD3I5D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO;AACrC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CC6IL,KAAMC,CAAAA,aAAAA,CAAgB,CAAA,CAAA,IAAI,CAAC/E,OAAO,CAACN,OAAO,CAACG,GAAG,CAAE,CAAA,OAAA,CAAA,CAAA;AD5IlD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CC8IL,EAAK,CAAA,CAAA,CAACkF,aAAcC,CAAAA,SAAS,CAAG,CAAA;AAC/BD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,aAAAA,CAAcE,YAAY,CACzB,IAAI,CAACnG,UAAU,CAAA,CAAA,CAAGC,aAAa,CAAE,CAAA,CAAA,IAAA,CAAA,EAAA,CAAA,UAAA,CAAA,CAAA,KAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAMmG,CAAAA,kBAAAA,CAAqB,CAAA,CAAA,GAAA,CAAI/F,GAAAA,CAAAA,CAAAA;AAE/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAM,KAAM,CAAA,CAAEgG,MAAQC,CAAAA,CAAAA,IAAAA,CAAM,CAAI,EAAA,CAAA;AAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC5G;ADhJ5C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCgJ0D,CAAG;AD/IrE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS;ACiJjF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK4G,IAAKC,CAAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAKR,cAAAA,CAAeS,aAAa,CAAG,CAAA;AACnDJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,kBAAAA,CAAmBhE,GAAG,CAAEiE,MAAQC,CAAAA,CAAAA,IAAAA,CAAKC,MAAM,CAAA;AAC5C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEAR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,cAAAA,CAAeU,aAAa,CAAA,CAAA;ADhJ9B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;AACxI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCkJL,EAAA,CAAA,CAAKL,kBAAAA,CAAmBvF,GAAG,CAAE,CAAA,WAAA,CAAkB,CAAA,CAAA,CAAA;AAC9CkF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,cAAAA,CAAeW,QAAQ,CAAE,CAAeN,WAAAA,CAAAA,CAAAA,CAAAA,kBAAAA,CAAmBrF,GAAG,CAAE,CAAA,WAAA,CAAA,CAAA,CAAA;ADjJnE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCqJD,CAAA,IAAA,CAAA,EAAA,CAAA,CAAKqF,kBAAmB3D,CAAAA,IAAI,CAAG,CAAA;AACnCsD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,cAAAA,CAAeW,QAAQ,CAAE,CAAA,WAAA,CACxBC,CAAAA,CAAAA,CAAAA,UAAc,CAAA,CAAA,CAAA;AAAKP,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,kBAAAA,CAAmBb,MAAM,CAAA;AAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAACqB,IAAI,CAAEL,CAAAA,MAAAA,CAAUA,CAAAA,CAAAA,MAAQI,CAAAA,UAAAA,CAAAA,CAAAA,CAAAA;ADnJ7E,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCuJD,CAAA,IAAA,CAAA;AACJZ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,cAAAA,CAAec,QAAQ,CAAE,CAAA,WAAA,CAAA,CAAA;AAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACjF,gBAAgB,CAAIqE,aAAAA,CAAcC,SAAS,CAAEY,iBAAiB,CAAmB,CAAA,CAAA,KAAA,CAAA,OAAA,CAAA,CAAA;AACvF,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADxJD,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG;AC0JjD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,QAAA,CAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,GAAA,CAAA,UAAA,CAAA,OAAA,CAAA,UAAA,CAAA,EAAA,CAAA,WAAA,CAAA,IAAA,CAAA,KAAA;ADxJF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CC2J1C,sBAAiC,CAAA,CAAA,CAAA;AD1JlC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CC2JL,KAAMf,CAAAA,cAAAA,CAAiB,CAAA,CAAA,IAAI,CAAC7E,OAAO,CAACN,OAAO,CAACG,GAAG,CAAE,CAAA,cAAA,CAAA,CAAA;AAEjDgF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,cAAAA,CAAeU,aAAa,CAAA,CAAA;AAE5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAM,KAAM,CAAA,CAAEJ,MAAQC,CAAAA,CAAAA,IAAAA,CAAM,CAAI,EAAA,CAAA;AAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC5G;AD3J5C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CC2J0D,CAAG;AAClEqG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,cAAAA,CAAeW,QAAQ,CAAEL,MAAQC,CAAAA,CAAAA,IAAAA,CAAKC,MAAM,CAAA;AAC7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AD1JF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CC4JL,IAAI,CAAC7G,mBAAmB,CAAA,CAAA,CAAG,IAAA;AAC5B,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AD5JD,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI;AC8J7F,CAAA,CAAA,CAAA,CAAA,CACD,iCAAkD,CAAA,CAAA,CAAA;AD7JnD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO;AACxD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG;AAC7B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO;AAC/D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK;AACnG,CC+JE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACwB,OAAO,CAACJ,MAAM,CAACsB,GAAG,CAAE,CAA8C,eAAA,CAAA,0BAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACtE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM2E,oBAAuB,CAAA,CAAA,CAAA,KAAA,CAAM,IAAI,CAACxG,2BAA2B,CAAA,CAAA;AD9JtE,CCgKG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,IAAI,CAACW,OAAO,CAACN,OAAO,CAACC,GAAG,CAAE,CAAwB,iBAAA,CAAA,CAAA,CAAA,CAAA;AD/J1D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCgKT,IAAI,CAACb,UAAU,CAAA,CAAGC,CAAAA,aAAa,CAAE,CAA6DC,CAAAA,EAAAA,CAAAA,oBAAAA,CAAAA,OAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,KAAK,CAACC,OAAO,CAAA,CAAA,CAAG,CAAA,IAAA,CAAA;AACjH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AD/JH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCiKR,IAAI,CAACmC,2BAA2B,CAAE,CAAA,QAAA,CAAA,CAAA;ADhKrC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCiKR,IAAI,CAACA,2BAA2B,CAAE,CAAA,OAAA,CAAA,CAAA;ADhKrC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCiKR,IAAI,CAACA,2BAA2B,CAAE,CAAA,KAAA,CAAA,OAAA,CAAA,CAAA;ADhKrC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCkKR,EAAK,CAAA,CAAA,IAAI,CAAC5C,mBAAmB,CAAG,CAAA;AAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACgF,sBAAsB,CAAA,CAAA;AAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADjKH,CCmKG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,IAAI,CAACxD,OAAO,CAAC6B,EAAE,CAAC+B,IAAI,CAACkC,WAAW,CAAG,CAAA;ADlK3C,CCmKI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC9F,OAAO,CAAC6B,EAAE,CAAC+B,IAAI,CAACkC,WAAW,CAACC,OAAO,CAAA,CAAA;AACzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACrF,gBAAgB,CAAEmF,oBAAAA,CAAsBhE,EAAE,CAACC,kBAAkB,CAAA,CAAK,CAAA,CAAA,CAAA,QAAA,CAAA,CAAA;ADnK1E,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCoKR,IAAI,CAACpB,gBAAgB,CAAEmF,oBAAsBhE,CAAAA,EAAE,CAAC+B,IAAI,CAACC,OAAO,CAACT,OAAO,CAAA,CAAG,CAAA,OAAA,CAAA,CAAA;ADnK1E,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCoKR,IAAI,CAAC1C,gBAAgB,CAAE,IAAI,CAACV,OAAO,CAACJ,MAAM,CAACC,GAAG,CAAE,CAAA,eAAA,CAAA,sBAAA,CAA6C,CAAA,CAAA,CAAA,CAAA,KAAA,CAAA,OAAA,CAAA,CAAA;ADnKhG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCqKR,MAAA,CAAOgG,oBAAAA;AACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADpKF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO;AAC/D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG;AAC5B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO;AACxD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK;AACnG,CCuKE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC7F,OAAO,CAACJ,MAAM,CAACsB,GAAG,CAAE,CAA+C,eAAA,CAAA,2BAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADtK1E,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCuKR,IAAI,CAACE,2BAA2B,CAAE,CAAA,OAAA,CAAA,CAAA;ADtKrC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCuKR,IAAI,CAACA,2BAA2B,CAAE,CAAA,QAAA,CAAA,CAAA;ADtKrC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCuKR,IAAI,CAACA,2BAA2B,CAAE,CAAA,KAAA,CAAA,OAAA,CAAA,CAAA;ADtKrC,CCwKG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,IAAI,CAACpB,OAAO,CAACN,OAAO,CAACC,GAAG,CAAE,CAAwB,iBAAA,CAAA,CAAA,CAAA,CAAA;ADvK1D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCwKT,IAAI,CAACb,UAAU,CAAA,CAAGC,CAAAA,aAAa,CAAE,CAA6DC,CAAAA,EAAAA,CAAAA,oBAAAA,CAAAA,OAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA,KAAK,CAACC,OAAO,CAAA,CAAA,CAAG,CAAA,CAAA;AACjH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADvKH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCyKR,IAAI,CAACyB,gBAAgB,CAAE,IAAI,CAACV,OAAO,CAAC6B,EAAE,CAACC,kBAAkB,CAAK,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,CAAA;AAC9D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACpB,gBAAgB,CAAE,IAAI,CAACV,OAAO,CAAC6B,EAAE,CAAC+B,IAAI,CAACC,OAAO,CAAET,OAAO,CAAA,CAAG,CAAA,OAAA,CAAA,CAAA;ADxKlE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CC0KR,KAAM,CAAA,IAAI,CAAC9D,4BAA4B,CAAA,CAAA;ADzK1C,CC2KG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,IAAI,CAACU,OAAO,CAACN,OAAO,CAACC,GAAG,CAAE,CAAqB,cAAA,CAAA,CAAA,CAAA,CAAA;AACnD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACsD,uBAAuB,CAAA,CAAA;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AD1KH,CC4KG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,IAAI,CAACjD,OAAO,CAAC6B,EAAE,CAAC+B,IAAI,CAACkC,WAAW,CAAG,CAAA;AD3K3C,CC4KI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC9F,OAAO,CAAC6B,EAAE,CAAC+B,IAAI,CAACkC,WAAW,CAACE,MAAM,CAAA,CAAA;AACxC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AD5KD,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM;AC8KvE,CAAA,CAAA,CAAA,CAAA,CACD,gCAAiD,CAAA,CAAA,CAAA;AD7KlD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK;AACnG,CC+KE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAChG,OAAO,CAACJ,MAAM,CAACsB,GAAG,CAAE,CAA8C,eAAA,CAAA,0BAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AD9KzE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CC+KR,MAAO,CAAA,IAAI,CAAC7B,2BAA2B,CAAA,CAAA;AACxC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AD9KF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK;AACnG,CCiLE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACW,OAAO,CAACJ,MAAM,CAACsB,GAAG,CAAE,CAA+C,eAAA,CAAA,2BAAA,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADhL1E,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCiLR,MAAO,CAAA,IAAI,CAAC5B,4BAA4B,CAAA,CAAA;AACzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADjLD,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI;AAC1F,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO;ACmLrE,CAAA,CAAA,CAAA,CAAA,CACD,4CAA6D,CAAA,CAAA,CAAA;ADlL9D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCmLL,KAAM2G,CAAAA,MAAAA,CAAS,CAAA,CAAA,IAAI,CAACjG,OAAO,CAACN,OAAO,CAACG,GAAG,CAAE,CAAA,MAAA,CAAA,CAAA;AAEzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACqG,qBAAqB,CAAA,CAAA;AAE1BD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAOzF,EAAE,CAAE,CAAA,MAAA,CAAA,MAAA,CAAA,CAAiB,CAAA,IAAI,CAAC2F,4BAA4B,CAAE,CAAA;ADpLjE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCoLwDC,QAAU,CAAA,CAAA,CAAA,OAAA;AAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACtF,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADnLD,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI;ACqLjF,CAAA,CAAA,CAAA,CAAA,CACD,8CAA+D,CAAA,CAAA,CAAA;ADpLhE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCqLL,KAAMH,CAAAA,MAAAA,CAAS,CAAA,CAAA,IAAI,CAACjG,OAAO,CAACN,OAAO,CAACG,GAAG,CAAE,CAAA,MAAA,CAAA,CAAA;ADpL3C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCqLL,KAAMwG,CAAAA,UAAAA,CAAaJ,CAAAA,CAAAA,MAAAA,CAAOrC,IAAI;AAE9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAKyC,UAAcA,CAAAA,CAAAA,CAAAA,CAAAA,UAAAA,CAAWC,QAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,IAAO,CAAA,CAAA;ADrLpD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCsLRD,UAAWC,CAAAA,QAAQ,CAAGC,CAAAA,CAAAA,kBAAAA,CAAmBC,eAAe;AACzD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAKH,UAAa,CAAA,CAAA;AACjBA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,UAAAA,CAAWI,cAAc,CAAA,CAAA;AAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEAR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAOvC,GAAG,CAAE,CAAA,MAAA,CAAA,MAAA,CAAiB,CAAA,CAAA,IAAI,CAACyC,4BAA4B,CAAA;AAC/D,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADxLD,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK;AAC3H,CC0LQA,CAAAA,CAAAA,CAAAA,CAAAA,4BAAAA,CAAAA,CAAAA,CAA+B,IAAI,CAACO,qBAAqB,CAACC,IAAI,CAAE,IAAI,CAAG;AAE9E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AD1LD,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW;AC4L3C,CAAA,CAAA,CAAA,CAAA,CACD,qBAA+BhI,CAAAA,IAAe,CAAA,CAAEC,KAAa,CAAA,CAAEgI,MAAe,CAAS,CAAA;AACtF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAKA,MAAS,CAAA,CAAA;AACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACV,qBAAqB,CAAA,CAAA;AAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AD5LD,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ;AAC5F,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM;AACjG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO;AC8L5F,CAAA,CAAA,CAAA,CAAA,CACD,qBAAsC,CAAA,CAAA,CAAA;AD7LvC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CC8LL,KAAMD,CAAAA,MAAAA,CAAS,CAAA,CAAA,IAAI,CAACjG,OAAO,CAACN,OAAO,CAACG,GAAG,CAAE,CAAA,MAAA,CAAA,CAAA;AD7L3C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CC8LL,KAAMwG,CAAAA,UAAAA,CAAaJ,CAAAA,CAAAA,MAAAA,CAAOrC,IAAI;AAE9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,CAACyC,UAAcA,CAAAA,CAAAA,CAAAA,CAAAA,UAAAA,CAAWC,QAAQ,CAAKC,CAAAA,CAAAA,CAAAA,CAAAA,kBAAAA,CAAmBC,eAAe,CAAG,CAAA;AAChF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAMK,CAAAA,2BAAAA,CAA8B,CAAA,CAAA,GAAA,CAAIC,IAAAA,CAAM,IAAI,CAACvI,QAAQ,CAAA,CAAIwI,UAAU,CAAA,CAAA;AACzE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAMC,CAAAA,mBAAAA,CAAsB,CAAA,CAAA,GAAA,CAAIF,IAAAA,CAAMzG,QAAAA,CAAStB,aAAa,CAAE,CAAA,CAAA,EAAA,CAAA,oBAAA,CAAA,CAAA,CAAA,CAA8CgI,UAAU,CAAA,CAAA;AD/LxH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCgML,KAAA,CAAME,UAAAA,CAAAA,CAAAA,CAAa,GAAIH,CAAAA,IAAMT,CAAAA,UAAAA,CAAWjD,OAAO,CAAErE,aAAa,CAAE,CAAA,CAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAA,CAAgCgI,UAAU,CAAA,CAAA;AD/L5G,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCgML,KAAA,CAAMG,YAAAA,CAAAA,CAAAA,CAAe,GAAIJ,CAAAA,IAAMzG,CAAAA,QAAAA,CAAStB,aAAa,CAAE,CAAA,CAAA,EAAA,CAAA,oBAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CACrDoI,2BAA2B,CAAA,CAAGJ,CAAAA,UAAU,CAAA,CAAA,CAAIK,KAAK,CAClD,CAAA,CAAA,GAAA,CAAIN,IAAMzG,CAAAA,QAAAA,CAAStB,aAAa,CAAE,CAAA,CAAA,EAAA,CAAA,oBAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAsDgI,UAAU,CAAA,CAAA,CAAIK,KAAK;ADjM9G,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCmML,EAAA,CAAA,CAAKP,2BAAAA,CAAAA,CAAAA,CAAAA,CAA+BG,mBAAAA,CAAAA,CAAAA,CAAAA,CAAuBC,UAAa,CAAA,CAAA;AACvEZ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,UAAAA,CAAWC,QAAQ,CAAA,CAAA,CAAG,IAAA;AAEtBD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,UAAAA,CAAWgB,MAAM,CAChBR,2BAA4BS,CAAAA,IAAI,CAAGT,CAAAA,CAAAA,2BAA4BO,CAAAA,KAAK,CAAA,CAAA,CAAGH,UAAAA,CAAWG,KAAK,CAAA,CAAA,CAAG/I,aAAgB6I,CAAAA,CAAAA,CAAAA,YAAAA,CAC1GF,CAAAA,mBAAAA,CAAoBO,GAAG,CAAA;AAEzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ADvMD,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO;AACpE,CCyMS3F,CAAAA,CAAAA,CAAAA,CAAAA,6BAA+B4F,CAAAA,UAAuB,CAAS,CAAA;ADxMxE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CCyML,GAAIpE,CAAAA,OAAAA,CAAUoE,CAAAA,CAAAA,UAAAA,CAAWtF,aAAa;AAEtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,CAACkB,OAAU,CAAA,CAAA;AACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAQA,OAAU,CAAA;AACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMqE,SAAYrE,CAAAA,CAAAA,CAAAA,OAAAA,CAAQpE,KAAK,CAACyI,SAAS,CAAA,CAAA,CAAA,CAAIrH,MAAOsH,CAAAA,MAAM,CAACC,gBAAgB,CAAEvE,OAAAA,CAAAA,CAAUqE,SAAS;AAChG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMG,SAAYxE,CAAAA,CAAAA,CAAAA,OAAAA,CAAQpE,KAAK,CAAC4I,SAAS,CAAA,CAAA,CAAA,CAAIxH,MAAOsH,CAAAA,MAAM,CAACC,gBAAgB,CAAEvE,OAAAA,CAAAA,CAAUwE,SAAS;AD1MnG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS;AC6M5H,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CACCH,SAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,CACdA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CACdG,CAAAA,CAAAA,CAAAA,SAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,CACdA,SAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,CAAA,MAAA,CACb,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACxI,8BAA8B,CAAC8B,GAAG,CAAEkC,OAAS,CAAA,CAAA;AACjDa,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,CAAYb,OAAAA,CAAQa,UAAU;AAC9BC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAWd,CAAAA,OAAAA,CAAQc;AACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAO,EAAKd,CAAAA,CAAAA,OAAAA,CAAQyE,OAAO,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,IAAA,CAAS,CAAA,CAAA;AACxC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACzI,8BAA8B,CAAC8B,GAAG,CAAEkC,OAAS,CAAA,CAAA;AACjDa,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,UAAAA,CAAAA,CAAYb,OAAAA,CAAQa,UAAU;AAC9BC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,SAAAA,CAAWd,CAAAA,OAAAA,CAAQc;AACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEAd,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,OAAAA,CAAAA,CAAAA,CAAUA,OAAAA,CAAQlB,aAAa;AAChC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA;AACD;;ACjrBA,CAAA,CAAA;AFkeA,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO;AAC7C,CAAC,CAAC,CAAC,CEheY,KAAM4F,CAAAA,oBAA6BxJ,CAAAA,OAAAA,CAAAA,qBAAAA,CAAAA;AACjD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AFieD,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ;AE/dpB,CAAA,CAAA,CAAA,CAAA,CACD,OAAmD;AAEnD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AF+dD,CAAC,CAAC,CAAC,CAAC,CAAC;AACL,CE7dCiB,CAAAA,CAAAA,CAAAA,CAAAA,WAAAA,CAAaC,MAAqB,CAAG;AACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAK,CAAEA,MAAAA,CAAAA;AF8dT,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CE5dL,IAAI,CAACQ,OAAO,CAAA,CAAA,CAAGR,MAAAA;AAChB,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AF4dD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI;AE1drE,CAAA,CAAA,CAAA,CAAA,CACD,eAAkD,CAAA,CAAA,CAAA;AACjD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMuI,QAAW,CAAA,CAAA,CAAA,IAAI,CAAC/H,OAAO,CAAC6B,EAAE;AF2dlC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CE1dL,KAAMmG,CAAAA,YAAAA,CAAeD,CAAAA,CAAAA,QAAAA,CAASnE,IAAI;AF2dpC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK;AACnG,CExdE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,IAAI,CAAC5D,OAAO,CAACN,OAAO,CAACC,GAAG,CAAE,CAAA,UAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,IAAI,CAACK,OAAO,CAACN,OAAO,CAACG,GAAG,CAAE,CAAeyC,UAAAA,CAAAA,CAAAA,CAAAA,SAAS,CAAG,CAAA;AFydxG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CExdR,IAAI,CAAC5B,gBAAgB,CACpBqH,QAASjG,CAAAA,kBAAkB,CAAA,CAAA,CAAII,aAAa,CAAEnD,aAAa,CAAE,CAAA,CAAA,EAAA,CAAA,UAAA,CAAA,IAAA,CAA0B,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA,IAAA,CAAA,CAAA;AAEzF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC2B,gBAAgB,CAAEqH,QAAAA,CAASjG,kBAAkB,CAAA,CAAK,CAAA,CAAA,CAAA,QAAA,CAAA,CAAA;AACvD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACpB,gBAAgB,CAAEsH,YAAAA,CAAanE,OAAO,CAACT,OAAO,CAAG,CAAA,CAAA,OAAA,CAAA,CAAA;AAEtD4E,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,YAAAA,CAAanE,OAAO,CAACC,cAAc,CAClC,IAAI,CAAC9D,OAAO,CAACJ,MAAM,CAACC,GAAG,CAAE,CAAA,UAAA,CAAA,OAAA,CAAA,sBAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkD,IAAA,CAAO,CAAA,CAAA,CAAA,MAAA,CAAW,CAAA,CAAA,CAAA,CAAA,OAAA,CAAA,CAAA;AFodhG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;AACvG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC;AACjF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ;AAClH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS;AAC1F,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU;AACjE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CEjdL,IAAI,CAACf,UAAU,CAAA,CAAA,CAAGiC,YAAY,CAAE,CAAA,GAAA,CAAA,CAAOiH,CAAAA,YAAa5E,CAAAA,OAAO,CAAE6E,YAAY,CAAE,CAAA,GAAA,CAAA,CAAA,CAAA;AFkd7E,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;AAClI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI;AAChD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS;AAC1F,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU;AE/c1E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACnJ,UAAU,CAAA,CAAA,CAAGkD,SAAS,CAACC,GAAG,CAAE,CAAA,EAAA,CAAA,OAAA,CAAA,OAAA,CAAA,CAAA;AFidnC,CE/cE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,IAAI,CAACjC,OAAO,CAACJ,MAAM,CAACC,GAAG,CAAE,CAAmC,UAAA,CAAA,OAAA,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AFgdnE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CE/cR,EAAK,CAAA,CAAA,CAACmI,YAAalC,CAAAA,WAAW,CAAG,CAAA;AFgdpC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CE/cXkC,YAAalC,CAAAA,WAAW,CAAA,CAAA,CAAG,GAAIoC,CAAAA,WAAAA,CAAa,IAAI,CAAClI,OAAO,CAAC0C,MAAM,CAAA;AFgdnE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CE/cXsF,YAAalC,CAAAA,WAAW,CAACqC,MAAM,CAAA,CAAA;AFgdnC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CE/cXJ,QAASK,CAAAA,WAAW,CAAEJ,YAAAA,CAAalC,WAAW,CAAA;AAC/C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACpF,gBAAgB,CAAEsH,YAAAA,CAAalC,WAAW,CAAC1C,OAAO,CAAG,CAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAA;AAC3D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AF+cF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CE7cL,MAAO,CAAA,IAAI,CAACtE,UAAU,CAAA,CAAA;AACvB,CAAA,CAAA,CAAA,CAAA;AACD;;AClEA,CAAA,CAAA;AHkhBA,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO;AAC/C,CAAC,CAAC,CAAC,CGhhBY,KAAMuJ,CAAAA,sBAA+B/J,CAAAA,OAAAA,CAAAA,qBAAAA,CAAAA;AACnD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AHihBD,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ;AG/gBpB,CAAA,CAAA,CAAA,CAAA,CACD,OAAqD;AAErD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AH+gBD,CAAC,CAAC,CAAC,CAAC,CAAC;AACL,CG7gBCiB,CAAAA,CAAAA,CAAAA,CAAAA,WAAAA,CAAaC,MAAuB,CAAG;AACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAK,CAAEA,MAAAA,CAAAA;AH8gBT,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CG5gBL,IAAI,CAACQ,OAAO,CAAA,CAAA,CAAGR,MAAAA;AAChB,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AH4gBD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI;AG1gBrE,CAAA,CAAA,CAAA,CAAA,CACD,eAAkD,CAAA,CAAA,CAAA;AH2gBnD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK;AACnG,CGzgBE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,MAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,IAAI,CAACQ,OAAO,CAACN,OAAO,CAACC,GAAG,CAAE,CAAA,UAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,IAAI,CAACK,OAAO,CAACN,OAAO,CAACG,GAAG,CAAE,CAAeyC,UAAAA,CAAAA,CAAAA,CAAAA,SAAS,CAAG,CAAA;AACrG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC5B,gBAAgB,CACpB,IAAI,CAACV,OAAO,CAAC6B,EAAE,CAACC,kBAAkB,CAAII,CAAAA,CAAAA,aAAa,CAAEnD,aAAa,CAAE,CAA0B,CAAA,EAAA,CAAA,UAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA,IAAA,CAAA,CAAA;AAEhG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AHwgBF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CGtgBL,IAAI,CAAC2B,gBAAgB,CAAE,IAAI,CAACV,OAAO,CAAC6B,EAAE,CAACC,kBAAkB,CAAK,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,CAAA;AAC9D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACpB,gBAAgB,CAAE,IAAI,CAACV,OAAO,CAAC6B,EAAE,CAAC+B,IAAI,CAACC,OAAO,CAACT,OAAO,CAAA,CAAG,CAAA,OAAA,CAAA,CAAA;AHugBhE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CGrgBL,IAAI,CAACpD,OAAO,CAAC6B,EAAE,CAAC+B,IAAI,CAACC,OAAO,CAACC,cAAc,CAC1C,IAAI,CAAC9D,OAAO,CAACJ,MAAM,CAACC,GAAG,CAAE,CAAkD,UAAA,CAAA,OAAA,CAAA,sBAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAO,CAAA,CAAA,CAAA,MAAA,CAAW,CAAA,CAAA,CAAA,CAAA,OAAA,CAAA,CAAA;AHqgBhG,CGlgBE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAK,IAAI,CAACG,OAAO,CAACJ,MAAM,CAACC,GAAG,CAAE,CAAmC,UAAA,CAAA,OAAA,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAChE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACa,gBAAgB,CAAE,IAAI,CAACV,OAAO,CAAC6B,EAAE,CAAC+B,IAAI,CAACkC,WAAW,CAAC1C,OAAO,CAAA,CAAG,CAAA,IAAA,CAAA,GAAA,CAAA,CAAA;AACnE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AHmgBF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CGjgBL,MAAO,CAAA,IAAI,CAACtE,UAAU,CAAA,CAAA;AACvB,CAAA,CAAA,CAAA,CAAA;AACD;;ACvCA,CAAA,CAAA;AJ2iBA,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI;AACzC,CAAC,CAAC,CAAC,CIziBY,KAAMwJ,CAAAA,iBAA0BC,CAAAA,OAAAA,CAAAA,OAAAA,CAAAA;AAS9C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AJkiBD,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI;AIhiBpF,CAAA,CAAA,CAAA,CAAA,CACD,kBAAkD;AAElD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AJgiBD,CAAC,CAAC,CAAC,CAAC,CAAC;AACL,CI9hBC,CAAA,CAAA,CAAA,CAAA,WAAA,CAAoB/I,MAAc,CAAG;AACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAK,CAAEA,MAAAA,CAAAA;AJ+hBT,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CI7hBL,IAAI,CAACgJ,WAAW,CAAA,CAAA,CAAG,KAAA;AJ8hBrB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CI7hBL,IAAI,CAAClG,SAAS,CAAA,CAAA,CAAG,IAAA;AJ8hBnB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CI7hBL,IAAI,CAACzD,KAAK,CAAA,CAAA,CAAG,KAAA;AJ8hBf,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI;AAClE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;AAC3H,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI;AI3hBrE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAKW,CAAAA,CAAAA,MAAAA,CAAkBiJ,UAAAA,CAAAA,aAAgB,CAAA,CAAA;AACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACC,kBAAkB,CAAA,CAAA,CAAG,GAAA,CAAIZ,oBAAsBtI,CAAAA,MAAAA,CAAAA;AJ6hBvD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CI5hBC,CAAA,IAAA,CAAA,EAAA,CAAA,CAAKA,MAAAA,CAAAA,UAAAA,CAAkBmJ,eAAkB,CAAA,CAAA;AAC/C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACD,kBAAkB,CAAA,CAAA,CAAG,GAAA,CAAIL,sBAAwB7I,CAAAA,MAAAA,CAAAA;AJ6hBzD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CI5hBC,CAAA,IAAA,CAAA;AACN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACkJ,kBAAkB,CAAA,CAAA,CAAG,GAAA,CAAIpK,qBAAuBkB,CAAAA,MAAAA,CAAAA;AACtD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AJ4hBD,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI;AI1hB7B,CAAA,CAAA,CAAA,CAAA,CACD,OAAgC,CAAA,CAAA,CAAA;AJ2hBjC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CI1hBL,EAAK,CAAA,CAAA,IAAI,CAACX,KAAK,CAAG,CAAA;AACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC+J,sBAAsB,CAAA,CAAA;AJ2hB9B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CI1hBC,CAAA,IAAA,CAAA;AACN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACC,qBAAqB,CAAA,CAAA;AAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AJ0hBD,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI;AIxhB7B,CAAA,CAAA,CAAA,CAAA,CACD,qBAAsC,CAAA,CAAA,CAAA;AJyhBvC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CIxhBL,IAAI,CAACH,kBAAkB,CAAC1C,MAAM,CAAA,CAAA;AJyhBhC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CIvhBL,IAAI,CAACnH,KAAK,CAAA,CAAA,CAAG,IAAA;AACd,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AJuhBD,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI;AIrhB9B,CAAA,CAAA,CAAA,CAAA,CACD,sBAAuC,CAAA,CAAA,CAAA;AJshBxC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CIrhBL,IAAI,CAAC6J,kBAAkB,CAAC3C,OAAO,CAAA,CAAA;AJshBjC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CIphBL,IAAI,CAAClH,KAAK,CAAA,CAAA,CAAG,KAAA;AACd,CAAA,CAAA,CAAA,CAAA;AACD;;ACtEA,CAAA,CAAA;AL6lBA,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO;AACtD,CAAC,CAAC,CAAC,CK3lBY,KAAMiK,CAAAA,iBAA0BC,CAAAA,OAAAA,CAAAA,MAAAA,CAAAA;AAC9C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AL4lBD,CAAC,CAAC,CAAC,CAAC,CAAC;AK1lBH,CACD,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,GAAA,CAAkBC,UAAa,CAAA,CAAA,CAAA;AL2lBhC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CK1lBL,MAAA,CAAO,CAAA,iBAAA,CAAA;AACR,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AL0lBD,CAAC,CAAC,CAAC,CAAC,CAAC;AKxlBH,CACD,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,GAAA,CAA2BC,gBAAyB,CAAA,CAAA,CAAA;ALylBrD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CKxlBL,MAAA,CAAO,IAAA;AACR,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ALwlBD,CAAC,CAAC,CAAC,CAAC,CAAC;AACL,CKtlBC1J,CAAAA,CAAAA,CAAAA,CAAAA,WAAAA,CAAaC,MAAc,CAAG;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAK,CAAEA,MAAAA,CAAAA;AAEPA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAOI,MAAM,CAACU,MAAM,CAAE,CAAA,UAAA,CAAA,OAAA,CAAA,SAAA,CAAgC,CAAA,CAAA,IAAA,CAAA;ALslBxD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI;AAC9F,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI;AACzF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CKplBLd,MAAOI,CAAAA,MAAM,CAACU,MAAM,CAAE,CAAA,UAAA,CAAA,OAAA,CAAA,sBAAA,CAAA,CAA6Cd,CAAAA,MAAAA,CAAOI,MAAM,CAACC,GAAG,CAAE,CAAA,OAAA,CAAA,sBAAA,CAAuC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA;AAC9H,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ALolBD,CAAC,CAAC,CAAC,CAAC,CAAC;AKllBH,CAAA,CAAA,CAAA,CAAA,CACD,IAAoB,CAAA,CAAA,CAAA;AACnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACL,MAAM,CAAC0J,QAAQ,CAACjH,GAAG,CAAE,CAAA,gBAAA,CAAA,CAAA,CAAoB,GAAA,CAAIqG,iBAAAA,CAAmB,IAAI,CAAC9I,MAAM,CAAA,CAAA;AAEhF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAM2J,CAAAA,CAAI,CAAA,CAAA,IAAI,CAAC3J,MAAM,CAACkD,MAAM,CAACyG,CAAC;ALklBhC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;AACzC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CKhlBL,IAAI,CAAC3J,MAAM,CAAC4J,UAAU,CAAClI,GAAG,CAAE,CAAA,IAAA,CAAA,KAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAEmI,GAAKC,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA,CAAAA;AAClD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC9J,MAAM,CAAC+J,OAAO,CAAE,CAAA,gBAAA,CAAA,CAAA;ALilBxB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ;AAC1G,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ;AAC3G,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK;AAC9H,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CK/kBR,EAAK,CAAA,CAAA,CAACC,GAAIC,CAAAA,OAAO,CAAG,CAAA;ALglBvB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CK/kBX,IAAI,CAACjK,MAAM,CAACkK,OAAO,CAAC9F,IAAI,CAACvD,QAAQ,CAACsJ,SAAS,CAAA,CAAA,CAAG,KAAA;AAC/C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACnK,MAAM,CAACkK,OAAO,CAAC9F,IAAI,CAACgG,KAAK,CAAA,CAAA;AAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACpK,MAAM,CAACkK,OAAO,CAAC9F,IAAI,CAACiG,oBAAoB,CAAA,CAAA;AAE7CP,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAAA,CAAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AL8kBF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ;AK3kB9E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC9J,MAAM,CAACsK,aAAa,CAACC,iBAAiB,CAAE;AL6kB/C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CK5kBRX,UAAY,CAAA,CAAA;AACX,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACCY,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAOb,CAAG,CAAA,CAAA,MAAA,CAAA,UAAA,CAAA,IAAA,CAAA,CAAA;AL6kBf,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CK5kBdc,SAAW,CAAA,CAAA,CAAA,IAAA,CAAA,KAAA,CAAA,CAAA;AACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AL6kBJ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CK5kBRC,UAAY,CAAA,CAAA,CAAA,UAAA;AACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA;AACD;;ACjEA,KAAMC,CAAAA,YAAe,CAAA,CAAA,CAAA,CAAA,gBAAA,CAAA;AAErB,CAAA,CAAA;AN+oBA,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO;AACnD,CAAC,CAAC,CAAC,CM7oBY,KAAMC,CAAAA,YAAqBrB,CAAAA,OAAAA,CAAAA,MAAAA,CAAAA;AACzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AN8oBD,CAAC,CAAC,CAAC,CAAC,CAAC;AM5oBH,CACD,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,GAAA,CAAkBsB,QAAW,CAAA,CAAA,CAAA;AN6oB9B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM5oBL,MAAO,CAAA;AAAEvB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAC7B,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AN8oBD,CAAC,CAAC,CAAC,CAAC,CAAC;AM5oBH,CACD,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,GAAA,CAAkBE,UAAa,CAAA,CAAA,CAAA;AN6oBhC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM5oBL,MAAA,CAAO,CAAA,YAAA,CAAA;AACR,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AN4oBD,CAAC,CAAC,CAAC,CAAC,CAAC;AM1oBH,CACD,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,GAAA,CAA2BC,gBAAyB,CAAA,CAAA,CAAA;AN2oBrD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CM1oBL,MAAA,CAAO,IAAA;AACR,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AN0oBD,CAAC,CAAC,CAAC,CAAC,CAAC;AMxoBH,CAAA,CAAA,CAAA,CAAA,CACD,IAAoB,CAAA,CAAA,CAAA;ANyoBrB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMxoBL,KAAMzJ,CAAAA,MAAAA,CAAS,CAAA,CAAA,IAAI,CAACA,MAAM;ANyoB5B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMvoBLA,MAAOqC,CAAAA,EAAE,CAACyI,gBAAgB,CAACrI,GAAG,CAAE,CAAA,UAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAAM,IAAI,CAACsI,aAAa,CAAEC,UAAAA,CAAAA,CAAAA;ANwoB1E,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMvoBLhL,MAAOqC,CAAAA,EAAE,CAACyI,gBAAgB,CAACrI,GAAG,CAAE,CAAA,OAAA,CAAA,UAAA,CAAA,CAAA,CAAsB,CAAA,CAAA,CAAA,CAAM,IAAI,CAACsI,aAAa,CAAEE,6BAAAA,CAAAA,CAAAA;AACjF,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANuoBD,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI;AACrD,CMroBSF,CAAAA,CAAAA,CAAAA,CAAAA,aAAeG,CAAAA,WAAqE,CAAG,CAAA;ANsoBhG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMroBL,KAAMlL,CAAAA,MAAAA,CAAS,CAAA,CAAA,IAAI,CAACA,MAAM;ANsoB5B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMroBL,KAAM2J,CAAAA,CAAAA,CAAI3J,CAAAA,CAAAA,MAAAA,CAAO2J,CAAC;AAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMwB,OAAUnL,CAAAA,CAAAA,CAAAA,MAAAA,CAAO0J,QAAQ,CAACrJ,GAAG,CAAEsK,YAAAA,CAAAA;AACrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAA,CAAMvG,IAAO,CAAA,CAAA,CAAA,GAAA,CAAI8G,WAAalL,CAAAA,MAAAA,CAAOkD,MAAM,CAAA;AAE3CkB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAK1C,GAAG,CAAE;ANqoBZ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMpoBR0J,YAAc,CAAA,CAAA;AACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEAhH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAK+C,IAAI,CAAE,CAAckE,SAAAA,CAAAA,CAAAA,CAAAA,EAAE,CAAEF,OAAS,CAAA,CAAA,CAAA,SAAA,CAAA,CAAA;AACtC/G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAK+C,IAAI,CAAE,CAASkE,IAAAA,CAAAA,CAAAA,CAAAA,EAAE,CAAEF,OAAS,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA;AAEjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO/G,CAAAA,CAAAA,IAAAA,CAAgB6G,UAAAA,CAAAA,6BAAkC,CAAA,CAAA;AACxD7G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAK1C,GAAG,CAAE;ANmoBb,CMloBI4J,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAM,CAAA,CAAA,CAAA,gBAAA,CAAA;AACNd,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAAAA,CAAAA,CAAOb,CAAG,CAAA,CAAA,UAAA,CAAA,IAAA,CAAA;AACX,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANmoBH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMloBC,CAAA,IAAA,CAAA;ANmoBT,CMloBGvF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAK+C,CAAAA,IAAI,CAAE,CAAA,IAAA,CAAA,CAAA,CAASkE,EAAE,CAAEF,OAAAA,CAAAA,CAAS,CAAS9L,KAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAASA,CAAAA,CAAAA,CAAAA,KAAAA,CAAQkM,CAAAA,CAAAA,mBAAsBC,CAAAA,CAAAA,CAAAA,mBAAAA,CAAAA;AACjFpH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAK+C,IAAI,CAAE,CAAA,KAAA,CAAUkE,CAAAA,CAAAA,EAAE,CAAEF,OAAAA,CAAAA,CAAS,CAAS9L,KAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAASA,CAAAA,CAAAA,CAAAA,KAAAA,CAAQsK,CAAAA,CAAAA,CAAG,CAAA,CAAA,KAAA,CAAA,UAAA,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,CAA4BA,CAAG,CAAA,CAAA,KAAA,CAAA,UAAA,CAAA,IAAA,CAAA,CAAA,CAAA;AAC9FvF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAAAA,CAAK1C,GAAG,CAAE;ANmoBb,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMloBX+J,OAAS,CAAA,CAAA;AACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAACC,QAAQ,CAAEtH,IAAAA,CAAM,CAAA,CAAA,OAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAC/BpE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAO+J,OAAO,CAAEY,YAAAA,CAAAA;AAChB3K,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAOkK,OAAO,CAAC9F,IAAI,CAACgG,KAAK,CAAA,CAAA;AACzBpK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,MAAAA,CAAOkK,OAAO,CAAC9F,IAAI,CAACiG,oBAAoB,CAAA,CAAA;AACzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;ANkoBF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CMhoBL,MAAA,CAAOjG,IAAAA;AACR,CAAA,CAAA,CAAA,CAAA;AACD;;AC5EA,CAAA,CAAA;AP+sBA,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO;AAC9B,CAAC,CAAC,CAAC,CO7sBY,KAAMuH,CAAAA,UAAmBpC,CAAAA,OAAAA,CAAAA,MAAAA,CAAAA;AACvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AP8sBD,CAAC,CAAC,CAAC,CAAC,CAAC;AO5sBH,CACD,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,GAAA,CAAkBsB,QAAW,CAAA,CAAA,CAAA;AP6sB9B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CO5sBL,MAAO,CAAA;AAAEvB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,iBAAAA;AAAmBsB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA;AAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAC3C,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AP+sBD,CAAC,CAAC,CAAC,CAAC,CAAC;AO7sBH,CACD,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,GAAA,CAAkBpB,UAAa,CAAA,CAAA,CAAA;AP8sBhC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CO7sBL,MAAA,CAAO,CAAA,UAAA,CAAA;AACR,CAAA,CAAA,CAAA,CAAA;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AP6sBD,CAAC,CAAC,CAAC,CAAC,CAAC;AO3sBH,CACD,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,GAAA,CAA2BC,gBAAyB,CAAA,CAAA,CAAA;AP4sBrD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CO3sBL,MAAA,CAAO,IAAA;AACR,CAAA,CAAA,CAAA,CAAA;AACD;;AP6sBA,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,iBAAiB,CAAC,CAAC,YAAY,CAAC,CAAC;AACtD,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC","file":"index.js.map","sourcesContent":["import { Command, Plugin } from '@ckeditor/ckeditor5-core/dist/index.js';\nimport { global, createElement, Rect, env } from '@ckeditor/ckeditor5-utils/dist/index.js';\nimport { ClassicEditor } from '@ckeditor/ckeditor5-editor-classic/dist/index.js';\nimport { DecoupledEditor } from '@ckeditor/ckeditor5-editor-decoupled/dist/index.js';\nimport { BodyCollection, DialogViewPosition, MenuBarView, ButtonView, MenuBarMenuListItemButtonView } from '@ckeditor/ckeditor5-ui/dist/index.js';\nimport { IconFullscreenLeave, IconFullscreenEnter } from '@ckeditor/ckeditor5-icons/dist/index.js';\n\nconst DIALOG_OFFSET = 28;\n/**\n * The abstract editor type handler. It should be extended by the particular editor type handler.\n */ class AbstractEditorHandler {\n /**\n\t * Maps placeholder names to placeholder elements and moved elements.\n\t */ _placeholderMap;\n /**\n\t * The wrapper element that holds the fullscreen mode layout.\n\t */ _wrapper = null;\n /**\n\t * The document object in which the editor is located.\n\t */ _document;\n /**\n\t * Data of the annotations UIs that were active before entering the fullscreen mode.\n\t */ _annotationsUIsData = null;\n /**\n\t * The pagination body collection that is used in the fullscreen mode.\n\t * If we don't move pagination lines to the fullscreen container, they won't be visible.\n\t */ _paginationBodyCollection = null;\n /**\n\t * A callback that hides the document outline header when the source editing mode is enabled.\n\t * Document outline element itself is hidden by source editing plugin.\n\t */ /* istanbul ignore next -- @preserve */ _sourceEditingCallback = (_evt, _name, value)=>{\n this.getWrapper().querySelector('.ck-fullscreen__document-outline-header').style.display = value ? 'none' : '';\n };\n /**\n\t * A map of elements that were hidden when entering the fullscreen mode.\n\t * It is used to restore their previous visibility when leaving the fullscreen mode and avoid showing elements\n\t * that were hidden before entering the fullscreen mode.\n\t */ _hiddenElements = new Map();\n /**\n\t * A map matching the ancestors of the editable element with their scroll positions before entering fullscreen mode.\n\t */ _savedAncestorsScrollPositions = new Map();\n /**\n\t * A callback that shows the revision viewer, stored to restore the original one after exiting the fullscreen mode.\n\t */ _showRevisionViewerCallback = null;\n /**\n\t * A callback that closes the revision viewer, stored to restore the original one after exiting the fullscreen mode.\n\t */ _closeRevisionViewerCallback = null;\n /**\n\t * @inheritDoc\n\t */ constructor(editor){\n this._placeholderMap = new Map();\n if (editor.plugins.has('RevisionHistory')) {\n this._showRevisionViewerCallback = editor.config.get('revisionHistory').showRevisionViewerCallback;\n this._closeRevisionViewerCallback = editor.config.get('revisionHistory').closeRevisionViewerCallback;\n }\n this._editor = editor;\n this._document = this._editor.sourceElement ? this._editor.sourceElement.ownerDocument : global.document;\n this._editor.config.define('fullscreen.container', this._document.body);\n editor.on('destroy', ()=>{\n if (this._wrapper) {\n this.destroy();\n }\n });\n }\n /**\n\t * Moves the given element to the fullscreen mode container, leaving a placeholder in its place.\n\t */ moveToFullscreen(elementToMove, placeholderName) {\n const placeholderElement = createElement(this._document, 'div');\n placeholderElement.setAttribute('data-ck-fullscreen-placeholder', placeholderName);\n elementToMove.replaceWith(placeholderElement);\n this.getWrapper().querySelector(`[data-ck-fullscreen=\"${placeholderName}\"]`).append(elementToMove);\n this._placeholderMap.set(placeholderName, {\n placeholderElement,\n movedElement: elementToMove\n });\n }\n /**\n\t * Returns a single moved element to its original place.\n\t */ restoreMovedElementLocation(placeholderName) {\n if (!this._placeholderMap.has(placeholderName)) {\n return;\n }\n const { placeholderElement, movedElement } = this._placeholderMap.get(placeholderName);\n placeholderElement.replaceWith(movedElement);\n placeholderElement.remove();\n this._placeholderMap.delete(placeholderName);\n if (this._placeholderMap.size === 0) {\n this._destroyContainer();\n }\n }\n /**\n\t * Returns the fullscreen mode container element.\n\t */ getWrapper() {\n if (!this._wrapper) {\n this._wrapper = createElement(this._document, 'div', {\n class: 'ck ck-fullscreen__main-wrapper'\n });\n // For now, the container is generated in a very straightforward way. If necessary, it may be rewritten using our UI lib.\n this._wrapper.innerHTML = `\n\t\t\t\t<div class=\"ck ck-fullscreen__top-wrapper ck-reset_all\">\n\t\t\t\t\t<div class=\"ck ck-fullscreen__menu-bar\" data-ck-fullscreen=\"menu-bar\"></div>\n\t\t\t\t\t<div class=\"ck ck-fullscreen__toolbar\" data-ck-fullscreen=\"toolbar\"></div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"ck ck-fullscreen__editable-wrapper\">\n\t\t\t\t\t<div class=\"ck ck-fullscreen__sidebar ck-fullscreen__left-sidebar\" data-ck-fullscreen=\"left-sidebar\">\n\t\t\t\t\t\t<div class=\"ck ck-fullscreen__left-sidebar--sticky\" data-ck-fullscreen=\"left-sidebar-sticky\"></div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"ck ck-fullscreen__editable\" data-ck-fullscreen=\"editable\">\n\t\t\t\t\t\t<div class=\"ck ck-fullscreen__pagination-view\" data-ck-fullscreen=\"pagination-view\"></div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"ck ck-fullscreen__sidebar ck-fullscreen__right-sidebar\" data-ck-fullscreen=\"right-sidebar\"></div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"ck ck-fullscreen__bottom-wrapper\">\n\t\t\t\t\t<div class=\"ck ck-fullscreen__body-wrapper\" data-ck-fullscreen=\"body-wrapper\"></div>\n\t\t\t\t</div>\n\t\t\t`;\n this._editor.config.get('fullscreen.container').appendChild(this._wrapper);\n }\n return this._wrapper;\n }\n /**\n\t * Enables the fullscreen mode. It executes the editor-specific enable handler and then the configured callback.\n\t */ enable() {\n this._saveAncestorsScrollPositions(this._editor.ui.getEditableElement());\n this._defaultOnEnter();\n // Block scroll if the fullscreen container is the body element. Otherwise the document has to stay scrollable.\n if (this._editor.config.get('fullscreen.container') === this._document.body) {\n this._document.body.classList.add('ck-fullscreen');\n this._document.body.parentElement.classList.add('ck-fullscreen');\n }\n if (this._editor.plugins.has('Dialog')) {\n this._registerFullscreenDialogPositionAdjustments();\n }\n // Code coverage is provided in the commercial package repository as integration unit tests.\n /* istanbul ignore if -- @preserve */ if (this._editor.plugins.has('PresenceListUI')) {\n this._generatePresenceListContainer();\n }\n // Code coverage is provided in the commercial package repository as integration unit tests.\n /* istanbul ignore if -- @preserve */ if (this._editor.plugins.has('DocumentOutlineUI')) {\n this._generateDocumentOutlineContainer();\n }\n // Code coverage is provided in the commercial package repository as integration unit tests.\n /* istanbul ignore next -- @preserve */ if (this._editor.plugins.has('Pagination') && this._editor.plugins.get('Pagination').isEnabled) {\n const paginationRenderer = this._editor.plugins.get('PaginationRenderer');\n paginationRenderer.setupScrollableAncestor();\n this._paginationBodyCollection = new BodyCollection(this._editor.locale);\n this._paginationBodyCollection.attachToDom();\n paginationRenderer.linesRepository.setViewCollection(this._paginationBodyCollection);\n this._editor.once('destroy', ()=>{\n this._paginationBodyCollection.detachFromDom();\n });\n this.moveToFullscreen(this._paginationBodyCollection.bodyCollectionContainer, 'body-wrapper');\n }\n // Code coverage is provided in the commercial package repository as integration unit tests.\n /* istanbul ignore if -- @preserve */ if (this._editor.plugins.has('AnnotationsUIs')) {\n this._overrideAnnotationsUIs();\n }\n if (this._editor.plugins.has('RevisionHistory')) {\n // Code coverage is provided in the commercial package repository as integration unit tests.\n /* istanbul ignore if -- @preserve */ if (this._editor.plugins.get('RevisionHistory').isRevisionViewerOpen) {\n // Keep in mind that closing the revision history viewer is an asynchronous operation.\n this._editor.config.get('revisionHistory.closeRevisionViewerCallback')();\n }\n this._overrideRevisionHistoryCallbacks();\n }\n if (this._editor.plugins.has('SourceEditing') && this._editor.plugins.has('DocumentOutlineUI')) {\n this._editor.plugins.get('SourceEditing').on('change:isSourceEditingMode', this._sourceEditingCallback);\n }\n // Hide all other elements in the container to ensure they don't create an empty unscrollable space.\n for (const element of this._editor.config.get('fullscreen.container').children){\n // Do not hide body wrapper and ckbox wrapper to keep dialogs, balloons etc visible.\n if (element !== this._wrapper && !element.classList.contains('ck-body-wrapper') && !element.classList.contains('ckbox-wrapper') && // Already hidden elements are not hidden again to avoid accidentally showing them after leaving fullscreen.\n element.style.display !== 'none') {\n this._hiddenElements.set(element, element.style.display);\n element.style.display = 'none';\n }\n }\n if (this._editor.config.get('fullscreen.onEnterCallback')) {\n this._editor.config.get('fullscreen.onEnterCallback')(this.getWrapper());\n }\n }\n /**\n\t * Disables the fullscreen mode by restoring all moved elements and destroying the fullscreen container.\n\t */ disable() {\n if (this._editor.config.get('fullscreen.onLeaveCallback')) {\n this._editor.config.get('fullscreen.onLeaveCallback')(this.getWrapper());\n }\n this._document.body.classList.remove('ck-fullscreen');\n this._document.body.parentElement.classList.remove('ck-fullscreen');\n // Code coverage is provided in the commercial package repository as integration unit tests.\n /* istanbul ignore if -- @preserve */ if (this._editor.plugins.has('DocumentOutlineUI')) {\n this._restoreDocumentOutlineDefaultContainer();\n }\n // Code coverage is provided in the commercial package repository as integration unit tests.\n /* istanbul ignore if -- @preserve */ if (this._annotationsUIsData) {\n this._restoreAnnotationsUIs();\n }\n if (this._editor.plugins.has('RevisionHistory')) {\n this._restoreRevisionHistoryCallbacks();\n }\n if (this._editor.plugins.has('SourceEditing') && this._editor.plugins.has('DocumentOutlineUI')) {\n this._editor.plugins.get('SourceEditing').off('change:isSourceEditingMode', this._sourceEditingCallback);\n }\n for (const placeholderName of this._placeholderMap.keys()){\n this.restoreMovedElementLocation(placeholderName);\n }\n this._editor.ui.view.toolbar.switchBehavior(this._editor.config.get('toolbar.shouldNotGroupWhenFull') === true ? 'static' : 'dynamic');\n if (this._placeholderMap.size === 0) {\n this._destroyContainer();\n }\n // Restore scroll positions of all ancestors. It may include the closest editable wrapper causing the editor to change\n // the visible content, which is not what we want. Thus, after executing the command, we use\n // `editor.editing.view.scrollToTheSelection()` to scroll the editor viewport to the current selection.\n for (const [ancestor, value] of this._savedAncestorsScrollPositions){\n ancestor.scrollTo(value.scrollLeft, value.scrollTop);\n }\n this._savedAncestorsScrollPositions.clear();\n // Pagination has to be restored after leaving fullscreen mode to ensure proper rendering.\n // Code coverage is provided in the commercial package repository as integration unit tests.\n /* istanbul ignore next -- @preserve */ if (this._editor.plugins.has('Pagination') && this._editor.plugins.get('Pagination').isEnabled) {\n const paginationRenderer = this._editor.plugins.get('PaginationRenderer');\n paginationRenderer.setupScrollableAncestor();\n paginationRenderer.linesRepository.setViewCollection(this._editor.ui.view.body);\n this._paginationBodyCollection.detachFromDom();\n this._paginationBodyCollection?.destroy();\n }\n // Also dialog position needs to be recalculated after leaving fullscreen mode.\n if (this._editor.plugins.has('Dialog')) {\n this._unregisterFullscreenDialogPositionAdjustments();\n }\n }\n /**\n\t * @inheritDoc\n\t */ destroy() {\n for (const { placeholderElement, movedElement } of this._placeholderMap.values()){\n placeholderElement.remove();\n movedElement.remove();\n }\n this._destroyContainer();\n this._document.body.classList.remove('ck-fullscreen');\n this._document.body.parentElement.classList.remove('ck-fullscreen');\n }\n /**\n\t * A function that moves the editor UI elements to the fullscreen mode. It should be set by the particular editor type handler.\n\t *\n\t * Returns the fullscreen mode container element so it can be further customized via\n\t * `fullscreen.onEnterCallback` configuration property.\n\t */ _defaultOnEnter() {\n return this.getWrapper();\n }\n /**\n\t * Destroys the fullscreen mode container.\n\t */ _destroyContainer() {\n if (!this._wrapper) {\n return;\n }\n this._wrapper.remove();\n this._wrapper = null;\n // Restore visibility of all other elements in the container.\n for (const [element, displayValue] of this._hiddenElements){\n element.style.display = displayValue;\n }\n this._hiddenElements.clear();\n }\n /**\n\t * Checks if the PresenceListUI plugin is available and moves its elements to fullscreen mode.\n\t */ // Code coverage is provided in the commercial package repository as integration unit tests.\n /* istanbul ignore next -- @preserve */ _generatePresenceListContainer() {\n const presenceListElement = createElement(document, 'div', {\n class: 'ck ck-fullscreen__left-sidebar-item'\n });\n presenceListElement.innerHTML = `\n\t\t\t<div class=\"ck ck-fullscreen__left-sidebar-header\">Connected users</div>\n\t\t\t<div class=\"ck ck-fullscreen__presence-list\" data-ck-fullscreen=\"presence-list\"></div>\n\t\t`;\n document.querySelector('[data-ck-fullscreen=\"left-sidebar-sticky\"]').appendChild(presenceListElement);\n const presenceListUI = this._editor.plugins.get('PresenceListUI');\n this.moveToFullscreen(presenceListUI.view.element, 'presence-list');\n }\n /**\n\t * Checks if the DocumentOutlineUI plugin is available and moves its elements to fullscreen mode.\n\t */ // Code coverage is provided in the commercial package repository as integration unit tests.\n /* istanbul ignore next -- @preserve */ _generateDocumentOutlineContainer() {\n const documentOutlineHeaderElement = createElement(document, 'div', {\n class: 'ck-fullscreen__left-sidebar-item ck-fullscreen__left-sidebar-item--no-margin'\n });\n documentOutlineHeaderElement.innerHTML = `\n\t\t\t<div class=\"ck ck-fullscreen__left-sidebar-header ck-fullscreen__document-outline-header\">\n\t\t\t\tDocument outline\n\t\t\t</div>\n\t\t`;\n const documentOutlineBodyWrapper = createElement(document, 'div', {\n class: 'ck ck-fullscreen__left-sidebar-item ck-fullscreen__document-outline-wrapper'\n });\n documentOutlineBodyWrapper.innerHTML = `\n\t\t\t<div class=\"ck ck-fullscreen__document-outline\" data-ck-fullscreen=\"document-outline\"></div>\n\t\t`;\n document.querySelector('[data-ck-fullscreen=\"left-sidebar\"]').appendChild(documentOutlineBodyWrapper);\n document.querySelector('[data-ck-fullscreen=\"left-sidebar-sticky\"]').appendChild(documentOutlineHeaderElement);\n const documentOutlineUI = this._editor.plugins.get('DocumentOutlineUI');\n documentOutlineUI.view.documentOutlineContainer = document.querySelector('[data-ck-fullscreen=\"left-sidebar\"]');\n this.moveToFullscreen(documentOutlineUI.view.element, 'document-outline');\n }\n /**\n\t * Restores the default value of documentOutlineContainer, which is modified in fullscreen mode.\n\t */ // Code coverage is provided in the commercial package repository as integration unit tests.\n /* istanbul ignore next -- @preserve */ _restoreDocumentOutlineDefaultContainer() {\n const documentOutlineUI = this._editor.plugins.get('DocumentOutlineUI');\n documentOutlineUI.view.documentOutlineContainer = documentOutlineUI.view.element;\n }\n /**\n\t * Stores the current state of the annotations UIs to restore it when leaving fullscreen mode.\n\t */ // Code coverage is provided in the commercial package repository as integration unit tests.\n /* istanbul ignore next -- @preserve */ _overrideAnnotationsUIs() {\n const annotationsUIs = this._editor.plugins.get('AnnotationsUIs');\n this._annotationsUIsData = new Map(annotationsUIs.uisData);\n // Switch to the wide sidebar.\n const sidebarPlugin = this._editor.plugins.get('Sidebar');\n if (!sidebarPlugin.container) {\n sidebarPlugin.setContainer(this.getWrapper().querySelector('[data-ck-fullscreen=\"right-sidebar\"]'));\n }\n const annotationsFilters = new Map();\n for (const [uiName, data] of [\n ...this._annotationsUIsData\n ]){\n // Default filter is `() => true`. Only store filters that are different.\n if (data.filter !== annotationsUIs.defaultFilter) {\n annotationsFilters.set(uiName, data.filter);\n }\n }\n annotationsUIs.deactivateAll();\n // Check if someone has a filter defined for `wideSidebar`. If so, retrieve and apply it in fullscreen. Do not show any other UI.\n if (annotationsFilters.has('wideSidebar')) {\n annotationsUIs.activate('wideSidebar', annotationsFilters.get('wideSidebar'));\n } else if (annotationsFilters.size) {\n annotationsUIs.activate('wideSidebar', (annotation)=>[\n ...annotationsFilters.values()\n ].some((filter)=>filter(annotation)));\n } else {\n annotationsUIs.switchTo('wideSidebar');\n }\n this.moveToFullscreen(sidebarPlugin.container.firstElementChild, 'right-sidebar');\n }\n /**\n\t * Restores the saved state of the annotations UIs.\n\t */ // Code coverage is provided in the commercial package repository as integration unit tests.\n /* istanbul ignore next -- @preserve */ _restoreAnnotationsUIs() {\n const annotationsUIs = this._editor.plugins.get('AnnotationsUIs');\n annotationsUIs.deactivateAll();\n for (const [uiName, data] of [\n ...this._annotationsUIsData\n ]){\n annotationsUIs.activate(uiName, data.filter);\n }\n this._annotationsUIsData = null;\n }\n /**\n\t * Modifies the revision history viewer callbacks to display the viewer in the fullscreen mode.\n\t */ _overrideRevisionHistoryCallbacks() {\n // * Hide editor's editable, toolbar and sidebar;\n // * Disable menu bar;\n // * Show revision viewer editable, toolbar and sidebar.\n // Code coverage is provided in the commercial package repository as integration unit tests.\n /* istanbul ignore next -- @preserve */ this._editor.config.set('revisionHistory.showRevisionViewerCallback', async ()=>{\n const revisionViewerEditor = await this._showRevisionViewerCallback();\n if (this._editor.plugins.has('DocumentOutlineUI')) {\n this.getWrapper().querySelector('.ck-fullscreen__document-outline-header').style.display = 'none';\n }\n this.restoreMovedElementLocation('editable');\n this.restoreMovedElementLocation('toolbar');\n this.restoreMovedElementLocation('right-sidebar');\n if (this._annotationsUIsData) {\n this._restoreAnnotationsUIs();\n }\n if (this._editor.ui.view.menuBarView) {\n this._editor.ui.view.menuBarView.disable();\n }\n this.moveToFullscreen(revisionViewerEditor.ui.getEditableElement(), 'editable');\n this.moveToFullscreen(revisionViewerEditor.ui.view.toolbar.element, 'toolbar');\n this.moveToFullscreen(this._editor.config.get('revisionHistory.viewerSidebarContainer'), 'right-sidebar');\n return revisionViewerEditor;\n });\n // * Hide revision viewer editable, toolbar and sidebar;\n // * Enable menu bar;\n // * Show editor's editable, toolbar and sidebar.\n // Code coverage is provided in the commercial package repository as integration unit tests.\n /* istanbul ignore next -- @preserve */ this._editor.config.set('revisionHistory.closeRevisionViewerCallback', async ()=>{\n this.restoreMovedElementLocation('toolbar');\n this.restoreMovedElementLocation('editable');\n this.restoreMovedElementLocation('right-sidebar');\n if (this._editor.plugins.has('DocumentOutlineUI')) {\n this.getWrapper().querySelector('.ck-fullscreen__document-outline-header').style.display = '';\n }\n this.moveToFullscreen(this._editor.ui.getEditableElement(), 'editable');\n this.moveToFullscreen(this._editor.ui.view.toolbar.element, 'toolbar');\n await this._closeRevisionViewerCallback();\n if (this._editor.plugins.has('AnnotationsUIs')) {\n this._overrideAnnotationsUIs();\n }\n if (this._editor.ui.view.menuBarView) {\n this._editor.ui.view.menuBarView.enable();\n }\n });\n }\n /**\n\t * Resets the revision history viewer callbacks to their original values.\n\t */ _restoreRevisionHistoryCallbacks() {\n // Code coverage is provided in the commercial package repository as integration unit tests.\n /* istanbul ignore next -- @preserve */ this._editor.config.set('revisionHistory.showRevisionViewerCallback', async ()=>{\n return this._showRevisionViewerCallback();\n });\n // Code coverage is provided in the commercial package repository as integration unit tests.\n /* istanbul ignore next -- @preserve */ this._editor.config.set('revisionHistory.closeRevisionViewerCallback', async ()=>{\n return this._closeRevisionViewerCallback();\n });\n }\n /**\n\t * Adds an event listener when the dialog opens to adjust its position in fullscreen mode,\n\t * utilizing the empty space on the right side of the editable element.\n\t */ _registerFullscreenDialogPositionAdjustments() {\n const dialog = this._editor.plugins.get('Dialog');\n this._setNewDialogPosition();\n dialog.on('change:isOpen', this.updateDialogPositionCallback, {\n priority: 'highest'\n });\n }\n /**\n\t * Removes an event listener that adjusts the dialog's position in fullscreen mode.\n\t */ _unregisterFullscreenDialogPositionAdjustments() {\n const dialog = this._editor.plugins.get('Dialog');\n const dialogView = dialog.view;\n if (dialogView && dialogView.position === null) {\n dialogView.position = DialogViewPosition.EDITOR_TOP_SIDE;\n }\n if (dialogView) {\n dialogView.updatePosition();\n }\n dialog.off('change:isOpen', this.updateDialogPositionCallback);\n }\n /**\n\t * Stores a bound reference to the _updateDialogPosition method, allowing it to be attached and detached from change event.\n\t */ updateDialogPositionCallback = this._updateDialogPosition.bind(this);\n /**\n\t * If dialog is open, adjust its positioning.\n\t */ _updateDialogPosition(_evt, _name, isOpen) {\n if (isOpen) {\n this._setNewDialogPosition();\n }\n }\n /**\n\t * Adjusts the dialog position to utilize the empty space on the right side of the editable.\n\t * The new dialog position should be on the right side of the fullscreen view with a 30px margin.\n\t * Only dialogs with the position set to \"editor-top-side\" should have their position changed.\n\t */ _setNewDialogPosition() {\n const dialog = this._editor.plugins.get('Dialog');\n const dialogView = dialog.view;\n if (!dialogView || dialogView.position !== DialogViewPosition.EDITOR_TOP_SIDE) {\n return;\n }\n const fullscreenViewContainerRect = new Rect(this._wrapper).getVisible();\n const editorContainerRect = new Rect(document.querySelector('.ck-fullscreen__editable')).getVisible();\n const dialogRect = new Rect(dialogView.element.querySelector('.ck-dialog')).getVisible();\n const scrollOffset = new Rect(document.querySelector('.ck-fullscreen__editable-wrapper')).excludeScrollbarsAndBorders().getVisible().width - new Rect(document.querySelector('.ck-fullscreen__editable-wrapper')).getVisible().width;\n if (fullscreenViewContainerRect && editorContainerRect && dialogRect) {\n dialogView.position = null;\n dialogView.moveTo(fullscreenViewContainerRect.left + fullscreenViewContainerRect.width - dialogRect.width - DIALOG_OFFSET + scrollOffset, editorContainerRect.top);\n }\n }\n /**\n\t * Saves the scroll positions of all ancestors of the given element.\n\t */ _saveAncestorsScrollPositions(domElement) {\n let element = domElement.parentElement;\n if (!element) {\n return;\n }\n while(element){\n const overflowY = element.style.overflowY || global.window.getComputedStyle(element).overflowY;\n const overflowX = element.style.overflowX || global.window.getComputedStyle(element).overflowX;\n // Out of 5 possible keyword values: visible, hidden, clip, scroll and auto - only the last two allow for scrolling.\n if (overflowY === 'auto' || overflowY === 'scroll' || overflowX === 'auto' || overflowX === 'scroll') {\n this._savedAncestorsScrollPositions.set(element, {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n });\n } else if (element.tagName === 'HTML') {\n this._savedAncestorsScrollPositions.set(element, {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n });\n }\n element = element.parentElement;\n }\n }\n}\n\n/**\n * The classic editor fullscreen mode handler.\n */ class ClassicEditorHandler extends AbstractEditorHandler {\n /**\n\t * An editor instance.\n\t */ _editor;\n /**\n\t * @inheritDoc\n\t */ constructor(editor){\n super(editor);\n this._editor = editor;\n }\n /**\n\t * A function that moves the editor UI elements to the fullscreen mode.\n\t */ _defaultOnEnter() {\n const editorUI = this._editor.ui;\n const editorUIView = editorUI.view;\n // Code coverage is provided in the commercial package repository as integration unit tests.\n /* istanbul ignore next -- @preserve */ if (this._editor.plugins.has('Pagination') && this._editor.plugins.get('Pagination').isEnabled) {\n this.moveToFullscreen(editorUI.getEditableElement().parentElement.querySelector('.ck-pagination-view'), 'pagination-view');\n }\n this.moveToFullscreen(editorUI.getEditableElement(), 'editable');\n this.moveToFullscreen(editorUIView.toolbar.element, 'toolbar');\n editorUIView.toolbar.switchBehavior(this._editor.config.get('fullscreen.toolbar.shouldNotGroupWhenFull') === true ? 'static' : 'dynamic');\n // In classic editor, the `dir` attribute is set on the top-level container and it affects the styling\n // in both menu bar and toolbar (adding the side padding to the elements).\n // Since we don't move the whole container but only parts, we need to reapply the attribute value manually.\n // Decupled editor doesn't have this issue because there is no top-level container,\n // so `dir` attribute is set on each component separately.\n this.getWrapper().setAttribute('dir', editorUIView.element.getAttribute('dir'));\n // The `ck-rounded-corners` class is added to the wrapper element to ensure that the corners in menu bar, toolbar etc are rounded\n // when the editor is in fullscreen mode.\n // Decupled editor doesn't have this issue because there is no top-level container,\n // so `ck-rounded-corners` class is set on each component separately.\n this.getWrapper().classList.add('ck-rounded-corners');\n if (this._editor.config.get('fullscreen.menuBar.isVisible')) {\n if (!editorUIView.menuBarView) {\n editorUIView.menuBarView = new MenuBarView(this._editor.locale);\n editorUIView.menuBarView.render();\n editorUI.initMenuBar(editorUIView.menuBarView);\n }\n this.moveToFullscreen(editorUIView.menuBarView.element, 'menu-bar');\n }\n return this.getWrapper();\n }\n}\n\n/**\n * The decoupled editor fullscreen mode handler.\n */ class DecoupledEditorHandler extends AbstractEditorHandler {\n /**\n\t * An editor instance.\n\t */ _editor;\n /**\n\t * @inheritDoc\n\t */ constructor(editor){\n super(editor);\n this._editor = editor;\n }\n /**\n\t * A function that moves the editor UI elements to the fullscreen mode.\n\t */ _defaultOnEnter() {\n // Code coverage is provided in the commercial package repository as integration unit tests.\n /* istanbul ignore next -- @preserve */ if (this._editor.plugins.has('Pagination') && this._editor.plugins.get('Pagination').isEnabled) {\n this.moveToFullscreen(this._editor.ui.getEditableElement().parentElement.querySelector('.ck-pagination-view'), 'pagination-view');\n }\n this.moveToFullscreen(this._editor.ui.getEditableElement(), 'editable');\n this.moveToFullscreen(this._editor.ui.view.toolbar.element, 'toolbar');\n this._editor.ui.view.toolbar.switchBehavior(this._editor.config.get('fullscreen.toolbar.shouldNotGroupWhenFull') === true ? 'static' : 'dynamic');\n if (this._editor.config.get('fullscreen.menuBar.isVisible')) {\n this.moveToFullscreen(this._editor.ui.view.menuBarView.element, 'menu-bar');\n }\n return this.getWrapper();\n }\n}\n\n/**\n * A command toggling the fullscreen mode.\n */ class FullscreenCommand extends Command {\n /**\n\t * Specialized class handling the fullscreen mode toggling for a specific editor type.\n\t */ _fullscreenHandler;\n /**\n\t * @inheritDoc\n\t */ constructor(editor){\n super(editor);\n this.affectsData = false;\n this.isEnabled = true;\n this.value = false;\n // Choose the appropriate handler based on the editor type.\n // Currently only ClassicEditor and DecoupledEditor are supported. For other editor types, the abstract handler is used\n // which will throw if user tries to enable the fullscreen mode.\n if (editor instanceof ClassicEditor) {\n this._fullscreenHandler = new ClassicEditorHandler(editor);\n } else if (editor instanceof DecoupledEditor) {\n this._fullscreenHandler = new DecoupledEditorHandler(editor);\n } else {\n this._fullscreenHandler = new AbstractEditorHandler(editor);\n }\n }\n /**\n\t * Toggles the fullscreen mode.\n\t */ execute() {\n if (this.value) {\n this._disableFullscreenMode();\n } else {\n this._enableFullscreenMode();\n }\n }\n /**\n\t * Enables the fullscreen mode.\n\t */ _enableFullscreenMode() {\n this._fullscreenHandler.enable();\n this.value = true;\n }\n /**\n\t * Disables the fullscreen mode.\n\t */ _disableFullscreenMode() {\n this._fullscreenHandler.disable();\n this.value = false;\n }\n}\n\n/**\n * A plugin that registers the fullscreen mode command.\n */ class FullscreenEditing extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'FullscreenEditing';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ constructor(editor){\n super(editor);\n editor.config.define('fullscreen.menuBar.isVisible', true);\n // By default, toolbar should behave the same way in fullscreen mode as in normal mode.\n // This means that the toolbar buttons should be grouped when the toolbar is full.\n editor.config.define('fullscreen.toolbar.shouldNotGroupWhenFull', editor.config.get('toolbar.shouldNotGroupWhenFull') === true);\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n this.editor.commands.add('toggleFullscreen', new FullscreenCommand(this.editor));\n const t = this.editor.locale.t;\n // Set the Ctrl+Shift+F keystroke.\n this.editor.keystrokes.set('Ctrl+Shift+F', (evt, cancel)=>{\n this.editor.execute('toggleFullscreen');\n // On non-Chromium browsers, the editor view is not blurred properly after moving the editable,\n // even though the `document.activeElement` is changed. Hence we need to blur the view manually.\n // Fixes https://github.com/ckeditor/ckeditor5/issues/18250 and https://github.com/ckeditor/ckeditor5/issues/18247.\n if (!env.isBlink) {\n this.editor.editing.view.document.isFocused = false;\n }\n this.editor.editing.view.focus();\n this.editor.editing.view.scrollToTheSelection();\n cancel();\n });\n // Add the information about the keystroke to the accessibility database.\n this.editor.accessibility.addKeystrokeInfos({\n keystrokes: [\n {\n label: t('Toggle fullscreen mode'),\n keystroke: 'CTRL+SHIFT+F'\n }\n ],\n categoryId: 'navigation'\n });\n }\n}\n\nconst COMMAND_NAME = 'toggleFullscreen';\n/**\n * A plugin registering the fullscreen mode buttons.\n */ class FullscreenUI extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n FullscreenEditing\n ];\n }\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'FullscreenUI';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n /**\n\t * @inheritDoc\n\t */ init() {\n const editor = this.editor;\n editor.ui.componentFactory.add('fullscreen', ()=>this._createButton(ButtonView));\n editor.ui.componentFactory.add('menuBar:fullscreen', ()=>this._createButton(MenuBarMenuListItemButtonView));\n }\n /**\n\t * Creates a button that toggles the fullscreen mode.\n\t */ _createButton(ButtonClass) {\n const editor = this.editor;\n const t = editor.t;\n const command = editor.commands.get(COMMAND_NAME);\n const view = new ButtonClass(editor.locale);\n view.set({\n isToggleable: true\n });\n view.bind('isEnabled').to(command, 'isEnabled');\n view.bind('isOn').to(command, 'value');\n if (view instanceof MenuBarMenuListItemButtonView) {\n view.set({\n role: 'menuitemcheckbox',\n label: t('Fullscreen mode')\n });\n } else {\n view.bind('icon').to(command, 'value', (value)=>value ? IconFullscreenLeave : IconFullscreenEnter);\n view.bind('label').to(command, 'value', (value)=>value ? t('Leave fullscreen mode') : t('Enter fullscreen mode'));\n view.set({\n tooltip: true\n });\n }\n this.listenTo(view, 'execute', ()=>{\n editor.execute(COMMAND_NAME);\n editor.editing.view.focus();\n editor.editing.view.scrollToTheSelection();\n });\n return view;\n }\n}\n\n/**\n * The fullscreen mode feature.\n */ class Fullscreen extends Plugin {\n /**\n\t * @inheritDoc\n\t */ static get requires() {\n return [\n FullscreenEditing,\n FullscreenUI\n ];\n }\n /**\n\t * @inheritDoc\n\t */ static get pluginName() {\n return 'Fullscreen';\n }\n /**\n\t * @inheritDoc\n\t */ static get isOfficialPlugin() {\n return true;\n }\n}\n\nexport { Fullscreen, FullscreenEditing, FullscreenUI };\n//# sourceMappingURL=index.js.map\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module fullscreen/handlers/abstracteditorhandler\n */\n\nimport { BodyCollection, DialogViewPosition } from 'ckeditor5/src/ui.js';\nimport { global, createElement, Rect, type EventInfo } from 'ckeditor5/src/utils.js';\nimport type { ElementApi, Editor, EditorConfig } from 'ckeditor5/src/core.js';\nimport type { PresenceListUI } from '@ckeditor/ckeditor5-real-time-collaboration';\nimport type { DocumentOutlineUI } from '@ckeditor/ckeditor5-document-outline';\nimport type { PaginationRenderer } from '@ckeditor/ckeditor5-pagination';\nimport type { RevisionViewerEditor } from '@ckeditor/ckeditor5-revision-history';\nimport type { Annotation, AnnotationsUIs, Sidebar } from '@ckeditor/ckeditor5-comments';\n\nconst DIALOG_OFFSET = 28;\n\n/**\n * The abstract editor type handler. It should be extended by the particular editor type handler.\n */\nexport default class AbstractEditorHandler {\n\t/**\n\t * Maps placeholder names to placeholder elements and moved elements.\n\t */\n\tprivate _placeholderMap: Map<string, { placeholderElement: HTMLElement; movedElement: HTMLElement }>;\n\n\t/**\n\t * The wrapper element that holds the fullscreen mode layout.\n\t */\n\tprivate _wrapper: HTMLElement | null = null;\n\n\t/**\n\t * The document object in which the editor is located.\n\t */\n\tprivate _document: Document;\n\n\t/**\n\t * Data of the annotations UIs that were active before entering the fullscreen mode.\n\t */\n\tprivate _annotationsUIsData: Map<string, Record<string, any>> | null = null;\n\n\t/**\n\t * The pagination body collection that is used in the fullscreen mode.\n\t * If we don't move pagination lines to the fullscreen container, they won't be visible.\n\t */\n\tprivate _paginationBodyCollection: BodyCollection | null = null;\n\n\t/**\n\t * A callback that hides the document outline header when the source editing mode is enabled.\n\t * Document outline element itself is hidden by source editing plugin.\n\t */\n\t/* istanbul ignore next -- @preserve */\n\tprivate _sourceEditingCallback = ( _evt: EventInfo, _name: string, value: boolean ) => {\n\t\t( this.getWrapper().querySelector( '.ck-fullscreen__document-outline-header' ) as HTMLElement ).style.display =\n\t\t\tvalue ? 'none' : '';\n\t};\n\n\t/**\n\t * A map of elements that were hidden when entering the fullscreen mode.\n\t * It is used to restore their previous visibility when leaving the fullscreen mode and avoid showing elements\n\t * that were hidden before entering the fullscreen mode.\n\t */\n\tprivate _hiddenElements: Map<HTMLElement, string> = new Map();\n\n\t/**\n\t * A map matching the ancestors of the editable element with their scroll positions before entering fullscreen mode.\n\t */\n\tprivate _savedAncestorsScrollPositions: Map<HTMLElement, { scrollLeft: number; scrollTop: number }> = new Map();\n\n\t/**\n\t * A callback that shows the revision viewer, stored to restore the original one after exiting the fullscreen mode.\n\t */\n\tprotected _showRevisionViewerCallback: ( ( config?: EditorConfig ) => Promise<RevisionViewerEditor | null> ) | null = null;\n\n\t/**\n\t * A callback that closes the revision viewer, stored to restore the original one after exiting the fullscreen mode.\n\t */\n\tprotected _closeRevisionViewerCallback: ( ( viewerEditor?: RevisionViewerEditor ) => Promise<unknown> ) | null = null;\n\n\t/**\n\t * An editor instance. It should be set by the particular editor type handler.\n\t */\n\tdeclare protected _editor: Editor & Partial<ElementApi>;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( editor: Editor ) {\n\t\tthis._placeholderMap = new Map();\n\n\t\tif ( editor.plugins.has( 'RevisionHistory' ) ) {\n\t\t\tthis._showRevisionViewerCallback = editor.config.get( 'revisionHistory' )!.showRevisionViewerCallback;\n\t\t\tthis._closeRevisionViewerCallback = editor.config.get( 'revisionHistory' )!.closeRevisionViewerCallback;\n\t\t}\n\n\t\tthis._editor = editor;\n\t\tthis._document = this._editor.sourceElement ? this._editor.sourceElement.ownerDocument : global.document;\n\t\tthis._editor.config.define( 'fullscreen.container', this._document.body );\n\n\t\teditor.on( 'destroy', () => {\n\t\t\tif ( this._wrapper ) {\n\t\t\t\tthis.destroy();\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Moves the given element to the fullscreen mode container, leaving a placeholder in its place.\n\t */\n\tpublic moveToFullscreen( elementToMove: HTMLElement, placeholderName: string ): void {\n\t\tconst placeholderElement = createElement( this._document, 'div' );\n\n\t\tplaceholderElement.setAttribute( 'data-ck-fullscreen-placeholder', placeholderName );\n\t\telementToMove.replaceWith( placeholderElement );\n\n\t\tthis.getWrapper().querySelector( `[data-ck-fullscreen=\"${ placeholderName }\"]` )!.append( elementToMove );\n\n\t\tthis._placeholderMap.set( placeholderName, { placeholderElement, movedElement: elementToMove } );\n\t}\n\n\t/**\n\t * Returns a single moved element to its original place.\n\t */\n\tpublic restoreMovedElementLocation( placeholderName: string ): void {\n\t\tif ( !this._placeholderMap.has( placeholderName ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { placeholderElement, movedElement } = this._placeholderMap.get( placeholderName )!;\n\n\t\tplaceholderElement.replaceWith( movedElement );\n\t\tplaceholderElement.remove();\n\n\t\tthis._placeholderMap.delete( placeholderName );\n\n\t\tif ( this._placeholderMap.size === 0 ) {\n\t\t\tthis._destroyContainer();\n\t\t}\n\t}\n\n\t/**\n\t * Returns the fullscreen mode container element.\n\t */\n\tpublic getWrapper(): HTMLElement {\n\t\tif ( !this._wrapper ) {\n\t\t\tthis._wrapper = createElement( this._document, 'div', {\n\t\t\t\tclass: 'ck ck-fullscreen__main-wrapper'\n\t\t\t} );\n\n\t\t\t// For now, the container is generated in a very straightforward way. If necessary, it may be rewritten using our UI lib.\n\t\t\tthis._wrapper.innerHTML = `\n\t\t\t\t<div class=\"ck ck-fullscreen__top-wrapper ck-reset_all\">\n\t\t\t\t\t<div class=\"ck ck-fullscreen__menu-bar\" data-ck-fullscreen=\"menu-bar\"></div>\n\t\t\t\t\t<div class=\"ck ck-fullscreen__toolbar\" data-ck-fullscreen=\"toolbar\"></div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"ck ck-fullscreen__editable-wrapper\">\n\t\t\t\t\t<div class=\"ck ck-fullscreen__sidebar ck-fullscreen__left-sidebar\" data-ck-fullscreen=\"left-sidebar\">\n\t\t\t\t\t\t<div class=\"ck ck-fullscreen__left-sidebar--sticky\" data-ck-fullscreen=\"left-sidebar-sticky\"></div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"ck ck-fullscreen__editable\" data-ck-fullscreen=\"editable\">\n\t\t\t\t\t\t<div class=\"ck ck-fullscreen__pagination-view\" data-ck-fullscreen=\"pagination-view\"></div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"ck ck-fullscreen__sidebar ck-fullscreen__right-sidebar\" data-ck-fullscreen=\"right-sidebar\"></div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"ck ck-fullscreen__bottom-wrapper\">\n\t\t\t\t\t<div class=\"ck ck-fullscreen__body-wrapper\" data-ck-fullscreen=\"body-wrapper\"></div>\n\t\t\t\t</div>\n\t\t\t`;\n\n\t\t\tthis._editor.config.get( 'fullscreen.container' )!.appendChild( this._wrapper );\n\t\t}\n\n\t\treturn this._wrapper;\n\t}\n\n\t/**\n\t * Enables the fullscreen mode. It executes the editor-specific enable handler and then the configured callback.\n\t */\n\tpublic enable(): void {\n\t\tthis._saveAncestorsScrollPositions( this._editor.ui.getEditableElement()! )!;\n\t\tthis._defaultOnEnter();\n\n\t\t// Block scroll if the fullscreen container is the body element. Otherwise the document has to stay scrollable.\n\t\tif ( this._editor.config.get( 'fullscreen.container' ) === this._document.body ) {\n\t\t\tthis._document.body.classList.add( 'ck-fullscreen' );\n\t\t\tthis._document.body.parentElement!.classList.add( 'ck-fullscreen' );\n\t\t}\n\n\t\tif ( this._editor.plugins.has( 'Dialog' ) ) {\n\t\t\tthis._registerFullscreenDialogPositionAdjustments();\n\t\t}\n\n\t\t// Code coverage is provided in the commercial package repository as integration unit tests.\n\t\t/* istanbul ignore if -- @preserve */\n\t\tif ( this._editor.plugins.has( 'PresenceListUI' ) ) {\n\t\t\tthis._generatePresenceListContainer();\n\t\t}\n\n\t\t// Code coverage is provided in the commercial package repository as integration unit tests.\n\t\t/* istanbul ignore if -- @preserve */\n\t\tif ( this._editor.plugins.has( 'DocumentOutlineUI' ) ) {\n\t\t\tthis._generateDocumentOutlineContainer();\n\t\t}\n\n\t\t// Code coverage is provided in the commercial package repository as integration unit tests.\n\t\t/* istanbul ignore next -- @preserve */\n\t\tif ( this._editor.plugins.has( 'Pagination' ) && this._editor.plugins.get( 'Pagination' ).isEnabled ) {\n\t\t\tconst paginationRenderer = this._editor.plugins.get( 'PaginationRenderer' ) as PaginationRenderer;\n\n\t\t\tpaginationRenderer.setupScrollableAncestor();\n\n\t\t\tthis._paginationBodyCollection = new BodyCollection( this._editor.locale );\n\n\t\t\tthis._paginationBodyCollection.attachToDom();\n\t\t\tpaginationRenderer.linesRepository.setViewCollection( this._paginationBodyCollection );\n\n\t\t\tthis._editor.once( 'destroy', () => {\n\t\t\t\tthis._paginationBodyCollection!.detachFromDom();\n\t\t\t} );\n\n\t\t\tthis.moveToFullscreen( this._paginationBodyCollection.bodyCollectionContainer!, 'body-wrapper' );\n\t\t}\n\n\t\t// Code coverage is provided in the commercial package repository as integration unit tests.\n\t\t/* istanbul ignore if -- @preserve */\n\t\tif ( this._editor.plugins.has( 'AnnotationsUIs' ) ) {\n\t\t\tthis._overrideAnnotationsUIs();\n\t\t}\n\n\t\tif ( this._editor.plugins.has( 'RevisionHistory' ) ) {\n\t\t\t// Code coverage is provided in the commercial package repository as integration unit tests.\n\t\t\t/* istanbul ignore if -- @preserve */\n\t\t\tif ( this._editor.plugins.get( 'RevisionHistory' ).isRevisionViewerOpen ) {\n\t\t\t\t// Keep in mind that closing the revision history viewer is an asynchronous operation.\n\t\t\t\tthis._editor.config.get( 'revisionHistory.closeRevisionViewerCallback' )!();\n\t\t\t}\n\n\t\t\tthis._overrideRevisionHistoryCallbacks();\n\t\t}\n\n\t\tif ( this._editor.plugins.has( 'SourceEditing' ) && this._editor.plugins.has( 'DocumentOutlineUI' ) ) {\n\t\t\tthis._editor.plugins.get( 'SourceEditing' ).on( 'change:isSourceEditingMode', this._sourceEditingCallback );\n\t\t}\n\n\t\t// Hide all other elements in the container to ensure they don't create an empty unscrollable space.\n\t\tfor ( const element of this._editor.config.get( 'fullscreen.container' )!.children ) {\n\t\t\t// Do not hide body wrapper and ckbox wrapper to keep dialogs, balloons etc visible.\n\t\t\tif (\n\t\t\t\telement !== this._wrapper &&\n\t\t\t\t!element.classList.contains( 'ck-body-wrapper' ) &&\n\t\t\t\t!element.classList.contains( 'ckbox-wrapper' ) &&\n\t\t\t\t// Already hidden elements are not hidden again to avoid accidentally showing them after leaving fullscreen.\n\t\t\t\t( element as HTMLElement ).style.display !== 'none'\n\t\t\t) {\n\t\t\t\tthis._hiddenElements.set( element as HTMLElement, ( element as HTMLElement ).style.display );\n\t\t\t\t( element as HTMLElement ).style.display = 'none';\n\t\t\t}\n\t\t}\n\n\t\tif ( this._editor.config.get( 'fullscreen.onEnterCallback' ) ) {\n\t\t\tthis._editor.config.get( 'fullscreen.onEnterCallback' )!( this.getWrapper() );\n\t\t}\n\t}\n\n\t/**\n\t * Disables the fullscreen mode by restoring all moved elements and destroying the fullscreen container.\n\t */\n\tpublic disable(): void {\n\t\tif ( this._editor.config.get( 'fullscreen.onLeaveCallback' ) ) {\n\t\t\tthis._editor.config.get( 'fullscreen.onLeaveCallback' )!( this.getWrapper() );\n\t\t}\n\n\t\tthis._document.body.classList.remove( 'ck-fullscreen' );\n\t\tthis._document.body.parentElement!.classList.remove( 'ck-fullscreen' );\n\n\t\t// Code coverage is provided in the commercial package repository as integration unit tests.\n\t\t/* istanbul ignore if -- @preserve */\n\t\tif ( this._editor.plugins.has( 'DocumentOutlineUI' ) ) {\n\t\t\tthis._restoreDocumentOutlineDefaultContainer();\n\t\t}\n\n\t\t// Code coverage is provided in the commercial package repository as integration unit tests.\n\t\t/* istanbul ignore if -- @preserve */\n\t\tif ( this._annotationsUIsData ) {\n\t\t\tthis._restoreAnnotationsUIs();\n\t\t}\n\n\t\tif ( this._editor.plugins.has( 'RevisionHistory' ) ) {\n\t\t\tthis._restoreRevisionHistoryCallbacks();\n\t\t}\n\n\t\tif ( this._editor.plugins.has( 'SourceEditing' ) && this._editor.plugins.has( 'DocumentOutlineUI' ) ) {\n\t\t\tthis._editor.plugins.get( 'SourceEditing' ).off( 'change:isSourceEditingMode', this._sourceEditingCallback );\n\t\t}\n\n\t\tfor ( const placeholderName of this._placeholderMap.keys() ) {\n\t\t\tthis.restoreMovedElementLocation( placeholderName );\n\t\t}\n\n\t\tthis._editor.ui.view.toolbar!.switchBehavior(\n\t\t\tthis._editor.config.get( 'toolbar.shouldNotGroupWhenFull' ) === true ? 'static' : 'dynamic'\n\t\t);\n\n\t\tif ( this._placeholderMap.size === 0 ) {\n\t\t\tthis._destroyContainer();\n\t\t}\n\n\t\t// Restore scroll positions of all ancestors. It may include the closest editable wrapper causing the editor to change\n\t\t// the visible content, which is not what we want. Thus, after executing the command, we use\n\t\t// `editor.editing.view.scrollToTheSelection()` to scroll the editor viewport to the current selection.\n\t\tfor ( const [ ancestor, value ] of this._savedAncestorsScrollPositions ) {\n\t\t\tancestor.scrollTo( value.scrollLeft, value.scrollTop );\n\t\t}\n\n\t\tthis._savedAncestorsScrollPositions.clear();\n\n\t\t// Pagination has to be restored after leaving fullscreen mode to ensure proper rendering.\n\t\t// Code coverage is provided in the commercial package repository as integration unit tests.\n\t\t/* istanbul ignore next -- @preserve */\n\t\tif ( this._editor.plugins.has( 'Pagination' ) && this._editor.plugins.get( 'Pagination' ).isEnabled ) {\n\t\t\tconst paginationRenderer = this._editor.plugins.get( 'PaginationRenderer' ) as PaginationRenderer;\n\n\t\t\tpaginationRenderer.setupScrollableAncestor();\n\t\t\tpaginationRenderer.linesRepository.setViewCollection( this._editor.ui.view.body );\n\n\t\t\tthis._paginationBodyCollection!.detachFromDom();\n\t\t\tthis._paginationBodyCollection?.destroy();\n\t\t}\n\n\t\t// Also dialog position needs to be recalculated after leaving fullscreen mode.\n\t\tif ( this._editor.plugins.has( 'Dialog' ) ) {\n\t\t\tthis._unregisterFullscreenDialogPositionAdjustments();\n\t\t}\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic destroy(): void {\n\t\tfor ( const { placeholderElement, movedElement } of this._placeholderMap.values() ) {\n\t\t\tplaceholderElement.remove();\n\t\t\tmovedElement.remove();\n\t\t}\n\n\t\tthis._destroyContainer();\n\n\t\tthis._document.body.classList.remove( 'ck-fullscreen' );\n\t\tthis._document.body.parentElement!.classList.remove( 'ck-fullscreen' );\n\t}\n\n\t/**\n\t * A function that moves the editor UI elements to the fullscreen mode. It should be set by the particular editor type handler.\n\t *\n\t * Returns the fullscreen mode container element so it can be further customized via\n\t * `fullscreen.onEnterCallback` configuration property.\n\t */\n\tprotected _defaultOnEnter(): HTMLElement {\n\t\treturn this.getWrapper();\n\t}\n\n\t/**\n\t * Destroys the fullscreen mode container.\n\t */\n\tprivate _destroyContainer(): void {\n\t\tif ( !this._wrapper ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._wrapper.remove();\n\t\tthis._wrapper = null;\n\n\t\t// Restore visibility of all other elements in the container.\n\t\tfor ( const [ element, displayValue ] of this._hiddenElements ) {\n\t\t\telement.style.display = displayValue;\n\t\t}\n\n\t\tthis._hiddenElements.clear();\n\t}\n\n\t/**\n\t * Checks if the PresenceListUI plugin is available and moves its elements to fullscreen mode.\n\t */\n\t// Code coverage is provided in the commercial package repository as integration unit tests.\n\t/* istanbul ignore next -- @preserve */\n\tprivate _generatePresenceListContainer(): void {\n\t\tconst presenceListElement = createElement( document, 'div', {\n\t\t\tclass: 'ck ck-fullscreen__left-sidebar-item'\n\t\t} );\n\n\t\tpresenceListElement.innerHTML = `\n\t\t\t<div class=\"ck ck-fullscreen__left-sidebar-header\">Connected users</div>\n\t\t\t<div class=\"ck ck-fullscreen__presence-list\" data-ck-fullscreen=\"presence-list\"></div>\n\t\t`;\n\n\t\tdocument.querySelector( '[data-ck-fullscreen=\"left-sidebar-sticky\"]' )!.appendChild( presenceListElement );\n\n\t\tconst presenceListUI = this._editor.plugins.get( 'PresenceListUI' ) as PresenceListUI;\n\n\t\tthis.moveToFullscreen( presenceListUI.view.element!, 'presence-list' );\n\t}\n\n\t/**\n\t * Checks if the DocumentOutlineUI plugin is available and moves its elements to fullscreen mode.\n\t */\n\t// Code coverage is provided in the commercial package repository as integration unit tests.\n\t/* istanbul ignore next -- @preserve */\n\tprivate _generateDocumentOutlineContainer(): void {\n\t\tconst documentOutlineHeaderElement = createElement( document, 'div', {\n\t\t\tclass: 'ck-fullscreen__left-sidebar-item ck-fullscreen__left-sidebar-item--no-margin'\n\t\t} );\n\n\t\tdocumentOutlineHeaderElement.innerHTML = `\n\t\t\t<div class=\"ck ck-fullscreen__left-sidebar-header ck-fullscreen__document-outline-header\">\n\t\t\t\tDocument outline\n\t\t\t</div>\n\t\t`;\n\n\t\tconst documentOutlineBodyWrapper = createElement( document, 'div', {\n\t\t\tclass: 'ck ck-fullscreen__left-sidebar-item ck-fullscreen__document-outline-wrapper'\n\t\t} );\n\n\t\tdocumentOutlineBodyWrapper.innerHTML = `\n\t\t\t<div class=\"ck ck-fullscreen__document-outline\" data-ck-fullscreen=\"document-outline\"></div>\n\t\t`;\n\n\t\tdocument.querySelector( '[data-ck-fullscreen=\"left-sidebar\"]' )!.appendChild( documentOutlineBodyWrapper );\n\t\tdocument.querySelector( '[data-ck-fullscreen=\"left-sidebar-sticky\"]' )!.appendChild( documentOutlineHeaderElement );\n\n\t\tconst documentOutlineUI = this._editor.plugins.get( 'DocumentOutlineUI' ) as DocumentOutlineUI;\n\t\tdocumentOutlineUI.view.documentOutlineContainer = document.querySelector( '[data-ck-fullscreen=\"left-sidebar\"]' ) as HTMLElement;\n\n\t\tthis.moveToFullscreen( documentOutlineUI.view.element!, 'document-outline' );\n\t}\n\n\t/**\n\t * Restores the default value of documentOutlineContainer, which is modified in fullscreen mode.\n\t */\n\t// Code coverage is provided in the commercial package repository as integration unit tests.\n\t/* istanbul ignore next -- @preserve */\n\tprivate _restoreDocumentOutlineDefaultContainer(): void {\n\t\tconst documentOutlineUI = this._editor.plugins.get( 'DocumentOutlineUI' ) as DocumentOutlineUI;\n\t\tdocumentOutlineUI.view.documentOutlineContainer = documentOutlineUI.view.element as HTMLElement;\n\t}\n\n\t/**\n\t * Stores the current state of the annotations UIs to restore it when leaving fullscreen mode.\n\t */\n\t// Code coverage is provided in the commercial package repository as integration unit tests.\n\t/* istanbul ignore next -- @preserve */\n\tprivate _overrideAnnotationsUIs() {\n\t\tconst annotationsUIs = this._editor.plugins.get( 'AnnotationsUIs' ) as AnnotationsUIs;\n\n\t\tthis._annotationsUIsData = new Map( annotationsUIs.uisData );\n\n\t\t// Switch to the wide sidebar.\n\t\tconst sidebarPlugin = this._editor.plugins.get( 'Sidebar' ) as Sidebar;\n\n\t\tif ( !sidebarPlugin.container ) {\n\t\t\tsidebarPlugin.setContainer(\n\t\t\t\tthis.getWrapper().querySelector( '[data-ck-fullscreen=\"right-sidebar\"]' ) as HTMLElement\n\t\t\t);\n\t\t}\n\n\t\tconst annotationsFilters = new Map<string, ( annotation: Annotation ) => boolean>();\n\n\t\tfor ( const [ uiName, data ] of [ ...this._annotationsUIsData! ] ) {\n\t\t\t// Default filter is `() => true`. Only store filters that are different.\n\t\t\tif ( data.filter !== annotationsUIs.defaultFilter ) {\n\t\t\t\tannotationsFilters.set( uiName, data.filter );\n\t\t\t}\n\t\t}\n\n\t\tannotationsUIs.deactivateAll();\n\n\t\t// Check if someone has a filter defined for `wideSidebar`. If so, retrieve and apply it in fullscreen. Do not show any other UI.\n\t\tif ( annotationsFilters.has( 'wideSidebar' ) ) {\n\t\t\tannotationsUIs.activate( 'wideSidebar', annotationsFilters.get( 'wideSidebar' ) );\n\t\t}\n\t\t// If no filter is defined for `wideSidebar`, read the filters for the active display(s) mode and apply them.\n\t\t// It's possible there are filters for both `narrowSidebar` and `inline` modes, so display annotations that match any of them.\n\t\telse if ( annotationsFilters.size ) {\n\t\t\tannotationsUIs.activate( 'wideSidebar',\n\t\t\t\tannotation => [ ...annotationsFilters.values() ].some( filter => filter( annotation ) )\n\t\t\t);\n\t\t}\n\t\t// If no filters are defined for the active display mode(s), simply display all annotations in the wide sidebar.\n\t\telse {\n\t\t\tannotationsUIs.switchTo( 'wideSidebar' );\n\t\t}\n\n\t\tthis.moveToFullscreen( ( sidebarPlugin.container!.firstElementChild as HTMLElement ), 'right-sidebar' );\n\t}\n\n\t/**\n\t * Restores the saved state of the annotations UIs.\n\t */\n\t// Code coverage is provided in the commercial package repository as integration unit tests.\n\t/* istanbul ignore next -- @preserve */\n\tprivate _restoreAnnotationsUIs() {\n\t\tconst annotationsUIs = this._editor.plugins.get( 'AnnotationsUIs' ) as AnnotationsUIs;\n\n\t\tannotationsUIs.deactivateAll();\n\n\t\tfor ( const [ uiName, data ] of [ ...this._annotationsUIsData! ] ) {\n\t\t\tannotationsUIs.activate( uiName, data.filter );\n\t\t}\n\n\t\tthis._annotationsUIsData = null;\n\t}\n\n\t/**\n\t * Modifies the revision history viewer callbacks to display the viewer in the fullscreen mode.\n\t */\n\tprivate _overrideRevisionHistoryCallbacks(): void {\n\t\t// * Hide editor's editable, toolbar and sidebar;\n\t\t// * Disable menu bar;\n\t\t// * Show revision viewer editable, toolbar and sidebar.\n\t\t// Code coverage is provided in the commercial package repository as integration unit tests.\n\t\t/* istanbul ignore next -- @preserve */\n\t\tthis._editor.config.set( 'revisionHistory.showRevisionViewerCallback', async () => {\n\t\t\tconst revisionViewerEditor = await this._showRevisionViewerCallback!();\n\n\t\t\tif ( this._editor.plugins.has( 'DocumentOutlineUI' ) ) {\n\t\t\t\t( this.getWrapper().querySelector( '.ck-fullscreen__document-outline-header' ) as HTMLElement ).style.display = 'none';\n\t\t\t}\n\n\t\t\tthis.restoreMovedElementLocation( 'editable' );\n\t\t\tthis.restoreMovedElementLocation( 'toolbar' );\n\t\t\tthis.restoreMovedElementLocation( 'right-sidebar' );\n\n\t\t\tif ( this._annotationsUIsData ) {\n\t\t\t\tthis._restoreAnnotationsUIs();\n\t\t\t}\n\n\t\t\tif ( this._editor.ui.view.menuBarView ) {\n\t\t\t\tthis._editor.ui.view.menuBarView.disable();\n\t\t\t}\n\n\t\t\tthis.moveToFullscreen( revisionViewerEditor!.ui.getEditableElement()!, 'editable' );\n\t\t\tthis.moveToFullscreen( revisionViewerEditor!.ui.view.toolbar.element!, 'toolbar' );\n\t\t\tthis.moveToFullscreen( this._editor.config.get( 'revisionHistory.viewerSidebarContainer' )!, 'right-sidebar' );\n\n\t\t\treturn revisionViewerEditor;\n\t\t} );\n\n\t\t// * Hide revision viewer editable, toolbar and sidebar;\n\t\t// * Enable menu bar;\n\t\t// * Show editor's editable, toolbar and sidebar.\n\t\t// Code coverage is provided in the commercial package repository as integration unit tests.\n\t\t/* istanbul ignore next -- @preserve */\n\t\tthis._editor.config.set( 'revisionHistory.closeRevisionViewerCallback', async () => {\n\t\t\tthis.restoreMovedElementLocation( 'toolbar' );\n\t\t\tthis.restoreMovedElementLocation( 'editable' );\n\t\t\tthis.restoreMovedElementLocation( 'right-sidebar' );\n\n\t\t\tif ( this._editor.plugins.has( 'DocumentOutlineUI' ) ) {\n\t\t\t\t( this.getWrapper().querySelector( '.ck-fullscreen__document-outline-header' ) as HTMLElement ).style.display = '';\n\t\t\t}\n\n\t\t\tthis.moveToFullscreen( this._editor.ui.getEditableElement()!, 'editable' );\n\t\t\tthis.moveToFullscreen( this._editor.ui.view.toolbar!.element!, 'toolbar' );\n\n\t\t\tawait this._closeRevisionViewerCallback!();\n\n\t\t\tif ( this._editor.plugins.has( 'AnnotationsUIs' ) ) {\n\t\t\t\tthis._overrideAnnotationsUIs();\n\t\t\t}\n\n\t\t\tif ( this._editor.ui.view.menuBarView ) {\n\t\t\t\tthis._editor.ui.view.menuBarView.enable();\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Resets the revision history viewer callbacks to their original values.\n\t */\n\tprivate _restoreRevisionHistoryCallbacks(): void {\n\t\t// Code coverage is provided in the commercial package repository as integration unit tests.\n\t\t/* istanbul ignore next -- @preserve */\n\t\tthis._editor.config.set( 'revisionHistory.showRevisionViewerCallback', async () => {\n\t\t\treturn this._showRevisionViewerCallback!();\n\t\t} );\n\n\t\t// Code coverage is provided in the commercial package repository as integration unit tests.\n\t\t/* istanbul ignore next -- @preserve */\n\t\tthis._editor.config.set( 'revisionHistory.closeRevisionViewerCallback', async () => {\n\t\t\treturn this._closeRevisionViewerCallback!();\n\t\t} );\n\t}\n\n\t/**\n\t * Adds an event listener when the dialog opens to adjust its position in fullscreen mode,\n\t * utilizing the empty space on the right side of the editable element.\n\t */\n\tprivate _registerFullscreenDialogPositionAdjustments(): void {\n\t\tconst dialog = this._editor.plugins.get( 'Dialog' );\n\n\t\tthis._setNewDialogPosition();\n\n\t\tdialog.on( 'change:isOpen', this.updateDialogPositionCallback, { priority: 'highest' } );\n\t}\n\n\t/**\n\t * Removes an event listener that adjusts the dialog's position in fullscreen mode.\n\t */\n\tprivate _unregisterFullscreenDialogPositionAdjustments(): void {\n\t\tconst dialog = this._editor.plugins.get( 'Dialog' );\n\t\tconst dialogView = dialog.view;\n\n\t\tif ( dialogView && dialogView.position === null ) {\n\t\t\tdialogView.position = DialogViewPosition.EDITOR_TOP_SIDE;\n\t\t}\n\n\t\tif ( dialogView ) {\n\t\t\tdialogView.updatePosition();\n\t\t}\n\n\t\tdialog.off( 'change:isOpen', this.updateDialogPositionCallback );\n\t}\n\n\t/**\n\t * Stores a bound reference to the _updateDialogPosition method, allowing it to be attached and detached from change event.\n\t */\n\tpublic updateDialogPositionCallback = this._updateDialogPosition.bind( this );\n\n\t/**\n\t * If dialog is open, adjust its positioning.\n\t */\n\tprivate _updateDialogPosition( _evt: EventInfo, _name: string, isOpen: boolean ): void {\n\t\tif ( isOpen ) {\n\t\t\tthis._setNewDialogPosition();\n\t\t}\n\t}\n\n\t/**\n\t * Adjusts the dialog position to utilize the empty space on the right side of the editable.\n\t * The new dialog position should be on the right side of the fullscreen view with a 30px margin.\n\t * Only dialogs with the position set to \"editor-top-side\" should have their position changed.\n\t */\n\tprivate _setNewDialogPosition(): void {\n\t\tconst dialog = this._editor.plugins.get( 'Dialog' );\n\t\tconst dialogView = dialog.view!;\n\n\t\tif ( !dialogView || dialogView.position !== DialogViewPosition.EDITOR_TOP_SIDE ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst fullscreenViewContainerRect = new Rect( this._wrapper! ).getVisible();\n\t\tconst editorContainerRect = new Rect( document.querySelector( '.ck-fullscreen__editable' ) as HTMLElement ).getVisible();\n\t\tconst dialogRect = new Rect( dialogView.element!.querySelector( '.ck-dialog' ) as HTMLElement ).getVisible();\n\t\tconst scrollOffset = new Rect( document.querySelector( '.ck-fullscreen__editable-wrapper' ) as HTMLElement )\n\t\t\t.excludeScrollbarsAndBorders().getVisible()!.width -\n\t\t\tnew Rect( document.querySelector( '.ck-fullscreen__editable-wrapper' ) as HTMLElement ).getVisible()!.width;\n\n\t\tif ( fullscreenViewContainerRect && editorContainerRect && dialogRect ) {\n\t\t\tdialogView.position = null;\n\n\t\t\tdialogView.moveTo(\n\t\t\t\tfullscreenViewContainerRect.left + fullscreenViewContainerRect.width - dialogRect.width - DIALOG_OFFSET + scrollOffset,\n\t\t\t\teditorContainerRect.top\n\t\t\t);\n\t\t}\n\t}\n\n\t/**\n\t * Saves the scroll positions of all ancestors of the given element.\n\t */\n\tprivate _saveAncestorsScrollPositions( domElement: HTMLElement ): void {\n\t\tlet element = domElement.parentElement;\n\n\t\tif ( !element ) {\n\t\t\treturn;\n\t\t}\n\n\t\twhile ( element ) {\n\t\t\tconst overflowY = element.style.overflowY || global.window.getComputedStyle( element ).overflowY;\n\t\t\tconst overflowX = element.style.overflowX || global.window.getComputedStyle( element ).overflowX;\n\n\t\t\t// Out of 5 possible keyword values: visible, hidden, clip, scroll and auto - only the last two allow for scrolling.\n\t\t\tif (\n\t\t\t\toverflowY === 'auto' ||\n\t\t\t\toverflowY === 'scroll' ||\n\t\t\t\toverflowX === 'auto' ||\n\t\t\t\toverflowX === 'scroll'\n\t\t\t) {\n\t\t\t\tthis._savedAncestorsScrollPositions.set( element, {\n\t\t\t\t\tscrollLeft: element.scrollLeft,\n\t\t\t\t\tscrollTop: element.scrollTop\n\t\t\t\t} );\n\t\t\t} else if ( element.tagName === 'HTML' ) {\n\t\t\t\tthis._savedAncestorsScrollPositions.set( element, {\n\t\t\t\t\tscrollLeft: element.scrollLeft,\n\t\t\t\t\tscrollTop: element.scrollTop\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\telement = element.parentElement;\n\t\t}\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module fullscreen/handlers/classiceditorhandler\n */\n\nimport { MenuBarView } from 'ckeditor5/src/ui.js';\nimport type { ClassicEditor } from '@ckeditor/ckeditor5-editor-classic';\n\nimport AbstractEditorHandler from './abstracteditorhandler.js';\n\n/**\n * The classic editor fullscreen mode handler.\n */\nexport default class ClassicEditorHandler extends AbstractEditorHandler {\n\t/**\n\t * An editor instance.\n\t */\n\tprotected override readonly _editor: ClassicEditor;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( editor: ClassicEditor ) {\n\t\tsuper( editor );\n\n\t\tthis._editor = editor;\n\t}\n\n\t/**\n\t * A function that moves the editor UI elements to the fullscreen mode.\n\t */\n\tprotected override _defaultOnEnter(): HTMLElement {\n\t\tconst editorUI = this._editor.ui;\n\t\tconst editorUIView = editorUI.view;\n\n\t\t// Code coverage is provided in the commercial package repository as integration unit tests.\n\t\t/* istanbul ignore next -- @preserve */\n\t\tif ( this._editor.plugins.has( 'Pagination' ) && this._editor.plugins.get( 'Pagination' ).isEnabled ) {\n\t\t\tthis.moveToFullscreen(\n\t\t\t\teditorUI.getEditableElement()!.parentElement!.querySelector( '.ck-pagination-view' )!, 'pagination-view'\n\t\t\t);\n\t\t}\n\n\t\tthis.moveToFullscreen( editorUI.getEditableElement()!, 'editable' );\n\t\tthis.moveToFullscreen( editorUIView.toolbar.element!, 'toolbar' );\n\n\t\teditorUIView.toolbar.switchBehavior(\n\t\t\tthis._editor.config.get( 'fullscreen.toolbar.shouldNotGroupWhenFull' ) === true ? 'static' : 'dynamic'\n\t\t);\n\n\t\t// In classic editor, the `dir` attribute is set on the top-level container and it affects the styling\n\t\t// in both menu bar and toolbar (adding the side padding to the elements).\n\t\t// Since we don't move the whole container but only parts, we need to reapply the attribute value manually.\n\t\t// Decupled editor doesn't have this issue because there is no top-level container,\n\t\t// so `dir` attribute is set on each component separately.\n\t\tthis.getWrapper().setAttribute( 'dir', editorUIView.element!.getAttribute( 'dir' )! );\n\n\t\t// The `ck-rounded-corners` class is added to the wrapper element to ensure that the corners in menu bar, toolbar etc are rounded\n\t\t// when the editor is in fullscreen mode.\n\t\t// Decupled editor doesn't have this issue because there is no top-level container,\n\t\t// so `ck-rounded-corners` class is set on each component separately.\n\t\tthis.getWrapper().classList.add( 'ck-rounded-corners' );\n\n\t\tif ( this._editor.config.get( 'fullscreen.menuBar.isVisible' ) ) {\n\t\t\tif ( !editorUIView.menuBarView ) {\n\t\t\t\teditorUIView.menuBarView = new MenuBarView( this._editor.locale );\n\t\t\t\teditorUIView.menuBarView.render();\n\t\t\t\teditorUI.initMenuBar( editorUIView.menuBarView );\n\t\t\t}\n\n\t\t\tthis.moveToFullscreen( editorUIView.menuBarView.element!, 'menu-bar' );\n\t\t}\n\n\t\treturn this.getWrapper();\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module fullscreen/handlers/decouplededitorhandler\n */\n\nimport type { DecoupledEditor } from '@ckeditor/ckeditor5-editor-decoupled';\n\nimport AbstractEditorHandler from './abstracteditorhandler.js';\n\n/**\n * The decoupled editor fullscreen mode handler.\n */\nexport default class DecoupledEditorHandler extends AbstractEditorHandler {\n\t/**\n\t * An editor instance.\n\t */\n\tprotected override readonly _editor: DecoupledEditor;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( editor: DecoupledEditor ) {\n\t\tsuper( editor );\n\n\t\tthis._editor = editor;\n\t}\n\n\t/**\n\t * A function that moves the editor UI elements to the fullscreen mode.\n\t */\n\tprotected override _defaultOnEnter(): HTMLElement {\n\t\t// Code coverage is provided in the commercial package repository as integration unit tests.\n\t\t/* istanbul ignore next -- @preserve */\n\t\tif ( this._editor.plugins.has( 'Pagination' ) && this._editor.plugins.get( 'Pagination' ).isEnabled ) {\n\t\t\tthis.moveToFullscreen(\n\t\t\t\tthis._editor.ui.getEditableElement()!.parentElement!.querySelector( '.ck-pagination-view' )!, 'pagination-view'\n\t\t\t);\n\t\t}\n\n\t\tthis.moveToFullscreen( this._editor.ui.getEditableElement()!, 'editable' );\n\t\tthis.moveToFullscreen( this._editor.ui.view.toolbar.element!, 'toolbar' );\n\n\t\tthis._editor.ui.view.toolbar.switchBehavior(\n\t\t\tthis._editor.config.get( 'fullscreen.toolbar.shouldNotGroupWhenFull' ) === true ? 'static' : 'dynamic'\n\t\t);\n\n\t\tif ( this._editor.config.get( 'fullscreen.menuBar.isVisible' ) ) {\n\t\t\tthis.moveToFullscreen( this._editor.ui.view.menuBarView.element!, 'menu-bar' );\n\t\t}\n\n\t\treturn this.getWrapper();\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module fullscreen/fullscreencommand\n */\n\nimport { Command, type Editor } from 'ckeditor5/src/core.js';\nimport { ClassicEditor } from '@ckeditor/ckeditor5-editor-classic';\nimport { DecoupledEditor } from '@ckeditor/ckeditor5-editor-decoupled';\n\nimport AbstractEditorHandler from './handlers/abstracteditorhandler.js';\nimport ClassicEditorHandler from './handlers/classiceditorhandler.js';\nimport DecoupledEditorHandler from './handlers/decouplededitorhandler.js';\n\n/**\n * A command toggling the fullscreen mode.\n */\nexport default class FullscreenCommand extends Command {\n\t/**\n\t * Indicates whether the fullscreen mode is enabled.\n\t *\n\t * @observable\n\t * @readonly\n\t */\n\tdeclare public value: boolean;\n\n\t/**\n\t * Specialized class handling the fullscreen mode toggling for a specific editor type.\n\t */\n\tprivate _fullscreenHandler: AbstractEditorHandler;\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic constructor( editor: Editor ) {\n\t\tsuper( editor );\n\n\t\tthis.affectsData = false;\n\t\tthis.isEnabled = true;\n\t\tthis.value = false;\n\n\t\t// Choose the appropriate handler based on the editor type.\n\t\t// Currently only ClassicEditor and DecoupledEditor are supported. For other editor types, the abstract handler is used\n\t\t// which will throw if user tries to enable the fullscreen mode.\n\t\tif ( editor instanceof ClassicEditor ) {\n\t\t\tthis._fullscreenHandler = new ClassicEditorHandler( editor );\n\t\t} else if ( editor instanceof DecoupledEditor ) {\n\t\t\tthis._fullscreenHandler = new DecoupledEditorHandler( editor );\n\t\t} else {\n\t\t\tthis._fullscreenHandler = new AbstractEditorHandler( editor );\n\t\t}\n\t}\n\n\t/**\n\t * Toggles the fullscreen mode.\n\t */\n\tpublic override execute(): void {\n\t\tif ( this.value ) {\n\t\t\tthis._disableFullscreenMode();\n\t\t} else {\n\t\t\tthis._enableFullscreenMode();\n\t\t}\n\t}\n\n\t/**\n\t * Enables the fullscreen mode.\n\t */\n\tprivate _enableFullscreenMode(): void {\n\t\tthis._fullscreenHandler.enable();\n\n\t\tthis.value = true;\n\t}\n\n\t/**\n\t * Disables the fullscreen mode.\n\t */\n\tprivate _disableFullscreenMode(): void {\n\t\tthis._fullscreenHandler.disable();\n\n\t\tthis.value = false;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module fullscreen/fullscreenediting\n */\n\nimport { Plugin, type Editor } from 'ckeditor5/src/core.js';\nimport { env } from 'ckeditor5/src/utils.js';\n\nimport FullscreenCommand from './fullscreencommand.js';\n\n/**\n * A plugin that registers the fullscreen mode command.\n */\nexport default class FullscreenEditing extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'FullscreenEditing' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tconstructor( editor: Editor ) {\n\t\tsuper( editor );\n\n\t\teditor.config.define( 'fullscreen.menuBar.isVisible', true );\n\n\t\t// By default, toolbar should behave the same way in fullscreen mode as in normal mode.\n\t\t// This means that the toolbar buttons should be grouped when the toolbar is full.\n\t\teditor.config.define( 'fullscreen.toolbar.shouldNotGroupWhenFull', editor.config.get( 'toolbar.shouldNotGroupWhenFull' ) === true );\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tthis.editor.commands.add( 'toggleFullscreen', new FullscreenCommand( this.editor ) );\n\n\t\tconst t = this.editor.locale.t;\n\n\t\t// Set the Ctrl+Shift+F keystroke.\n\t\tthis.editor.keystrokes.set( 'Ctrl+Shift+F', ( evt, cancel ) => {\n\t\t\tthis.editor.execute( 'toggleFullscreen' );\n\n\t\t\t// On non-Chromium browsers, the editor view is not blurred properly after moving the editable,\n\t\t\t// even though the `document.activeElement` is changed. Hence we need to blur the view manually.\n\t\t\t// Fixes https://github.com/ckeditor/ckeditor5/issues/18250 and https://github.com/ckeditor/ckeditor5/issues/18247.\n\t\t\tif ( !env.isBlink ) {\n\t\t\t\tthis.editor.editing.view.document.isFocused = false;\n\t\t\t}\n\n\t\t\tthis.editor.editing.view.focus();\n\t\t\tthis.editor.editing.view.scrollToTheSelection();\n\n\t\t\tcancel();\n\t\t} );\n\n\t\t// Add the information about the keystroke to the accessibility database.\n\t\tthis.editor.accessibility.addKeystrokeInfos( {\n\t\t\tkeystrokes: [\n\t\t\t\t{\n\t\t\t\t\tlabel: t( 'Toggle fullscreen mode' ),\n\t\t\t\t\tkeystroke: 'CTRL+SHIFT+F'\n\t\t\t\t}\n\t\t\t],\n\t\t\tcategoryId: 'navigation'\n\t\t} );\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module fullscreen/fullscreenui\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\nimport { ButtonView, MenuBarMenuListItemButtonView } from 'ckeditor5/src/ui.js';\nimport { IconFullscreenEnter, IconFullscreenLeave } from 'ckeditor5/src/icons.js';\n\nimport FullscreenEditing from './fullscreenediting.js';\nimport '../theme/fullscreen.css';\n\nconst COMMAND_NAME = 'toggleFullscreen';\n\n/**\n * A plugin registering the fullscreen mode buttons.\n */\nexport default class FullscreenUI extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ FullscreenEditing ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'FullscreenUI' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic init(): void {\n\t\tconst editor = this.editor;\n\n\t\teditor.ui.componentFactory.add( 'fullscreen', () => this._createButton( ButtonView ) );\n\t\teditor.ui.componentFactory.add( 'menuBar:fullscreen', () => this._createButton( MenuBarMenuListItemButtonView ) );\n\t}\n\n\t/**\n\t * Creates a button that toggles the fullscreen mode.\n\t */\n\tprivate _createButton( ButtonClass: typeof ButtonView | typeof MenuBarMenuListItemButtonView ) {\n\t\tconst editor = this.editor;\n\t\tconst t = editor.t;\n\t\tconst command = editor.commands.get( COMMAND_NAME )!;\n\t\tconst view = new ButtonClass( editor.locale );\n\n\t\tview.set( {\n\t\t\tisToggleable: true\n\t\t} );\n\n\t\tview.bind( 'isEnabled' ).to( command, 'isEnabled' );\n\t\tview.bind( 'isOn' ).to( command, 'value' );\n\n\t\tif ( ( view instanceof MenuBarMenuListItemButtonView ) ) {\n\t\t\tview.set( {\n\t\t\t\trole: 'menuitemcheckbox',\n\t\t\t\tlabel: t( 'Fullscreen mode' )\n\t\t\t} );\n\t\t} else {\n\t\t\tview.bind( 'icon' ).to( command, 'value', value => value ? IconFullscreenLeave : IconFullscreenEnter );\n\t\t\tview.bind( 'label' ).to( command, 'value', value => value ? t( 'Leave fullscreen mode' ) : t( 'Enter fullscreen mode' ) );\n\t\t\tview.set( {\n\t\t\t\ttooltip: true\n\t\t\t} );\n\t\t}\n\n\t\tthis.listenTo( view, 'execute', () => {\n\t\t\teditor.execute( COMMAND_NAME );\n\t\t\teditor.editing.view.focus();\n\t\t\teditor.editing.view.scrollToTheSelection();\n\t\t} );\n\n\t\treturn view;\n\t}\n}\n","/**\n * @license Copyright (c) 2003-2025, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\n */\n\n/**\n * @module fullscreen/fullscreen\n */\n\nimport { Plugin } from 'ckeditor5/src/core.js';\n\nimport FullscreenEditing from './fullscreenediting.js';\nimport FullscreenUI from './fullscreenui.js';\n\n/**\n * The fullscreen mode feature.\n */\nexport default class Fullscreen extends Plugin {\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get requires() {\n\t\treturn [ FullscreenEditing, FullscreenUI ] as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static get pluginName() {\n\t\treturn 'Fullscreen' as const;\n\t}\n\n\t/**\n\t * @inheritDoc\n\t */\n\tpublic static override get isOfficialPlugin(): true {\n\t\treturn true;\n\t}\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ckeditor/ckeditor5-fullscreen",
3
- "version": "45.0.0-alpha.6",
3
+ "version": "45.0.0-alpha.8",
4
4
  "description": "Fullscreen mode feature for CKEditor 5.",
5
5
  "keywords": [
6
6
  "ckeditor",
@@ -13,18 +13,18 @@
13
13
  "type": "module",
14
14
  "main": "src/index.js",
15
15
  "dependencies": {
16
- "@ckeditor/ckeditor5-comments": "45.0.0-alpha.6",
17
- "@ckeditor/ckeditor5-core": "45.0.0-alpha.6",
18
- "@ckeditor/ckeditor5-document-outline": "45.0.0-alpha.6",
19
- "@ckeditor/ckeditor5-editor-classic": "45.0.0-alpha.6",
20
- "@ckeditor/ckeditor5-editor-decoupled": "45.0.0-alpha.6",
21
- "@ckeditor/ckeditor5-icons": "45.0.0-alpha.6",
22
- "@ckeditor/ckeditor5-pagination": "45.0.0-alpha.6",
23
- "@ckeditor/ckeditor5-real-time-collaboration": "45.0.0-alpha.6",
24
- "@ckeditor/ckeditor5-revision-history": "45.0.0-alpha.6",
25
- "@ckeditor/ckeditor5-ui": "45.0.0-alpha.6",
26
- "@ckeditor/ckeditor5-utils": "45.0.0-alpha.6",
27
- "ckeditor5": "45.0.0-alpha.6"
16
+ "@ckeditor/ckeditor5-comments": "45.0.0-alpha.8",
17
+ "@ckeditor/ckeditor5-core": "45.0.0-alpha.8",
18
+ "@ckeditor/ckeditor5-document-outline": "45.0.0-alpha.8",
19
+ "@ckeditor/ckeditor5-editor-classic": "45.0.0-alpha.8",
20
+ "@ckeditor/ckeditor5-editor-decoupled": "45.0.0-alpha.8",
21
+ "@ckeditor/ckeditor5-icons": "45.0.0-alpha.8",
22
+ "@ckeditor/ckeditor5-pagination": "45.0.0-alpha.8",
23
+ "@ckeditor/ckeditor5-real-time-collaboration": "45.0.0-alpha.8",
24
+ "@ckeditor/ckeditor5-revision-history": "45.0.0-alpha.8",
25
+ "@ckeditor/ckeditor5-ui": "45.0.0-alpha.8",
26
+ "@ckeditor/ckeditor5-utils": "45.0.0-alpha.8",
27
+ "ckeditor5": "45.0.0-alpha.8"
28
28
  },
29
29
  "author": "CKSource (http://cksource.com/)",
30
30
  "license": "SEE LICENSE IN LICENSE.md",
@@ -50,6 +50,7 @@ export default class FullscreenEditing extends Plugin {
50
50
  this.editor.editing.view.document.isFocused = false;
51
51
  }
52
52
  this.editor.editing.view.focus();
53
+ this.editor.editing.view.scrollToTheSelection();
53
54
  cancel();
54
55
  });
55
56
  // Add the information about the keystroke to the accessibility database.
@@ -70,6 +70,7 @@ export default class FullscreenUI extends Plugin {
70
70
  this.listenTo(view, 'execute', () => {
71
71
  editor.execute(COMMAND_NAME);
72
72
  editor.editing.view.focus();
73
+ editor.editing.view.scrollToTheSelection();
73
74
  });
74
75
  return view;
75
76
  }
@@ -41,6 +41,10 @@ export default class AbstractEditorHandler {
41
41
  * that were hidden before entering the fullscreen mode.
42
42
  */
43
43
  private _hiddenElements;
44
+ /**
45
+ * A map matching the ancestors of the editable element with their scroll positions before entering fullscreen mode.
46
+ */
47
+ private _savedAncestorsScrollPositions;
44
48
  /**
45
49
  * A callback that shows the revision viewer, stored to restore the original one after exiting the fullscreen mode.
46
50
  */
@@ -143,4 +147,8 @@ export default class AbstractEditorHandler {
143
147
  * Only dialogs with the position set to "editor-top-side" should have their position changed.
144
148
  */
145
149
  private _setNewDialogPosition;
150
+ /**
151
+ * Saves the scroll positions of all ancestors of the given element.
152
+ */
153
+ private _saveAncestorsScrollPositions;
146
154
  }
@@ -48,6 +48,10 @@ export default class AbstractEditorHandler {
48
48
  * that were hidden before entering the fullscreen mode.
49
49
  */
50
50
  _hiddenElements = new Map();
51
+ /**
52
+ * A map matching the ancestors of the editable element with their scroll positions before entering fullscreen mode.
53
+ */
54
+ _savedAncestorsScrollPositions = new Map();
51
55
  /**
52
56
  * A callback that shows the revision viewer, stored to restore the original one after exiting the fullscreen mode.
53
57
  */
@@ -134,6 +138,7 @@ export default class AbstractEditorHandler {
134
138
  * Enables the fullscreen mode. It executes the editor-specific enable handler and then the configured callback.
135
139
  */
136
140
  enable() {
141
+ this._saveAncestorsScrollPositions(this._editor.ui.getEditableElement());
137
142
  this._defaultOnEnter();
138
143
  // Block scroll if the fullscreen container is the body element. Otherwise the document has to stay scrollable.
139
144
  if (this._editor.config.get('fullscreen.container') === this._document.body) {
@@ -231,6 +236,13 @@ export default class AbstractEditorHandler {
231
236
  if (this._placeholderMap.size === 0) {
232
237
  this._destroyContainer();
233
238
  }
239
+ // Restore scroll positions of all ancestors. It may include the closest editable wrapper causing the editor to change
240
+ // the visible content, which is not what we want. Thus, after executing the command, we use
241
+ // `editor.editing.view.scrollToTheSelection()` to scroll the editor viewport to the current selection.
242
+ for (const [ancestor, value] of this._savedAncestorsScrollPositions) {
243
+ ancestor.scrollTo(value.scrollLeft, value.scrollTop);
244
+ }
245
+ this._savedAncestorsScrollPositions.clear();
234
246
  // Pagination has to be restored after leaving fullscreen mode to ensure proper rendering.
235
247
  // Code coverage is provided in the commercial package repository as integration unit tests.
236
248
  /* istanbul ignore next -- @preserve */
@@ -506,4 +518,34 @@ export default class AbstractEditorHandler {
506
518
  dialogView.moveTo(fullscreenViewContainerRect.left + fullscreenViewContainerRect.width - dialogRect.width - DIALOG_OFFSET + scrollOffset, editorContainerRect.top);
507
519
  }
508
520
  }
521
+ /**
522
+ * Saves the scroll positions of all ancestors of the given element.
523
+ */
524
+ _saveAncestorsScrollPositions(domElement) {
525
+ let element = domElement.parentElement;
526
+ if (!element) {
527
+ return;
528
+ }
529
+ while (element) {
530
+ const overflowY = element.style.overflowY || global.window.getComputedStyle(element).overflowY;
531
+ const overflowX = element.style.overflowX || global.window.getComputedStyle(element).overflowX;
532
+ // Out of 5 possible keyword values: visible, hidden, clip, scroll and auto - only the last two allow for scrolling.
533
+ if (overflowY === 'auto' ||
534
+ overflowY === 'scroll' ||
535
+ overflowX === 'auto' ||
536
+ overflowX === 'scroll') {
537
+ this._savedAncestorsScrollPositions.set(element, {
538
+ scrollLeft: element.scrollLeft,
539
+ scrollTop: element.scrollTop
540
+ });
541
+ }
542
+ else if (element.tagName === 'HTML') {
543
+ this._savedAncestorsScrollPositions.set(element, {
544
+ scrollLeft: element.scrollLeft,
545
+ scrollTop: element.scrollTop
546
+ });
547
+ }
548
+ element = element.parentElement;
549
+ }
550
+ }
509
551
  }