11/**
22 * @author Alexander Ebert
3- * @copyright 2001-2023 WoltLab GmbH
3+ * @copyright 2001-2026 WoltLab GmbH
44 * @license LGPL-2.1-or-later
5- * @since 6.0
65 */
76
8- import { ImageInsertConfig } from "@ckeditor/ckeditor5-image/src/imageconfig" ;
7+ // These are the core styles of CKEditor5 that must be imported first and in
8+ // this exact order.
9+ import "@ckeditor/ckeditor5-ui/dist/index.css" ;
10+ import "@ckeditor/ckeditor5-clipboard/dist/index.css" ;
11+ import "@ckeditor/ckeditor5-core/dist/index.css" ;
12+ import "@ckeditor/ckeditor5-engine/dist/index.css" ;
13+ import "@ckeditor/ckeditor5-enter/dist/index.css" ;
14+ import "@ckeditor/ckeditor5-paragraph/dist/index.css" ;
15+ import "@ckeditor/ckeditor5-select-all/dist/index.css" ;
16+ import "@ckeditor/ckeditor5-typing/dist/index.css" ;
17+ import "@ckeditor/ckeditor5-undo/dist/index.css" ;
18+ import "@ckeditor/ckeditor5-upload/dist/index.css" ;
19+ import "@ckeditor/ckeditor5-utils/dist/index.css" ;
20+ import "@ckeditor/ckeditor5-watchdog/dist/index.css" ;
21+ import "@ckeditor/ckeditor5-widget/dist/index.css" ;
22+
23+ // CSS of plugins of CKEditor come first to allow us to customize them with out
24+ // own plugins that are imported through the `modules.ts`.
25+ import "@ckeditor/ckeditor5-alignment/dist/index.css" ;
26+ import "@ckeditor/ckeditor5-autoformat/dist/index.css" ;
27+ import "@ckeditor/ckeditor5-autosave/dist/index.css" ;
28+ import "@ckeditor/ckeditor5-basic-styles/dist/index.css" ;
29+ import "@ckeditor/ckeditor5-block-quote/dist/index.css" ;
30+ import "@ckeditor/ckeditor5-code-block/dist/index.css" ;
31+ import "@ckeditor/ckeditor5-editor-classic/dist/index.css" ;
32+ import "@ckeditor/ckeditor5-emoji/dist/index.css" ;
33+ import "@ckeditor/ckeditor5-essentials/dist/index.css" ;
34+ import "@ckeditor/ckeditor5-font/dist/index.css" ;
35+ import "@ckeditor/ckeditor5-heading/dist/index.css" ;
36+ import "@ckeditor/ckeditor5-highlight/dist/index.css" ;
37+ import "@ckeditor/ckeditor5-horizontal-line/dist/index.css" ;
38+ import "@ckeditor/ckeditor5-html-embed/dist/index.css" ;
39+ import "@ckeditor/ckeditor5-icons/dist/index.css" ;
40+ import "@ckeditor/ckeditor5-image/dist/index.css" ;
41+ import "@ckeditor/ckeditor5-link/dist/index.css" ;
42+ import "@ckeditor/ckeditor5-list/dist/index.css" ;
43+ import "@ckeditor/ckeditor5-markdown-gfm/dist/index.css" ;
44+ import "@ckeditor/ckeditor5-mention/dist/index.css" ;
45+ import "@ckeditor/ckeditor5-paste-from-office/dist/index.css" ;
46+ import "@ckeditor/ckeditor5-remove-format/dist/index.css" ;
47+ import "@ckeditor/ckeditor5-restricted-editing/dist/index.css" ;
48+ import "@ckeditor/ckeditor5-style/dist/index.css" ;
49+ import "@ckeditor/ckeditor5-table/dist/index.css" ;
50+
951import {
1052 Alignment ,
1153 Autoformat ,
1254 Autosave ,
13- BasicStyles ,
1455 BlockQuote ,
56+ Bold ,
1557 ClassicEditor ,
58+ Code ,
1659 CodeBlock ,
17- Core ,
60+ EditorConfig ,
1861 Essentials ,
19- Font ,
62+ FontColor ,
63+ FontFamily ,
64+ FontSize ,
2065 Heading ,
2166 Highlight ,
2267 HorizontalLine ,
2368 HtmlEmbed ,
24- Icons ,
69+ IconObjectLeft ,
2570 Image ,
71+ ImageInsertConfig ,
72+ ImageInsertUI ,
73+ ImageInsertViaUrl ,
74+ ImageResizeEditing ,
75+ ImageResizeHandles ,
76+ ImageStyle ,
77+ ImageToolbar ,
78+ ImageUpload ,
79+ ImageUploadUI ,
2680 Indent ,
81+ Italic ,
2782 Link ,
83+ LinkImage ,
2884 List ,
2985 Mention ,
3086 Paragraph ,
3187 PasteFromOffice ,
3288 RemoveFormat ,
89+ Strikethrough ,
90+ Subscript ,
91+ Superscript ,
3392 Table ,
93+ TableToolbar ,
94+ Underline ,
3495 Undo ,
3596 Emoji ,
3697 WoltlabAttachment ,
@@ -54,54 +115,54 @@ import {
54115 WoltlabUpload ,
55116} from "./modules" ;
56117
57- const defaultConfig : Core . EditorConfig = {
118+ const defaultConfig : EditorConfig = {
58119 plugins : [
59120 // Internals
60- Autosave . Autosave ,
61- Essentials . Essentials ,
62- Indent . Indent ,
63- Mention . Mention ,
64- Paragraph . Paragraph ,
65- PasteFromOffice . PasteFromOffice ,
66- Undo . Undo ,
67- Emoji . Emoji ,
121+ Autosave ,
122+ Essentials ,
123+ Indent ,
124+ Mention ,
125+ Paragraph ,
126+ PasteFromOffice ,
127+ Undo ,
128+ Emoji ,
68129
69130 // Formatting
70- Alignment . Alignment ,
71- Autoformat . Autoformat ,
72- BasicStyles . Bold ,
73- BasicStyles . Code ,
74- Font . FontColor ,
75- Font . FontFamily ,
76- Font . FontSize ,
77- Heading . Heading ,
78- Highlight . Highlight ,
79- BasicStyles . Italic ,
80- RemoveFormat . RemoveFormat ,
81- BasicStyles . Strikethrough ,
82- BasicStyles . Subscript ,
83- BasicStyles . Superscript ,
84- BasicStyles . Underline ,
131+ Alignment ,
132+ Autoformat ,
133+ Bold ,
134+ Code ,
135+ FontColor ,
136+ FontFamily ,
137+ FontSize ,
138+ Heading ,
139+ Highlight ,
140+ Italic ,
141+ RemoveFormat ,
142+ Strikethrough ,
143+ Subscript ,
144+ Superscript ,
145+ Underline ,
85146
86147 // Components
87- BlockQuote . BlockQuote ,
88- CodeBlock . CodeBlock ,
89- HtmlEmbed . HtmlEmbed ,
90- HorizontalLine . HorizontalLine ,
91- Image . Image ,
92- Image . ImageInsertUI ,
93- Image . ImageInsertViaUrl ,
94- Image . ImageToolbar ,
95- Image . ImageResizeEditing ,
96- Image . ImageResizeHandles ,
97- Image . ImageStyle ,
98- Image . ImageUpload ,
99- Image . ImageUploadUI ,
100- Link . Link ,
101- Link . LinkImage ,
102- List . List ,
103- Table . Table ,
104- Table . TableToolbar ,
148+ BlockQuote ,
149+ CodeBlock ,
150+ HtmlEmbed ,
151+ HorizontalLine ,
152+ Image ,
153+ ImageInsertUI ,
154+ ImageInsertViaUrl ,
155+ ImageToolbar ,
156+ ImageResizeEditing ,
157+ ImageResizeHandles ,
158+ ImageStyle ,
159+ ImageUpload ,
160+ ImageUploadUI ,
161+ Link ,
162+ LinkImage ,
163+ List ,
164+ Table ,
165+ TableToolbar ,
105166
106167 // WoltLab
107168 WoltlabAttachment . WoltlabAttachment ,
@@ -128,9 +189,10 @@ const defaultConfig: Core.EditorConfig = {
128189
129190export async function create (
130191 element : HTMLElement ,
131- configuration : Core . EditorConfig ,
132- ) : Promise < ClassicEditor . ClassicEditor > {
192+ configuration : EditorConfig ,
193+ ) : Promise < ClassicEditor > {
133194 configuration = Object . assign ( configuration , defaultConfig ) ;
195+ configuration . attachTo = element ;
134196
135197 const removePlugins = configuration . removePlugins || [ ] ;
136198 if ( ! removePlugins . includes ( "Image" ) ) {
@@ -157,7 +219,7 @@ export async function create(
157219 {
158220 name : "sideLeft" ,
159221 title : "Left aligned image" ,
160- icon : Icons . IconObjectLeft ,
222+ icon : IconObjectLeft ,
161223 modelElements : [ "imageBlock" ] ,
162224 className : "image-style-side-left" ,
163225 } ,
@@ -178,10 +240,7 @@ export async function create(
178240 } ;
179241 }
180242
181- const editor = await ClassicEditor . ClassicEditor . create (
182- element ,
183- configuration ,
184- ) ;
243+ const editor = await ClassicEditor . create ( configuration ) ;
185244
186245 return editor ;
187246}
0 commit comments