ckeditor5-editor-classic-floating 41.3.1 → 47.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,206 +1,4 @@
1
- Changelog
2
- =========
3
-
4
- All changes in the package are documented in the main repository. See: https://github.com/ckeditor/ckeditor5/blob/master/CHANGELOG.md.
5
-
6
- Changes for the past releases are available below.
7
-
8
- ## [19.0.0](https://github.com/ckeditor/ckeditor5-editor-classic/compare/v18.0.0...v19.0.0) (April 29, 2020)
9
-
10
- Internal changes only (updated dependencies, documentation, etc.).
11
-
12
-
13
- ## [18.0.0](https://github.com/ckeditor/ckeditor5-editor-classic/compare/v17.0.0...v18.0.0) (March 19, 2020)
14
-
15
- Internal changes only (updated dependencies, documentation, etc.).
16
-
17
-
18
- ## [17.0.0](https://github.com/ckeditor/ckeditor5-editor-classic/compare/v16.0.0...v17.0.0) (February 19, 2020)
19
-
20
- Internal changes only (updated dependencies, documentation, etc.).
21
-
22
- ## [16.0.0](https://github.com/ckeditor/ckeditor5-editor-classic/compare/v15.0.0...v16.0.0) (December 4, 2019)
23
-
24
- ### Features
25
-
26
- * The main editor toolbar should respect the `config.toolbar.shouldNotGroupWhenFull` configuration (see [ckeditor/ckeditor5#5692](https://github.com/ckeditor/ckeditor5/issues/5692)). ([9a57e63](https://github.com/ckeditor/ckeditor5-editor-classic/commit/9a57e63))
27
-
28
-
29
- ## [15.0.0](https://github.com/ckeditor/ckeditor5-editor-classic/compare/v12.1.4...v15.0.0) (October 23, 2019)
30
-
31
- ### Features
32
-
33
- * Enabled automatic items grouping in the main editor toolbar when there is not enough space to display them in a single row (see [ckeditor/ckeditor5#416](https://github.com/ckeditor/ckeditor5/issues/416)). ([4d20b70](https://github.com/ckeditor/ckeditor5-editor-classic/commit/4d20b70))
34
-
35
-
36
- ## [12.1.4](https://github.com/ckeditor/ckeditor5-editor-classic/compare/v12.1.3...v12.1.4) (August 26, 2019)
37
-
38
- ### Other changes
39
-
40
- * The issue tracker for this package was moved to https://github.com/ckeditor/ckeditor5/issues. See [ckeditor/ckeditor5#1988](https://github.com/ckeditor/ckeditor5/issues/1988). ([84ec68f](https://github.com/ckeditor/ckeditor5-editor-classic/commit/84ec68f))
41
-
42
-
43
- ## [12.1.3](https://github.com/ckeditor/ckeditor5-editor-classic/compare/v12.1.2...v12.1.3) (July 10, 2019)
44
-
45
- Internal changes only (updated dependencies, documentation, etc.).
46
-
47
-
48
- ## [12.1.2](https://github.com/ckeditor/ckeditor5-editor-classic/compare/v12.1.1...v12.1.2) (July 4, 2019)
49
-
50
- Internal changes only (updated dependencies, documentation, etc.).
51
-
52
-
53
- ## [12.1.1](https://github.com/ckeditor/ckeditor5-editor-classic/compare/v12.1.0...v12.1.1) (June 6, 2019)
54
-
55
- Internal changes only (updated dependencies, documentation, etc.).
56
-
57
-
58
- ## [12.1.0](https://github.com/ckeditor/ckeditor5-editor-classic/compare/v12.0.0...v12.1.0) (April 4, 2019)
59
-
60
- ### Features
61
-
62
- * Introduced `EditorConfig#initialData`. ([fce3edc](https://github.com/ckeditor/ckeditor5-editor-classic/commit/fce3edc))
63
-
64
-
65
- ## [12.0.0](https://github.com/ckeditor/ckeditor5-editor-classic/compare/v11.0.2...v12.0.0) (February 28, 2019)
66
-
67
- ### Features
68
-
69
- * Added support for the `config.placeholder` option which allows configuring the empty editor content placeholder (see [ckeditor/ckeditor5#479](https://github.com/ckeditor/ckeditor5/issues/479)). ([3450c23](https://github.com/ckeditor/ckeditor5-editor-classic/commit/3450c23))
70
-
71
- ### Bug fixes
72
-
73
- * Fixed memory leaks during editor initialization and destruction (see [ckeditor/ckeditor5#1341](https://github.com/ckeditor/ckeditor5/issues/1341)). ([a3c5c82](https://github.com/ckeditor/ckeditor5-editor-classic/commit/a3c5c82))
74
-
75
- ### Other changes
76
-
77
- * Adjustments to new editor initialization events. See breaking changes. ([61ccab0](https://github.com/ckeditor/ckeditor5-editor-classic/commit/61ccab0))
78
- * Editor UI classes API refactoring. See breaking changes. ([74e27ae](https://github.com/ckeditor/ckeditor5-editor-classic/commit/74e27ae))
79
-
80
- ### BREAKING CHANGES
81
-
82
- * Upgraded minimal versions of Node to `8.0.0` and npm to `5.7.1`. See: [ckeditor/ckeditor5#1507](https://github.com/ckeditor/ckeditor5/issues/1507). ([612ea3c](https://github.com/ckeditor/ckeditor5-cloud-services/commit/612ea3c))
83
- * The `editor#dataReady` event was removed. The `editor.data#ready` event has been introduced and should be used instead.
84
- * The `editor#pluginsReady` event was removed. Use plugin `afterInit()` method instead.
85
- * Removed `ClassicEditor#element` property. The `ClassicEditorUI#element` property should be used instead.
86
- * Removed `ClassicEditorUIView#editableElement`. Instead `ClassicEditorUI#getEditableElement()` method should be used.
87
-
88
-
89
- ## [11.0.2](https://github.com/ckeditor/ckeditor5-editor-classic/compare/v11.0.1...v11.0.2) (December 5, 2018)
90
-
91
- Internal changes only (updated dependencies, documentation, etc.).
92
-
93
-
94
- ## [11.0.1](https://github.com/ckeditor/ckeditor5-editor-classic/compare/v11.0.0...v11.0.1) (October 8, 2018)
95
-
96
- Internal changes only (updated dependencies, documentation, etc.).
97
-
98
-
99
- ## [11.0.0](https://github.com/ckeditor/ckeditor5-editor-classic/compare/v10.0.1...v11.0.0) (July 18, 2018)
100
-
101
- ### Features
102
-
103
- * Editor can now be created with initial data passed to the `create()` method. Closes [#72](https://github.com/ckeditor/ckeditor5-editor-classic/issues/72). ([09cebc6](https://github.com/ckeditor/ckeditor5-editor-classic/commit/09cebc6))
104
-
105
- ### Other changes
106
-
107
- * Used the `EditorUI` as a parent class for the `ClassicEditorUI` (see [ckeditor/ckeditor5-core#130](https://github.com/ckeditor/ckeditor5-core/issues/130)). ([ae98cfd](https://github.com/ckeditor/ckeditor5-editor-classic/commit/ae98cfd))
108
-
109
- ### BREAKING CHANGES
110
-
111
- * The `ClassicEditor#element` property was renamed to `ClassicEditor#sourceElement` and `ClassicEditor#updateElement()` method to `ClassicEditor#updateSourceElement()`. See [ckeditor/ckeditor5-core#64](https://github.com/ckeditor/ckeditor5-core/issues/64).
112
-
113
-
114
- ## [10.0.1](https://github.com/ckeditor/ckeditor5-editor-classic/compare/v10.0.0...v10.0.1) (June 21, 2018)
115
-
116
- Internal changes only (updated dependencies, documentation, etc.).
117
-
118
-
119
- ## [10.0.0](https://github.com/ckeditor/ckeditor5-editor-classic/compare/v1.0.0-beta.4...v10.0.0) (April 25, 2018)
120
-
121
- ### Other changes
122
-
123
- * Changed the license to GPL2+ only. See [ckeditor/ckeditor5#991](https://github.com/ckeditor/ckeditor5/issues/991). ([95fe4c1](https://github.com/ckeditor/ckeditor5-editor-classic/commit/95fe4c1))
124
-
125
- ### BREAKING CHANGES
126
-
127
- * The license under which CKEditor 5 is released has been changed from a triple GPL, LGPL and MPL license to a GPL2+ only. See [ckeditor/ckeditor5#991](https://github.com/ckeditor/ckeditor5/issues/991) for more information.
128
-
129
-
130
- ## [1.0.0-beta.4](https://github.com/ckeditor/ckeditor5-editor-classic/compare/v1.0.0-beta.2...v1.0.0-beta.4) (April 19, 2018)
131
-
132
- Internal changes only (updated dependencies, documentation, etc.).
133
-
134
-
135
- ## [1.0.0-beta.2](https://github.com/ckeditor/ckeditor5-editor-classic/compare/v1.0.0-beta.1...v1.0.0-beta.2) (April 10, 2018)
136
-
137
- ### Other changes
138
-
139
- * Increased the specificity of CSS rules. Introduced the `.ck` class for editor UI components (see: [ckeditor/ckeditor5#494](https://github.com/ckeditor/ckeditor5/issues/494)). ([e548bd0](https://github.com/ckeditor/ckeditor5-editor-classic/commit/e548bd0))
140
-
141
-
142
- ## [1.0.0-beta.1](https://github.com/ckeditor/ckeditor5-editor-classic/compare/v1.0.0-alpha.2...v1.0.0-beta.1) (March 15, 2018)
143
-
144
- ### Other changes
145
-
146
- * Migrated the editor styles to PostCSS. Moved visual styles to `@ckeditor/ckeditor5-theme-lark` (see [ckeditor/ckeditor5-ui#144](https://github.com/ckeditor/ckeditor5-ui/issues/144)). ([f24f97d](https://github.com/ckeditor/ckeditor5-editor-classic/commit/f24f97d))
147
- * Removed the `.ck-editor-toolbar` class from the toolbar (see [ckeditor/ckeditor5-theme-lark#135](https://github.com/ckeditor/ckeditor5-theme-lark/issues/135)). ([6b4670c](https://github.com/ckeditor/ckeditor5-editor-classic/commit/6b4670c))
148
-
149
-
150
- ## [1.0.0-alpha.2](https://github.com/ckeditor/ckeditor5-editor-classic/compare/v1.0.0-alpha.1...v1.0.0-alpha.2) (November 14, 2017)
151
-
152
- ### Other changes
153
-
154
- * Aligned UI library usage to the [changes in the UI framework](https://github.com/ckeditor/ckeditor5-ui/pull/332).
155
-
156
-
157
- ## [1.0.0-alpha.1](https://github.com/ckeditor/ckeditor5-editor-classic/compare/v0.8.0...v1.0.0-alpha.1) (October 3, 2017)
158
-
159
- ### Features
160
-
161
- * The `StickyToolbarView` has been replaced by the `StickyPanelView` with a child `ToolbarView` (see [ckeditor/ckeditor5-ui#297](https://github.com/ckeditor/ckeditor5-ui/issues/297)). ([e4f591f](https://github.com/ckeditor/ckeditor5-editor-classic/commit/e4f591f))
162
-
163
- ### BREAKING CHANGES
164
-
165
- * The former attributes controlling the position of the toolbar provided by the `StickyToolbarView` are now available under `ClassicEditorUIView#stickyPanel` (`editor.ui.view.stickyPanel`).
166
-
167
-
168
- ## [0.8.0](https://github.com/ckeditor/ckeditor5-editor-classic/compare/v0.7.3...v0.8.0) (September 3, 2017)
169
-
170
- ### Bug fixes
171
-
172
- * The toolbar should never hide underneath the edited content. Closes [#62](https://github.com/ckeditor/ckeditor5-editor-classic/issues/62). Closes ckeditor/ckeditor5-upload[#33](https://github.com/ckeditor/ckeditor5-editor-classic/issues/33). ([511d28f](https://github.com/ckeditor/ckeditor5-editor-classic/commit/511d28f))
173
-
174
- ### Features
175
-
176
- * The toolbar should support a vertical offset from the top of the web page. Closes [#60](https://github.com/ckeditor/ckeditor5-editor-classic/issues/60). ([6739afc](https://github.com/ckeditor/ckeditor5-editor-classic/commit/6739afc))
177
-
178
- ### Other changes
179
-
180
- * Renamed the `classic.js` file to `classiceditor.js` to match the naming convention. Closes [#41](https://github.com/ckeditor/ckeditor5-editor-classic/issues/41). ([c5714ba](https://github.com/ckeditor/ckeditor5-editor-classic/commit/c5714ba))
181
-
182
- ### BREAKING CHANGES
183
-
184
- * The `classic.js` file containing `ClassicEditor` class has been renamed to `classiceditor.js`.
185
-
186
-
187
- ## [0.7.3](https://github.com/ckeditor/ckeditor5-editor-classic/compare/v0.7.2...v0.7.3) (May 7, 2017)
188
-
189
- Internal changes only (updated dependencies, documentation, etc.).
190
-
191
- ## [0.7.2](https://github.com/ckeditor/ckeditor5-editor-classic/compare/v0.7.1...v0.7.2) (April 5, 2017)
192
-
193
- ### Bug fixes
194
-
195
- * It should be possible to use `ClassicEditor.create()` in its child classes. Closes [#53](https://github.com/ckeditor/ckeditor5-editor-classic/issues/53). ([95798ba](https://github.com/ckeditor/ckeditor5-editor-classic/commit/95798ba))
196
-
197
- ### Other changes
198
-
199
- * Code refactoring to share API with `ckeditor5-editor-inline`. Closes [#48](https://github.com/ckeditor/ckeditor5-editor-classic/issues/48). ([2bb1e4e](https://github.com/ckeditor/ckeditor5-editor-classic/commit/2bb1e4e))
200
-
201
-
202
- ## [0.7.1](https://github.com/ckeditor/ckeditor5-editor-classic/compare/v0.7.0...v0.7.1) (March 6, 2017)
203
-
204
- ### Other changes
205
-
206
- * Used `ToolbarView#etItemsFromConfig()` to bootstrap the toolbar in `ClassicEditorUI`. Closes [#51](https://github.com/ckeditor/ckeditor5/issues/51). ([53d58d9](https://github.com/ckeditor/ckeditor5-editor-classic/commit/53d58d9))
1
+ Changelog
2
+ =========
3
+
4
+ All changes in the package are documented in https://github.com/ckeditor/ckeditor5/blob/master/CHANGELOG.md.
package/LICENSE.md CHANGED
@@ -1,21 +1,26 @@
1
- Software License Agreement
2
- ==========================
3
-
4
- **Classic editor implementation** https://github.com/ckeditor/ckeditor5-editor-classic <br>
5
- Copyright (c) 2003–2024, [CKSource Holding sp. z o.o.](https://cksource.com) All rights reserved.
6
-
7
- Licensed under the terms of [GNU General Public License Version 2 or later](http://www.gnu.org/licenses/gpl.html).
8
-
9
- Sources of Intellectual Property Included in CKEditor
10
- -----------------------------------------------------
11
-
12
- Where not otherwise indicated, all CKEditor content is authored by CKSource engineers and consists of CKSource-owned intellectual property. In some specific instances, CKEditor will incorporate work done by developers outside of CKSource with their express permission.
13
-
14
- The following libraries are included in CKEditor under the [MIT license](https://opensource.org/licenses/MIT):
15
-
16
- * Lodash - Copyright (c) JS Foundation and other contributors https://js.foundation/. Based on Underscore.js, copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors http://underscorejs.org/.
17
-
18
- Trademarks
19
- ----------
20
-
21
- **CKEditor** is a trademark of [CKSource Holding sp. z o.o.](https://cksource.com) All other brand and product names are trademarks, registered trademarks, or service marks of their respective holders.
1
+ Software License Agreement
2
+ ==========================
3
+
4
+ **CKEditor&nbsp;5 Classic editor** (https://github.com/ckeditor/ckeditor5)<br>
5
+ Copyright (c) 2003–2026, [CKSource Holding sp. z o.o.](https://cksource.com) All rights reserved.
6
+
7
+ Licensed under a dual-license model, this software is available under:
8
+
9
+ * the [GNU General Public License Version 2 or later](https://www.gnu.org/licenses/gpl.html),
10
+ * or commercial license terms from CKSource Holding sp. z o.o.
11
+
12
+ For more information, see: [https://ckeditor.com/legal/ckeditor-licensing-options](https://ckeditor.com/legal/ckeditor-licensing-options).
13
+
14
+ Sources of Intellectual Property Included in CKEditor&nbsp;5
15
+ ------------------------------------------------------------
16
+
17
+ Where not otherwise indicated, all CKEditor&nbsp;5 content is authored by CKSource engineers and consists of CKSource-owned intellectual property. In some specific instances, CKEditor&nbsp;5 will incorporate work done by developers outside of CKSource with their express permission.
18
+
19
+ The following libraries are included in CKEditor&nbsp;5 under the [MIT license](https://opensource.org/licenses/MIT):
20
+
21
+ * es-toolkit - Copyright (c) 2024 Viva Republica, Inc.
22
+
23
+ Trademarks
24
+ ----------
25
+
26
+ **CKEditor** is a trademark of [CKSource Holding sp. z o.o.](https://cksource.com) All other brand and product names are trademarks, registered trademarks, or service marks of their respective holders.
package/README.md CHANGED
@@ -1,20 +1,29 @@
1
- CKEditor&nbsp;5 classic editor implementation
2
- ========================================
3
-
4
- [![npm version](https://badge.fury.io/js/%40ckeditor%2Fckeditor5-editor-classic.svg)](https://www.npmjs.com/package/@ckeditor/ckeditor5-editor-classic)
5
- [![Coverage Status](https://coveralls.io/repos/github/ckeditor/ckeditor5/badge.svg?branch=master)](https://coveralls.io/github/ckeditor/ckeditor5?branch=master)
6
- [![Build Status](https://travis-ci.com/ckeditor/ckeditor5.svg?branch=master)](https://app.travis-ci.com/github/ckeditor/ckeditor5)
7
-
8
- The classic editor implementation for CKEditor&nbsp;5.
9
-
10
- This package contains the [`ClassicEditor`](https://ckeditor.com/docs/ckeditor5/latest/api/module_editor-classic_classiceditor-ClassicEditor.html) class. Follow there to learn more about this type of editor and how to initialize it.
11
-
12
- This package contains the source version of the classic editor. This kind of editor implementation is also available as a ready-to-use [classic build](https://www.npmjs.com/package/@ckeditor/ckeditor5-build-classic). Read more about [CKEditor&nbsp;5 predefined builds](https://ckeditor.com/docs/ckeditor5/latest/installation/advanced/alternative-setups/predefined-builds.html) in the CKEditor&nbsp;5 documentation.
13
-
14
- ## Documentation
15
-
16
- See the [`@ckeditor/ckeditor5-editor-classic` package](https://ckeditor.com/docs/ckeditor5/latest/api/editor-classic.html) page in [CKEditor&nbsp;5 documentation](https://ckeditor.com/docs/ckeditor5/latest/).
17
-
18
- ## License
19
-
20
- Licensed under the terms of [GNU General Public License Version 2 or later](http://www.gnu.org/licenses/gpl.html). For full details about the license, please check the `LICENSE.md` file or [https://ckeditor.com/legal/ckeditor-oss-license](https://ckeditor.com/legal/ckeditor-oss-license).
1
+ CKEditor&nbsp;5 classic editor implementation
2
+ ========================================
3
+
4
+ [![npm version](https://badge.fury.io/js/%40ckeditor%2Fckeditor5-editor-classic.svg)](https://www.npmjs.com/package/@ckeditor/ckeditor5-editor-classic)
5
+ [![codecov](https://codecov.io/gh/ckeditor/ckeditor5/branch/master/graph/badge.svg)](https://codecov.io/gh/ckeditor/ckeditor5)
6
+ [![CircleCI](https://circleci.com/gh/ckeditor/ckeditor5.svg?style=shield)](https://app.circleci.com/pipelines/github/ckeditor/ckeditor5?branch=master)
7
+
8
+ The classic editor implementation for CKEditor&nbsp;5.
9
+
10
+ This package contains the [`ClassicEditor`](https://ckeditor.com/docs/ckeditor5/latest/api/module_editor-classic_classiceditor-ClassicEditor.html) class. Follow there to learn more about this type of editor and how to initialize it.
11
+
12
+ ## Documentation
13
+
14
+ See the [`@ckeditor/ckeditor5-editor-classic` package](https://ckeditor.com/docs/ckeditor5/latest/api/editor-classic.html) page in [CKEditor&nbsp;5 documentation](https://ckeditor.com/docs/ckeditor5/latest/).
15
+
16
+ ## Installation
17
+
18
+ ```bash
19
+ npm install ckeditor5
20
+ ```
21
+
22
+ ## License
23
+
24
+ Licensed under a dual-license model, this software is available under:
25
+
26
+ * the [GNU General Public License Version 2 or later](https://www.gnu.org/licenses/gpl.html),
27
+ * or commercial license terms from CKSource Holding sp. z o.o.
28
+
29
+ For more information, see: [https://ckeditor.com/legal/ckeditor-licensing-options](https://ckeditor.com/legal/ckeditor-licensing-options).
@@ -1,4 +1,4 @@
1
1
  /*!
2
- * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
- */(()=>{var t={662:(t,e,i)=>{"use strict";i.d(e,{A:()=>s});var n=i(935),o=i.n(n)()((function(t){return t[1]}));o.push([t.id,".ck.ck-editor{position:relative}.ck.ck-editor .ck-editor__top .ck-sticky-panel .ck-toolbar{z-index:var(--ck-z-panel)}",""]);const s=o},428:(t,e,i)=>{"use strict";i.d(e,{A:()=>s});var n=i(935),o=i.n(n)()((function(t){return t[1]}));o.push([t.id,".ck.ck-sticky-panel .ck-sticky-panel__content_sticky{position:fixed;top:0;z-index:var(--ck-z-panel)}.ck.ck-sticky-panel .ck-sticky-panel__content_sticky_bottom-limit{position:absolute;top:auto}",""]);const s=o},935:t=>{"use strict";t.exports=function(t){var e=[];return e.toString=function(){return this.map((function(e){var i=t(e);return e[2]?"@media ".concat(e[2]," {").concat(i,"}"):i})).join("")},e.i=function(t,i,n){"string"==typeof t&&(t=[[null,t,""]]);var o={};if(n)for(var s=0;s<this.length;s++){var r=this[s][0];null!=r&&(o[r]=!0)}for(var c=0;c<t.length;c++){var l=[].concat(t[c]);n&&o[l[0]]||(i&&(l[2]?l[2]="".concat(i," and ").concat(l[2]):l[2]=i),e.push(l))}},e}},591:(t,e,i)=>{"use strict";var n,o=function(){return void 0===n&&(n=Boolean(window&&document&&document.all&&!window.atob)),n},s=function(){var t={};return function(e){if(void 0===t[e]){var i=document.querySelector(e);if(window.HTMLIFrameElement&&i instanceof window.HTMLIFrameElement)try{i=i.contentDocument.head}catch(t){i=null}t[e]=i}return t[e]}}(),r=[];function c(t){for(var e=-1,i=0;i<r.length;i++)if(r[i].identifier===t){e=i;break}return e}function l(t,e){for(var i={},n=[],o=0;o<t.length;o++){var s=t[o],l=e.base?s[0]+e.base:s[0],a=i[l]||0,h="".concat(l," ").concat(a);i[l]=a+1;var u=c(h),f={css:s[1],media:s[2],sourceMap:s[3]};-1!==u?(r[u].references++,r[u].updater(f)):r.push({identifier:h,updater:b(f,e),references:1}),n.push(h)}return n}function a(t){var e=document.createElement("style"),n=t.attributes||{};if(void 0===n.nonce){var o=i.nc;o&&(n.nonce=o)}if(Object.keys(n).forEach((function(t){e.setAttribute(t,n[t])})),"function"==typeof t.insert)t.insert(e);else{var r=s(t.insert||"head");if(!r)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");r.appendChild(e)}return e}var h,u=(h=[],function(t,e){return h[t]=e,h.filter(Boolean).join("\n")});function f(t,e,i,n){var o=i?"":n.media?"@media ".concat(n.media," {").concat(n.css,"}"):n.css;if(t.styleSheet)t.styleSheet.cssText=u(e,o);else{var s=document.createTextNode(o),r=t.childNodes;r[e]&&t.removeChild(r[e]),r.length?t.insertBefore(s,r[e]):t.appendChild(s)}}function d(t,e,i){var n=i.css,o=i.media,s=i.sourceMap;if(o?t.setAttribute("media",o):t.removeAttribute("media"),s&&"undefined"!=typeof btoa&&(n+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(s))))," */")),t.styleSheet)t.styleSheet.cssText=n;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(n))}}var p=null,m=0;function b(t,e){var i,n,o;if(e.singleton){var s=m++;i=p||(p=a(e)),n=f.bind(null,i,s,!1),o=f.bind(null,i,s,!0)}else i=a(e),n=d.bind(null,i,e),o=function(){!function(t){if(null===t.parentNode)return!1;t.parentNode.removeChild(t)}(i)};return n(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;n(t=e)}else o()}}t.exports=function(t,e){(e=e||{}).singleton||"boolean"==typeof e.singleton||(e.singleton=o());var i=l(t=t||[],e);return function(t){if(t=t||[],"[object Array]"===Object.prototype.toString.call(t)){for(var n=0;n<i.length;n++){var o=c(i[n]);r[o].references--}for(var s=l(t,e),a=0;a<i.length;a++){var h=c(i[a]);0===r[h].references&&(r[h].updater(),r.splice(h,1))}i=s}}}},782:(t,e,i)=>{t.exports=i(237)("./src/core.js")},783:(t,e,i)=>{t.exports=i(237)("./src/engine.js")},311:(t,e,i)=>{t.exports=i(237)("./src/ui.js")},584:(t,e,i)=>{t.exports=i(237)("./src/utils.js")},602:(t,e,i)=>{t.exports=i(237)("./src/watchdog.js")},237:t=>{"use strict";t.exports=CKEditor5.dll}},e={};function i(n){var o=e[n];if(void 0!==o)return o.exports;var s=e[n]={id:n,exports:{}};return t[n](s,s.exports,i),s.exports}i.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return i.d(e,{a:e}),e},i.d=(t,e)=>{for(var n in e)i.o(e,n)&&!i.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),i.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.nc=void 0;var n={};(()=>{"use strict";i.r(n),i.d(n,{ClassicEditor:()=>Ht});var t=i(311),e=i(783),o=i(584);class s extends t.EditorUI{constructor(e,i){super(e),this.view=i,this._toolbarConfig=(0,t.normalizeToolbarConfig)(e.config.get("toolbar")),this._menuBarConfig=(0,t.normalizeMenuBarConfig)(e.config.get("menuBar")||{}),this._elementReplacer=new o.ElementReplacer,this.listenTo(e.editing.view,"scrollToTheSelection",this._handleScrollToTheSelectionWithStickyPanel.bind(this))}get element(){return this.view.element}init(t){const e=this.editor,i=this.view,n=e.editing.view,o=i.editable,s=n.document.getRoot();o.name=s.rootName,i.render();const r=o.element;this.setEditableElement(o.name,r),i.editable.bind("isFocused").to(this.focusTracker),n.attachDomRoot(r),t&&this._elementReplacer.replace(t,this.element),this._initPlaceholder(),this._initToolbar(),this._initMenuBar(),this._initDialogPluginIntegration(),this.fire("ready")}destroy(){super.destroy();const t=this.view,e=this.editor.editing.view;this._elementReplacer.restore(),e.detachDomRoot(t.editable.name),t.destroy()}_initToolbar(){const t=this.view;t.stickyPanel.bind("isActive").to(this.focusTracker,"isFocused"),t.stickyPanel.limiterElement=t.element,t.stickyPanel.bind("viewportTopOffset").to(this,"viewportOffset",(({top:t})=>t||0)),t.toolbar.fillFromConfig(this._toolbarConfig,this.componentFactory),this.addToolbar(t.toolbar)}_initMenuBar(){const t=this.view;t.menuBarView&&(this._setupMenuBarBehaviors(t.menuBarView.element),t.menuBarView.fillFromConfig(this._menuBarConfig,this.componentFactory))}_initPlaceholder(){const t=this.editor,i=t.editing.view,n=i.document.getRoot(),o=t.sourceElement;let s;const r=t.config.get("placeholder");r&&(s="string"==typeof r?r:r[this.view.editable.name]),!s&&o&&"textarea"===o.tagName.toLowerCase()&&(s=o.getAttribute("placeholder")),s&&(n.placeholder=s),(0,e.enablePlaceholder)({view:i,element:n,isDirectHost:!1,keepOnFocus:!0})}_handleScrollToTheSelectionWithStickyPanel(t,e,i){const n=this.view.stickyPanel;if(n.isSticky){const t=new o.Rect(n.element).height;e.viewportOffset.top+=t}else{const t=()=>{this.editor.editing.view.scrollToTheSelection(i)};this.listenTo(n,"change:isSticky",t),setTimeout((()=>{this.stopListening(n,"change:isSticky",t)}),20)}}_initDialogPluginIntegration(){if(!this.editor.plugins.has("Dialog"))return;const e=this.view.stickyPanel,i=this.editor.plugins.get("Dialog");i.on("show",(()=>{const n=i.view;n.on("moveTo",((i,s)=>{if(!e.isSticky||n.wasMoved)return;const r=new o.Rect(e.contentPanelElement);s[1]<r.bottom+t.DialogView.defaultOffset&&(s[1]=r.bottom+t.DialogView.defaultOffset)}),{priority:"high"})}),{priority:"low"})}_setupMenuBarBehaviors(t){const e=this.editor;this.focusTracker.add(t),e.keystrokes.listenTo(t),e.keystrokes.set("Esc",((i,n)=>{t.contains(this.focusTracker.focusedElement)&&(e.editing.view.focus(),n())})),e.keystrokes.set("Alt+F9",((e,i)=>{t.contains(this.focusTracker.focusedElement)||(this.view.menuBarView.focus(),i())}))}}const r=function(){try{return navigator.userAgent.toLowerCase()}catch(t){return""}}();l(r),c=r,c.indexOf("windows"),function(t){t.match(/gecko\/\d+/)}(r),function(t){t.indexOf(" applewebkit/")>-1&&t.indexOf("chrome")}(r),function(t){!!t.match(/iphone|ipad/i)||l(t)&&navigator.maxTouchPoints}(r),function(t){t.indexOf("android")}(r),function(t){t.indexOf("chrome/")>-1&&t.indexOf("edge/")}(r),function(){let t=!1;try{t=0==="ć".search(new RegExp("[\\p{L}]","u"))}catch(t){}}();var c;function l(t){return t.indexOf("macintosh")>-1}const a=function(){return function t(){t.called=!0}};class h{constructor(t,e){this.source=t,this.name=e,this.path=[],this.stop=a(),this.off=a()}}const u=new Array(256).fill("").map(((t,e)=>("0"+e.toString(16)).slice(-2)));function f(){const t=4294967296*Math.random()>>>0,e=4294967296*Math.random()>>>0,i=4294967296*Math.random()>>>0,n=4294967296*Math.random()>>>0;return"e"+u[255&t]+u[t>>8&255]+u[t>>16&255]+u[t>>24&255]+u[255&e]+u[e>>8&255]+u[e>>16&255]+u[e>>24&255]+u[255&i]+u[i>>8&255]+u[i>>16&255]+u[i>>24&255]+u[255&n]+u[n>>8&255]+u[n>>16&255]+u[n>>24&255]}const d={get(t="normal"){return"number"!=typeof t?this[t]||this.normal:t},highest:1e5,high:1e3,normal:0,low:-1e3,lowest:-1e5};function p(t,e){const i=d.get(e.priority);for(let n=0;n<t.length;n++)if(d.get(t[n].priority)<i)return void t.splice(n,0,e);t.push(e)}const m="https://ckeditor.com/docs/ckeditor5/latest/support/error-codes.html";class b extends Error{constructor(t,e,i){super(function(t,e){const i=new WeakSet,n=(t,e)=>{if("object"==typeof e&&null!==e){if(i.has(e))return`[object ${e.constructor.name}]`;i.add(e)}return e},o=e?` ${JSON.stringify(e,n)}`:"",s=g(t);return t+o+s}(t,i)),this.name="CKEditorError",this.context=e,this.data=i}is(t){return"CKEditorError"===t}static rethrowUnexpectedError(t,e){if(t.is&&t.is("CKEditorError"))throw t;const i=new b(t.message,e);throw i.stack=t.stack,i}}function g(t){return`\nRead more: ${m}#error-${t}`}const v="41.3.1";new Date(2024,3,16);if(globalThis.CKEDITOR_VERSION)throw new b("ckeditor-duplicated-modules",null);globalThis.CKEDITOR_VERSION=v;const w=Symbol("listeningTo"),y=Symbol("emitterId"),_=Symbol("delegations"),k=E(Object);function E(t){if(!t)return k;return class extends t{on(t,e,i){this.listenTo(this,t,e,i)}once(t,e,i){let n=!1;this.listenTo(this,t,((t,...i)=>{n||(n=!0,t.off(),e.call(this,t,...i))}),i)}off(t,e){this.stopListening(this,t,e)}listenTo(t,e,i,n={}){let o,s;this[w]||(this[w]={});const r=this[w];O(t)||T(t);const c=O(t);(o=r[c])||(o=r[c]={emitter:t,callbacks:{}}),(s=o.callbacks[e])||(s=o.callbacks[e]=[]),s.push(i),function(t,e,i,n,o){e._addEventListener?e._addEventListener(i,n,o):t._addEventListener.call(e,i,n,o)}(this,t,e,i,n)}stopListening(t,e,i){const n=this[w];let o=t&&O(t);const s=n&&o?n[o]:void 0,r=s&&e?s.callbacks[e]:void 0;if(!(!n||t&&!s||e&&!r))if(i){j(this,t,e,i);-1!==r.indexOf(i)&&(1===r.length?delete s.callbacks[e]:j(this,t,e,i))}else if(r){for(;i=r.pop();)j(this,t,e,i);delete s.callbacks[e]}else if(s){for(e in s.callbacks)this.stopListening(t,e);delete n[o]}else{for(o in n)this.stopListening(n[o].emitter);delete this[w]}}fire(t,...e){try{const i=t instanceof h?t:new h(this,t),n=i.name;let o=L(this,n);if(i.path.push(this),o){const t=[i,...e];o=Array.from(o);for(let e=0;e<o.length&&(o[e].callback.apply(this,t),i.off.called&&(delete i.off.called,this._removeEventListener(n,o[e].callback)),!i.stop.called);e++);}const s=this[_];if(s){const t=s.get(n),o=s.get("*");t&&C(t,i,e),o&&C(o,i,e)}return i.return}catch(t){b.rethrowUnexpectedError(t,this)}}delegate(...t){return{to:(e,i)=>{this[_]||(this[_]=new Map),t.forEach((t=>{const n=this[_].get(t);n?n.set(e,i):this[_].set(t,new Map([[e,i]]))}))}}}stopDelegating(t,e){if(this[_])if(t)if(e){const i=this[_].get(t);i&&i.delete(e)}else this[_].delete(t);else this[_].clear()}_addEventListener(t,e,i){!function(t,e){const i=S(t);if(i[e])return;let n=e,o=null;const s=[];for(;""!==n&&!i[n];)i[n]={callbacks:[],childEvents:[]},s.push(i[n]),o&&i[n].childEvents.push(o),o=n,n=n.substr(0,n.lastIndexOf(":"));if(""!==n){for(const t of s)t.callbacks=i[n].callbacks.slice();i[n].childEvents.push(o)}}(this,t);const n=x(this,t),o={callback:e,priority:d.get(i.priority)};for(const t of n)p(t,o)}_removeEventListener(t,e){const i=x(this,t);for(const t of i)for(let i=0;i<t.length;i++)t[i].callback==e&&(t.splice(i,1),i--)}}}function T(t,e){t[y]||(t[y]=e||f())}function O(t){return t[y]}function S(t){return t._events||Object.defineProperty(t,"_events",{value:{}}),t._events}function x(t,e){const i=S(t)[e];if(!i)return[];let n=[i.callbacks];for(let e=0;e<i.childEvents.length;e++){const o=x(t,i.childEvents[e]);n=n.concat(o)}return n}function L(t,e){let i;return t._events&&(i=t._events[e])&&i.callbacks.length?i.callbacks:e.indexOf(":")>-1?L(t,e.substr(0,e.lastIndexOf(":"))):null}function C(t,e,i){for(let[n,o]of t){o?"function"==typeof o&&(o=o(e.name)):o=e.name;const t=new h(e.source,o);t.path=[...e.path],n.fire(t,...i)}}function j(t,e,i,n){e._removeEventListener?e._removeEventListener(i,n):t._removeEventListener.call(e,i,n)}["on","once","off","listenTo","stopListening","fire","delegate","stopDelegating","_addEventListener","_removeEventListener"].forEach((t=>{E[t]=k.prototype[t]}));const P=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)},I=Symbol("observableProperties"),B=Symbol("boundObservables"),R=Symbol("boundProperties"),A=Symbol("decoratedMethods"),M=Symbol("decoratedOriginal"),N=D(E());function D(t){if(!t)return N;return class extends t{set(t,e){if(P(t))return void Object.keys(t).forEach((e=>{this.set(e,t[e])}),this);V(this);const i=this[I];if(t in this&&!i.has(t))throw new b("observable-set-cannot-override",this);Object.defineProperty(this,t,{enumerable:!0,configurable:!0,get:()=>i.get(t),set(e){const n=i.get(t);let o=this.fire(`set:${t}`,t,e,n);void 0===o&&(o=e),n===o&&i.has(t)||(i.set(t,o),this.fire(`change:${t}`,t,o,n))}}),this[t]=e}bind(...t){if(!t.length||!z(t))throw new b("observable-bind-wrong-properties",this);if(new Set(t).size!==t.length)throw new b("observable-bind-duplicate-properties",this);V(this);const e=this[R];t.forEach((t=>{if(e.has(t))throw new b("observable-bind-rebind",this)}));const i=new Map;return t.forEach((t=>{const n={property:t,to:[]};e.set(t,n),i.set(t,n)})),{to:F,toMany:W,_observable:this,_bindProperties:t,_to:[],_bindings:i}}unbind(...t){if(!this[I])return;const e=this[R],i=this[B];if(t.length){if(!z(t))throw new b("observable-unbind-wrong-properties",this);t.forEach((t=>{const n=e.get(t);n&&(n.to.forEach((([t,e])=>{const o=i.get(t),s=o[e];s.delete(n),s.size||delete o[e],Object.keys(o).length||(i.delete(t),this.stopListening(t,"change"))})),e.delete(t))}))}else i.forEach(((t,e)=>{this.stopListening(e,"change")})),i.clear(),e.clear()}decorate(t){V(this);const e=this[t];if(!e)throw new b("observablemixin-cannot-decorate-undefined",this,{object:this,methodName:t});this.on(t,((t,i)=>{t.return=e.apply(this,i)})),this[t]=function(...e){return this.fire(t,e)},this[t][M]=e,this[A]||(this[A]=[]),this[A].push(t)}stopListening(t,e,i){if(!t&&this[A]){for(const t of this[A])this[t]=this[t][M];delete this[A]}super.stopListening(t,e,i)}}}function V(t){t[I]||(Object.defineProperty(t,I,{value:new Map}),Object.defineProperty(t,B,{value:new Map}),Object.defineProperty(t,R,{value:new Map}))}function F(...t){const e=function(...t){if(!t.length)throw new b("observable-bind-to-parse-error",null);const e={to:[]};let i;"function"==typeof t[t.length-1]&&(e.callback=t.pop());return t.forEach((t=>{if("string"==typeof t)i.properties.push(t);else{if("object"!=typeof t)throw new b("observable-bind-to-parse-error",null);i={observable:t,properties:[]},e.to.push(i)}})),e}(...t),i=Array.from(this._bindings.keys()),n=i.length;if(!e.callback&&e.to.length>1)throw new b("observable-bind-to-no-callback",this);if(n>1&&e.callback)throw new b("observable-bind-to-extra-callback",this);var o;e.to.forEach((t=>{if(t.properties.length&&t.properties.length!==n)throw new b("observable-bind-to-properties-length",this);t.properties.length||(t.properties=this._bindProperties)})),this._to=e.to,e.callback&&(this._bindings.get(i[0]).callback=e.callback),o=this._observable,this._to.forEach((t=>{const e=o[B];let i;e.get(t.observable)||o.listenTo(t.observable,"change",((n,s)=>{i=e.get(t.observable)[s],i&&i.forEach((t=>{H(o,t.property)}))}))})),function(t){let e;t._bindings.forEach(((i,n)=>{t._to.forEach((o=>{e=o.properties[i.callback?0:t._bindProperties.indexOf(n)],i.to.push([o.observable,e]),function(t,e,i,n){const o=t[B],s=o.get(i),r=s||{};r[n]||(r[n]=new Set);r[n].add(e),s||o.set(i,r)}(t._observable,i,o.observable,e)}))}))}(this),this._bindProperties.forEach((t=>{H(this._observable,t)}))}function W(t,e,i){if(this._bindings.size>1)throw new b("observable-bind-to-many-not-one-binding",this);this.to(...function(t,e){const i=t.map((t=>[t,e]));return Array.prototype.concat.apply([],i)}(t,e),i)}function z(t){return t.every((t=>"string"==typeof t))}function H(t,e){const i=t[R].get(e);let n;i.callback?n=i.callback.apply(t,i.to.map((t=>t[0][t[1]]))):(n=i.to[0],n=n[0][n[1]]),Object.prototype.hasOwnProperty.call(t,e)?t[e]=n:t.set(e,n)}function K(t){if(t){if(t.defaultView)return t instanceof t.defaultView.Document;if(t.ownerDocument&&t.ownerDocument.defaultView)return t instanceof t.ownerDocument.defaultView.Node}return!1}function U(t){const e=Object.prototype.toString.apply(t);return"[object Window]"==e||"[object global]"==e}["set","bind","unbind","decorate","on","once","off","listenTo","stopListening","fire","delegate","stopDelegating","_addEventListener","_removeEventListener"].forEach((t=>{D[t]=N.prototype[t]}));const $=G(E());function G(t){if(!t)return $;return class extends t{listenTo(t,e,i,n={}){if(K(t)||U(t)){const o={capture:!!n.useCapture,passive:!!n.usePassive},s=this._getProxyEmitter(t,o)||new Y(t,o);this.listenTo(s,e,i,n)}else super.listenTo(t,e,i,n)}stopListening(t,e,i){if(K(t)||U(t)){const n=this._getAllProxyEmitters(t);for(const t of n)this.stopListening(t,e,i)}else super.stopListening(t,e,i)}_getProxyEmitter(t,e){return function(t,e){const i=t[w];return i&&i[e]?i[e].emitter:null}(this,q(t,e))}_getAllProxyEmitters(t){return[{capture:!1,passive:!1},{capture:!1,passive:!0},{capture:!0,passive:!1},{capture:!0,passive:!0}].map((e=>this._getProxyEmitter(t,e))).filter((t=>!!t))}}}["_getProxyEmitter","_getAllProxyEmitters","on","once","off","listenTo","stopListening","fire","delegate","stopDelegating","_addEventListener","_removeEventListener"].forEach((t=>{G[t]=$.prototype[t]}));class Y extends(E()){constructor(t,e){super(),T(this,q(t,e)),this._domNode=t,this._options=e}attach(t){if(this._domListeners&&this._domListeners[t])return;const e=this._createDomListener(t);this._domNode.addEventListener(t,e,this._options),this._domListeners||(this._domListeners={}),this._domListeners[t]=e}detach(t){let e;!this._domListeners[t]||(e=this._events[t])&&e.callbacks.length||this._domListeners[t].removeListener()}_addEventListener(t,e,i){this.attach(t),E().prototype._addEventListener.call(this,t,e,i)}_removeEventListener(t,e){E().prototype._removeEventListener.call(this,t,e),this.detach(t)}_createDomListener(t){const e=e=>{this.fire(t,e)};return e.removeListener=()=>{this._domNode.removeEventListener(t,e,this._options),delete this._domListeners[t]},e}}function q(t,e){let i=function(t){return t["data-ck-expando"]||(t["data-ck-expando"]=f())}(t);for(const t of Object.keys(e).sort())e[t]&&(i+="-"+t);return i}let X;try{X={window,document}}catch(t){X={window:{},document:{}}}const J=X;function Q(t){const e=t.ownerDocument.defaultView.getComputedStyle(t);return{top:parseInt(e.borderTopWidth,10),right:parseInt(e.borderRightWidth,10),bottom:parseInt(e.borderBottomWidth,10),left:parseInt(e.borderLeftWidth,10)}}const Z=["top","right","bottom","left","width","height"];class tt{constructor(t){const e=(i=t,"[object Range]"==Object.prototype.toString.apply(i));var i;if(Object.defineProperty(this,"_source",{value:t._source||t,writable:!0,enumerable:!1}),nt(t)||e)if(e){const e=tt.getDomRangeRects(t);et(this,tt.getBoundingRect(e))}else et(this,t.getBoundingClientRect());else if(U(t)){const{innerWidth:e,innerHeight:i}=t;et(this,{top:0,right:e,bottom:i,left:0,width:e,height:i})}else et(this,t)}clone(){return new tt(this)}moveTo(t,e){return this.top=e,this.right=t+this.width,this.bottom=e+this.height,this.left=t,this}moveBy(t,e){return this.top+=e,this.right+=t,this.left+=t,this.bottom+=e,this}getIntersection(t){const e={top:Math.max(this.top,t.top),right:Math.min(this.right,t.right),bottom:Math.min(this.bottom,t.bottom),left:Math.max(this.left,t.left),width:0,height:0};if(e.width=e.right-e.left,e.height=e.bottom-e.top,e.width<0||e.height<0)return null;{const t=new tt(e);return t._source=this._source,t}}getIntersectionArea(t){const e=this.getIntersection(t);return e?e.getArea():0}getArea(){return this.width*this.height}getVisible(){const t=this._source;let e=this.clone();if(it(t))return e;let i,n=t,o=t.parentNode||t.commonAncestorContainer;for(;o&&!it(o);){const t="visible"===((s=o)instanceof HTMLElement?s.ownerDocument.defaultView.getComputedStyle(s).overflow:"visible");n instanceof HTMLElement&&"absolute"===ot(n)&&(i=n);const r=ot(o);if(t||i&&("relative"===r&&t||"relative"!==r)){n=o,o=o.parentNode;continue}const c=new tt(o),l=e.getIntersection(c);if(!l)return null;l.getArea()<e.getArea()&&(e=l),n=o,o=o.parentNode}var s;return e}isEqual(t){for(const e of Z)if(this[e]!==t[e])return!1;return!0}contains(t){const e=this.getIntersection(t);return!(!e||!e.isEqual(t))}toAbsoluteRect(){const{scrollX:t,scrollY:e}=J.window,i=this.clone().moveBy(t,e);if(nt(i._source)){const t=(n=i._source)&&n.parentNode?n.offsetParent===J.document.body?null:n.offsetParent:null;t&&function(t,e){const i=new tt(e),n=Q(e);let o=0,s=0;o-=i.left,s-=i.top,o+=e.scrollLeft,s+=e.scrollTop,o-=n.left,s-=n.top,t.moveBy(o,s)}(i,t)}var n;return i}excludeScrollbarsAndBorders(){const t=this._source;let e,i,n;if(U(t))e=t.innerWidth-t.document.documentElement.clientWidth,i=t.innerHeight-t.document.documentElement.clientHeight,n=t.getComputedStyle(t.document.documentElement).direction;else{const o=Q(t);e=t.offsetWidth-t.clientWidth-o.left-o.right,i=t.offsetHeight-t.clientHeight-o.top-o.bottom,n=t.ownerDocument.defaultView.getComputedStyle(t).direction,this.left+=o.left,this.top+=o.top,this.right-=o.right,this.bottom-=o.bottom,this.width=this.right-this.left,this.height=this.bottom-this.top}return this.width-=e,"ltr"===n?this.right-=e:this.left+=e,this.height-=i,this.bottom-=i,this}static getDomRangeRects(t){const e=[],i=Array.from(t.getClientRects());if(i.length)for(const t of i)e.push(new tt(t));else{let i=t.startContainer;n=i,"[object Text]"==Object.prototype.toString.call(n)&&(i=i.parentNode);const o=new tt(i.getBoundingClientRect());o.right=o.left,o.width=0,e.push(o)}var n;return e}static getBoundingRect(t){const e={left:Number.POSITIVE_INFINITY,top:Number.POSITIVE_INFINITY,right:Number.NEGATIVE_INFINITY,bottom:Number.NEGATIVE_INFINITY,width:0,height:0};let i=0;for(const n of t)i++,e.left=Math.min(e.left,n.left),e.top=Math.min(e.top,n.top),e.right=Math.max(e.right,n.right),e.bottom=Math.max(e.bottom,n.bottom);return 0==i?null:(e.width=e.right-e.left,e.height=e.bottom-e.top,new tt(e))}}function et(t,e){for(const i of Z)t[i]=e[i]}function it(t){return!!nt(t)&&t===t.ownerDocument.body}function nt(t){return null!==t&&"object"==typeof t&&1===t.nodeType&&"function"==typeof t.getBoundingClientRect}function ot(t){return t instanceof HTMLElement?t.ownerDocument.defaultView.getComputedStyle(t).position:"static"}const st=class{constructor(t,e){st._observerInstance||st._createObserver(),this._element=t,this._callback=e,st._addElementCallback(t,e),st._observerInstance.observe(t)}get element(){return this._element}destroy(){st._deleteElementCallback(this._element,this._callback)}static _addElementCallback(t,e){st._elementCallbacks||(st._elementCallbacks=new Map);let i=st._elementCallbacks.get(t);i||(i=new Set,st._elementCallbacks.set(t,i)),i.add(e)}static _deleteElementCallback(t,e){const i=st._getElementCallbacks(t);i&&(i.delete(e),i.size||(st._elementCallbacks.delete(t),st._observerInstance.unobserve(t))),st._elementCallbacks&&!st._elementCallbacks.size&&(st._observerInstance=null,st._elementCallbacks=null)}static _getElementCallbacks(t){return st._elementCallbacks?st._elementCallbacks.get(t):null}static _createObserver(){st._observerInstance=new J.window.ResizeObserver((t=>{for(const e of t){const t=st._getElementCallbacks(e.target);if(t)for(const i of t)i(e)}}))}};let rt=st;rt._observerInstance=null,rt._elementCallbacks=null;Math.pow;const ct={37:"←",38:"↑",39:"→",40:"↓",9:"⇥",33:"Page Up",34:"Page Down"},lt=function(){const t={pageup:33,pagedown:34,arrowleft:37,arrowup:38,arrowright:39,arrowdown:40,backspace:8,delete:46,enter:13,space:32,esc:27,tab:9,ctrl:1114112,shift:2228224,alt:4456448,cmd:8912896};for(let e=65;e<=90;e++){t[String.fromCharCode(e).toLowerCase()]=e}for(let e=48;e<=57;e++)t[e-48]=e;for(let e=112;e<=123;e++)t["f"+(e-111)]=e;return Object.assign(t,{"'":222,",":108,"-":109,".":110,"/":111,";":186,"=":187,"[":219,"\\":220,"]":221,"`":223}),t}();Object.fromEntries(Object.entries(lt).map((([t,e])=>{let i;return i=e in ct?ct[e]:t.charAt(0).toUpperCase()+t.slice(1),[e,i]})));J.window.CKEDITOR_TRANSLATIONS||(J.window.CKEDITOR_TRANSLATIONS={});E(),Symbol.iterator;G(D());Math.pow;!function(){const t=[new RegExp("\\p{Emoji}[\\u{E0020}-\\u{E007E}]+\\u{E007F}","u"),new RegExp("\\p{Emoji}\\u{FE0F}?\\u{20E3}","u"),new RegExp("\\p{Emoji}\\u{FE0F}","u"),new RegExp("(?=\\p{General_Category=Other_Symbol})\\p{Emoji}\\p{Emoji_Modifier}*","u")],e=new RegExp("\\p{Regional_Indicator}{2}","u").source,i="(?:"+t.map((t=>t.source)).join("|")+")";new RegExp(`${e}|${i}(?:‍${i})*`,"ug")}();var at=i(591),ht=i.n(at),ut=i(428),ft={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};ht()(ut.A,ft);ut.A.locals;const dt=(pt="px",t=>t+pt);var pt;class mt extends t.View{constructor(e,i,n){super(e);const o=this.bindTemplate;this.containerEl=i||J.window,this.panelAbsolute=!!n,this.set("position",null),this.set("isActive",!1),this.set("isSticky",!1),this.set("limiterElement",null),this.set("limiterBottomOffset",50),this.set("viewportTopOffset",0),this.set("_marginLeft",null),this.set("_isStickyToTheBottomOfLimiter",!1),this.set("_stickyTopOffset",null),this.set("_stickyBottomOffset",null),this.content=this.createCollection(),this._contentPanelPlaceholder=new t.Template({tag:"div",attributes:{class:["ck","ck-sticky-panel__placeholder"],style:{display:o.to("isSticky",(t=>t?"block":"none")),height:o.to("isSticky",(t=>t?dt(this._contentPanelRect.height):null))}}}).render(),this.contentPanelElement=new t.Template({tag:"div",attributes:{class:["ck","ck-sticky-panel__content",o.if("isSticky","ck-sticky-panel__content_sticky"),o.if("_isStickyToTheBottomOfLimiter","ck-sticky-panel__content_sticky_bottom-limit")],style:{position:o.to("position",(t=>t)),width:o.to("isSticky",(t=>t?dt(this._contentPanelPlaceholder.getBoundingClientRect().width):null)),top:o.to("_stickyTopOffset",(t=>t?dt(t):t)),bottom:o.to("_stickyBottomOffset",(t=>t?dt(t):t)),marginLeft:o.to("_marginLeft")}},children:this.content}).render(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-sticky-panel"]},children:[this._contentPanelPlaceholder,this.contentPanelElement]})}render(){super.render(),this.checkIfShouldBeSticky(),this.listenTo(this.containerEl,"scroll",(()=>{this.checkIfShouldBeSticky()}),{useCapture:!0}),this.listenTo(this,"change:isActive",(()=>{this.checkIfShouldBeSticky()}))}checkIfShouldBeSticky(){if(!this.limiterElement||!this.isActive)return void this._unstick();const t=new tt(this.limiterElement);let e=t.getVisible();if(e){const i=new tt(this.containerEl);t.top-=i.top,t.bottom-=i.top,i.top+=this.viewportTopOffset,i.height-=this.viewportTopOffset,e=e.getIntersection(i)}if(e&&t.top<e.top){const i=e.top;if(i+this._contentPanelRect.height+this.limiterBottomOffset>e.bottom){const i=Math.max(t.bottom-e.bottom,0)+this.limiterBottomOffset;t.bottom-i>t.top+this._contentPanelRect.height?this._stickToBottomOfLimiter(i):this._unstick()}else this._contentPanelRect.height+this.limiterBottomOffset<t.height?this.panelAbsolute?t.top<0&&-t.top<t.height-this.limiterBottomOffset?this._stickToTopOfAncestors(-t.top,"absolute"):this._unstick():this._stickToTopOfAncestors(i):this._unstick()}else this._unstick()}_stickToTopOfAncestors(t,e=null){var i;this.isSticky=!0,this._isStickyToTheBottomOfLimiter=!1,this._stickyTopOffset=t,this._stickyBottomOffset=null,this._marginLeft=dt(-(null!==(i=this.containerEl.scrollX)&&void 0!==i?i:this.containerEl.scrollLeft)),this.position=e}_stickToBottomOfLimiter(t){var e;this.isSticky=!0,this._isStickyToTheBottomOfLimiter=!0,this._stickyTopOffset=null,this._stickyBottomOffset=t,this._marginLeft=dt(-(null!==(e=this.containerEl.scrollX)&&void 0!==e?e:this.containerEl.scrollLeft)),this.position=null}_unstick(){this.isSticky=!1,this._isStickyToTheBottomOfLimiter=!1,this._stickyTopOffset=null,this._stickyBottomOffset=null,this._marginLeft=null,this.position=null}get _contentPanelRect(){return new tt(this.contentPanelElement)}}var bt=i(662),gt={injectType:"singletonStyleTag",attributes:{"data-cke":!0},insert:"head",singleton:!0};ht()(bt.A,gt);bt.A.locals;class vt extends t.BoxedEditorUIView{constructor(e,i,n={}){super(e),this.stickyPanel=new mt(e,n.containerEl,n.panelAbsolute),this.toolbar=new t.ToolbarView(e,{shouldGroupWhenFull:n.shouldToolbarGroupWhenFull}),n.useMenuBar&&(this.menuBarView=new t.MenuBarView(e)),this.editable=new t.InlineEditableUIView(e,i)}render(){super.render(),this.menuBarView?this.stickyPanel.content.addMany([this.menuBarView,this.toolbar]):this.stickyPanel.content.add(this.toolbar),this.top.add(this.stickyPanel),this.main.add(this.editable)}}var wt=i(782),yt=i(602);const _t=function(t){return null!=t&&"object"==typeof t};const kt="object"==typeof global&&global&&global.Object===Object&&global;var Et="object"==typeof self&&self&&self.Object===Object&&self;const Tt=(kt||Et||Function("return this")()).Symbol;var Ot=Object.prototype,St=Ot.hasOwnProperty,xt=Ot.toString,Lt=Tt?Tt.toStringTag:void 0;const Ct=function(t){var e=St.call(t,Lt),i=t[Lt];try{t[Lt]=void 0;var n=!0}catch(t){}var o=xt.call(t);return n&&(e?t[Lt]=i:delete t[Lt]),o};var jt=Object.prototype.toString;const Pt=function(t){return jt.call(t)};var It=Tt?Tt.toStringTag:void 0;const Bt=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":It&&It in Object(t)?Ct(t):Pt(t)};const Rt=function(t,e){return function(i){return t(e(i))}}(Object.getPrototypeOf,Object);var At=Function.prototype,Mt=Object.prototype,Nt=At.toString,Dt=Mt.hasOwnProperty,Vt=Nt.call(Object);const Ft=function(t){if(!_t(t)||"[object Object]"!=Bt(t))return!1;var e=Rt(t);if(null===e)return!0;var i=Dt.call(e,"constructor")&&e.constructor;return"function"==typeof i&&i instanceof i&&Nt.call(i)==Vt};const Wt=function(t){return _t(t)&&1===t.nodeType&&!Ft(t)};class zt extends((0,wt.ElementApiMixin)(wt.Editor)){constructor(t,e={}){if(!Kt(t)&&void 0!==e.initialData)throw new o.CKEditorError("editor-create-initial-data",null);super(e),this.config.define("menuBar.isVisible",!1),void 0===this.config.get("initialData")&&this.config.set("initialData",function(t){return Kt(t)?(0,o.getDataFromElement)(t):t}(t)),Kt(t)&&(this.sourceElement=t),this.model.document.createRoot();const i=!this.config.get("toolbar.shouldNotGroupWhenFull"),n=this.config.get("menuBar"),r=new vt(this.locale,this.editing.view,{shouldToolbarGroupWhenFull:i,useMenuBar:n.isVisible,containerEl:e.containerEl,panelAbsolute:e.panelAbsolute});this.ui=new s(this,r),(0,wt.attachToForm)(this)}destroy(){return this.sourceElement&&this.updateSourceElement(),this.ui.destroy(),super.destroy()}static create(t,e={}){return new Promise((i=>{const n=new this(t,e);i(n.initPlugins().then((()=>n.ui.init(Kt(t)?t:null))).then((()=>n.data.init(n.config.get("initialData")))).then((()=>n.fire("ready"))).then((()=>n)))}))}}zt.Context=wt.Context,zt.EditorWatchdog=yt.EditorWatchdog,zt.ContextWatchdog=yt.ContextWatchdog;const Ht=zt;function Kt(t){return Wt(t)}})(),(window.CKEditor5=window.CKEditor5||{}).ckeditor5EditorClassicFloating=n})();
4
+ */(()=>{var t={8(t,e,i){"use strict";i.d(e,{A:()=>l});var o=i(802),n=i.n(o),s=i(35),r=i.n(s)()(n());r.push([t.id,".ck.ck-editor{position:relative}.ck.ck-editor .ck-editor__top .ck-sticky-panel .ck-toolbar{z-index:var(--ck-z-panel)}",""]);const l=r},542(t,e,i){"use strict";i.d(e,{A:()=>l});var o=i(802),n=i.n(o),s=i(35),r=i.n(s)()(n());r.push([t.id,".ck.ck-sticky-panel .ck-sticky-panel__content_sticky{position:fixed;top:0;z-index:var(--ck-z-panel)}.ck.ck-sticky-panel .ck-sticky-panel__content_sticky_bottom-limit{position:absolute;top:auto}",""]);const l=r},35(t){"use strict";t.exports=function(t){var e=[];return e.toString=function(){return this.map(function(e){var i="",o=void 0!==e[5];return e[4]&&(i+="@supports (".concat(e[4],") {")),e[2]&&(i+="@media ".concat(e[2]," {")),o&&(i+="@layer".concat(e[5].length>0?" ".concat(e[5]):""," {")),i+=t(e),o&&(i+="}"),e[2]&&(i+="}"),e[4]&&(i+="}"),i}).join("")},e.i=function(t,i,o,n,s){"string"==typeof t&&(t=[[null,t,void 0]]);var r={};if(o)for(var l=0;l<this.length;l++){var c=this[l][0];null!=c&&(r[c]=!0)}for(var a=0;a<t.length;a++){var h=[].concat(t[a]);o&&r[h[0]]||(void 0!==s&&(void 0===h[5]||(h[1]="@layer".concat(h[5].length>0?" ".concat(h[5]):""," {").concat(h[1],"}")),h[5]=s),i&&(h[2]?(h[1]="@media ".concat(h[2]," {").concat(h[1],"}"),h[2]=i):h[2]=i),n&&(h[4]?(h[1]="@supports (".concat(h[4],") {").concat(h[1],"}"),h[4]=n):h[4]="".concat(n)),e.push(h))}},e}},802(t){"use strict";t.exports=function(t){return t[1]}},345(t){"use strict";var e=[];function i(t){for(var i=-1,o=0;o<e.length;o++)if(e[o].identifier===t){i=o;break}return i}function o(t,o){for(var s={},r=[],l=0;l<t.length;l++){var c=t[l],a=o.base?c[0]+o.base:c[0],h=s[a]||0,u="".concat(a," ").concat(h);s[a]=h+1;var d=i(u),f={css:c[1],media:c[2],sourceMap:c[3],supports:c[4],layer:c[5]};if(-1!==d)e[d].references++,e[d].updater(f);else{var p=n(f,o);o.byIndex=l,e.splice(l,0,{identifier:u,updater:p,references:1})}r.push(u)}return r}function n(t,e){var i=e.domAPI(e);i.update(t);return function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap&&e.supports===t.supports&&e.layer===t.layer)return;i.update(t=e)}else i.remove()}}t.exports=function(t,n){var s=o(t=t||[],n=n||{});return function(t){t=t||[];for(var r=0;r<s.length;r++){var l=i(s[r]);e[l].references--}for(var c=o(t,n),a=0;a<s.length;a++){var h=i(s[a]);0===e[h].references&&(e[h].updater(),e.splice(h,1))}s=c}}},758(t){"use strict";var e={};t.exports=function(t,i){var o=function(t){if(void 0===e[t]){var i=document.querySelector(t);if(window.HTMLIFrameElement&&i instanceof window.HTMLIFrameElement)try{i=i.contentDocument.head}catch(t){i=null}e[t]=i}return e[t]}(t);if(!o)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");o.appendChild(i)}},725(t){"use strict";t.exports=function(t){var e=document.createElement("style");return t.setAttributes(e,t.attributes),t.insert(e,t.options),e}},667(t){"use strict";t.exports=function(t,e){Object.keys(e).forEach(function(i){t.setAttribute(i,e[i])})}},321(t){"use strict";var e,i=(e=[],function(t,i){return e[t]=i,e.filter(Boolean).join("\n")});function o(t,e,o,n){var s;if(o)s="";else{s="",n.supports&&(s+="@supports (".concat(n.supports,") {")),n.media&&(s+="@media ".concat(n.media," {"));var r=void 0!==n.layer;r&&(s+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),s+=n.css,r&&(s+="}"),n.media&&(s+="}"),n.supports&&(s+="}")}if(t.styleSheet)t.styleSheet.cssText=i(e,s);else{var l=document.createTextNode(s),c=t.childNodes;c[e]&&t.removeChild(c[e]),c.length?t.insertBefore(l,c[e]):t.appendChild(l)}}var n={singleton:null,singletonCounter:0};t.exports=function(t){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var e=n.singletonCounter++,i=n.singleton||(n.singleton=t.insertStyleElement(t));return{update:function(t){o(i,e,!1,t)},remove:function(t){o(i,e,!0,t)}}}},782(t,e,i){t.exports=i(237)("./src/core.js")},783(t,e,i){t.exports=i(237)("./src/engine.js")},311(t,e,i){t.exports=i(237)("./src/ui.js")},584(t,e,i){t.exports=i(237)("./src/utils.js")},237(t){"use strict";t.exports=CKEditor5.dll}},e={};function i(o){var n=e[o];if(void 0!==n)return n.exports;var s=e[o]={id:o,exports:{}};return t[o](s,s.exports,i),s.exports}i.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return i.d(e,{a:e}),e},i.d=(t,e)=>{for(var o in e)i.o(e,o)&&!i.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),i.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var o={};(()=>{"use strict";i.r(o),i.d(o,{ClassicEditor:()=>S,ClassicEditorUI:()=>s,ClassicEditorUIView:()=>_,StickyPanelView:()=>b});var t=i(311),e=i(783),n=i(584);class s extends t.EditorUI{view;_toolbarConfig;_elementReplacer;constructor(e,i){super(e),this.view=i,this._toolbarConfig=(0,t.normalizeToolbarConfig)(e.config.get("toolbar")),this._elementReplacer=new n.ElementReplacer,this.listenTo(e.editing.view,"scrollToTheSelection",this._handleScrollToTheSelectionWithStickyPanel.bind(this))}get element(){return this.view.element}init(t){const e=this.editor,i=this.view,o=e.editing.view,n=i.editable,s=o.document.getRoot();n.name=s.rootName,i.render();const r=n.element;this.setEditableElement(n.name,r),i.editable.bind("isFocused").to(this.focusTracker),o.attachDomRoot(r),t&&this._elementReplacer.replace(t,this.element),this._initPlaceholder(),this._initToolbar(),i.menuBarView&&this.initMenuBar(i.menuBarView),this._initDialogPluginIntegration(),this._initContextualBalloonIntegration(),this.fire("ready")}destroy(){super.destroy();const t=this.view,e=this.editor.editing.view;this._elementReplacer.restore(),e.getDomRoot(t.editable.name)&&e.detachDomRoot(t.editable.name),t.destroy()}_initToolbar(){const t=this.view;t.stickyPanel.bind("isActive").to(this.focusTracker,"isFocused"),t.stickyPanel.limiterElement=t.element,t.stickyPanel.bind("viewportTopOffset").to(this,"viewportOffset",({visualTop:t})=>t||0),t.toolbar.fillFromConfig(this._toolbarConfig,this.componentFactory),this.addToolbar(t.toolbar)}_initPlaceholder(){const t=this.editor,i=t.editing.view,o=i.document.getRoot(),n=t.sourceElement;let s;const r=t.config.get("placeholder");r&&(s="string"==typeof r?r:r[this.view.editable.name]),!s&&n&&"textarea"===n.tagName.toLowerCase()&&(s=n.getAttribute("placeholder")),s&&(o.placeholder=s),(0,e.enableViewPlaceholder)({view:i,element:o,isDirectHost:!1,keepOnFocus:!0})}_initContextualBalloonIntegration(){if(!this.editor.plugins.has("ContextualBalloon"))return;const{stickyPanel:t}=this.view,e=this.editor.plugins.get("ContextualBalloon");e.on("getPositionOptions",e=>{const i=e.return;if(!i||!t.isSticky||!t.element)return;const o=new n.Rect(t.element).height,s="function"==typeof i.target?i.target():i.target,r="function"==typeof i.limiter?i.limiter():i.limiter;if(s&&r&&new n.Rect(s).height>=new n.Rect(r).height-o)return;const l={...i.viewportOffsetConfig},c=(l.top||0)+o;e.return={...i,viewportOffsetConfig:{...l,top:c}}},{priority:"low"});const i=()=>{e.visibleView&&e.updatePosition()};this.listenTo(t,"change:isSticky",i),this.listenTo(this.editor.ui,"change:viewportOffset",i)}_handleScrollToTheSelectionWithStickyPanel(t,e,i){const o=this.view.stickyPanel;if(o.isSticky){const t=new n.Rect(o.element).height;e.viewportOffset.top+=t}else{const t=()=>{this.editor.editing.view.scrollToTheSelection(i)};this.listenTo(o,"change:isSticky",t),setTimeout(()=>{this.stopListening(o,"change:isSticky",t)},20)}}_initDialogPluginIntegration(){if(!this.editor.plugins.has("Dialog"))return;const e=this.view.stickyPanel,i=this.editor.plugins.get("Dialog");i.on("show",()=>{const o=i.view;o.on("moveTo",(i,s)=>{if(!e.isSticky||o.wasMoved||o.isModal)return;const r=new n.Rect(e.contentPanelElement);s[1]<r.bottom+t.DialogView.defaultOffset&&(s[1]=r.bottom+t.DialogView.defaultOffset)},{priority:"high"})},{priority:"low"})}}var r=i(345),l=i.n(r),c=i(321),a=i.n(c),h=i(758),u=i.n(h),d=i(667),f=i.n(d),p=i(725),m=i.n(p),g=i(542),y={attributes:{"data-cke":!0}};y.setAttributes=f(),y.insert=u().bind(null,"head"),y.domAPI=a(),y.insertStyleElement=m();l()(g.A,y);g.A&&g.A.locals&&g.A.locals;const k=(0,n.toUnit)("px");class b extends t.View{content;containerEl;panelAbsolute;contentPanelElement;_contentPanelPlaceholder;constructor(e,i={}){super(e);const o=this.bindTemplate;this.containerEl=i.containerEl||n.global.window,this.panelAbsolute=!!i.panelAbsolute,this.set("position",null),this.set("isActive",!1),this.set("isSticky",!1),this.set("limiterElement",null),this.set("limiterBottomOffset",50),this.set("viewportTopOffset",0),this.set("_marginLeft",null),this.set("_isStickyToTheBottomOfLimiter",!1),this.set("_stickyTopOffset",null),this.set("_stickyBottomOffset",null),this.content=this.createCollection(),this._contentPanelPlaceholder=new t.Template({tag:"div",attributes:{class:["ck","ck-sticky-panel__placeholder"],style:{display:o.to("isSticky",t=>t?"block":"none"),height:o.to("isSticky",t=>t?k(this._contentPanelRect.height):null)}}}).render(),this.contentPanelElement=new t.Template({tag:"div",attributes:{class:["ck","ck-sticky-panel__content",o.if("isSticky","ck-sticky-panel__content_sticky"),o.if("_isStickyToTheBottomOfLimiter","ck-sticky-panel__content_sticky_bottom-limit")],style:{position:o.to("position",t=>t),width:o.to("isSticky",t=>t?k(this._contentPanelPlaceholder.getBoundingClientRect().width):null),top:o.to("_stickyTopOffset",t=>t?k(t):t),bottom:o.to("_stickyBottomOffset",t=>t?k(t):t),marginLeft:o.to("_marginLeft")}},children:this.content}).render(),this.setTemplate({tag:"div",attributes:{class:["ck","ck-sticky-panel"]},children:[this._contentPanelPlaceholder,this.contentPanelElement]})}render(){super.render(),this.checkIfShouldBeSticky(),this.listenTo(this.containerEl,"scroll",()=>{this.checkIfShouldBeSticky()},{useCapture:!0}),this.listenTo(this,"change:isActive",()=>{this.checkIfShouldBeSticky()}),n.global.window.visualViewport&&(this.listenTo(n.global.window.visualViewport,"scroll",()=>{this.checkIfShouldBeSticky()}),this.listenTo(n.global.window.visualViewport,"resize",()=>{this.checkIfShouldBeSticky()}))}checkIfShouldBeSticky(){if(!this.limiterElement||!this.isActive)return void this._unstick();const t=new n.Rect(this.limiterElement);let e=t.getVisible();if(e){const i=new n.Rect(this.containerEl);t.top-=i.top,t.bottom-=i.top,i.top+=this.viewportTopOffset,i.height-=this.viewportTopOffset,e=e.getIntersection(i)}const{left:i,top:o}=(0,n.getVisualViewportOffset)();if(t.moveBy(i,o),e&&e.moveBy(i,o),e&&t.top<e.top)if(this._contentPanelRect.height+this.limiterBottomOffset>e.height){const i=Math.max(t.bottom-e.bottom,0)+this.limiterBottomOffset;this._contentPanelRect.height+i+1<t.height?this._stickToBottomOfLimiter(i):this._unstick()}else this._contentPanelRect.height+this.limiterBottomOffset<t.height?this.panelAbsolute?t.top<0&&-t.top<t.height-this.limiterBottomOffset?this._stickToTopOfAncestors(-t.top,"absolute"):this._unstick():this._stickToTopOfAncestors(e.top):this._unstick();else this._unstick()}_stickToTopOfAncestors(t,e=null){let i;this.isSticky=!0,this._isStickyToTheBottomOfLimiter=!1,this._stickyTopOffset=t,this._stickyBottomOffset=null,i=this.containerEl instanceof HTMLElement?this.containerEl.scrollLeft:this.containerEl.scrollX,this._marginLeft=k(-i+(0,n.getVisualViewportOffset)().left),this.position=e}_stickToBottomOfLimiter(t){let e;this.isSticky=!0,this._isStickyToTheBottomOfLimiter=!0,this._stickyTopOffset=null,this._stickyBottomOffset=t,e=this.containerEl instanceof HTMLElement?this.containerEl.scrollLeft:this.containerEl.scrollX,this._marginLeft=k(-e+(0,n.getVisualViewportOffset)().left),this.position=null}_unstick(){this.isSticky=!1,this._isStickyToTheBottomOfLimiter=!1,this._stickyTopOffset=null,this._stickyBottomOffset=null,this._marginLeft=null,this.position=null}get _contentPanelRect(){return new n.Rect(this.contentPanelElement)}}var v=i(8),w={attributes:{"data-cke":!0}};w.setAttributes=f(),w.insert=u().bind(null,"head"),w.domAPI=a(),w.insertStyleElement=m();l()(v.A,w);v.A&&v.A.locals&&v.A.locals;class _ extends t.BoxedEditorUIView{stickyPanel;toolbar;editable;constructor(e,i,o={}){super(e),this.stickyPanel=new b(e,o),this.toolbar=new t.ToolbarView(e,{shouldGroupWhenFull:o.shouldToolbarGroupWhenFull}),o.useMenuBar&&(this.menuBarView=new t.MenuBarView(e)),this.editable=new t.InlineEditableUIView(e,i,void 0,{label:o.label})}render(){super.render(),this.menuBarView?this.stickyPanel.content.addMany([this.menuBarView,this.toolbar]):this.stickyPanel.content.add(this.toolbar),this.top.add(this.stickyPanel),this.main.add(this.editable)}}var T=i(782);function O(t){return function(t){return"object"==typeof t&&null!==t}(t)&&1===t.nodeType&&!function(t){if("object"!=typeof t)return!1;if(null==t)return!1;if(null===Object.getPrototypeOf(t))return!0;if("[object Object]"!==Object.prototype.toString.call(t)){const e=t[Symbol.toStringTag];return null!=e&&(!!Object.getOwnPropertyDescriptor(t,Symbol.toStringTag)?.writable&&t.toString()===`[object ${e}]`)}let e=t;for(;null!==Object.getPrototypeOf(e);)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(t)===e}(t)}class S extends((0,T.ElementApiMixin)(T.Editor)){static get editorName(){return"ClassicEditor"}ui;constructor(t,e={}){if(!E(t)&&void 0!==e.initialData)throw new n.CKEditorError("editor-create-initial-data",null);super(e),this.config.define("menuBar.isVisible",!1),void 0===this.config.get("initialData")&&this.config.set("initialData",function(t){return E(t)?(0,n.getDataFromElement)(t):t}(t)),E(t)&&(this.sourceElement=t),this.model.document.createRoot();const i=!this.config.get("toolbar.shouldNotGroupWhenFull"),o=this.config.get("menuBar"),r=new _(this.locale,this.editing.view,{shouldToolbarGroupWhenFull:i,useMenuBar:o.isVisible,label:this.config.get("label"),containerEl:e.containerEl,panelAbsolute:e.panelAbsolute});this.ui=new s(this,r),(0,T.attachToForm)(this)}destroy(){return this.sourceElement&&this.updateSourceElement(),this.ui.destroy(),super.destroy()}static create(t,e={}){return new Promise(i=>{const o=new this(t,e);i(o.initPlugins().then(()=>o.ui.init(E(t)?t:null)).then(()=>o.data.init(o.config.get("initialData"))).then(()=>o.fire("ready")).then(()=>o))})}}function E(t){return O(t)}})(),(window.CKEditor5=window.CKEditor5||{}).ckeditor5EditorClassicFloating=o})();
@@ -0,0 +1,4 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
+ */
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
+ */
5
+ .ck.ck-editor{
6
+ position:relative;
7
+ }
8
+
9
+ .ck.ck-editor .ck-editor__top .ck-sticky-panel .ck-toolbar{
10
+ z-index:var(--ck-z-panel);
11
+ }
12
+
13
+ .ck.ck-sticky-panel .ck-sticky-panel__content_sticky{
14
+ z-index:var(--ck-z-panel);
15
+ position:fixed;
16
+ top:0;
17
+ }
18
+
19
+ .ck.ck-sticky-panel .ck-sticky-panel__content_sticky_bottom-limit{
20
+ top:auto;
21
+ position:absolute;
22
+ }
package/dist/index.css ADDED
@@ -0,0 +1,38 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
+ */
5
+ /*
6
+ * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
7
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
8
+ */
9
+
10
+ .ck.ck-editor {
11
+ /* All the elements within `.ck-editor` are positioned relatively to it.
12
+ If any element needs to be positioned with respect to the <body>, etc.,
13
+ it must land outside of the `.ck-editor` in DOM. */
14
+ position: relative;
15
+ }
16
+
17
+ .ck.ck-editor .ck-editor__top .ck-sticky-panel .ck-toolbar {
18
+ /* https://github.com/ckeditor/ckeditor5-editor-classic/issues/62 */
19
+ z-index: var(--ck-z-panel);
20
+ }
21
+
22
+ /*
23
+ * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
24
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
25
+ */
26
+
27
+ .ck.ck-sticky-panel .ck-sticky-panel__content_sticky {
28
+ z-index: var(--ck-z-panel); /* #315 */
29
+ position: fixed;
30
+ top: 0;
31
+ }
32
+
33
+ .ck.ck-sticky-panel .ck-sticky-panel__content_sticky_bottom-limit {
34
+ top: auto;
35
+ position: absolute;
36
+ }
37
+
38
+ /*# sourceMappingURL=index.css.map */
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../theme/classiceditor.css","index.css","../theme/stickypanel.css"],"names":[],"mappings":";;;;AAAA,CAAA,CAAA;ACCA,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;AAC5E,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO;AACzF,CAAC,CDAC,CAAA;ACCF;ADCA,CAAA,EAAA,CAAA,EAAA,CAAA,MAAA,CAAA,CAAA;ACCA,CDAC,CAAA,CAAA,CAAA,GAAA,CAAA,GAAA,CAAA,QAAA,CAAA,MAAA,CAAA,CAAA,CAAA,EAAA,CAAA,MAAA,CAAA,CAAA,GAAA,CAAA,UAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA;ACCD,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACzE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CDAC,CAAA;ACCpD,CDAC,QAAA,CAAA,CAAA,QAAkB,CAAA;AAMnB,CAAA;ACJA;ADAC,CAAA,EAAA,CAAA,EAAA,CAAA,MAAA,CAAA,CAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,MAAA,CAAA,KAAA,CAAA,CAAA,EAAA,CAAA,OAAA,CAAA,CAAA;ACED,CAAC,CDDC,CAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,MAAA,CAAA,GAAA,CAAA,QAAA,CAAA,SAAA,CAAA,MAAA,CAAA,OAAA,CAAA,MAAA,CAAA,EAAA,CAAA,CAAmE,CAAA;ACErE,CAAC,CDDC,CAAA,CAAA,KAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,KAAA,CAA0B,CAAA;ACE5B,CDDC,CAAA;;AEdD,CAAA,CAAA;ADkBA,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;AAC5E,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO;AACzF,CAAC,CCjBC,CAAA;ADkBF;ACfC,CAAA,EAAA,CAAA,EAAA,CAAA,MAAA,CAAA,KAAA,CAAA,CAAA,EAAA,CAAA,MAAA,CAAA,qBAAA,CAAA,CAAA;ADiBD,CAAC,CChBC,CAAA,CAAA,KAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,KAAA,CAA0B,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAS,CAAA;ADiBvC,CAAC,CChBC,QAAA,CAAA,CAAA,KAAe,CAAA;ADiBjB,CAAC,CChBC,GAAA,CAAA,CAAA,CAAM,CAAA;ADiBR,CChBC,CAAA;ADiBD;ACfC,CAAA,EAAA,CAAA,EAAA,CAAA,MAAA,CAAA,KAAA,CAAA,CAAA,EAAA,CAAA,MAAA,CAAA,4BAAA,CAAA,KAAA,CAAA,CAAA;ADiBD,CAAC,CChBC,GAAA,CAAA,CAAA,IAAS,CAAA;ADiBX,CAAC,CChBC,QAAA,CAAA,CAAA,QAAkB,CAAA;ADiBpB,CChBC,CAAA;;ADkBD,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC","file":"index.css.map","sourcesContent":["/*\r\n * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.\r\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\r\n */\r\n\r\n.ck.ck-editor {\r\n\t/* All the elements within `.ck-editor` are positioned relatively to it.\r\n\t If any element needs to be positioned with respect to the <body>, etc.,\r\n\t it must land outside of the `.ck-editor` in DOM. */\r\n\tposition: relative;\r\n\r\n\t& .ck-editor__top .ck-sticky-panel .ck-toolbar {\r\n\t\t/* https://github.com/ckeditor/ckeditor5-editor-classic/issues/62 */\r\n\t\tz-index: var(--ck-z-panel);\r\n\t}\r\n}\r\n","/*\r\n * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.\r\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\r\n */\r\n\r\n.ck.ck-editor {\r\n\t/* All the elements within `.ck-editor` are positioned relatively to it.\r\n\t If any element needs to be positioned with respect to the <body>, etc.,\r\n\t it must land outside of the `.ck-editor` in DOM. */\r\n\tposition: relative;\r\n}\r\n\r\n.ck.ck-editor .ck-editor__top .ck-sticky-panel .ck-toolbar {\r\n\t\t/* https://github.com/ckeditor/ckeditor5-editor-classic/issues/62 */\r\n\t\tz-index: var(--ck-z-panel);\r\n\t}\r\n\n/*\r\n * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.\r\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\r\n */\r\n\r\n.ck.ck-sticky-panel .ck-sticky-panel__content_sticky {\r\n\t\tz-index: var(--ck-z-panel); /* #315 */\r\n\t\tposition: fixed;\r\n\t\ttop: 0;\r\n\t}\r\n\r\n.ck.ck-sticky-panel .ck-sticky-panel__content_sticky_bottom-limit {\r\n\t\ttop: auto;\r\n\t\tposition: absolute;\r\n\t}\r\n\n/*# sourceMappingURL=index.css.map */","/*\r\n * Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.\r\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options\r\n */\r\n\r\n.ck.ck-sticky-panel {\r\n\t& .ck-sticky-panel__content_sticky {\r\n\t\tz-index: var(--ck-z-panel); /* #315 */\r\n\t\tposition: fixed;\r\n\t\ttop: 0;\r\n\t}\r\n\r\n\t& .ck-sticky-panel__content_sticky_bottom-limit {\r\n\t\ttop: auto;\r\n\t\tposition: absolute;\r\n\t}\r\n}\r\n"]}