@ckeditor/ckeditor5-fullscreen 45.0.0-alpha.9 → 45.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/fullscreen.js +1 -1
- package/dist/index.js +6 -4
- package/dist/index.js.map +1 -1
- package/lang/contexts.json +3 -1
- package/package.json +13 -13
- package/src/handlers/abstracteditorhandler.js +6 -4
package/build/fullscreen.js
CHANGED
|
@@ -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 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.ui.view.toolbar.focusTracker.focusedElement=null),this.editor.editing.view.scrollToTheSelection(),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(n.ButtonView))),e.ui.componentFactory.add("menuBar:fullscreen",(()=>this._createButton(n.MenuBarMenuListItemButtonView)))}_createButton(e){const i=this.editor,o=i.t,r=i.commands.get(I),s=new e(i.locale);return s.set({isToggleable:!0}),s.bind("isEnabled").to(r,"isEnabled"),s.bind("isOn").to(r,"value"),s instanceof n.MenuBarMenuListItemButtonView?s.set({role:"menuitemcheckbox",label:o("Fullscreen mode")}):(s.bind("icon").to(r,"value",(e=>e?B.IconFullscreenLeave:B.IconFullscreenEnter)),s.bind("label").to(r,"value",(e=>o(e?"Leave fullscreen mode":"Enter fullscreen mode"))),s.set({tooltip:!0})),this.listenTo(s,"execute",(()=>{i.execute(I),t.env.isBlink||(this.editor.ui.view.toolbar.focusTracker.focusedElement=null),i.editing.view.scrollToTheSelection(),i.editing.view.focus()})),s}}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})();
|
|
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=this._editor.t,i=(0,t.createElement)(document,"div",{class:"ck ck-fullscreen__left-sidebar-item"});i.innerHTML='\n\t\t\t<div class="ck ck-fullscreen__left-sidebar-header"></div>\n\t\t\t<div class="ck ck-fullscreen__presence-list" data-ck-fullscreen="presence-list"></div>\n\t\t',i.firstElementChild.innerText=e("Connected users"),document.querySelector('[data-ck-fullscreen="left-sidebar-sticky"]').appendChild(i);const o=this._editor.plugins.get("PresenceListUI");this.moveToFullscreen(o.view.element,"presence-list")}_generateDocumentOutlineContainer(){const e=this._editor.t,i=(0,t.createElement)(document,"div",{class:"ck-fullscreen__left-sidebar-item ck-fullscreen__left-sidebar-item--no-margin"});i.innerHTML='\n\t\t\t<div class="ck ck-fullscreen__left-sidebar-header ck-fullscreen__document-outline-header"></div>\n\t\t',i.firstElementChild.innerText=e("Document outline");const o=(0,t.createElement)(document,"div",{class:"ck ck-fullscreen__left-sidebar-item ck-fullscreen__document-outline-wrapper"});o.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(o),document.querySelector('[data-ck-fullscreen="left-sidebar-sticky"]').appendChild(i);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,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.ui.view.toolbar.focusTracker.focusedElement=null),this.editor.editing.view.scrollToTheSelection(),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(n.ButtonView))),e.ui.componentFactory.add("menuBar:fullscreen",(()=>this._createButton(n.MenuBarMenuListItemButtonView)))}_createButton(e){const i=this.editor,o=i.t,r=i.commands.get(I),s=new e(i.locale);return s.set({isToggleable:!0}),s.bind("isEnabled").to(r,"isEnabled"),s.bind("isOn").to(r,"value"),s instanceof n.MenuBarMenuListItemButtonView?s.set({role:"menuitemcheckbox",label:o("Fullscreen mode")}):(s.bind("icon").to(r,"value",(e=>e?B.IconFullscreenLeave:B.IconFullscreenEnter)),s.bind("label").to(r,"value",(e=>o(e?"Leave fullscreen mode":"Enter fullscreen mode"))),s.set({tooltip:!0})),this.listenTo(s,"execute",(()=>{i.execute(I),t.env.isBlink||(this.editor.ui.view.toolbar.focusTracker.focusedElement=null),i.editing.view.scrollToTheSelection(),i.editing.view.focus()})),s}}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
|
@@ -270,13 +270,15 @@ const DIALOG_OFFSET = 28;
|
|
|
270
270
|
* Checks if the PresenceListUI plugin is available and moves its elements to fullscreen mode.
|
|
271
271
|
*/ // Code coverage is provided in the commercial package repository as integration unit tests.
|
|
272
272
|
/* istanbul ignore next -- @preserve */ _generatePresenceListContainer() {
|
|
273
|
+
const t = this._editor.t;
|
|
273
274
|
const presenceListElement = createElement(document, 'div', {
|
|
274
275
|
class: 'ck ck-fullscreen__left-sidebar-item'
|
|
275
276
|
});
|
|
276
277
|
presenceListElement.innerHTML = `
|
|
277
|
-
<div class="ck ck-fullscreen__left-sidebar-header"
|
|
278
|
+
<div class="ck ck-fullscreen__left-sidebar-header"></div>
|
|
278
279
|
<div class="ck ck-fullscreen__presence-list" data-ck-fullscreen="presence-list"></div>
|
|
279
280
|
`;
|
|
281
|
+
presenceListElement.firstElementChild.innerText = t('Connected users');
|
|
280
282
|
document.querySelector('[data-ck-fullscreen="left-sidebar-sticky"]').appendChild(presenceListElement);
|
|
281
283
|
const presenceListUI = this._editor.plugins.get('PresenceListUI');
|
|
282
284
|
this.moveToFullscreen(presenceListUI.view.element, 'presence-list');
|
|
@@ -285,14 +287,14 @@ const DIALOG_OFFSET = 28;
|
|
|
285
287
|
* Checks if the DocumentOutlineUI plugin is available and moves its elements to fullscreen mode.
|
|
286
288
|
*/ // Code coverage is provided in the commercial package repository as integration unit tests.
|
|
287
289
|
/* istanbul ignore next -- @preserve */ _generateDocumentOutlineContainer() {
|
|
290
|
+
const t = this._editor.t;
|
|
288
291
|
const documentOutlineHeaderElement = createElement(document, 'div', {
|
|
289
292
|
class: 'ck-fullscreen__left-sidebar-item ck-fullscreen__left-sidebar-item--no-margin'
|
|
290
293
|
});
|
|
291
294
|
documentOutlineHeaderElement.innerHTML = `
|
|
292
|
-
<div class="ck ck-fullscreen__left-sidebar-header ck-fullscreen__document-outline-header">
|
|
293
|
-
Document outline
|
|
294
|
-
</div>
|
|
295
|
+
<div class="ck ck-fullscreen__left-sidebar-header ck-fullscreen__document-outline-header"></div>
|
|
295
296
|
`;
|
|
297
|
+
documentOutlineHeaderElement.firstElementChild.innerText = t('Document outline');
|
|
296
298
|
const documentOutlineBodyWrapper = createElement(document, 'div', {
|
|
297
299
|
class: 'ck ck-fullscreen__left-sidebar-item ck-fullscreen__document-outline-wrapper'
|
|
298
300
|
});
|
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","_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","focusTracker","focusedElement","scrollToTheSelection","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 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 and toolbar are not blurred properly after moving the editable,\n // even though the `document.activeElement` is changed. Hence we need to blur them 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 this.editor.ui.view.toolbar.focusTracker.focusedElement = null;\n }\n // The order of scroll and focus is not important here.\n this.editor.editing.view.scrollToTheSelection();\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 // On non-Chromium browsers, toolbar 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.ui.view.toolbar.focusTracker.focusedElement = null;\n }\n // The order of scroll and focus is not important here.\n editor.editing.view.scrollToTheSelection();\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 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 and toolbar are not blurred properly after moving the editable,\n\t\t\t// even though the `document.activeElement` is changed. Hence we need to blur them 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\tthis.editor.ui.view.toolbar!.focusTracker.focusedElement = null;\n\t\t\t}\n\n\t\t\t// The order of scroll and focus is not important here.\n\t\t\tthis.editor.editing.view.scrollToTheSelection();\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';\nimport { env } from 'ckeditor5/src/utils.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\n\t\t\t// On non-Chromium browsers, toolbar 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.ui.view.toolbar!.focusTracker.focusedElement = null;\n\t\t\t}\n\n\t\t\t// The order of scroll and focus is not important here.\n\t\t\teditor.editing.view.scrollToTheSelection();\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","t","presenceListElement","firstElementChild","innerText","presenceListUI","documentOutlineHeaderElement","documentOutlineBodyWrapper","documentOutlineUI","documentOutlineContainer","annotationsUIs","uisData","sidebarPlugin","container","setContainer","annotationsFilters","uiName","data","filter","defaultFilter","deactivateAll","activate","annotation","some","switchTo","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","keystrokes","evt","cancel","execute","env","isBlink","editing","isFocused","focusTracker","focusedElement","scrollToTheSelection","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 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 t = this._editor.t;\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\"></div>\n\t\t\t<div class=\"ck ck-fullscreen__presence-list\" data-ck-fullscreen=\"presence-list\"></div>\n\t\t`;\n presenceListElement.firstElementChild.innerText = t('Connected users');\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 t = this._editor.t;\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\"></div>\n\t\t`;\n documentOutlineHeaderElement.firstElementChild.innerText = t('Document outline');\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 and toolbar are not blurred properly after moving the editable,\n // even though the `document.activeElement` is changed. Hence we need to blur them 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 this.editor.ui.view.toolbar.focusTracker.focusedElement = null;\n }\n // The order of scroll and focus is not important here.\n this.editor.editing.view.scrollToTheSelection();\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 // On non-Chromium browsers, toolbar 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.ui.view.toolbar.focusTracker.focusedElement = null;\n }\n // The order of scroll and focus is not important here.\n editor.editing.view.scrollToTheSelection();\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 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 t = this._editor.t;\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\"></div>\n\t\t\t<div class=\"ck ck-fullscreen__presence-list\" data-ck-fullscreen=\"presence-list\"></div>\n\t\t`;\n\t\t( presenceListElement.firstElementChild as HTMLElement ).innerText = t( 'Connected users' );\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 t = this._editor.t;\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\"></div>\n\t\t`;\n\t\t( documentOutlineHeaderElement.firstElementChild as HTMLElement ).innerText = t( 'Document outline' );\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 and toolbar are not blurred properly after moving the editable,\n\t\t\t// even though the `document.activeElement` is changed. Hence we need to blur them 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\tthis.editor.ui.view.toolbar!.focusTracker.focusedElement = null;\n\t\t\t}\n\n\t\t\t// The order of scroll and focus is not important here.\n\t\t\tthis.editor.editing.view.scrollToTheSelection();\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';\nimport { env } from 'ckeditor5/src/utils.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\n\t\t\t// On non-Chromium browsers, toolbar 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.ui.view.toolbar!.focusTracker.focusedElement = null;\n\t\t\t}\n\n\t\t\t// The order of scroll and focus is not important here.\n\t\t\teditor.editing.view.scrollToTheSelection();\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"]}
|
package/lang/contexts.json
CHANGED
|
@@ -2,5 +2,7 @@
|
|
|
2
2
|
"Enter fullscreen mode": "Label for a toolbar button that enters the fullscreen when pressed",
|
|
3
3
|
"Leave fullscreen mode": "Label for a toolbar button that leaves the fullscreen when pressed",
|
|
4
4
|
"Fullscreen mode": "Label for a menu bar button that toggles fullscreen mode",
|
|
5
|
-
"Toggle fullscreen mode": "Keystroke description for assistive technologies: keystroke for toggling a fullscreen mode."
|
|
5
|
+
"Toggle fullscreen mode": "Keystroke description for assistive technologies: keystroke for toggling a fullscreen mode.",
|
|
6
|
+
"Document outline": "Label for a sidebar header that contains a document outline",
|
|
7
|
+
"Connected users": "Label for a sidebar header that contains a list of connected users"
|
|
6
8
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ckeditor/ckeditor5-fullscreen",
|
|
3
|
-
"version": "45.0.0
|
|
3
|
+
"version": "45.0.0",
|
|
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
|
|
17
|
-
"@ckeditor/ckeditor5-core": "45.0.0
|
|
18
|
-
"@ckeditor/ckeditor5-document-outline": "45.0.0
|
|
19
|
-
"@ckeditor/ckeditor5-editor-classic": "45.0.0
|
|
20
|
-
"@ckeditor/ckeditor5-editor-decoupled": "45.0.0
|
|
21
|
-
"@ckeditor/ckeditor5-icons": "45.0.0
|
|
22
|
-
"@ckeditor/ckeditor5-pagination": "45.0.0
|
|
23
|
-
"@ckeditor/ckeditor5-real-time-collaboration": "45.0.0
|
|
24
|
-
"@ckeditor/ckeditor5-revision-history": "45.0.0
|
|
25
|
-
"@ckeditor/ckeditor5-ui": "45.0.0
|
|
26
|
-
"@ckeditor/ckeditor5-utils": "45.0.0
|
|
27
|
-
"ckeditor5": "45.0.0
|
|
16
|
+
"@ckeditor/ckeditor5-comments": "45.0.0",
|
|
17
|
+
"@ckeditor/ckeditor5-core": "45.0.0",
|
|
18
|
+
"@ckeditor/ckeditor5-document-outline": "45.0.0",
|
|
19
|
+
"@ckeditor/ckeditor5-editor-classic": "45.0.0",
|
|
20
|
+
"@ckeditor/ckeditor5-editor-decoupled": "45.0.0",
|
|
21
|
+
"@ckeditor/ckeditor5-icons": "45.0.0",
|
|
22
|
+
"@ckeditor/ckeditor5-pagination": "45.0.0",
|
|
23
|
+
"@ckeditor/ckeditor5-real-time-collaboration": "45.0.0",
|
|
24
|
+
"@ckeditor/ckeditor5-revision-history": "45.0.0",
|
|
25
|
+
"@ckeditor/ckeditor5-ui": "45.0.0",
|
|
26
|
+
"@ckeditor/ckeditor5-utils": "45.0.0",
|
|
27
|
+
"ckeditor5": "45.0.0"
|
|
28
28
|
},
|
|
29
29
|
"author": "CKSource (http://cksource.com/)",
|
|
30
30
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
@@ -300,13 +300,15 @@ export default class AbstractEditorHandler {
|
|
|
300
300
|
// Code coverage is provided in the commercial package repository as integration unit tests.
|
|
301
301
|
/* istanbul ignore next -- @preserve */
|
|
302
302
|
_generatePresenceListContainer() {
|
|
303
|
+
const t = this._editor.t;
|
|
303
304
|
const presenceListElement = createElement(document, 'div', {
|
|
304
305
|
class: 'ck ck-fullscreen__left-sidebar-item'
|
|
305
306
|
});
|
|
306
307
|
presenceListElement.innerHTML = `
|
|
307
|
-
<div class="ck ck-fullscreen__left-sidebar-header"
|
|
308
|
+
<div class="ck ck-fullscreen__left-sidebar-header"></div>
|
|
308
309
|
<div class="ck ck-fullscreen__presence-list" data-ck-fullscreen="presence-list"></div>
|
|
309
310
|
`;
|
|
311
|
+
presenceListElement.firstElementChild.innerText = t('Connected users');
|
|
310
312
|
document.querySelector('[data-ck-fullscreen="left-sidebar-sticky"]').appendChild(presenceListElement);
|
|
311
313
|
const presenceListUI = this._editor.plugins.get('PresenceListUI');
|
|
312
314
|
this.moveToFullscreen(presenceListUI.view.element, 'presence-list');
|
|
@@ -317,14 +319,14 @@ export default class AbstractEditorHandler {
|
|
|
317
319
|
// Code coverage is provided in the commercial package repository as integration unit tests.
|
|
318
320
|
/* istanbul ignore next -- @preserve */
|
|
319
321
|
_generateDocumentOutlineContainer() {
|
|
322
|
+
const t = this._editor.t;
|
|
320
323
|
const documentOutlineHeaderElement = createElement(document, 'div', {
|
|
321
324
|
class: 'ck-fullscreen__left-sidebar-item ck-fullscreen__left-sidebar-item--no-margin'
|
|
322
325
|
});
|
|
323
326
|
documentOutlineHeaderElement.innerHTML = `
|
|
324
|
-
<div class="ck ck-fullscreen__left-sidebar-header ck-fullscreen__document-outline-header">
|
|
325
|
-
Document outline
|
|
326
|
-
</div>
|
|
327
|
+
<div class="ck ck-fullscreen__left-sidebar-header ck-fullscreen__document-outline-header"></div>
|
|
327
328
|
`;
|
|
329
|
+
documentOutlineHeaderElement.firstElementChild.innerText = t('Document outline');
|
|
328
330
|
const documentOutlineBodyWrapper = createElement(document, 'div', {
|
|
329
331
|
class: 'ck ck-fullscreen__left-sidebar-item ck-fullscreen__document-outline-wrapper'
|
|
330
332
|
});
|