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 +4 -206
- package/LICENSE.md +26 -21
- package/README.md +29 -20
- package/build/ckeditor5-editor-classic-floating.js +2 -2
- package/dist/index-content.css +4 -0
- package/dist/index-editor.css +22 -0
- package/dist/index.css +38 -0
- package/dist/index.css.map +1 -0
- package/dist/index.js +730 -0
- package/dist/index.js.map +1 -0
- package/package.json +61 -61
- package/src/classiceditor.d.ts +15 -54
- package/src/classiceditor.js +19 -55
- package/src/classiceditorui.d.ts +11 -16
- package/src/classiceditorui.js +77 -43
- package/src/classiceditoruiview.d.ts +8 -9
- package/src/classiceditoruiview.js +23 -6
- package/src/index.d.ts +6 -4
- package/src/index.js +6 -4
- package/src/index.ts +6 -5
- package/src/stickypanelview.d.ts +12 -9
- package/src/stickypanelview.js +76 -47
- package/theme/classiceditor.css +16 -16
- package/theme/stickypanel.css +17 -17
- package/build/editor-classic.js +0 -4
- package/src/augmentation.d.ts +0 -10
- package/src/augmentation.js +0 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,206 +1,4 @@
|
|
|
1
|
-
Changelog
|
|
2
|
-
=========
|
|
3
|
-
|
|
4
|
-
All changes in the package are documented in
|
|
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
|
|
5
|
-
Copyright (c) 2003–
|
|
6
|
-
|
|
7
|
-
Licensed under
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
1
|
+
Software License Agreement
|
|
2
|
+
==========================
|
|
3
|
+
|
|
4
|
+
**CKEditor 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 5
|
|
15
|
+
------------------------------------------------------------
|
|
16
|
+
|
|
17
|
+
Where not otherwise indicated, all CKEditor 5 content is authored by CKSource engineers and consists of CKSource-owned intellectual property. In some specific instances, CKEditor 5 will incorporate work done by developers outside of CKSource with their express permission.
|
|
18
|
+
|
|
19
|
+
The following libraries are included in CKEditor 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 5 classic editor implementation
|
|
2
|
-
========================================
|
|
3
|
-
|
|
4
|
-
[](https://www.npmjs.com/package/@ckeditor/ckeditor5-editor-classic)
|
|
5
|
-
[ class. Follow there to learn more about this type of editor and how to initialize it.
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
1
|
+
CKEditor 5 classic editor implementation
|
|
2
|
+
========================================
|
|
3
|
+
|
|
4
|
+
[](https://www.npmjs.com/package/@ckeditor/ckeditor5-editor-classic)
|
|
5
|
+
[](https://codecov.io/gh/ckeditor/ckeditor5)
|
|
6
|
+
[](https://app.circleci.com/pipelines/github/ckeditor/ckeditor5?branch=master)
|
|
7
|
+
|
|
8
|
+
The classic editor implementation for CKEditor 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 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-
|
|
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,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"]}
|