@ckeditor/ckeditor5-fullscreen 47.1.0 → 47.2.0-alpha.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.
Files changed (303) hide show
  1. package/README.md +1 -1
  2. package/build/fullscreen.js +2 -2
  3. package/build/translations/af.js +1 -1
  4. package/build/translations/ar.js +1 -1
  5. package/build/translations/ast.js +1 -1
  6. package/build/translations/az.js +1 -1
  7. package/build/translations/be.js +1 -1
  8. package/build/translations/bg.js +1 -1
  9. package/build/translations/bn.js +1 -1
  10. package/build/translations/bs.js +1 -1
  11. package/build/translations/ca.js +1 -1
  12. package/build/translations/cs.js +1 -1
  13. package/build/translations/da.js +1 -1
  14. package/build/translations/de-ch.js +1 -1
  15. package/build/translations/de.js +1 -1
  16. package/build/translations/el.js +1 -1
  17. package/build/translations/en-au.js +1 -1
  18. package/build/translations/en-gb.js +1 -1
  19. package/build/translations/eo.js +1 -1
  20. package/build/translations/es-co.js +1 -1
  21. package/build/translations/es.js +1 -1
  22. package/build/translations/et.js +1 -1
  23. package/build/translations/eu.js +1 -1
  24. package/build/translations/fa.js +1 -1
  25. package/build/translations/fi.js +1 -1
  26. package/build/translations/fr.js +1 -1
  27. package/build/translations/gl.js +1 -1
  28. package/build/translations/gu.js +1 -1
  29. package/build/translations/he.js +1 -1
  30. package/build/translations/hi.js +1 -1
  31. package/build/translations/hr.js +1 -1
  32. package/build/translations/hu.js +1 -1
  33. package/build/translations/hy.js +1 -1
  34. package/build/translations/id.js +1 -1
  35. package/build/translations/it.js +1 -1
  36. package/build/translations/ja.js +1 -1
  37. package/build/translations/jv.js +1 -1
  38. package/build/translations/kk.js +1 -1
  39. package/build/translations/km.js +1 -1
  40. package/build/translations/kn.js +1 -1
  41. package/build/translations/ko.js +1 -1
  42. package/build/translations/ku.js +1 -1
  43. package/build/translations/lt.js +1 -1
  44. package/build/translations/lv.js +1 -1
  45. package/build/translations/ms.js +1 -1
  46. package/build/translations/nb.js +1 -1
  47. package/build/translations/ne.js +1 -1
  48. package/build/translations/nl.js +1 -1
  49. package/build/translations/no.js +1 -1
  50. package/build/translations/oc.js +1 -1
  51. package/build/translations/pl.js +1 -1
  52. package/build/translations/pt-br.js +1 -1
  53. package/build/translations/pt.js +1 -1
  54. package/build/translations/ro.js +1 -1
  55. package/build/translations/ru.js +1 -1
  56. package/build/translations/si.js +1 -1
  57. package/build/translations/sk.js +1 -1
  58. package/build/translations/sl.js +1 -1
  59. package/build/translations/sq.js +1 -1
  60. package/build/translations/sr-latn.js +1 -1
  61. package/build/translations/sr.js +1 -1
  62. package/build/translations/sv.js +1 -1
  63. package/build/translations/th.js +1 -1
  64. package/build/translations/ti.js +1 -1
  65. package/build/translations/tk.js +1 -1
  66. package/build/translations/tr.js +1 -1
  67. package/build/translations/tt.js +1 -1
  68. package/build/translations/ug.js +1 -1
  69. package/build/translations/uk.js +1 -1
  70. package/build/translations/ur.js +1 -1
  71. package/build/translations/uz.js +1 -1
  72. package/build/translations/vi.js +1 -1
  73. package/build/translations/zh-cn.js +1 -1
  74. package/build/translations/zh.js +1 -1
  75. package/dist/index-editor.css +53 -6
  76. package/dist/index.css +54 -7
  77. package/dist/index.css.map +1 -1
  78. package/dist/index.js +277 -48
  79. package/dist/index.js.map +1 -1
  80. package/dist/translations/af.js +1 -1
  81. package/dist/translations/af.umd.js +1 -1
  82. package/dist/translations/ar.js +1 -1
  83. package/dist/translations/ar.umd.js +1 -1
  84. package/dist/translations/ast.js +1 -1
  85. package/dist/translations/ast.umd.js +1 -1
  86. package/dist/translations/az.js +1 -1
  87. package/dist/translations/az.umd.js +1 -1
  88. package/dist/translations/be.js +1 -1
  89. package/dist/translations/be.umd.js +1 -1
  90. package/dist/translations/bg.js +1 -1
  91. package/dist/translations/bg.umd.js +1 -1
  92. package/dist/translations/bn.js +1 -1
  93. package/dist/translations/bn.umd.js +1 -1
  94. package/dist/translations/bs.js +1 -1
  95. package/dist/translations/bs.umd.js +1 -1
  96. package/dist/translations/ca.js +1 -1
  97. package/dist/translations/ca.umd.js +1 -1
  98. package/dist/translations/cs.js +1 -1
  99. package/dist/translations/cs.umd.js +1 -1
  100. package/dist/translations/da.js +1 -1
  101. package/dist/translations/da.umd.js +1 -1
  102. package/dist/translations/de-ch.js +1 -1
  103. package/dist/translations/de-ch.umd.js +1 -1
  104. package/dist/translations/de.js +1 -1
  105. package/dist/translations/de.umd.js +1 -1
  106. package/dist/translations/el.js +1 -1
  107. package/dist/translations/el.umd.js +1 -1
  108. package/dist/translations/en-au.js +1 -1
  109. package/dist/translations/en-au.umd.js +1 -1
  110. package/dist/translations/en-gb.js +1 -1
  111. package/dist/translations/en-gb.umd.js +1 -1
  112. package/dist/translations/en.js +1 -1
  113. package/dist/translations/en.umd.js +1 -1
  114. package/dist/translations/eo.js +1 -1
  115. package/dist/translations/eo.umd.js +1 -1
  116. package/dist/translations/es-co.js +1 -1
  117. package/dist/translations/es-co.umd.js +1 -1
  118. package/dist/translations/es.js +1 -1
  119. package/dist/translations/es.umd.js +1 -1
  120. package/dist/translations/et.js +1 -1
  121. package/dist/translations/et.umd.js +1 -1
  122. package/dist/translations/eu.js +1 -1
  123. package/dist/translations/eu.umd.js +1 -1
  124. package/dist/translations/fa.js +1 -1
  125. package/dist/translations/fa.umd.js +1 -1
  126. package/dist/translations/fi.js +1 -1
  127. package/dist/translations/fi.umd.js +1 -1
  128. package/dist/translations/fr.js +1 -1
  129. package/dist/translations/fr.umd.js +1 -1
  130. package/dist/translations/gl.js +1 -1
  131. package/dist/translations/gl.umd.js +1 -1
  132. package/dist/translations/gu.js +1 -1
  133. package/dist/translations/gu.umd.js +1 -1
  134. package/dist/translations/he.js +1 -1
  135. package/dist/translations/he.umd.js +1 -1
  136. package/dist/translations/hi.js +1 -1
  137. package/dist/translations/hi.umd.js +1 -1
  138. package/dist/translations/hr.js +1 -1
  139. package/dist/translations/hr.umd.js +1 -1
  140. package/dist/translations/hu.js +1 -1
  141. package/dist/translations/hu.umd.js +1 -1
  142. package/dist/translations/hy.js +1 -1
  143. package/dist/translations/hy.umd.js +1 -1
  144. package/dist/translations/id.js +1 -1
  145. package/dist/translations/id.umd.js +1 -1
  146. package/dist/translations/it.js +1 -1
  147. package/dist/translations/it.umd.js +1 -1
  148. package/dist/translations/ja.js +1 -1
  149. package/dist/translations/ja.umd.js +1 -1
  150. package/dist/translations/jv.js +1 -1
  151. package/dist/translations/jv.umd.js +1 -1
  152. package/dist/translations/kk.js +1 -1
  153. package/dist/translations/kk.umd.js +1 -1
  154. package/dist/translations/km.js +1 -1
  155. package/dist/translations/km.umd.js +1 -1
  156. package/dist/translations/kn.js +1 -1
  157. package/dist/translations/kn.umd.js +1 -1
  158. package/dist/translations/ko.js +1 -1
  159. package/dist/translations/ko.umd.js +1 -1
  160. package/dist/translations/ku.js +1 -1
  161. package/dist/translations/ku.umd.js +1 -1
  162. package/dist/translations/lt.js +1 -1
  163. package/dist/translations/lt.umd.js +1 -1
  164. package/dist/translations/lv.js +1 -1
  165. package/dist/translations/lv.umd.js +1 -1
  166. package/dist/translations/ms.js +1 -1
  167. package/dist/translations/ms.umd.js +1 -1
  168. package/dist/translations/nb.js +1 -1
  169. package/dist/translations/nb.umd.js +1 -1
  170. package/dist/translations/ne.js +1 -1
  171. package/dist/translations/ne.umd.js +1 -1
  172. package/dist/translations/nl.js +1 -1
  173. package/dist/translations/nl.umd.js +1 -1
  174. package/dist/translations/no.js +1 -1
  175. package/dist/translations/no.umd.js +1 -1
  176. package/dist/translations/oc.js +1 -1
  177. package/dist/translations/oc.umd.js +1 -1
  178. package/dist/translations/pl.js +1 -1
  179. package/dist/translations/pl.umd.js +1 -1
  180. package/dist/translations/pt-br.js +1 -1
  181. package/dist/translations/pt-br.umd.js +1 -1
  182. package/dist/translations/pt.js +1 -1
  183. package/dist/translations/pt.umd.js +1 -1
  184. package/dist/translations/ro.js +1 -1
  185. package/dist/translations/ro.umd.js +1 -1
  186. package/dist/translations/ru.js +1 -1
  187. package/dist/translations/ru.umd.js +1 -1
  188. package/dist/translations/si.js +1 -1
  189. package/dist/translations/si.umd.js +1 -1
  190. package/dist/translations/sk.js +1 -1
  191. package/dist/translations/sk.umd.js +1 -1
  192. package/dist/translations/sl.js +1 -1
  193. package/dist/translations/sl.umd.js +1 -1
  194. package/dist/translations/sq.js +1 -1
  195. package/dist/translations/sq.umd.js +1 -1
  196. package/dist/translations/sr-latn.js +1 -1
  197. package/dist/translations/sr-latn.umd.js +1 -1
  198. package/dist/translations/sr.js +1 -1
  199. package/dist/translations/sr.umd.js +1 -1
  200. package/dist/translations/sv.js +1 -1
  201. package/dist/translations/sv.umd.js +1 -1
  202. package/dist/translations/th.js +1 -1
  203. package/dist/translations/th.umd.js +1 -1
  204. package/dist/translations/ti.js +1 -1
  205. package/dist/translations/ti.umd.js +1 -1
  206. package/dist/translations/tk.js +1 -1
  207. package/dist/translations/tk.umd.js +1 -1
  208. package/dist/translations/tr.js +1 -1
  209. package/dist/translations/tr.umd.js +1 -1
  210. package/dist/translations/tt.js +1 -1
  211. package/dist/translations/tt.umd.js +1 -1
  212. package/dist/translations/ug.js +1 -1
  213. package/dist/translations/ug.umd.js +1 -1
  214. package/dist/translations/uk.js +1 -1
  215. package/dist/translations/uk.umd.js +1 -1
  216. package/dist/translations/ur.js +1 -1
  217. package/dist/translations/ur.umd.js +1 -1
  218. package/dist/translations/uz.js +1 -1
  219. package/dist/translations/uz.umd.js +1 -1
  220. package/dist/translations/vi.js +1 -1
  221. package/dist/translations/vi.umd.js +1 -1
  222. package/dist/translations/zh-cn.js +1 -1
  223. package/dist/translations/zh-cn.umd.js +1 -1
  224. package/dist/translations/zh.js +1 -1
  225. package/dist/translations/zh.umd.js +1 -1
  226. package/lang/contexts.json +4 -1
  227. package/lang/translations/af.po +12 -0
  228. package/lang/translations/ar.po +12 -0
  229. package/lang/translations/ast.po +12 -0
  230. package/lang/translations/az.po +12 -0
  231. package/lang/translations/be.po +12 -0
  232. package/lang/translations/bg.po +12 -0
  233. package/lang/translations/bn.po +12 -0
  234. package/lang/translations/bs.po +12 -0
  235. package/lang/translations/ca.po +12 -0
  236. package/lang/translations/cs.po +12 -0
  237. package/lang/translations/da.po +12 -0
  238. package/lang/translations/de-ch.po +12 -0
  239. package/lang/translations/de.po +12 -0
  240. package/lang/translations/el.po +12 -0
  241. package/lang/translations/en-au.po +12 -0
  242. package/lang/translations/en-gb.po +12 -0
  243. package/lang/translations/en.po +12 -0
  244. package/lang/translations/eo.po +12 -0
  245. package/lang/translations/es-co.po +12 -0
  246. package/lang/translations/es.po +12 -0
  247. package/lang/translations/et.po +12 -0
  248. package/lang/translations/eu.po +12 -0
  249. package/lang/translations/fa.po +12 -0
  250. package/lang/translations/fi.po +12 -0
  251. package/lang/translations/fr.po +12 -0
  252. package/lang/translations/gl.po +12 -0
  253. package/lang/translations/gu.po +12 -0
  254. package/lang/translations/he.po +12 -0
  255. package/lang/translations/hi.po +12 -0
  256. package/lang/translations/hr.po +12 -0
  257. package/lang/translations/hu.po +12 -0
  258. package/lang/translations/hy.po +12 -0
  259. package/lang/translations/id.po +12 -0
  260. package/lang/translations/it.po +12 -0
  261. package/lang/translations/ja.po +12 -0
  262. package/lang/translations/jv.po +12 -0
  263. package/lang/translations/kk.po +12 -0
  264. package/lang/translations/km.po +12 -0
  265. package/lang/translations/kn.po +12 -0
  266. package/lang/translations/ko.po +12 -0
  267. package/lang/translations/ku.po +12 -0
  268. package/lang/translations/lt.po +12 -0
  269. package/lang/translations/lv.po +12 -0
  270. package/lang/translations/ms.po +12 -0
  271. package/lang/translations/nb.po +12 -0
  272. package/lang/translations/ne.po +12 -0
  273. package/lang/translations/nl.po +12 -0
  274. package/lang/translations/no.po +12 -0
  275. package/lang/translations/oc.po +12 -0
  276. package/lang/translations/pl.po +12 -0
  277. package/lang/translations/pt-br.po +12 -0
  278. package/lang/translations/pt.po +12 -0
  279. package/lang/translations/ro.po +12 -0
  280. package/lang/translations/ru.po +12 -0
  281. package/lang/translations/si.po +12 -0
  282. package/lang/translations/sk.po +12 -0
  283. package/lang/translations/sl.po +12 -0
  284. package/lang/translations/sq.po +12 -0
  285. package/lang/translations/sr-latn.po +12 -0
  286. package/lang/translations/sr.po +12 -0
  287. package/lang/translations/sv.po +12 -0
  288. package/lang/translations/th.po +12 -0
  289. package/lang/translations/ti.po +12 -0
  290. package/lang/translations/tk.po +12 -0
  291. package/lang/translations/tr.po +12 -0
  292. package/lang/translations/tt.po +12 -0
  293. package/lang/translations/ug.po +12 -0
  294. package/lang/translations/uk.po +12 -0
  295. package/lang/translations/ur.po +12 -0
  296. package/lang/translations/uz.po +12 -0
  297. package/lang/translations/vi.po +12 -0
  298. package/lang/translations/zh-cn.po +12 -0
  299. package/lang/translations/zh.po +12 -0
  300. package/package.json +8 -8
  301. package/src/handlers/abstracteditorhandler.d.ts +92 -17
  302. package/src/handlers/abstracteditorhandler.js +303 -49
  303. package/theme/fullscreen.css +54 -7
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","FullscreenAbstractEditorHandler","_placeholderMap","_wrapper","_document","_annotationsUIsData","_paginationBodyCollection","_sourceEditingCallback","_evt","_name","value","getWrapper","querySelector","style","display","_hiddenElements","Map","_savedAncestorsScrollPositions","_showRevisionViewerCallback","_closeRevisionViewerCallback","editor","plugins","has","config","get","showRevisionViewerCallback","closeRevisionViewerCallback","_editor","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","enable","_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","disable","_restoreDocumentOutlineDefaultContainer","_restoreAnnotationsUIs","_restoreRevisionHistoryCallbacks","off","keys","view","toolbar","switchBehavior","ancestor","scrollTo","left","scrollLeft","top","scrollTop","behavior","clear","_unregisterFullscreenDialogPositionAdjustments","values","displayValue","t","presenceListElement","firstElementChild","innerText","presenceListUI","documentOutlineHeaderElement","documentOutlineBodyWrapper","documentOutlineUI","documentOutlineContainer","annotationsUIs","uisData","annotationsFilters","uiName","data","filter","defaultFilter","deactivateAll","sidebarPlugin","container","setContainer","switchToWideSidebar","activate","annotation","some","switchTo","sidebarContainer","context","revisionViewerEditor","menuBarView","dialog","_setNewDialogPosition","updateDialogPositionCallback","priority","dialogView","position","DialogViewPosition","EDITOR_TOP_SIDE","updatePosition","_updateDialogPosition","bind","isOpen","fullscreenViewContainerRect","Rect","getVisible","editorContainerRect","dialogRect","scrollOffset","excludeScrollbarsAndBorders","width","moveTo","domElement","overflowY","window","getComputedStyle","overflowX","tagName","FullscreenClassicEditorHandler","editorUI","editorUIView","getAttribute","MenuBarView","render","initMenuBar","FullscreenDecoupledEditorHandler","FullscreenCommand","Command","fullscreenHandler","affectsData","isClassicEditor","isDecoupledEditor","execute","_disableFullscreenMode","_enableFullscreenMode","editorName","FullscreenEditing","Plugin","pluginName","isOfficialPlugin","init","commands","keystrokes","evt","cancel","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 { 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.\n *\n * This class defines some actions and behaviors that are applied when fullscreen mode is toggled, and which are common\n * regardless of the editor type. Then, specific classes like `ClassicEditorHandler` or `DecoupledEditorHandler`\n * extend this class with actions specific for these editor types.\n *\n * Extend this class to provide fullscreen mode handling for unsupported editor types,\n * or if you wish to heavily customize the default behavior.\n *\n * The only method that is necessary to provide when extending this class is {@link #defaultOnEnter}. However, make sure to\n * familiarize yourself with the below full list of actions taken by `FullscreenAbstractEditorHandler` to understand\n * what is covered by default, and what should be provided by you.\n *\n * When entering the fullscreen mode, the {@link #enable} method is called. It creates the properly styled container\n * and handles the editor features that need it, in the following order:\n *\n * 1. Saves the scroll positions of all ancestors of the editable element to restore them after leaving the fullscreen mode.\n * 2. Executes the {@link #defaultOnEnter} method to move the proper editor UI elements to the fullscreen mode.\n * **If you extend the abstract handler, you should override this method** to move the elements that are specific to your editor type, like:\n * \teditable, toolbar, menu bar.\n * \tUse {@link #moveToFullscreen} method for this purpose to ensure they are automatically cleaned up after leaving the fullscreen mode.\n * 3. Adds proper classes to the `<body>` and `<html>` elements to block page scrolling, adjust `z-index` etc.\n * 4. Changes the position of some dialogs to utilize the empty space on the right side of the editable element.\n *\n * Steps 5-11 are only executed if the corresponding features are used.\n *\n * 5. If presence list is used, moves it to the fullscreen mode container.\n * 6. If document outline is used, moves it to the fullscreen mode.\n * 7. If pagination is used, adjusts it's configuration for the changed view.\n * 8. If annotations are used, moves them to the fullscreen mode.\n * 9. If revision history is used, overrides the callbacks to show the revision viewer in the fullscreen mode.\n * 10. If source editing and document outline are both used, hides the document outline header.\n * 11. If custom container is used, hides all other elements in it to ensure they don't create an empty unscrollable space.\n *\n * Then finally:\n *\n * 12. Executes the configured {@link module:fullscreen/fullscreenconfig~FullscreenConfig#onEnterCallback\n * \t`config.fullscreen.onEnterCallback`} function.\n * \tBy default, it returns the fullscreen mode container element so it can be further customized.\n *\n * When leaving the fullscreen mode, the {@link #disable} method is called. It does the following:\n *\n * 1. Execute the configured {@link module:fullscreen/fullscreenconfig~FullscreenConfig#onLeaveCallback\n * \t`config.fullscreen.onLeaveCallback`} function.\n * 2. Remove the classes added to the `<body>` and `<html>` elements.\n * 3. If document outline is used, restore its default container.\n * 4. If annotations are used, restore their original state (UI, filters etc).\n * 5. If revision history is used, restore the original callbacks.\n * 6. If source editing and document outline are both used, restore the document outline header.\n * 7. Restore all moved elements to their original place.\n * 8. Destroy the fullscreen mode container.\n * 9. If the editor has a toolbar, switch its behavior to the one configured in the\n * \t{@link module:ui/toolbar/toolbarview~ToolbarOptions#shouldGroupWhenFull} property.\n * 10. Restore the scroll positions of all ancestors of the editable element.\n * 11. If pagination is used, restore its default configuration.\n * 12. Restore default dialogs positions.\n *\n * This class is exported to allow for custom extensions.\n */ class FullscreenAbstractEditorHandler {\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 editor's 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\"></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 // Container is also destroyed in the `restoreMovedElementLocation()` method, but we need to do it here\n // to ensure that the container is destroyed even if no elements were moved.\n this._destroyContainer();\n if (this._editor.ui.view.toolbar) {\n this._editor.ui.view.toolbar.switchBehavior(this._editor.config.get('toolbar.shouldNotGroupWhenFull') === true ? 'static' : 'dynamic');\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 // Using `behavior: 'instant'` is necessary to force scroll if some of the containers has `scroll-behavior: smooth` set (otherwise\n // the scroll won't happen).\n for (const [ancestor, value] of this._savedAncestorsScrollPositions){\n // `ScrollBehavior` has incorrect type definition in currently used TS version (5.0.4). Fix should be present since 5.1.0:\n // https://github.com/Microsoft/TypeScript/issues/28755. Hence we need a type assertion here.\n ancestor.scrollTo({\n left: value.scrollLeft,\n top: value.scrollTop,\n behavior: 'instant'\n });\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 if (!document.querySelector('[data-ck-fullscreen=\"left-sidebar-sticky\"]')) {\n document.querySelector('[data-ck-fullscreen=\"left-sidebar\"]').appendChild(createElement(document, 'div', {\n class: 'ck ck-fullscreen__left-sidebar-sticky',\n 'data-ck-fullscreen': 'left-sidebar-sticky'\n }));\n }\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 if (!document.querySelector('[data-ck-fullscreen=\"left-sidebar-sticky\"]')) {\n document.querySelector('[data-ck-fullscreen=\"left-sidebar\"]').appendChild(createElement(document, 'div', {\n class: 'ck ck-fullscreen__left-sidebar-sticky',\n 'data-ck-fullscreen': 'left-sidebar-sticky'\n }));\n }\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 and switches the UI to the wide sidebar.\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 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 const sidebarPlugin = this._editor.plugins.get('Sidebar');\n // There are two scenarios to consider: if wide sidebar is already used and when it's not.\n // If sidebar container is not set (e.g. in case of inline annotations), we need to:\n // 1. Set the sidebar container in the sidebar plugin.\n // 2. Activate the wide sidebar UI.\n // 3. Move the sidebar element to the fullscreen mode.\n if (!sidebarPlugin.container) {\n sidebarPlugin.setContainer(this.getWrapper().querySelector('[data-ck-fullscreen=\"right-sidebar\"]'));\n switchToWideSidebar();\n this.moveToFullscreen(sidebarPlugin.container.firstElementChild, 'right-sidebar');\n } else {\n switchToWideSidebar();\n this.moveToFullscreen(sidebarPlugin.container.firstElementChild, 'right-sidebar');\n sidebarPlugin.setContainer(this.getWrapper().querySelector('[data-ck-fullscreen=\"right-sidebar\"]'));\n }\n function switchToWideSidebar() {\n // First, check if someone has a filter defined for `wideSidebar`. If so, retrieve and apply it in fullscreen.\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 }\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 sidebarPlugin = this._editor.plugins.get('Sidebar');\n const sidebarContainer = sidebarPlugin.context.config.get('sidebar.container');\n // If sidebar container was set initially, restore it to the original value from config.\n if (sidebarContainer) {\n sidebarPlugin.setContainer(sidebarContainer);\n }\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 FullscreenClassicEditorHandler extends FullscreenAbstractEditorHandler {\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 FullscreenDecoupledEditorHandler extends FullscreenAbstractEditorHandler {\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 *\n\t * If you want to add support for a new editor type (for now, only Classic and Decoupled editors are handled),\n\t * create a custom handler that extends `FullscreenAbstractEditorHandler` and replace `fullscreenHandler` with it after\n\t * editor initialization:\n\t *\n\t * ```ts\n\t * // See the details of how to implement a custom handler in the `FullscreenAbstractEditorHandler` class API docs.\n\t * class CustomEditorHandler extends FullscreenAbstractEditorHandler {}\n\t *\n\t * CustomEditorClass.create( document.querySelector( '#editor' ), {} )\n\t * \t.then( ( editor ) => {\n\t * \t\teditor.commands.get( 'toggleFullscreen' ).fullscreenHandler = new CustomEditorHandler( editor );\n\t * \t} );\n\t * ```\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, you should create a custom handler\n // that extends `FullscreenAbstractEditorHandler` and replace `fullscreenHandler` with it.\n if (isClassicEditor(editor)) {\n this.fullscreenHandler = new FullscreenClassicEditorHandler(editor);\n } else if (isDecoupledEditor(editor)) {\n this.fullscreenHandler = new FullscreenDecoupledEditorHandler(editor);\n } else {\n this.fullscreenHandler = new FullscreenAbstractEditorHandler(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 * Classic editor typeguard.\n */ function isClassicEditor(editor) {\n return editor.constructor.editorName === 'ClassicEditor';\n}\n/**\n * Decoupled editor typeguard.\n */ function isDecoupledEditor(editor) {\n return editor.constructor.editorName === 'DecoupledEditor';\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, FullscreenAbstractEditorHandler, FullscreenClassicEditorHandler, FullscreenCommand, FullscreenDecoupledEditorHandler, 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';\n\nconst DIALOG_OFFSET = 28;\n\n/**\n * The abstract editor type handler.\n *\n * This class defines some actions and behaviors that are applied when fullscreen mode is toggled, and which are common\n * regardless of the editor type. Then, specific classes like `ClassicEditorHandler` or `DecoupledEditorHandler`\n * extend this class with actions specific for these editor types.\n *\n * Extend this class to provide fullscreen mode handling for unsupported editor types,\n * or if you wish to heavily customize the default behavior.\n *\n * The only method that is necessary to provide when extending this class is {@link #defaultOnEnter}. However, make sure to\n * familiarize yourself with the below full list of actions taken by `FullscreenAbstractEditorHandler` to understand\n * what is covered by default, and what should be provided by you.\n *\n * When entering the fullscreen mode, the {@link #enable} method is called. It creates the properly styled container\n * and handles the editor features that need it, in the following order:\n *\n * 1. Saves the scroll positions of all ancestors of the editable element to restore them after leaving the fullscreen mode.\n * 2. Executes the {@link #defaultOnEnter} method to move the proper editor UI elements to the fullscreen mode.\n * **If you extend the abstract handler, you should override this method** to move the elements that are specific to your editor type, like:\n * \teditable, toolbar, menu bar.\n * \tUse {@link #moveToFullscreen} method for this purpose to ensure they are automatically cleaned up after leaving the fullscreen mode.\n * 3. Adds proper classes to the `<body>` and `<html>` elements to block page scrolling, adjust `z-index` etc.\n * 4. Changes the position of some dialogs to utilize the empty space on the right side of the editable element.\n *\n * Steps 5-11 are only executed if the corresponding features are used.\n *\n * 5. If presence list is used, moves it to the fullscreen mode container.\n * 6. If document outline is used, moves it to the fullscreen mode.\n * 7. If pagination is used, adjusts it's configuration for the changed view.\n * 8. If annotations are used, moves them to the fullscreen mode.\n * 9. If revision history is used, overrides the callbacks to show the revision viewer in the fullscreen mode.\n * 10. If source editing and document outline are both used, hides the document outline header.\n * 11. If custom container is used, hides all other elements in it to ensure they don't create an empty unscrollable space.\n *\n * Then finally:\n *\n * 12. Executes the configured {@link module:fullscreen/fullscreenconfig~FullscreenConfig#onEnterCallback\n * \t`config.fullscreen.onEnterCallback`} function.\n * \tBy default, it returns the fullscreen mode container element so it can be further customized.\n *\n * When leaving the fullscreen mode, the {@link #disable} method is called. It does the following:\n *\n * 1. Execute the configured {@link module:fullscreen/fullscreenconfig~FullscreenConfig#onLeaveCallback\n * \t`config.fullscreen.onLeaveCallback`} function.\n * 2. Remove the classes added to the `<body>` and `<html>` elements.\n * 3. If document outline is used, restore its default container.\n * 4. If annotations are used, restore their original state (UI, filters etc).\n * 5. If revision history is used, restore the original callbacks.\n * 6. If source editing and document outline are both used, restore the document outline header.\n * 7. Restore all moved elements to their original place.\n * 8. Destroy the fullscreen mode container.\n * 9. If the editor has a toolbar, switch its behavior to the one configured in the\n * \t{@link module:ui/toolbar/toolbarview~ToolbarOptions#shouldGroupWhenFull} property.\n * 10. Restore the scroll positions of all ancestors of the editable element.\n * 11. If pagination is used, restore its default configuration.\n * 12. Restore default dialogs positions.\n *\n * This class is exported to allow for custom extensions.\n */\nexport class FullscreenAbstractEditorHandler {\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<any> ) | 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?: any ) => 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' ) as any ).showRevisionViewerCallback;\n\t\t\tthis._closeRevisionViewerCallback = ( editor.config.get( 'revisionHistory' ) as any ).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 editor's 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\"></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' ) as any ).isEnabled ) {\n\t\t\tconst paginationRenderer = this._editor.plugins.get( 'PaginationRenderer' ) as any;\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' ) as any ).isRevisionViewerOpen ) {\n\t\t\t\t// Keep in mind that closing the revision history viewer is an asynchronous operation.\n\t\t\t\t( this._editor.config.get( 'revisionHistory.closeRevisionViewerCallback' ) as any )();\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\t( this._editor.plugins.get( 'SourceEditing' ) as any ).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\t( this._editor.plugins.get( 'SourceEditing' ) as any ).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\t// Container is also destroyed in the `restoreMovedElementLocation()` method, but we need to do it here\n\t\t// to ensure that the container is destroyed even if no elements were moved.\n\t\tthis._destroyContainer();\n\n\t\tif ( this._editor.ui.view.toolbar ) {\n\t\t\tthis._editor.ui.view.toolbar.switchBehavior(\n\t\t\t\tthis._editor.config.get( 'toolbar.shouldNotGroupWhenFull' ) === true ? 'static' : 'dynamic'\n\t\t\t);\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\t// Using `behavior: 'instant'` is necessary to force scroll if some of the containers has `scroll-behavior: smooth` set (otherwise\n\t\t// the scroll won't happen).\n\t\tfor ( const [ ancestor, value ] of this._savedAncestorsScrollPositions ) {\n\t\t\t// `ScrollBehavior` has incorrect type definition in currently used TS version (5.0.4). Fix should be present since 5.1.0:\n\t\t\t// https://github.com/Microsoft/TypeScript/issues/28755. Hence we need a type assertion here.\n\t\t\tancestor.scrollTo( { left: value.scrollLeft, top: value.scrollTop, behavior: 'instant' as ScrollBehavior } );\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' ) as any ).isEnabled ) {\n\t\t\tconst paginationRenderer = this._editor.plugins.get( 'PaginationRenderer' ) as any;\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\tpublic 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\tif ( !document.querySelector( '[data-ck-fullscreen=\"left-sidebar-sticky\"]' ) ) {\n\t\t\tdocument.querySelector( '[data-ck-fullscreen=\"left-sidebar\"]' )!.appendChild(\n\t\t\t\tcreateElement( document, 'div', {\n\t\t\t\t\tclass: 'ck ck-fullscreen__left-sidebar-sticky',\n\t\t\t\t\t'data-ck-fullscreen': 'left-sidebar-sticky'\n\t\t\t\t} )\n\t\t\t);\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 any;\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\tif ( !document.querySelector( '[data-ck-fullscreen=\"left-sidebar-sticky\"]' ) ) {\n\t\t\tdocument.querySelector( '[data-ck-fullscreen=\"left-sidebar\"]' )!.appendChild(\n\t\t\t\tcreateElement( document, 'div', {\n\t\t\t\t\tclass: 'ck ck-fullscreen__left-sidebar-sticky',\n\t\t\t\t\t'data-ck-fullscreen': 'left-sidebar-sticky'\n\t\t\t\t} )\n\t\t\t);\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 any;\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 any;\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 and switches the UI to the wide sidebar.\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 any;\n\n\t\tthis._annotationsUIsData = new Map( annotationsUIs.uisData );\n\n\t\tconst annotationsFilters = new Map<string, ( annotation: any ) => 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\tconst sidebarPlugin = this._editor.plugins.get( 'Sidebar' ) as any;\n\n\t\t// There are two scenarios to consider: if wide sidebar is already used and when it's not.\n\t\t// If sidebar container is not set (e.g. in case of inline annotations), we need to:\n\t\t// 1. Set the sidebar container in the sidebar plugin.\n\t\t// 2. Activate the wide sidebar UI.\n\t\t// 3. Move the sidebar element to the fullscreen mode.\n\t\tif ( !sidebarPlugin.container ) {\n\t\t\tsidebarPlugin.setContainer( this.getWrapper().querySelector( '[data-ck-fullscreen=\"right-sidebar\"]' ) as HTMLElement );\n\n\t\t\tswitchToWideSidebar();\n\n\t\t\tthis.moveToFullscreen( ( sidebarPlugin.container!.firstElementChild as HTMLElement ), 'right-sidebar' );\n\t\t}\n\t\t// If sidebar was already used:\n\t\t// 1. Switch to the wide sidebar UI (it's possibly switch back but we deactivated all UIs before).\n\t\t// 2. Move the sidebar element to the fullscreen mode.\n\t\t// 3. Set the sidebar container in the sidebar plugin.\n\t\t// If we set the container before moving the sidebar, we lose the reference to the original sidebar container and it won't be\n\t\t// moved back to the correct position after leaving fullscreen.\n\t\telse {\n\t\t\tswitchToWideSidebar();\n\n\t\t\tthis.moveToFullscreen( ( sidebarPlugin.container!.firstElementChild as HTMLElement ), 'right-sidebar' );\n\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\tfunction switchToWideSidebar() {\n\t\t\t// First, check if someone has a filter defined for `wideSidebar`. If so, retrieve and apply it in fullscreen.\n\t\t\tif ( annotationsFilters.has( 'wideSidebar' ) ) {\n\t\t\t\tannotationsUIs.activate( 'wideSidebar', annotationsFilters.get( 'wideSidebar' ) );\n\t\t\t}\n\t\t\t// If no filter is defined for `wideSidebar`, read the filters for the active display(s) mode and apply them on wide sidebar.\n\t\t\t// It's possible there are filters for both `narrowSidebar` and `inline` modes, so display annotations that match any of them.\n\t\t\telse if ( annotationsFilters.size ) {\n\t\t\t\tannotationsUIs.activate( 'wideSidebar',\n\t\t\t\t\t( annotation: any ) => [ ...annotationsFilters.values() ].some( filter => filter( annotation ) )\n\t\t\t\t);\n\t\t\t}\n\t\t\t// If no filters are defined for the active display mode(s), simply display all annotations in the wide sidebar.\n\t\t\telse {\n\t\t\t\tannotationsUIs.switchTo( 'wideSidebar' );\n\t\t\t}\n\t\t}\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 sidebarPlugin = this._editor.plugins.get( 'Sidebar' ) as any;\n\t\tconst sidebarContainer = sidebarPlugin.context.config.get( 'sidebar.container' );\n\n\t\t// If sidebar container was set initially, restore it to the original value from config.\n\t\tif ( sidebarContainer ) {\n\t\t\tsidebarPlugin.setContainer( sidebarContainer as HTMLElement );\n\t\t}\n\n\t\tconst annotationsUIs = this._editor.plugins.get( 'AnnotationsUIs' ) as any;\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' ) as any, '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 { FullscreenAbstractEditorHandler } from './abstracteditorhandler.js';\n\n/**\n * The classic editor fullscreen mode handler.\n */\nexport class FullscreenClassicEditorHandler extends FullscreenAbstractEditorHandler {\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\tpublic 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' ) as any ).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 { FullscreenAbstractEditorHandler } from './abstracteditorhandler.js';\n\n/**\n * The decoupled editor fullscreen mode handler.\n */\nexport class FullscreenDecoupledEditorHandler extends FullscreenAbstractEditorHandler {\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\tpublic 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' ) as any ).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 type { ClassicEditor } from '@ckeditor/ckeditor5-editor-classic';\nimport type { DecoupledEditor } from '@ckeditor/ckeditor5-editor-decoupled';\n\nimport { FullscreenAbstractEditorHandler } from './handlers/abstracteditorhandler.js';\nimport { FullscreenClassicEditorHandler } from './handlers/classiceditorhandler.js';\nimport { FullscreenDecoupledEditorHandler } from './handlers/decouplededitorhandler.js';\n\n/**\n * A command toggling the fullscreen mode.\n */\nexport 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\t * If you want to add support for a new editor type (for now, only Classic and Decoupled editors are handled),\n\t * create a custom handler that extends `FullscreenAbstractEditorHandler` and replace `fullscreenHandler` with it after\n\t * editor initialization:\n\t *\n\t * ```ts\n\t * // See the details of how to implement a custom handler in the `FullscreenAbstractEditorHandler` class API docs.\n\t * class CustomEditorHandler extends FullscreenAbstractEditorHandler {}\n\t *\n\t * CustomEditorClass.create( document.querySelector( '#editor' ), {} )\n\t * \t.then( ( editor ) => {\n\t * \t\teditor.commands.get( 'toggleFullscreen' ).fullscreenHandler = new CustomEditorHandler( editor );\n\t * \t} );\n\t * ```\n\t */\n\tpublic fullscreenHandler: FullscreenAbstractEditorHandler;\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, you should create a custom handler\n\t\t// that extends `FullscreenAbstractEditorHandler` and replace `fullscreenHandler` with it.\n\t\tif ( isClassicEditor( editor ) ) {\n\t\t\tthis.fullscreenHandler = new FullscreenClassicEditorHandler( editor );\n\t\t} else if ( isDecoupledEditor( editor ) ) {\n\t\t\tthis.fullscreenHandler = new FullscreenDecoupledEditorHandler( editor );\n\t\t} else {\n\t\t\tthis.fullscreenHandler = new FullscreenAbstractEditorHandler( 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/**\n * Classic editor typeguard.\n */\nfunction isClassicEditor( editor: Editor ): editor is ClassicEditor {\n\treturn ( editor.constructor as typeof Editor ).editorName === 'ClassicEditor';\n}\n\n/**\n * Decoupled editor typeguard.\n */\nfunction isDecoupledEditor( editor: Editor ): editor is DecoupledEditor {\n\treturn ( editor.constructor as typeof Editor ).editorName === 'DecoupledEditor';\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 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 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 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","FullscreenAbstractEditorHandler","_placeholderMap","_wrapper","_document","_annotationsUIsData","_paginationBodyCollection","_hasLeftCollapseButton","_collapseLeftSidebarButton","_resizeObserver","_sidebarsWidths","left","right","_keepLeftSidebarHidden","_forceShowLeftSidebar","_sourceEditingCallback","_evt","_name","value","getWrapper","querySelector","style","display","_hiddenElements","Map","_savedAncestorsScrollPositions","_showRevisionViewerCallback","_closeRevisionViewerCallback","_aiTabsData","editor","plugins","has","config","get","showRevisionViewerCallback","closeRevisionViewerCallback","_editor","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","enable","_saveAncestorsScrollPositions","ui","getEditableElement","defaultOnEnter","classList","add","parentElement","_generatePresenceListContainer","_generateDocumentOutlineContainer","_generateCollapseButton","isEnabled","paginationRenderer","setupScrollableAncestor","BodyCollection","locale","attachToDom","linesRepository","setViewCollection","once","detachFromDom","bodyCollectionContainer","_overrideAnnotationsUIs","isRevisionViewerOpen","_overrideRevisionHistoryCallbacks","_handleAITabsTransfer","_registerFullscreenDialogPositionAdjustments","element","children","contains","scrollWidth","_adjustVisibleElements","_setupResizeObserver","disable","_restoreDocumentOutlineDefaultContainer","_restoreAnnotationsUIs","_restoreRevisionHistoryCallbacks","_restoreAITabs","off","keys","view","toolbar","switchBehavior","ancestor","scrollTo","scrollLeft","top","scrollTop","behavior","clear","_unregisterFullscreenDialogPositionAdjustments","values","displayValue","t","presenceListElement","firstElementChild","innerText","presenceListUI","documentOutlineHeaderElement","documentOutlineBodyWrapper","documentOutlineUI","documentOutlineContainer","button","ButtonView","leftSidebarContainer","label","tooltip","tooltipPosition","icon","IconPreviousArrow","_showLeftSidebar","_hideLeftSidebar","editing","focus","render","prepend","annotationsUIs","uisData","deactivateAll","sidebarPlugin","container","setContainer","_switchAnnotationsUI","sidebarContainer","context","uiName","data","activate","filter","revisionViewerEditor","menuBarView","dialog","_setNewDialogPosition","updateDialogPositionCallback","priority","dialogView","position","DialogViewPosition","EDITOR_TOP_SIDE","updatePosition","_updateDialogPosition","bind","isOpen","keepRightEdgeContainerVisible","Rect","getVisible","relativeContainer","relativeContainerRect","editorContainerRect","dialogRect","scrollOffset","excludeScrollbarsAndBorders","width","leftOffset","moveTo","domElement","overflowY","window","getComputedStyle","overflowX","tagName","aiTabs","side","type","addEventListener","evt","_handleAISidebarTransitions","target","propertyName","includes","removeEventListener","editableWrapper","clientWidth","_hideRightSidebar","actualWidth","reduce","acc","child","_showRightSidebar","annotationsFilters","defaultFilter","annotation","some","switchTo","wrapper","ResizeObserver","leftSidebar","IconDocumentOutlineToggle","firstChild","FullscreenClassicEditorHandler","editorUI","editorUIView","getAttribute","MenuBarView","initMenuBar","FullscreenDecoupledEditorHandler","FullscreenCommand","Command","fullscreenHandler","affectsData","isClassicEditor","isDecoupledEditor","execute","_disableFullscreenMode","_enableFullscreenMode","editorName","FullscreenEditing","Plugin","pluginName","isOfficialPlugin","init","commands","keystrokes","cancel","env","isBlink","isFocused","focusTracker","focusedElement","scrollToTheSelection","accessibility","addKeystrokeInfos","keystroke","categoryId","COMMAND_NAME","FullscreenUI","requires","componentFactory","_createButton","MenuBarMenuListItemButtonView","ButtonClass","command","isToggleable","to","role","IconFullscreenLeave","IconFullscreenEnter","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, ResizeObserver, env } from '@ckeditor/ckeditor5-utils/dist/index.js';\nimport { BodyCollection, ButtonView, DialogViewPosition, MenuBarView, MenuBarMenuListItemButtonView } from '@ckeditor/ckeditor5-ui/dist/index.js';\nimport { IconPreviousArrow, IconDocumentOutlineToggle } from '@ckeditor/ckeditor5-icons/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.\n *\n * This class defines some actions and behaviors that are applied when fullscreen mode is toggled, and which are common\n * regardless of the editor type. Then, specific classes like `ClassicEditorHandler` or `DecoupledEditorHandler`\n * extend this class with actions specific for these editor types.\n *\n * Extend this class to provide fullscreen mode handling for unsupported editor types,\n * or if you wish to heavily customize the default behavior.\n *\n * The only method that is necessary to provide when extending this class is {@link #defaultOnEnter}. However, make sure to\n * familiarize yourself with the below full list of actions taken by `FullscreenAbstractEditorHandler` to understand\n * what is covered by default, and what should be provided by you.\n *\n * When entering the fullscreen mode, the {@link #enable} method is called. It creates the properly styled container\n * and handles the editor features that need it, in the following order:\n *\n * 1. Saves the scroll positions of all ancestors of the editable element to restore them after leaving the fullscreen mode.\n * 2. Executes the {@link #defaultOnEnter} method to move the proper editor UI elements to the fullscreen mode.\n * **If you extend the abstract handler, you should override this method** to move the elements that are specific to your editor type, like:\n * \teditable, toolbar, menu bar.\n * \tUse {@link #moveToFullscreen} method for this purpose to ensure they are automatically cleaned up after leaving the fullscreen mode.\n * 3. Adds proper classes to the `<body>` and `<html>` elements to block page scrolling, adjust `z-index` etc.\n *\n * Steps 4-12 are only executed if the corresponding features are used.\n *\n * 4. If presence list is used, moves it to the fullscreen mode container.\n * 5. If document outline is used, moves it to the fullscreen mode.\n * 6. If pagination is used, adjusts it's configuration for the changed view.\n * 7. If annotations are used, moves them to the fullscreen mode.\n * 8. If revision history is used, overrides the callbacks to show the revision viewer in the fullscreen mode.\n * 9. If AI Tabs is used, moves it to the fullscreen mode.\n * 10. If source editing and document outline are both used, registers a callback hiding the document outline header in source editing mode.\n * 11. Changes the position of some dialogs to utilize the empty space on the right side of the editable element.\n * 12. If custom container is used, hides all other elements in it to ensure they don't create an empty unscrollable space.\n *\n * Then finally:\n *\n * 13. Adjusts the visibility of the left and right sidebars based on the available space.\n * 14. Sets up a resize observer to adjust the visibility of the left and right sidebars dynamically.\n * 15. Executes the configured {@link module:fullscreen/fullscreenconfig~FullscreenConfig#onEnterCallback\n * \t`config.fullscreen.onEnterCallback`} function.\n * \tBy default, it returns the fullscreen mode container element so it can be further customized.\n *\n * When leaving the fullscreen mode, the {@link #disable} method is called. It does the following:\n *\n * 1. Execute the configured {@link module:fullscreen/fullscreenconfig~FullscreenConfig#onLeaveCallback\n * \t`config.fullscreen.onLeaveCallback`} function.\n * 2. Remove the classes added to the `<body>` and `<html>` elements.\n * 3. If document outline is used, restore its default container.\n * 4. If annotations are used, restore their original state (UI, filters etc).\n * 5. If revision history is used, restore the original callbacks.\n * 7. If AI Tabs is used, restore it to the original state.\n * 8. If source editing and document outline are both used, restore the document outline header.\n * 9. Restore all moved elements to their original place.\n * 10. Destroy the fullscreen mode container.\n * 11. If the editor has a toolbar, switch its behavior to the one configured in the\n * \t{@link module:ui/toolbar/toolbarview~ToolbarOptions#shouldGroupWhenFull} property.\n * 12. Restore the scroll positions of all ancestors of the editable element.\n * 13. If pagination is used, restore its default configuration.\n * 14. Restore default dialogs positions.\n *\n * This class is exported to allow for custom extensions.\n */ class FullscreenAbstractEditorHandler {\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 * Whether the left sidebar collapse button is created.\n\t */ _hasLeftCollapseButton = false;\n /**\n\t * The button that toggles the visibility of the left sidebar.\n\t */ _collapseLeftSidebarButton = null;\n /**\n\t * The resize observer that is used to adjust the visibility of the left and right sidebars dynamically.\n\t */ _resizeObserver = null;\n /**\n\t * The width of the expanded left and right sidebars in the fullscreen mode. Necessary for logic checking if they should be visible.\n\t */ _sidebarsWidths = {\n left: 0,\n right: 0\n };\n /**\n\t * Whether the left sidebar should be kept hidden even if there is enough space for it. It's set to `true` when user\n\t * collapses the left sidebar with a button. Behavior is reset when exiting the fullscreen mode.\n\t */ _keepLeftSidebarHidden = false;\n /**\n\t * Temporary flag used to ignore the first automatic layout adjustment logic when user collapses the left sidebar with a button.\n\t * It is then immediately set back to `false`.\n\t */ _forceShowLeftSidebar = false;\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 * A map of AI Tabs data that were set before entering the fullscreen mode.\n\t */ _aiTabsData = 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 if (this._resizeObserver) {\n this._resizeObserver.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 editor's 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\"></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\t<div class=\"ck ck-fullscreen__right-edge\" data-ck-fullscreen=\"right-edge\"></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 // 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 if (this._hasLeftCollapseButton) {\n this._generateCollapseButton();\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 // Code coverage is provided in the commercial package repository as integration unit tests.\n /* istanbul ignore if -- @preserve */ if (this._editor.plugins.has('AITabs')) {\n this._handleAITabsTransfer();\n }\n if (this._editor.plugins.has('SourceEditing') && this._editor.plugins.has('DocumentOutlineUI')) {\n // Register a callback to hide the document outline header in source editing mode.\n this._editor.plugins.get('SourceEditing').on('change:isSourceEditingMode', this._sourceEditingCallback);\n }\n // Dialog position should be done after all known elements are moved to the fullscreen container.\n if (this._editor.plugins.has('Dialog')) {\n this._registerFullscreenDialogPositionAdjustments();\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 // Save the information about the width of the left and right sidebars before they possibly get hidden.\n // It will be used for math checking if they should be visible or not dynamically.\n this._sidebarsWidths = {\n left: this._wrapper.querySelector('.ck-fullscreen__left-sidebar').scrollWidth,\n right: this._wrapper.querySelector('.ck-fullscreen__right-sidebar').scrollWidth\n };\n this._adjustVisibleElements();\n this._setupResizeObserver();\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 // Code coverage is provided in the commercial package repository as integration unit tests.\n /* istanbul ignore if -- @preserve */ if (this._editor.plugins.has('AITabs')) {\n this._restoreAITabs();\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 // Container is also destroyed in the `restoreMovedElementLocation()` method, but we need to do it here\n // to ensure that the container is destroyed even if no elements were moved.\n this._destroyContainer();\n if (this._editor.ui.view.toolbar) {\n this._editor.ui.view.toolbar.switchBehavior(this._editor.config.get('toolbar.shouldNotGroupWhenFull') === true ? 'static' : 'dynamic');\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 // Using `behavior: 'instant'` is necessary to force scroll if some of the containers has `scroll-behavior: smooth` set (otherwise\n // the scroll won't happen).\n for (const [ancestor, value] of this._savedAncestorsScrollPositions){\n // `ScrollBehavior` has incorrect type definition in currently used TS version (5.0.4). Fix should be present since 5.1.0:\n // https://github.com/Microsoft/TypeScript/issues/28755. Hence we need a type assertion here.\n ancestor.scrollTo({\n left: value.scrollLeft,\n top: value.scrollTop,\n behavior: 'instant'\n });\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 // Reset the behavior of the left sidebar.\n this._keepLeftSidebarHidden = false;\n this._resizeObserver?.destroy();\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 if (!document.querySelector('[data-ck-fullscreen=\"left-sidebar-sticky\"]')) {\n document.querySelector('[data-ck-fullscreen=\"left-sidebar\"]').appendChild(createElement(document, 'div', {\n class: 'ck ck-fullscreen__left-sidebar-sticky',\n 'data-ck-fullscreen': 'left-sidebar-sticky'\n }));\n }\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 this._hasLeftCollapseButton = true;\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 if (!document.querySelector('[data-ck-fullscreen=\"left-sidebar-sticky\"]')) {\n document.querySelector('[data-ck-fullscreen=\"left-sidebar\"]').appendChild(createElement(document, 'div', {\n class: 'ck ck-fullscreen__left-sidebar-sticky',\n 'data-ck-fullscreen': 'left-sidebar-sticky'\n }));\n }\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 this._hasLeftCollapseButton = true;\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 // Code coverage is provided in the commercial package repository as integration unit tests.\n /* istanbul ignore next -- @preserve */ _generateCollapseButton() {\n const button = new ButtonView(this._editor.locale);\n const leftSidebarContainer = document.querySelector('.ck-fullscreen__left-sidebar');\n const t = this._editor.t;\n button.set({\n label: t('Toggle sidebar'),\n class: 'ck-fullscreen__left-sidebar-toggle-button',\n tooltip: t('Hide left sidebar'),\n tooltipPosition: 'se',\n icon: IconPreviousArrow\n });\n button.on('execute', ()=>{\n // Change the look of the button to reflect the state of the left sidebar.\n if (leftSidebarContainer.classList.contains('ck-fullscreen__left-sidebar--collapsed')) {\n // Enable automatic left sidebar toggling.\n this._forceShowLeftSidebar = true;\n this._keepLeftSidebarHidden = false;\n this._showLeftSidebar();\n } else {\n // Disable automatic left sidebar toggling.\n this._keepLeftSidebarHidden = true;\n this._hideLeftSidebar();\n }\n // Keep the focus in the editor whenever the button is clicked.\n this._editor.editing.view.focus();\n });\n button.render();\n this._collapseLeftSidebarButton = button;\n // Append the button at the top of the left sidebar.\n leftSidebarContainer.prepend(button.element);\n }\n /**\n\t * Stores the current state of the annotations UIs to restore it when leaving fullscreen mode and switches the UI to the wide sidebar.\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 annotationsUIs.deactivateAll();\n const sidebarPlugin = this._editor.plugins.get('Sidebar');\n // There are two scenarios to consider: if wide sidebar is already used and when it's not.\n // If sidebar container is not set (e.g. in case of inline annotations), we need to:\n // 1. Set the sidebar container in the sidebar plugin.\n // 2. Activate the wide sidebar UI.\n // 3. Move the sidebar element to the fullscreen mode.\n if (!sidebarPlugin.container) {\n sidebarPlugin.setContainer(this.getWrapper().querySelector('[data-ck-fullscreen=\"right-sidebar\"]'));\n this._switchAnnotationsUI('wideSidebar');\n this.moveToFullscreen(sidebarPlugin.container.firstElementChild, 'right-sidebar');\n } else {\n this._switchAnnotationsUI('wideSidebar');\n this.moveToFullscreen(sidebarPlugin.container.firstElementChild, 'right-sidebar');\n sidebarPlugin.setContainer(this.getWrapper().querySelector('[data-ck-fullscreen=\"right-sidebar\"]'));\n }\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 sidebarPlugin = this._editor.plugins.get('Sidebar');\n const sidebarContainer = sidebarPlugin.context.config.get('sidebar.container');\n // If sidebar container was set initially, restore it to the original value from config.\n if (sidebarContainer) {\n sidebarPlugin.setContainer(sidebarContainer);\n }\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 // It's possible that the right edge container is used but not visible. We then fallback to the wrapper.\n const keepRightEdgeContainerVisible = new Rect(this._wrapper.querySelector('.ck-fullscreen__right-edge')).getVisible();\n const relativeContainer = keepRightEdgeContainerVisible ? this._wrapper.querySelector('.ck-fullscreen__right-edge') : this._wrapper;\n const relativeContainerRect = new Rect(relativeContainer).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 (relativeContainerRect && editorContainerRect && dialogRect) {\n dialogView.position = null;\n const leftOffset = keepRightEdgeContainerVisible ? relativeContainerRect.left - dialogRect.width - DIALOG_OFFSET : relativeContainerRect.left + relativeContainerRect.width - dialogRect.width - DIALOG_OFFSET + scrollOffset;\n dialogView.moveTo(leftOffset, 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\t * Stores the current state of the AI Tabs and moves it to the fullscreen mode.\n\t */ // Code coverage is provided in the commercial package repository as integration unit tests.\n /* istanbul ignore next -- @preserve */ _handleAITabsTransfer() {\n const aiTabs = this._editor.plugins.get('AITabs');\n this._aiTabsData = {\n side: aiTabs.side,\n type: aiTabs.type\n };\n this.moveToFullscreen(aiTabs.view.element, 'right-edge');\n aiTabs.side = 'right';\n aiTabs.type = 'sidebar';\n // Adjust the visible elements when the transition (changing the size of the AI tabs) ends. Earlier we do not have the\n // correct sizes of elements.\n aiTabs.view.element.addEventListener('transitionend', (evt)=>this._handleAISidebarTransitions(evt));\n }\n /**\n\t * Checks the transition event to see if it's changing the width of the AI tabs and if so, adjusts the visible fullscreen mode elements.\n\t */ _handleAISidebarTransitions(evt) {\n const aiTabs = this._editor.plugins.get('AITabs');\n // Transition may occur on any element inside the AI tabs (e.g. changing the box-shadow in review mode),\n // so we need to check the target and the property name.\n if (evt.target === aiTabs.view.element && evt.propertyName.includes('width')) {\n this._adjustVisibleElements();\n }\n }\n /**\n\t * Restores the state of the AI Tabs to the original values.\n\t */ // Code coverage is provided in the commercial package repository as integration unit tests.\n /* istanbul ignore next -- @preserve */ _restoreAITabs() {\n const aiTabs = this._editor.plugins.get('AITabs');\n aiTabs.side = this._aiTabsData?.side;\n aiTabs.type = this._aiTabsData?.type;\n this._aiTabsData = null;\n aiTabs.view.element.removeEventListener('transitionend', this._handleAISidebarTransitions);\n }\n /**\n\t * Adjusts the visibility of the left and right sidebars based on the available space.\n\t */ _adjustVisibleElements() {\n const editableWrapper = this._wrapper.querySelector('.ck-fullscreen__editable-wrapper');\n // If user has explicitly opened the left sidebar, don't try to hide it automatically - but only once. Any later\n // resizes will affect the sidebar visibility.\n if (this._forceShowLeftSidebar) {\n this._forceShowLeftSidebar = false;\n return;\n }\n // First of all, check if we need to collapse something or not.\n if (editableWrapper.scrollWidth > editableWrapper.clientWidth) {\n // If we do, collapse left sidebar first.\n this._hideLeftSidebar();\n // If we still need more space, collapse right sidebar.\n if (editableWrapper.scrollWidth > editableWrapper.clientWidth) {\n this._hideRightSidebar();\n }\n } else {\n // Try to expand right sidebar first. It's not enough to check if scrollWidth + rightSidebarWidth < clientWidth,\n // because the wrapper will always stretch to the full available width.\n // We need to check the sum of its children widths instead.\n let actualWidth = [\n ...editableWrapper.children\n ].reduce((acc, child)=>acc + child.scrollWidth, 0);\n // If adding right sidebar width to the factual width of the wrapper\n // would still be less than the client width, expand right sidebar.\n if (actualWidth + this._sidebarsWidths.right < editableWrapper.clientWidth) {\n this._showRightSidebar();\n actualWidth = [\n ...editableWrapper.children\n ].reduce((acc, child)=>acc + child.scrollWidth, 0);\n }\n // Then follow the same logic for left sidebar - but only if we are controlling it\n // (i.e. user hasn't explicitly collapsed the sidebar with a button).\n if (actualWidth + this._sidebarsWidths.left < editableWrapper.clientWidth && !this._keepLeftSidebarHidden) {\n this._showLeftSidebar();\n }\n }\n }\n /**\n\t * Switches the annotations UI to the requested one.\n\t */ // Code coverage is provided in the commercial package repository as integration unit tests.\n /* istanbul ignore next -- @preserve */ _switchAnnotationsUI(uiName) {\n const annotationsUIs = this._editor.plugins.get('AnnotationsUIs');\n annotationsUIs.deactivateAll();\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 // First, check if someone has a filter defined for requested UI. If so, retrieve and apply it in fullscreen.\n if (annotationsFilters.has(uiName)) {\n annotationsUIs.activate(uiName, annotationsFilters.get(uiName));\n } else if (annotationsFilters.size) {\n annotationsUIs.activate(uiName, (annotation)=>[\n ...annotationsFilters.values()\n ].some((filter)=>filter(annotation)));\n } else {\n annotationsUIs.switchTo(uiName);\n }\n }\n /**\n\t * Sets up a resize observer to adjust the visibility of the left and right sidebars dynamically.\n\t */ _setupResizeObserver() {\n const wrapper = this._wrapper.querySelector('.ck-fullscreen__editable-wrapper');\n if (this._resizeObserver) {\n this._resizeObserver.destroy();\n }\n this._resizeObserver = new ResizeObserver(wrapper, ()=>{\n this._adjustVisibleElements();\n });\n }\n /**\n\t * Hides the left sidebar. Works only if there is anything to hide.\n\t */ // Code coverage is provided in the commercial package repository as integration unit tests.\n /* istanbul ignore next -- @preserve */ _hideLeftSidebar() {\n const t = this._editor.t;\n if (this._collapseLeftSidebarButton) {\n const leftSidebar = this._wrapper.querySelector('.ck-fullscreen__left-sidebar');\n leftSidebar.classList.add('ck-fullscreen__left-sidebar--collapsed');\n this._collapseLeftSidebarButton.icon = IconDocumentOutlineToggle;\n this._collapseLeftSidebarButton.tooltip = t('Show left sidebar');\n }\n }\n /**\n\t * Shows the left sidebar. Works only if there is anything to show.\n\t */ // Code coverage is provided in the commercial package repository as integration unit tests.\n /* istanbul ignore next -- @preserve */ _showLeftSidebar() {\n const t = this._editor.t;\n if (this._collapseLeftSidebarButton) {\n const leftSidebar = this._wrapper.querySelector('.ck-fullscreen__left-sidebar');\n leftSidebar.classList.remove('ck-fullscreen__left-sidebar--collapsed');\n this._collapseLeftSidebarButton.icon = IconPreviousArrow;\n this._collapseLeftSidebarButton.tooltip = t('Hide left sidebar');\n }\n }\n /**\n\t * Hides the right sidebar. Works only if there is anything to hide.\n\t */ _hideRightSidebar() {\n if (this._wrapper.querySelector('.ck-fullscreen__right-sidebar').firstChild) {\n this._switchAnnotationsUI('narrowSidebar');\n this._wrapper.querySelector('.ck-fullscreen__right-sidebar').classList.add('ck-fullscreen__right-sidebar--collapsed');\n }\n }\n /**\n\t * Shows the right sidebar. Works only if there is anything to show.\n\t */ _showRightSidebar() {\n if (this._wrapper.querySelector('.ck-fullscreen__right-sidebar').firstChild) {\n this._switchAnnotationsUI('wideSidebar');\n this._wrapper.querySelector('.ck-fullscreen__right-sidebar').classList.remove('ck-fullscreen__right-sidebar--collapsed');\n }\n }\n}\n\n/**\n * The classic editor fullscreen mode handler.\n */ class FullscreenClassicEditorHandler extends FullscreenAbstractEditorHandler {\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 FullscreenDecoupledEditorHandler extends FullscreenAbstractEditorHandler {\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 *\n\t * If you want to add support for a new editor type (for now, only Classic and Decoupled editors are handled),\n\t * create a custom handler that extends `FullscreenAbstractEditorHandler` and replace `fullscreenHandler` with it after\n\t * editor initialization:\n\t *\n\t * ```ts\n\t * // See the details of how to implement a custom handler in the `FullscreenAbstractEditorHandler` class API docs.\n\t * class CustomEditorHandler extends FullscreenAbstractEditorHandler {}\n\t *\n\t * CustomEditorClass.create( document.querySelector( '#editor' ), {} )\n\t * \t.then( ( editor ) => {\n\t * \t\teditor.commands.get( 'toggleFullscreen' ).fullscreenHandler = new CustomEditorHandler( editor );\n\t * \t} );\n\t * ```\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, you should create a custom handler\n // that extends `FullscreenAbstractEditorHandler` and replace `fullscreenHandler` with it.\n if (isClassicEditor(editor)) {\n this.fullscreenHandler = new FullscreenClassicEditorHandler(editor);\n } else if (isDecoupledEditor(editor)) {\n this.fullscreenHandler = new FullscreenDecoupledEditorHandler(editor);\n } else {\n this.fullscreenHandler = new FullscreenAbstractEditorHandler(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 * Classic editor typeguard.\n */ function isClassicEditor(editor) {\n return editor.constructor.editorName === 'ClassicEditor';\n}\n/**\n * Decoupled editor typeguard.\n */ function isDecoupledEditor(editor) {\n return editor.constructor.editorName === 'DecoupledEditor';\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, FullscreenAbstractEditorHandler, FullscreenClassicEditorHandler, FullscreenCommand, FullscreenDecoupledEditorHandler, 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, ButtonView, DialogViewPosition } from 'ckeditor5/src/ui.js';\nimport { global, createElement, Rect, type EventInfo, ResizeObserver } from 'ckeditor5/src/utils.js';\nimport type { ElementApi, Editor, EditorConfig } from 'ckeditor5/src/core.js';\nimport { IconDocumentOutlineToggle, IconPreviousArrow } from '@ckeditor/ckeditor5-icons';\n\nconst DIALOG_OFFSET = 28;\n\n/**\n * The abstract editor type handler.\n *\n * This class defines some actions and behaviors that are applied when fullscreen mode is toggled, and which are common\n * regardless of the editor type. Then, specific classes like `ClassicEditorHandler` or `DecoupledEditorHandler`\n * extend this class with actions specific for these editor types.\n *\n * Extend this class to provide fullscreen mode handling for unsupported editor types,\n * or if you wish to heavily customize the default behavior.\n *\n * The only method that is necessary to provide when extending this class is {@link #defaultOnEnter}. However, make sure to\n * familiarize yourself with the below full list of actions taken by `FullscreenAbstractEditorHandler` to understand\n * what is covered by default, and what should be provided by you.\n *\n * When entering the fullscreen mode, the {@link #enable} method is called. It creates the properly styled container\n * and handles the editor features that need it, in the following order:\n *\n * 1. Saves the scroll positions of all ancestors of the editable element to restore them after leaving the fullscreen mode.\n * 2. Executes the {@link #defaultOnEnter} method to move the proper editor UI elements to the fullscreen mode.\n * **If you extend the abstract handler, you should override this method** to move the elements that are specific to your editor type, like:\n * \teditable, toolbar, menu bar.\n * \tUse {@link #moveToFullscreen} method for this purpose to ensure they are automatically cleaned up after leaving the fullscreen mode.\n * 3. Adds proper classes to the `<body>` and `<html>` elements to block page scrolling, adjust `z-index` etc.\n *\n * Steps 4-12 are only executed if the corresponding features are used.\n *\n * 4. If presence list is used, moves it to the fullscreen mode container.\n * 5. If document outline is used, moves it to the fullscreen mode.\n * 6. If pagination is used, adjusts it's configuration for the changed view.\n * 7. If annotations are used, moves them to the fullscreen mode.\n * 8. If revision history is used, overrides the callbacks to show the revision viewer in the fullscreen mode.\n * 9. If AI Tabs is used, moves it to the fullscreen mode.\n * 10. If source editing and document outline are both used, registers a callback hiding the document outline header in source editing mode.\n * 11. Changes the position of some dialogs to utilize the empty space on the right side of the editable element.\n * 12. If custom container is used, hides all other elements in it to ensure they don't create an empty unscrollable space.\n *\n * Then finally:\n *\n * 13. Adjusts the visibility of the left and right sidebars based on the available space.\n * 14. Sets up a resize observer to adjust the visibility of the left and right sidebars dynamically.\n * 15. Executes the configured {@link module:fullscreen/fullscreenconfig~FullscreenConfig#onEnterCallback\n * \t`config.fullscreen.onEnterCallback`} function.\n * \tBy default, it returns the fullscreen mode container element so it can be further customized.\n *\n * When leaving the fullscreen mode, the {@link #disable} method is called. It does the following:\n *\n * 1. Execute the configured {@link module:fullscreen/fullscreenconfig~FullscreenConfig#onLeaveCallback\n * \t`config.fullscreen.onLeaveCallback`} function.\n * 2. Remove the classes added to the `<body>` and `<html>` elements.\n * 3. If document outline is used, restore its default container.\n * 4. If annotations are used, restore their original state (UI, filters etc).\n * 5. If revision history is used, restore the original callbacks.\n * 7. If AI Tabs is used, restore it to the original state.\n * 8. If source editing and document outline are both used, restore the document outline header.\n * 9. Restore all moved elements to their original place.\n * 10. Destroy the fullscreen mode container.\n * 11. If the editor has a toolbar, switch its behavior to the one configured in the\n * \t{@link module:ui/toolbar/toolbarview~ToolbarOptions#shouldGroupWhenFull} property.\n * 12. Restore the scroll positions of all ancestors of the editable element.\n * 13. If pagination is used, restore its default configuration.\n * 14. Restore default dialogs positions.\n *\n * This class is exported to allow for custom extensions.\n */\nexport class FullscreenAbstractEditorHandler {\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 * Whether the left sidebar collapse button is created.\n\t */\n\tprivate _hasLeftCollapseButton: boolean = false;\n\n\t/**\n\t * The button that toggles the visibility of the left sidebar.\n\t */\n\tprivate _collapseLeftSidebarButton: ButtonView | null = null;\n\n\t/**\n\t * The resize observer that is used to adjust the visibility of the left and right sidebars dynamically.\n\t */\n\tprivate _resizeObserver: ResizeObserver | null = null;\n\n\t/**\n\t * The width of the expanded left and right sidebars in the fullscreen mode. Necessary for logic checking if they should be visible.\n\t */\n\tprivate _sidebarsWidths: { left: number; right: number } = { left: 0, right: 0 };\n\n\t/**\n\t * Whether the left sidebar should be kept hidden even if there is enough space for it. It's set to `true` when user\n\t * collapses the left sidebar with a button. Behavior is reset when exiting the fullscreen mode.\n\t */\n\tprivate _keepLeftSidebarHidden: boolean = false;\n\n\t/**\n\t * Temporary flag used to ignore the first automatic layout adjustment logic when user collapses the left sidebar with a button.\n\t * It is then immediately set back to `false`.\n\t */\n\tprivate _forceShowLeftSidebar: boolean = false;\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<any> ) | 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?: any ) => 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 * A map of AI Tabs data that were set before entering the fullscreen mode.\n\t */\n\tprivate _aiTabsData: { side: 'right' | 'left'; type: 'sidebar' | 'overlay' | 'custom' } | null = null;\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' ) as any ).showRevisionViewerCallback;\n\t\t\tthis._closeRevisionViewerCallback = ( editor.config.get( 'revisionHistory' ) as any ).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\n\t\t\tif ( this._resizeObserver ) {\n\t\t\t\tthis._resizeObserver.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 editor's 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\"></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\t<div class=\"ck ck-fullscreen__right-edge\" data-ck-fullscreen=\"right-edge\"></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\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\tif ( this._hasLeftCollapseButton ) {\n\t\t\tthis._generateCollapseButton();\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' ) as any ).isEnabled ) {\n\t\t\tconst paginationRenderer = this._editor.plugins.get( 'PaginationRenderer' ) as any;\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' ) as any ).isRevisionViewerOpen ) {\n\t\t\t\t// Keep in mind that closing the revision history viewer is an asynchronous operation.\n\t\t\t\t( this._editor.config.get( 'revisionHistory.closeRevisionViewerCallback' ) as any )();\n\t\t\t}\n\n\t\t\tthis._overrideRevisionHistoryCallbacks();\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( 'AITabs' ) ) {\n\t\t\tthis._handleAITabsTransfer();\n\t\t}\n\n\t\tif ( this._editor.plugins.has( 'SourceEditing' ) && this._editor.plugins.has( 'DocumentOutlineUI' ) ) {\n\t\t\t// Register a callback to hide the document outline header in source editing mode.\n\t\t\t( this._editor.plugins.get( 'SourceEditing' ) as any ).on( 'change:isSourceEditingMode', this._sourceEditingCallback );\n\t\t}\n\n\t\t// Dialog position should be done after all known elements are moved to the fullscreen container.\n\t\tif ( this._editor.plugins.has( 'Dialog' ) ) {\n\t\t\tthis._registerFullscreenDialogPositionAdjustments();\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\t// Save the information about the width of the left and right sidebars before they possibly get hidden.\n\t\t// It will be used for math checking if they should be visible or not dynamically.\n\t\tthis._sidebarsWidths = {\n\t\t\tleft: this._wrapper!.querySelector( '.ck-fullscreen__left-sidebar' )!.scrollWidth,\n\t\t\tright: this._wrapper!.querySelector( '.ck-fullscreen__right-sidebar' )!.scrollWidth\n\t\t};\n\n\t\tthis._adjustVisibleElements();\n\t\tthis._setupResizeObserver();\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\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( 'AITabs' ) ) {\n\t\t\tthis._restoreAITabs();\n\t\t}\n\n\t\tif ( this._editor.plugins.has( 'SourceEditing' ) && this._editor.plugins.has( 'DocumentOutlineUI' ) ) {\n\t\t\t( this._editor.plugins.get( 'SourceEditing' ) as any ).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\t// Container is also destroyed in the `restoreMovedElementLocation()` method, but we need to do it here\n\t\t// to ensure that the container is destroyed even if no elements were moved.\n\t\tthis._destroyContainer();\n\n\t\tif ( this._editor.ui.view.toolbar ) {\n\t\t\tthis._editor.ui.view.toolbar.switchBehavior(\n\t\t\t\tthis._editor.config.get( 'toolbar.shouldNotGroupWhenFull' ) === true ? 'static' : 'dynamic'\n\t\t\t);\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\t// Using `behavior: 'instant'` is necessary to force scroll if some of the containers has `scroll-behavior: smooth` set (otherwise\n\t\t// the scroll won't happen).\n\t\tfor ( const [ ancestor, value ] of this._savedAncestorsScrollPositions ) {\n\t\t\t// `ScrollBehavior` has incorrect type definition in currently used TS version (5.0.4). Fix should be present since 5.1.0:\n\t\t\t// https://github.com/Microsoft/TypeScript/issues/28755. Hence we need a type assertion here.\n\t\t\tancestor.scrollTo( { left: value.scrollLeft, top: value.scrollTop, behavior: 'instant' as ScrollBehavior } );\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' ) as any ).isEnabled ) {\n\t\t\tconst paginationRenderer = this._editor.plugins.get( 'PaginationRenderer' ) as any;\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\n\t\t// Reset the behavior of the left sidebar.\n\t\tthis._keepLeftSidebarHidden = false;\n\n\t\tthis._resizeObserver?.destroy();\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\tpublic 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\tif ( !document.querySelector( '[data-ck-fullscreen=\"left-sidebar-sticky\"]' ) ) {\n\t\t\tdocument.querySelector( '[data-ck-fullscreen=\"left-sidebar\"]' )!.appendChild(\n\t\t\t\tcreateElement( document, 'div', {\n\t\t\t\t\tclass: 'ck ck-fullscreen__left-sidebar-sticky',\n\t\t\t\t\t'data-ck-fullscreen': 'left-sidebar-sticky'\n\t\t\t\t} )\n\t\t\t);\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 any;\n\n\t\tthis.moveToFullscreen( presenceListUI.view.element!, 'presence-list' );\n\n\t\tthis._hasLeftCollapseButton = true;\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\tif ( !document.querySelector( '[data-ck-fullscreen=\"left-sidebar-sticky\"]' ) ) {\n\t\t\tdocument.querySelector( '[data-ck-fullscreen=\"left-sidebar\"]' )!.appendChild(\n\t\t\t\tcreateElement( document, 'div', {\n\t\t\t\t\tclass: 'ck ck-fullscreen__left-sidebar-sticky',\n\t\t\t\t\t'data-ck-fullscreen': 'left-sidebar-sticky'\n\t\t\t\t} )\n\t\t\t);\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 any;\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\n\t\tthis._hasLeftCollapseButton = true;\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 any;\n\t\tdocumentOutlineUI.view.documentOutlineContainer = documentOutlineUI.view.element as HTMLElement;\n\t}\n\n\t// Code coverage is provided in the commercial package repository as integration unit tests.\n\t/* istanbul ignore next -- @preserve */\n\tprivate _generateCollapseButton(): void {\n\t\tconst button = new ButtonView( this._editor.locale );\n\t\tconst leftSidebarContainer = document.querySelector( '.ck-fullscreen__left-sidebar' ) as HTMLElement;\n\t\tconst t = this._editor.t;\n\n\t\tbutton.set( {\n\t\t\tlabel: t( 'Toggle sidebar' ),\n\t\t\tclass: 'ck-fullscreen__left-sidebar-toggle-button',\n\t\t\ttooltip: t( 'Hide left sidebar' ),\n\t\t\ttooltipPosition: 'se',\n\t\t\ticon: IconPreviousArrow\n\t\t} );\n\n\t\tbutton.on( 'execute', () => {\n\t\t\t// Change the look of the button to reflect the state of the left sidebar.\n\t\t\tif ( leftSidebarContainer.classList.contains( 'ck-fullscreen__left-sidebar--collapsed' ) ) {\n\t\t\t\t// Enable automatic left sidebar toggling.\n\t\t\t\tthis._forceShowLeftSidebar = true;\n\t\t\t\tthis._keepLeftSidebarHidden = false;\n\n\t\t\t\tthis._showLeftSidebar();\n\t\t\t} else {\n\t\t\t\t// Disable automatic left sidebar toggling.\n\t\t\t\tthis._keepLeftSidebarHidden = true;\n\n\t\t\t\tthis._hideLeftSidebar();\n\t\t\t}\n\n\t\t\t// Keep the focus in the editor whenever the button is clicked.\n\t\t\tthis._editor.editing.view.focus();\n\t\t} );\n\n\t\tbutton.render();\n\n\t\tthis._collapseLeftSidebarButton = button;\n\n\t\t// Append the button at the top of the left sidebar.\n\t\tleftSidebarContainer.prepend( button.element! );\n\t}\n\n\t/**\n\t * Stores the current state of the annotations UIs to restore it when leaving fullscreen mode and switches the UI to the wide sidebar.\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 any;\n\n\t\tthis._annotationsUIsData = new Map( annotationsUIs.uisData );\n\n\t\tannotationsUIs.deactivateAll();\n\n\t\tconst sidebarPlugin = this._editor.plugins.get( 'Sidebar' ) as any;\n\n\t\t// There are two scenarios to consider: if wide sidebar is already used and when it's not.\n\t\t// If sidebar container is not set (e.g. in case of inline annotations), we need to:\n\t\t// 1. Set the sidebar container in the sidebar plugin.\n\t\t// 2. Activate the wide sidebar UI.\n\t\t// 3. Move the sidebar element to the fullscreen mode.\n\t\tif ( !sidebarPlugin.container ) {\n\t\t\tsidebarPlugin.setContainer( this.getWrapper().querySelector( '[data-ck-fullscreen=\"right-sidebar\"]' ) as HTMLElement );\n\n\t\t\tthis._switchAnnotationsUI( 'wideSidebar' );\n\n\t\t\tthis.moveToFullscreen( ( sidebarPlugin.container!.firstElementChild as HTMLElement ), 'right-sidebar' );\n\t\t}\n\t\t// If sidebar was already used:\n\t\t// 1. Switch to the wide sidebar UI (it's possibly switch back but we deactivated all UIs before).\n\t\t// 2. Move the sidebar element to the fullscreen mode.\n\t\t// 3. Set the sidebar container in the sidebar plugin.\n\t\t// If we set the container before moving the sidebar, we lose the reference to the original sidebar container and it won't be\n\t\t// moved back to the correct position after leaving fullscreen.\n\t\telse {\n\t\t\tthis._switchAnnotationsUI( 'wideSidebar' );\n\n\t\t\tthis.moveToFullscreen( ( sidebarPlugin.container!.firstElementChild as HTMLElement ), 'right-sidebar' );\n\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\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 sidebarPlugin = this._editor.plugins.get( 'Sidebar' ) as any;\n\t\tconst sidebarContainer = sidebarPlugin.context.config.get( 'sidebar.container' );\n\n\t\t// If sidebar container was set initially, restore it to the original value from config.\n\t\tif ( sidebarContainer ) {\n\t\t\tsidebarPlugin.setContainer( sidebarContainer as HTMLElement );\n\t\t}\n\n\t\tconst annotationsUIs = this._editor.plugins.get( 'AnnotationsUIs' ) as any;\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' ) as any, '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\t// It's possible that the right edge container is used but not visible. We then fallback to the wrapper.\n\t\tconst keepRightEdgeContainerVisible =\n\t\t\tnew Rect( this._wrapper!.querySelector( '.ck-fullscreen__right-edge' ) as HTMLElement ).getVisible();\n\t\tconst relativeContainer = keepRightEdgeContainerVisible ?\n\t\t\tthis._wrapper!.querySelector( '.ck-fullscreen__right-edge' ) as HTMLElement :\n\t\t\tthis._wrapper!;\n\t\tconst relativeContainerRect = new Rect( relativeContainer ).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 ( relativeContainerRect && editorContainerRect && dialogRect ) {\n\t\t\tdialogView.position = null;\n\n\t\t\tconst leftOffset = keepRightEdgeContainerVisible ?\n\t\t\t\trelativeContainerRect.left - dialogRect.width - DIALOG_OFFSET :\n\t\t\t\trelativeContainerRect.left + relativeContainerRect.width - dialogRect.width - DIALOG_OFFSET + scrollOffset;\n\n\t\t\tdialogView.moveTo(\n\t\t\t\tleftOffset,\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\t/**\n\t * Stores the current state of the AI Tabs and moves it to the 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 _handleAITabsTransfer(): void {\n\t\tconst aiTabs = this._editor.plugins.get( 'AITabs' ) as any;\n\n\t\tthis._aiTabsData = {\n\t\t\tside: aiTabs.side,\n\t\t\ttype: aiTabs.type\n\t\t};\n\n\t\tthis.moveToFullscreen( aiTabs.view.element!, 'right-edge' );\n\n\t\taiTabs.side = 'right';\n\t\taiTabs.type = 'sidebar';\n\n\t\t// Adjust the visible elements when the transition (changing the size of the AI tabs) ends. Earlier we do not have the\n\t\t// correct sizes of elements.\n\t\taiTabs.view.element.addEventListener( 'transitionend', ( evt: TransitionEvent ) => this._handleAISidebarTransitions( evt ) );\n\t}\n\n\t/**\n\t * Checks the transition event to see if it's changing the width of the AI tabs and if so, adjusts the visible fullscreen mode elements.\n\t */\n\tprivate _handleAISidebarTransitions( evt: TransitionEvent ): void {\n\t\tconst aiTabs = this._editor.plugins.get( 'AITabs' ) as any;\n\n\t\t// Transition may occur on any element inside the AI tabs (e.g. changing the box-shadow in review mode),\n\t\t// so we need to check the target and the property name.\n\t\tif ( evt.target === aiTabs.view.element && evt.propertyName.includes( 'width' ) ) {\n\t\t\tthis._adjustVisibleElements();\n\t\t}\n\t}\n\n\t/**\n\t * Restores the state of the AI Tabs to the original values.\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 _restoreAITabs(): void {\n\t\tconst aiTabs = this._editor.plugins.get( 'AITabs' ) as any;\n\n\t\taiTabs.side = this._aiTabsData?.side;\n\t\taiTabs.type = this._aiTabsData?.type;\n\n\t\tthis._aiTabsData = null;\n\n\t\taiTabs.view.element.removeEventListener( 'transitionend', this._handleAISidebarTransitions );\n\t}\n\n\t/**\n\t * Adjusts the visibility of the left and right sidebars based on the available space.\n\t */\n\tprivate _adjustVisibleElements(): void {\n\t\tconst editableWrapper = this._wrapper!.querySelector( '.ck-fullscreen__editable-wrapper' ) as HTMLElement;\n\n\t\t// If user has explicitly opened the left sidebar, don't try to hide it automatically - but only once. Any later\n\t\t// resizes will affect the sidebar visibility.\n\t\tif ( this._forceShowLeftSidebar ) {\n\t\t\tthis._forceShowLeftSidebar = false;\n\n\t\t\treturn;\n\t\t}\n\n\t\t// First of all, check if we need to collapse something or not.\n\t\tif ( editableWrapper.scrollWidth > editableWrapper.clientWidth ) {\n\t\t\t// If we do, collapse left sidebar first.\n\t\t\tthis._hideLeftSidebar();\n\n\t\t\t// If we still need more space, collapse right sidebar.\n\t\t\tif ( editableWrapper.scrollWidth > editableWrapper.clientWidth ) {\n\t\t\t\tthis._hideRightSidebar();\n\t\t\t}\n\t\t}\n\t\t// If we don't need more space, maybe we could expand sidebars instead.\n\t\telse {\n\t\t\t// Try to expand right sidebar first. It's not enough to check if scrollWidth + rightSidebarWidth < clientWidth,\n\t\t\t// because the wrapper will always stretch to the full available width.\n\t\t\t// We need to check the sum of its children widths instead.\n\t\t\tlet actualWidth = [ ...editableWrapper.children ].reduce( ( acc, child ) => acc + child.scrollWidth, 0 );\n\n\t\t\t// If adding right sidebar width to the factual width of the wrapper\n\t\t\t// would still be less than the client width, expand right sidebar.\n\t\t\tif ( actualWidth + this._sidebarsWidths.right < editableWrapper.clientWidth ) {\n\t\t\t\tthis._showRightSidebar();\n\n\t\t\t\tactualWidth = [ ...editableWrapper.children ].reduce( ( acc, child ) => acc + child.scrollWidth, 0 );\n\t\t\t}\n\n\t\t\t// Then follow the same logic for left sidebar - but only if we are controlling it\n\t\t\t// (i.e. user hasn't explicitly collapsed the sidebar with a button).\n\t\t\tif ( actualWidth + this._sidebarsWidths.left < editableWrapper.clientWidth && !this._keepLeftSidebarHidden ) {\n\t\t\t\tthis._showLeftSidebar();\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Switches the annotations UI to the requested one.\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 _switchAnnotationsUI( uiName: string ) {\n\t\tconst annotationsUIs = this._editor.plugins.get( 'AnnotationsUIs' ) as any;\n\t\tannotationsUIs.deactivateAll();\n\t\tconst annotationsFilters = new Map<string, ( annotation: any ) => 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\t// First, check if someone has a filter defined for requested UI. If so, retrieve and apply it in fullscreen.\n\t\tif ( annotationsFilters.has( uiName ) ) {\n\t\t\tannotationsUIs.activate( uiName, annotationsFilters.get( uiName ) );\n\t\t}\n\t\t// If no filter is defined for requested UI, read the filters for the active display(s) mode and apply them.\n\t\t// It's possible there are filters for modes other than selected, so display annotations that match any of them.\n\t\telse if ( annotationsFilters.size ) {\n\t\t\tannotationsUIs.activate( uiName,\n\t\t\t\t( annotation: any ) => [ ...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 requested UI.\n\t\telse {\n\t\t\tannotationsUIs.switchTo( uiName );\n\t\t}\n\t}\n\n\t/**\n\t * Sets up a resize observer to adjust the visibility of the left and right sidebars dynamically.\n\t */\n\tprivate _setupResizeObserver(): void {\n\t\tconst wrapper = this._wrapper!.querySelector( '.ck-fullscreen__editable-wrapper' ) as HTMLElement;\n\n\t\tif ( this._resizeObserver ) {\n\t\t\tthis._resizeObserver.destroy();\n\t\t}\n\n\t\tthis._resizeObserver = new ResizeObserver( wrapper, () => {\n\t\t\tthis._adjustVisibleElements();\n\t\t} );\n\t}\n\n\t/**\n\t * Hides the left sidebar. Works only if there is anything to hide.\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 _hideLeftSidebar() {\n\t\tconst t = this._editor.t;\n\n\t\tif ( this._collapseLeftSidebarButton ) {\n\t\t\tconst leftSidebar = this._wrapper!.querySelector( '.ck-fullscreen__left-sidebar' ) as HTMLElement;\n\n\t\t\tleftSidebar.classList.add( 'ck-fullscreen__left-sidebar--collapsed' );\n\t\t\tthis._collapseLeftSidebarButton.icon = IconDocumentOutlineToggle;\n\t\t\tthis._collapseLeftSidebarButton.tooltip = t( 'Show left sidebar' );\n\t\t}\n\t}\n\n\t/**\n\t * Shows the left sidebar. Works only if there is anything to show.\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 _showLeftSidebar() {\n\t\tconst t = this._editor.t;\n\n\t\tif ( this._collapseLeftSidebarButton ) {\n\t\t\tconst leftSidebar = this._wrapper!.querySelector( '.ck-fullscreen__left-sidebar' ) as HTMLElement;\n\n\t\t\tleftSidebar.classList.remove( 'ck-fullscreen__left-sidebar--collapsed' );\n\t\t\tthis._collapseLeftSidebarButton.icon = IconPreviousArrow;\n\t\t\tthis._collapseLeftSidebarButton.tooltip = t( 'Hide left sidebar' );\n\t\t}\n\t}\n\n\t/**\n\t * Hides the right sidebar. Works only if there is anything to hide.\n\t */\n\tprivate _hideRightSidebar() {\n\t\tif ( this._wrapper!.querySelector( '.ck-fullscreen__right-sidebar' )!.firstChild ) {\n\t\t\tthis._switchAnnotationsUI( 'narrowSidebar' );\n\t\t\tthis._wrapper!.querySelector( '.ck-fullscreen__right-sidebar' )!.classList.add( 'ck-fullscreen__right-sidebar--collapsed' );\n\t\t}\n\t}\n\n\t/**\n\t * Shows the right sidebar. Works only if there is anything to show.\n\t */\n\tprivate _showRightSidebar() {\n\t\tif ( this._wrapper!.querySelector( '.ck-fullscreen__right-sidebar' )!.firstChild ) {\n\t\t\tthis._switchAnnotationsUI( 'wideSidebar' );\n\t\t\tthis._wrapper!.querySelector( '.ck-fullscreen__right-sidebar' )!.classList.remove( 'ck-fullscreen__right-sidebar--collapsed' );\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 { FullscreenAbstractEditorHandler } from './abstracteditorhandler.js';\n\n/**\n * The classic editor fullscreen mode handler.\n */\nexport class FullscreenClassicEditorHandler extends FullscreenAbstractEditorHandler {\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\tpublic 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' ) as any ).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 { FullscreenAbstractEditorHandler } from './abstracteditorhandler.js';\n\n/**\n * The decoupled editor fullscreen mode handler.\n */\nexport class FullscreenDecoupledEditorHandler extends FullscreenAbstractEditorHandler {\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\tpublic 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' ) as any ).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 type { ClassicEditor } from '@ckeditor/ckeditor5-editor-classic';\nimport type { DecoupledEditor } from '@ckeditor/ckeditor5-editor-decoupled';\n\nimport { FullscreenAbstractEditorHandler } from './handlers/abstracteditorhandler.js';\nimport { FullscreenClassicEditorHandler } from './handlers/classiceditorhandler.js';\nimport { FullscreenDecoupledEditorHandler } from './handlers/decouplededitorhandler.js';\n\n/**\n * A command toggling the fullscreen mode.\n */\nexport 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\t * If you want to add support for a new editor type (for now, only Classic and Decoupled editors are handled),\n\t * create a custom handler that extends `FullscreenAbstractEditorHandler` and replace `fullscreenHandler` with it after\n\t * editor initialization:\n\t *\n\t * ```ts\n\t * // See the details of how to implement a custom handler in the `FullscreenAbstractEditorHandler` class API docs.\n\t * class CustomEditorHandler extends FullscreenAbstractEditorHandler {}\n\t *\n\t * CustomEditorClass.create( document.querySelector( '#editor' ), {} )\n\t * \t.then( ( editor ) => {\n\t * \t\teditor.commands.get( 'toggleFullscreen' ).fullscreenHandler = new CustomEditorHandler( editor );\n\t * \t} );\n\t * ```\n\t */\n\tpublic fullscreenHandler: FullscreenAbstractEditorHandler;\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, you should create a custom handler\n\t\t// that extends `FullscreenAbstractEditorHandler` and replace `fullscreenHandler` with it.\n\t\tif ( isClassicEditor( editor ) ) {\n\t\t\tthis.fullscreenHandler = new FullscreenClassicEditorHandler( editor );\n\t\t} else if ( isDecoupledEditor( editor ) ) {\n\t\t\tthis.fullscreenHandler = new FullscreenDecoupledEditorHandler( editor );\n\t\t} else {\n\t\t\tthis.fullscreenHandler = new FullscreenAbstractEditorHandler( 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/**\n * Classic editor typeguard.\n */\nfunction isClassicEditor( editor: Editor ): editor is ClassicEditor {\n\treturn ( editor.constructor as typeof Editor ).editorName === 'ClassicEditor';\n}\n\n/**\n * Decoupled editor typeguard.\n */\nfunction isDecoupledEditor( editor: Editor ): editor is DecoupledEditor {\n\treturn ( editor.constructor as typeof Editor ).editorName === 'DecoupledEditor';\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 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 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 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"]}