aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--package-lock.json899
-rw-r--r--package.json54
-rw-r--r--resources/assets/javascripts/chunk-loader.js6
-rw-r--r--resources/assets/javascripts/chunks/wysiwyg.js309
-rw-r--r--resources/assets/javascripts/cke/balloon-editor.js53
-rw-r--r--resources/assets/javascripts/cke/builtin-plugins.js114
-rw-r--r--resources/assets/javascripts/cke/classic-editor.js108
-rw-r--r--resources/assets/javascripts/cke/default-config.js144
-rw-r--r--resources/assets/javascripts/cke/studip-a11y-dialog/a11y-dialog.js2
-rw-r--r--resources/assets/javascripts/cke/studip-a11y-dialog/command.js2
-rw-r--r--resources/assets/javascripts/cke/studip-a11y-dialog/editing.js2
-rw-r--r--resources/assets/javascripts/cke/studip-a11y-dialog/ui.js2
-rw-r--r--resources/assets/javascripts/cke/studip-quote/StudipBlockQuote.js2
-rw-r--r--resources/assets/javascripts/cke/wiki-link/editing.js2
-rw-r--r--resources/assets/javascripts/cke/wiki-link/formview.js4
-rw-r--r--resources/assets/javascripts/cke/wiki-link/insertcommand.js2
-rw-r--r--resources/assets/javascripts/cke/wiki-link/ui.js4
-rw-r--r--resources/assets/javascripts/cke/wiki-link/wiki-link.js2
-rw-r--r--resources/assets/javascripts/lib/wysiwyg.js293
-rw-r--r--resources/assets/stylesheets/scss/studip-cke-ui.scss39
-rw-r--r--resources/vue/components/StudipWysiwyg.vue26
-rw-r--r--resources/vue/components/courseware/CoursewareTextBlock.vue2
-rw-r--r--webpack.common.js4
23 files changed, 977 insertions, 1098 deletions
diff --git a/package-lock.json b/package-lock.json
index 9a91eeb..a06d964 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -16,29 +16,35 @@
"@babel/plugin-transform-runtime": "^7.12.1",
"@babel/preset-env": "^7.12.1",
"@babel/register": "^7.12.1",
- "@ckeditor/ckeditor5-alignment": "34.2.0",
- "@ckeditor/ckeditor5-autoformat": "34.2.0",
- "@ckeditor/ckeditor5-basic-styles": "34.2.0",
- "@ckeditor/ckeditor5-build-classic": "34.2.0",
- "@ckeditor/ckeditor5-build-decoupled-document": "34.2.0",
- "@ckeditor/ckeditor5-build-inline": "34.2.0",
- "@ckeditor/ckeditor5-code-block": "34.2.0",
- "@ckeditor/ckeditor5-dev-utils": "^30.5.0",
- "@ckeditor/ckeditor5-dev-webpack-plugin": "^30.5.0",
- "@ckeditor/ckeditor5-essentials": "34.2.0",
- "@ckeditor/ckeditor5-find-and-replace": "34.2.0",
- "@ckeditor/ckeditor5-font": "34.2.0",
- "@ckeditor/ckeditor5-horizontal-line": "34.2.0",
- "@ckeditor/ckeditor5-html-support": "34.2.0",
- "@ckeditor/ckeditor5-indent": "34.2.0",
- "@ckeditor/ckeditor5-paragraph": "34.2.0",
- "@ckeditor/ckeditor5-remove-format": "34.2.0",
- "@ckeditor/ckeditor5-source-editing": "34.2.0",
- "@ckeditor/ckeditor5-special-characters": "34.2.0",
- "@ckeditor/ckeditor5-table": "34.2.0",
- "@ckeditor/ckeditor5-theme-lark": "34.2.0",
- "@ckeditor/ckeditor5-typing": "34.2.0",
- "@ckeditor/ckeditor5-upload": "34.2.0",
+ "@ckeditor/ckeditor5-alignment": "^36.x",
+ "@ckeditor/ckeditor5-autoformat": "^36.x",
+ "@ckeditor/ckeditor5-basic-styles": "^36.x",
+ "@ckeditor/ckeditor5-block-quote": "^36.x",
+ "@ckeditor/ckeditor5-code-block": "^36.x",
+ "@ckeditor/ckeditor5-core": "^36.x",
+ "@ckeditor/ckeditor5-dev-translations": "^36.x",
+ "@ckeditor/ckeditor5-dev-utils": "^36.x",
+ "@ckeditor/ckeditor5-easy-image": "^36.x",
+ "@ckeditor/ckeditor5-editor-balloon": "^36.x",
+ "@ckeditor/ckeditor5-editor-classic": "^36.x",
+ "@ckeditor/ckeditor5-essentials": "^36.x",
+ "@ckeditor/ckeditor5-find-and-replace": "^36.x",
+ "@ckeditor/ckeditor5-font": "^36.x",
+ "@ckeditor/ckeditor5-heading": "^36.x",
+ "@ckeditor/ckeditor5-horizontal-line": "^36.x",
+ "@ckeditor/ckeditor5-html-support": "^36.x",
+ "@ckeditor/ckeditor5-image": "^36.x",
+ "@ckeditor/ckeditor5-indent": "^36.x",
+ "@ckeditor/ckeditor5-link": "^36.x",
+ "@ckeditor/ckeditor5-list": "^36.x",
+ "@ckeditor/ckeditor5-paragraph": "^36.x",
+ "@ckeditor/ckeditor5-remove-format": "^36.x",
+ "@ckeditor/ckeditor5-source-editing": "^36.x",
+ "@ckeditor/ckeditor5-special-characters": "^36.x",
+ "@ckeditor/ckeditor5-table": "^36.x",
+ "@ckeditor/ckeditor5-theme-lark": "^36.x",
+ "@ckeditor/ckeditor5-typing": "^36.x",
+ "@ckeditor/ckeditor5-upload": "^36.x",
"@ckeditor/ckeditor5-vue2": "^3.0.1",
"@elan-ev/reststate-vuex": "~1.0.5",
"@fullcalendar/core": "^4.3.1",
@@ -62,7 +68,7 @@
"buffer": "^6.0.3",
"chart.js": "^2.9.4",
"chartist": "0.11.4",
- "ckeditor5-math": "34.1.1",
+ "ckeditor5-math": "^36.x",
"colorpare": "^2.2.0",
"cropperjs": "1.5.9",
"css-loader": "^5.0.1",
@@ -1998,26 +2004,13 @@
"integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
"dev": true
},
- "node_modules/@ckeditor/ckeditor5-adapter-ckfinder": {
- "version": "34.2.0",
- "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-adapter-ckfinder/-/ckeditor5-adapter-ckfinder-34.2.0.tgz",
- "integrity": "sha512-KsEYApU2VCmUsF2Np5VD657dzrvMZTBUgbPAjedghmFvPidpbuhj/fyvdbafbbHMaBhF9uXFTucXqnR7wq4bRw==",
- "dev": true,
- "dependencies": {
- "ckeditor5": "^34.2.0"
- },
- "engines": {
- "node": ">=14.0.0",
- "npm": ">=5.7.1"
- }
- },
"node_modules/@ckeditor/ckeditor5-alignment": {
- "version": "34.2.0",
- "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-alignment/-/ckeditor5-alignment-34.2.0.tgz",
- "integrity": "sha512-LpkTL67oaqB2ADLwBPXIFM2iqWSZnCG8OhEjjs7Piuyy7aUudShkbhKwqAhvb37b+MiGYCwuz/HnJlIWAD407Q==",
+ "version": "36.0.1",
+ "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-alignment/-/ckeditor5-alignment-36.0.1.tgz",
+ "integrity": "sha512-9JfoV6hlJap3Ympgf3nlNQwj+yJMc0GtGoY3LUC6rg+snPJGjDhjJNBqM5rhr/+HWKOCMrx7OaczS3yJArXW5g==",
"dev": true,
"dependencies": {
- "ckeditor5": "^34.2.0"
+ "ckeditor5": "^36.0.1"
},
"engines": {
"node": ">=14.0.0",
@@ -2025,12 +2018,12 @@
}
},
"node_modules/@ckeditor/ckeditor5-autoformat": {
- "version": "34.2.0",
- "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-autoformat/-/ckeditor5-autoformat-34.2.0.tgz",
- "integrity": "sha512-751X2LplWs690MoNA97oXNEk/ZKWgO/iDXFM0peD2dN7X51pSG6Ats6WYAxrkVltCZB60ZbpQ7XEeCrbhxmrlw==",
+ "version": "36.0.1",
+ "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-autoformat/-/ckeditor5-autoformat-36.0.1.tgz",
+ "integrity": "sha512-kve+Ergl40L6DzbtvyTMhbwfMZgpl0SJgsAzukQ72OyvJykQywworJ3zt/PgLCJKD+EKN80X9nR8kfBzXRG/vw==",
"dev": true,
"dependencies": {
- "ckeditor5": "^34.2.0"
+ "ckeditor5": "^36.0.1"
},
"engines": {
"node": ">=14.0.0",
@@ -2038,12 +2031,12 @@
}
},
"node_modules/@ckeditor/ckeditor5-basic-styles": {
- "version": "34.2.0",
- "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-basic-styles/-/ckeditor5-basic-styles-34.2.0.tgz",
- "integrity": "sha512-tnfs5K17cY25DrAuFg6owJQYtZ/+cC9er7KfswL5DVWLZSkHHYnt3Yhx6zhhws4mnQf4ETxG9WKWq5JqXu/5lA==",
+ "version": "36.0.1",
+ "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-basic-styles/-/ckeditor5-basic-styles-36.0.1.tgz",
+ "integrity": "sha512-5qbgzsgmJP7lecf78sy6QpqbsF2BLs7WxziMrJUXQytgq4S7o+Q/uqGF/itpkQMBBnLulRFJ8/x055iOBugreQ==",
"dev": true,
"dependencies": {
- "ckeditor5": "^34.2.0"
+ "ckeditor5": "^36.0.1"
},
"engines": {
"node": ">=14.0.0",
@@ -2051,220 +2044,160 @@
}
},
"node_modules/@ckeditor/ckeditor5-block-quote": {
- "version": "34.2.0",
- "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-block-quote/-/ckeditor5-block-quote-34.2.0.tgz",
- "integrity": "sha512-W6ht+2eO/qV4lwEwV7tEWvNxXfj1HIia7GrSjT2z2gyUYLwhjZQDIc1x4ds6517znBgMfLiDU1tH3JzqBaFQqw==",
+ "version": "36.0.1",
+ "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-block-quote/-/ckeditor5-block-quote-36.0.1.tgz",
+ "integrity": "sha512-kLvkHGiu5lAnPiUnRUc0M0Nlls179PmcOvX+YIIp62YBYTxG/R6oCC5clnnhodNiDQBEgwbxqoqTKNSkOX0VWw==",
"dev": true,
"dependencies": {
- "ckeditor5": "^34.2.0"
+ "ckeditor5": "^36.0.1"
},
"engines": {
"node": ">=14.0.0",
"npm": ">=5.7.1"
}
},
- "node_modules/@ckeditor/ckeditor5-build-classic": {
- "version": "34.2.0",
- "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-build-classic/-/ckeditor5-build-classic-34.2.0.tgz",
- "integrity": "sha512-nXpZWEkHPX0VgFaf1tk4EwcrvPD6MF7ZvRQDm9WdOp8LvMX/pRqvJFbXxKkqPEB4ROrpDKZ0NEs+IdkhiY92zg==",
- "dev": true,
- "dependencies": {
- "@ckeditor/ckeditor5-adapter-ckfinder": "^34.2.0",
- "@ckeditor/ckeditor5-autoformat": "^34.2.0",
- "@ckeditor/ckeditor5-basic-styles": "^34.2.0",
- "@ckeditor/ckeditor5-block-quote": "^34.2.0",
- "@ckeditor/ckeditor5-ckbox": "^34.2.0",
- "@ckeditor/ckeditor5-ckfinder": "^34.2.0",
- "@ckeditor/ckeditor5-cloud-services": "^34.2.0",
- "@ckeditor/ckeditor5-easy-image": "^34.2.0",
- "@ckeditor/ckeditor5-editor-classic": "^34.2.0",
- "@ckeditor/ckeditor5-essentials": "^34.2.0",
- "@ckeditor/ckeditor5-heading": "^34.2.0",
- "@ckeditor/ckeditor5-image": "^34.2.0",
- "@ckeditor/ckeditor5-indent": "^34.2.0",
- "@ckeditor/ckeditor5-link": "^34.2.0",
- "@ckeditor/ckeditor5-list": "^34.2.0",
- "@ckeditor/ckeditor5-media-embed": "^34.2.0",
- "@ckeditor/ckeditor5-paragraph": "^34.2.0",
- "@ckeditor/ckeditor5-paste-from-office": "^34.2.0",
- "@ckeditor/ckeditor5-table": "^34.2.0",
- "@ckeditor/ckeditor5-typing": "^34.2.0"
+ "node_modules/@ckeditor/ckeditor5-clipboard": {
+ "version": "36.0.1",
+ "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-clipboard/-/ckeditor5-clipboard-36.0.1.tgz",
+ "integrity": "sha512-CFh5oO29dUXwsUf/BPM8g5l8MV3hiG27/h6fpC1qRUTAVXDAj43j+cfYYs8MwNi3hv0c/1KyT1bLySqQ/LZctw==",
+ "dev": true,
+ "dependencies": {
+ "@ckeditor/ckeditor5-core": "^36.0.1",
+ "@ckeditor/ckeditor5-engine": "^36.0.1",
+ "@ckeditor/ckeditor5-utils": "^36.0.1",
+ "@ckeditor/ckeditor5-widget": "^36.0.1",
+ "lodash-es": "^4.17.11"
},
"engines": {
"node": ">=14.0.0",
"npm": ">=5.7.1"
}
},
- "node_modules/@ckeditor/ckeditor5-build-decoupled-document": {
- "version": "34.2.0",
- "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-build-decoupled-document/-/ckeditor5-build-decoupled-document-34.2.0.tgz",
- "integrity": "sha512-Y73DYKFK+VwHNcH/9Y0PZCKBnsEkUL4siYwSem7dWG9QxjfWblaSl0dBUpxcEGLInRzfyMDRGl4COttM0vqT+g==",
- "dev": true,
- "dependencies": {
- "@ckeditor/ckeditor5-adapter-ckfinder": "^34.2.0",
- "@ckeditor/ckeditor5-alignment": "^34.2.0",
- "@ckeditor/ckeditor5-autoformat": "^34.2.0",
- "@ckeditor/ckeditor5-basic-styles": "^34.2.0",
- "@ckeditor/ckeditor5-block-quote": "^34.2.0",
- "@ckeditor/ckeditor5-ckbox": "^34.2.0",
- "@ckeditor/ckeditor5-ckfinder": "^34.2.0",
- "@ckeditor/ckeditor5-cloud-services": "^34.2.0",
- "@ckeditor/ckeditor5-easy-image": "^34.2.0",
- "@ckeditor/ckeditor5-editor-decoupled": "^34.2.0",
- "@ckeditor/ckeditor5-essentials": "^34.2.0",
- "@ckeditor/ckeditor5-font": "^34.2.0",
- "@ckeditor/ckeditor5-heading": "^34.2.0",
- "@ckeditor/ckeditor5-image": "^34.2.0",
- "@ckeditor/ckeditor5-indent": "^34.2.0",
- "@ckeditor/ckeditor5-link": "^34.2.0",
- "@ckeditor/ckeditor5-list": "^34.2.0",
- "@ckeditor/ckeditor5-media-embed": "^34.2.0",
- "@ckeditor/ckeditor5-paragraph": "^34.2.0",
- "@ckeditor/ckeditor5-paste-from-office": "^34.2.0",
- "@ckeditor/ckeditor5-table": "^34.2.0",
- "@ckeditor/ckeditor5-typing": "^34.2.0"
+ "node_modules/@ckeditor/ckeditor5-code-block": {
+ "version": "36.0.1",
+ "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-code-block/-/ckeditor5-code-block-36.0.1.tgz",
+ "integrity": "sha512-jCWIM7WWg2ohC43/3cOKAqBTe2AVBxE3mfpLTqZ7W1TC7RZgRbzsrxzy5ZnjN3Ze9N6e7b+n1cUEMFn+ilhgbw==",
+ "dev": true,
+ "dependencies": {
+ "ckeditor5": "^36.0.1"
},
"engines": {
"node": ">=14.0.0",
"npm": ">=5.7.1"
}
},
- "node_modules/@ckeditor/ckeditor5-build-inline": {
- "version": "34.2.0",
- "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-build-inline/-/ckeditor5-build-inline-34.2.0.tgz",
- "integrity": "sha512-Y3EvX5ptWMuSeQG8xDvetrtEV5CPwFmYymbgKK4xRTdmU3J4JKn5jh0vkuqoIh9cSK+mF9NDALptXvaCshkR/g==",
- "dev": true,
- "dependencies": {
- "@ckeditor/ckeditor5-adapter-ckfinder": "^34.2.0",
- "@ckeditor/ckeditor5-autoformat": "^34.2.0",
- "@ckeditor/ckeditor5-basic-styles": "^34.2.0",
- "@ckeditor/ckeditor5-block-quote": "^34.2.0",
- "@ckeditor/ckeditor5-ckbox": "^34.2.0",
- "@ckeditor/ckeditor5-ckfinder": "^34.2.0",
- "@ckeditor/ckeditor5-cloud-services": "^34.2.0",
- "@ckeditor/ckeditor5-easy-image": "^34.2.0",
- "@ckeditor/ckeditor5-editor-inline": "^34.2.0",
- "@ckeditor/ckeditor5-essentials": "^34.2.0",
- "@ckeditor/ckeditor5-heading": "^34.2.0",
- "@ckeditor/ckeditor5-image": "^34.2.0",
- "@ckeditor/ckeditor5-indent": "^34.2.0",
- "@ckeditor/ckeditor5-link": "^34.2.0",
- "@ckeditor/ckeditor5-list": "^34.2.0",
- "@ckeditor/ckeditor5-media-embed": "^34.2.0",
- "@ckeditor/ckeditor5-paragraph": "^34.2.0",
- "@ckeditor/ckeditor5-paste-from-office": "^34.2.0",
- "@ckeditor/ckeditor5-table": "^34.2.0",
- "@ckeditor/ckeditor5-typing": "^34.2.0"
+ "node_modules/@ckeditor/ckeditor5-core": {
+ "version": "36.0.1",
+ "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-core/-/ckeditor5-core-36.0.1.tgz",
+ "integrity": "sha512-50O+DYXtaf4dMOn+3mGUvfYiE2qsCgVn114WQj7Tj3pZl5w+pAIv/2P+9cBB2Kb7QxgPZqZ7bvsi9wHqIJ6KCw==",
+ "dev": true,
+ "dependencies": {
+ "@ckeditor/ckeditor5-engine": "^36.0.1",
+ "@ckeditor/ckeditor5-utils": "^36.0.1",
+ "lodash-es": "^4.17.15"
},
"engines": {
"node": ">=14.0.0",
"npm": ">=5.7.1"
}
},
- "node_modules/@ckeditor/ckeditor5-ckbox": {
- "version": "34.2.0",
- "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-ckbox/-/ckeditor5-ckbox-34.2.0.tgz",
- "integrity": "sha512-vjD/i5ya4KbjltjkHVXlNPMo6Gsgm/1Xg6ENdW3SGLmJm9So5M4QqhQZQPEPNISNd5Pu5OVyHmX/F0G/rFUqOA==",
+ "node_modules/@ckeditor/ckeditor5-dev-translations": {
+ "version": "36.0.1",
+ "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-dev-translations/-/ckeditor5-dev-translations-36.0.1.tgz",
+ "integrity": "sha512-zFIJRJBqvBTZrmlFTbYGk1Z94KYh2bTm3jmpF5V9ty5Z07o9mLzsXLHbFWBZv5yaF2menNTDhjgATb57kzDrtQ==",
"dev": true,
"dependencies": {
- "ckeditor5": "^34.2.0"
+ "@babel/parser": "^7.18.9",
+ "@babel/traverse": "^7.18.9",
+ "chalk": "^4.0.0",
+ "pofile": "^1.0.9",
+ "rimraf": "^3.0.2",
+ "webpack-sources": "^2.0.1"
},
"engines": {
- "node": ">=14.0.0",
+ "node": ">=16.0.0",
"npm": ">=5.7.1"
}
},
- "node_modules/@ckeditor/ckeditor5-ckfinder": {
- "version": "34.2.0",
- "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-ckfinder/-/ckeditor5-ckfinder-34.2.0.tgz",
- "integrity": "sha512-zZfCxjcw+mJGGZaZAgmU8a1iwOsov2T/flT6AxZPVVyTXQlaAN4reQ3MH2K45E/2kSc04QNSfH7iSHubxtfFVA==",
+ "node_modules/@ckeditor/ckeditor5-dev-translations/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
"dependencies": {
- "ckeditor5": "^34.2.0"
+ "color-convert": "^2.0.1"
},
"engines": {
- "node": ">=14.0.0",
- "npm": ">=5.7.1"
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/@ckeditor/ckeditor5-clipboard": {
- "version": "34.2.0",
- "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-clipboard/-/ckeditor5-clipboard-34.2.0.tgz",
- "integrity": "sha512-OcdFj9yT7C5yKPHtTKWvjGMJLpigrkdJN4AZhdJJPigiuYG0c5mnCuTvOYxp2kVijFWRjhPlwIyPVTtDZ0vnzw==",
+ "node_modules/@ckeditor/ckeditor5-dev-translations/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
"dependencies": {
- "@ckeditor/ckeditor5-core": "^34.2.0",
- "@ckeditor/ckeditor5-engine": "^34.2.0",
- "@ckeditor/ckeditor5-utils": "^34.2.0",
- "@ckeditor/ckeditor5-widget": "^34.2.0",
- "lodash-es": "^4.17.11"
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
},
"engines": {
- "node": ">=14.0.0",
- "npm": ">=5.7.1"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/@ckeditor/ckeditor5-cloud-services": {
- "version": "34.2.0",
- "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-cloud-services/-/ckeditor5-cloud-services-34.2.0.tgz",
- "integrity": "sha512-4ePDTu9TKgQk1duby7Sp8kGct9TzWlZWnE/1IoG6sDUUUF3iVydrc7GlKC5hkB3BsnBChQS24kj8iUrrFFcGnw==",
+ "node_modules/@ckeditor/ckeditor5-dev-translations/node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
"dependencies": {
- "ckeditor5": "^34.2.0"
+ "color-name": "~1.1.4"
},
"engines": {
- "node": ">=14.0.0",
- "npm": ">=5.7.1"
+ "node": ">=7.0.0"
}
},
- "node_modules/@ckeditor/ckeditor5-code-block": {
- "version": "34.2.0",
- "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-code-block/-/ckeditor5-code-block-34.2.0.tgz",
- "integrity": "sha512-jhQ5YBVklVOrjL6G0oYeVMo/2PIryNWXxYuTz8iZuw5ZgONy6AmYrzryN+ej0xFAN3DtmuW58weKR8jxdgW6Nw==",
+ "node_modules/@ckeditor/ckeditor5-dev-translations/node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
- "dependencies": {
- "ckeditor5": "^34.2.0"
- },
"engines": {
- "node": ">=14.0.0",
- "npm": ">=5.7.1"
+ "node": ">=8"
}
},
- "node_modules/@ckeditor/ckeditor5-core": {
- "version": "34.2.0",
- "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-core/-/ckeditor5-core-34.2.0.tgz",
- "integrity": "sha512-6K0aToibRt28sCVYpMqdSKGvMifjwziqxLxyEh38CyDZJBUf7QPEAPlEpKAFTisHNEmC4471tr8UPpvNgqUXGA==",
+ "node_modules/@ckeditor/ckeditor5-dev-translations/node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
"dependencies": {
- "@ckeditor/ckeditor5-engine": "^34.2.0",
- "@ckeditor/ckeditor5-ui": "^34.2.0",
- "@ckeditor/ckeditor5-utils": "^34.2.0",
- "lodash-es": "^4.17.15"
+ "has-flag": "^4.0.0"
},
"engines": {
- "node": ">=14.0.0",
- "npm": ">=5.7.1"
+ "node": ">=8"
}
},
"node_modules/@ckeditor/ckeditor5-dev-utils": {
- "version": "30.5.0",
- "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-dev-utils/-/ckeditor5-dev-utils-30.5.0.tgz",
- "integrity": "sha512-R5oC9ka68X7NwafM5rFvIv6q0qT2kMsBkRikdEygx7cmGkV4dy7uM5HuOBUuIoLW7Md2o3QfkD3dnk6OdzuuJw==",
+ "version": "36.0.1",
+ "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-dev-utils/-/ckeditor5-dev-utils-36.0.1.tgz",
+ "integrity": "sha512-fANvAuQ2s2fixSaerpj3Mb3AYhcapau92vVSvtIgFh3cjLiH1IHomdhnqnhbMajO59LmTqqyFt2G3nKhMuZCng==",
"dev": true,
"dependencies": {
- "@babel/parser": "^7.18.9",
- "@babel/traverse": "^7.18.9",
- "@ckeditor/ckeditor5-dev-webpack-plugin": "^30.5.0",
+ "@ckeditor/ckeditor5-dev-translations": "^36.0.1",
"chalk": "^3.0.0",
"cli-cursor": "^3.1.0",
"cli-spinners": "^2.6.1",
"cssnano": "^5.0.0",
"del": "^5.0.0",
- "escodegen": "^1.9.0",
"fs-extra": "^8.1.0",
"is-interactive": "^1.0.0",
"javascript-stringify": "^1.6.0",
- "pofile": "^1.0.9",
"postcss": "^8.4.12",
"postcss-import": "^14.1.0",
"postcss-loader": "^4.3.0",
@@ -2278,11 +2211,8 @@
"ts-loader": "^9.3.0"
},
"engines": {
- "node": ">=14.0.0",
+ "node": ">=16.0.0",
"npm": ">=5.7.1"
- },
- "peerDependencies": {
- "webpack": "^4.43.0 || ^5.24.0"
}
},
"node_modules/@ckeditor/ckeditor5-dev-utils/node_modules/ansi-styles": {
@@ -2388,111 +2318,26 @@
"node": ">=8"
}
},
- "node_modules/@ckeditor/ckeditor5-dev-webpack-plugin": {
- "version": "30.5.0",
- "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-dev-webpack-plugin/-/ckeditor5-dev-webpack-plugin-30.5.0.tgz",
- "integrity": "sha512-mErNKfGd8XBjJxB7K7yCDnNq4pLQKbEjwJHf9g2EW4gOD1U55rgPc1XpmgfxhMj44QQ8YOZXAQ/Y/55AN7GATA==",
- "deprecated": "This package is no longer maintained. Please, read the migration path: https://github.com/ckeditor/ckeditor5-dev/releases/tag/v32.0.0.",
- "dev": true,
- "dependencies": {
- "@ckeditor/ckeditor5-dev-utils": "^30.5.0",
- "chalk": "^4.0.0",
- "rimraf": "^3.0.2",
- "semver": "^7.3.4",
- "webpack-sources": "^2.0.1"
- },
- "engines": {
- "node": ">=14.0.0",
- "npm": ">=5.7.1"
- },
- "peerDependencies": {
- "webpack": "^4.43.0 || ^5.24.0"
- }
- },
- "node_modules/@ckeditor/ckeditor5-dev-webpack-plugin/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/@ckeditor/ckeditor5-dev-webpack-plugin/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/@ckeditor/ckeditor5-dev-webpack-plugin/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/@ckeditor/ckeditor5-dev-webpack-plugin/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@ckeditor/ckeditor5-dev-webpack-plugin/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/@ckeditor/ckeditor5-easy-image": {
- "version": "34.2.0",
- "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-easy-image/-/ckeditor5-easy-image-34.2.0.tgz",
- "integrity": "sha512-0enLOsyy8cYAb85BA+TxZqg2sDWrup62Ph31dv97EBry0+XjvD5ViEhgpr15WoY/4B3HZZbxy4W+/zJz3GmO5w==",
+ "version": "36.0.1",
+ "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-easy-image/-/ckeditor5-easy-image-36.0.1.tgz",
+ "integrity": "sha512-t74s840xNPaWibgI1YcC/lHcigCY4zUyXzpXhepWe9qw4zfg58H2wK6a0AwBN+yy8mXcotDUmjXkOXgnNkJp0Q==",
"dev": true,
"dependencies": {
- "ckeditor5": "^34.2.0"
+ "ckeditor5": "^36.0.1"
},
"engines": {
"node": ">=14.0.0",
"npm": ">=5.7.1"
}
},
- "node_modules/@ckeditor/ckeditor5-editor-classic": {
- "version": "34.2.0",
- "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-editor-classic/-/ckeditor5-editor-classic-34.2.0.tgz",
- "integrity": "sha512-/iNJixrnmiZOyLb85TkGeWsPMXeKpdsAIa7KX92AxIYhW08UpgFS+X7Cp17nZ7FBNM4nmFarUz7WbGvR0n51ew==",
+ "node_modules/@ckeditor/ckeditor5-editor-balloon": {
+ "version": "36.0.1",
+ "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-editor-balloon/-/ckeditor5-editor-balloon-36.0.1.tgz",
+ "integrity": "sha512-S8fIoqQ/A7lGyvEMUY1paZHVNevBWHJ4AvwRfYSgsG/XNjxLJClD7LRk/vT0btyTUg6KAQ9r7oAiSkaU/MfgFg==",
"dev": true,
"dependencies": {
- "ckeditor5": "^34.2.0",
+ "ckeditor5": "^36.0.1",
"lodash-es": "^4.17.15"
},
"engines": {
@@ -2500,27 +2345,13 @@
"npm": ">=5.7.1"
}
},
- "node_modules/@ckeditor/ckeditor5-editor-decoupled": {
- "version": "34.2.0",
- "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-editor-decoupled/-/ckeditor5-editor-decoupled-34.2.0.tgz",
- "integrity": "sha512-1ekbS9ooqRfzMEXcJjytRh/C3zQdSZyUvXv9HU35FtxPKBE1fX1TRfVz/oQw5/NVuC+3DzZSrk+ziwZZzN8U3w==",
- "dev": true,
- "dependencies": {
- "ckeditor5": "^34.2.0",
- "lodash-es": "^4.17.15"
- },
- "engines": {
- "node": ">=14.0.0",
- "npm": ">=5.7.1"
- }
- },
- "node_modules/@ckeditor/ckeditor5-editor-inline": {
- "version": "34.2.0",
- "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-editor-inline/-/ckeditor5-editor-inline-34.2.0.tgz",
- "integrity": "sha512-AakaKeqbDaSjliaXjGvkoC8NSK/o19DI9NEw21cAFqV/fTTaVEx5dv0HUoODLX9dKajvrB6iSCbEkenTEY4CpA==",
+ "node_modules/@ckeditor/ckeditor5-editor-classic": {
+ "version": "36.0.1",
+ "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-editor-classic/-/ckeditor5-editor-classic-36.0.1.tgz",
+ "integrity": "sha512-/euO79HzgIxILgxbqpGaMxO3f2BSGazljAGTc+aGJQ4bs9YnkxpeCc2wxYXuUzMNev2vVqhaPTvRJzg2Bb2r9w==",
"dev": true,
"dependencies": {
- "ckeditor5": "^34.2.0",
+ "ckeditor5": "^36.0.1",
"lodash-es": "^4.17.15"
},
"engines": {
@@ -2529,12 +2360,12 @@
}
},
"node_modules/@ckeditor/ckeditor5-engine": {
- "version": "34.2.0",
- "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-engine/-/ckeditor5-engine-34.2.0.tgz",
- "integrity": "sha512-9/i6TZ+Sy5T6hnuCtmeLTfwLSY8LaS7qFkW6gsM9NEB+LSSu930GP0Ss30Nw6dYo/JmYiQEpkiRJzKYIjrH8Pg==",
+ "version": "36.0.1",
+ "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-engine/-/ckeditor5-engine-36.0.1.tgz",
+ "integrity": "sha512-Ze2omTguUggwiL9vvLvPk+QpjEBbIOPS1Hi/ROYlsW8QSdnPbSTv+6rCIYThqJMFeonxLZWV5XwbcqpgSAs0MA==",
"dev": true,
"dependencies": {
- "@ckeditor/ckeditor5-utils": "^34.2.0",
+ "@ckeditor/ckeditor5-utils": "^36.0.1",
"lodash-es": "^4.17.15"
},
"engines": {
@@ -2543,14 +2374,13 @@
}
},
"node_modules/@ckeditor/ckeditor5-enter": {
- "version": "34.2.0",
- "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-enter/-/ckeditor5-enter-34.2.0.tgz",
- "integrity": "sha512-QxaT3jH0qsZaE0Egj1D19o6YBz/EJKs0am5ny5hDnd5sntvIUk9PNGEu/v3mRmNqZqrhRu4BuedvdRzYWseUjw==",
+ "version": "36.0.1",
+ "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-enter/-/ckeditor5-enter-36.0.1.tgz",
+ "integrity": "sha512-FHZ43bltDGFyihfBOTwBOgsS2mMU2ATR9xxFEKlDP+8+P1bq4e0YkC3t4PuwtHIZMvNHiFxqvmFtA2eznGS7sQ==",
"dev": true,
"dependencies": {
- "@ckeditor/ckeditor5-core": "^34.2.0",
- "@ckeditor/ckeditor5-engine": "^34.2.0",
- "@ckeditor/ckeditor5-utils": "^34.2.0"
+ "@ckeditor/ckeditor5-core": "^36.0.1",
+ "@ckeditor/ckeditor5-engine": "^36.0.1"
},
"engines": {
"node": ">=14.0.0",
@@ -2558,12 +2388,12 @@
}
},
"node_modules/@ckeditor/ckeditor5-essentials": {
- "version": "34.2.0",
- "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-essentials/-/ckeditor5-essentials-34.2.0.tgz",
- "integrity": "sha512-1FID6r3CknWPdQQavT5U+OQ9+GwQQNI6hJNhWCfPxtvYhtR/SQp/MV+Lsn2e5Kt9VkCQkN7HdeYp5vumT84BZw==",
+ "version": "36.0.1",
+ "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-essentials/-/ckeditor5-essentials-36.0.1.tgz",
+ "integrity": "sha512-f6yEeSA75/hAqK+hZ09LnUj+2PSXFSTHFBzC32WKr+e2qlTx3/mArvwnnQcTj7lo7SuUmctpg7X5DD3/Rcg+HA==",
"dev": true,
"dependencies": {
- "ckeditor5": "^34.2.0"
+ "ckeditor5": "^36.0.1"
},
"engines": {
"node": ">=14.0.0",
@@ -2571,14 +2401,14 @@
}
},
"node_modules/@ckeditor/ckeditor5-find-and-replace": {
- "version": "34.2.0",
- "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-find-and-replace/-/ckeditor5-find-and-replace-34.2.0.tgz",
- "integrity": "sha512-tpIfWGf6CqKtxv5WXNAotaPV1pl+Obwstmk0N81cw7a3pSR5dCs4EiwJMY2n0RrxB4U/IhoEpLXz8Vo9pCUpCw==",
+ "version": "36.0.1",
+ "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-find-and-replace/-/ckeditor5-find-and-replace-36.0.1.tgz",
+ "integrity": "sha512-UX8sAEpuUy017EMDrQqrKy+T6UkmXOezi1SNdtG/AdxUhvtD4yDjwAaFLnbMTMyDUFor21Tao3Lvs6aj5n4r4w==",
"dev": true,
"dependencies": {
- "@ckeditor/ckeditor5-ui": "^34.2.0",
- "@ckeditor/ckeditor5-utils": "^34.2.0",
- "ckeditor5": "^34.2.0",
+ "@ckeditor/ckeditor5-ui": "^36.0.1",
+ "@ckeditor/ckeditor5-utils": "^36.0.1",
+ "ckeditor5": "^36.0.1",
"lodash-es": "^4.17.15"
},
"engines": {
@@ -2587,12 +2417,12 @@
}
},
"node_modules/@ckeditor/ckeditor5-font": {
- "version": "34.2.0",
- "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-font/-/ckeditor5-font-34.2.0.tgz",
- "integrity": "sha512-hSTxD0D+ad8yNsyM8a3SXvqes7oQah1PEcC3CG3jXmVnVjikWd+iAL959R2UnkJBSY5AZKgF3MCFC69pBIBdxQ==",
+ "version": "36.0.1",
+ "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-font/-/ckeditor5-font-36.0.1.tgz",
+ "integrity": "sha512-mn6nAG9AQ7bC7ywsEf5+pE09yhPSGupttfZ94bzjqTtQAAEahkiD/ympzfypWyJWCkTUlqa0/ZmF22nqcNlTEQ==",
"dev": true,
"dependencies": {
- "ckeditor5": "^34.2.0"
+ "ckeditor5": "^36.0.1"
},
"engines": {
"node": ">=14.0.0",
@@ -2600,12 +2430,12 @@
}
},
"node_modules/@ckeditor/ckeditor5-heading": {
- "version": "34.2.0",
- "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-heading/-/ckeditor5-heading-34.2.0.tgz",
- "integrity": "sha512-I/0H06LvksVPW99g2uGb6vQUX/T7o9DAUF1dMcCC5SgSXsqDmO3pdC50uKwSeLaqUxUhVFF0mjBo0inQZVX9fQ==",
+ "version": "36.0.1",
+ "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-heading/-/ckeditor5-heading-36.0.1.tgz",
+ "integrity": "sha512-elVL6y8kFFB4wCjmVTYsbx5vFoNCsPn9fAJ4/T2tElb9wszs4BsbMjScUNwVomOxuSPy3x6Qt4HG1NFVoh1FKg==",
"dev": true,
"dependencies": {
- "ckeditor5": "^34.2.0"
+ "ckeditor5": "^36.0.1"
},
"engines": {
"node": ">=14.0.0",
@@ -2613,12 +2443,12 @@
}
},
"node_modules/@ckeditor/ckeditor5-horizontal-line": {
- "version": "34.2.0",
- "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-horizontal-line/-/ckeditor5-horizontal-line-34.2.0.tgz",
- "integrity": "sha512-BblqWFHOGB4fcKsHm6uH8gkvKA3+76hEBauovqOQLzgAvfC4zNpvcOVrt24hoF7b818Iisgea88eslljL4yX7A==",
+ "version": "36.0.1",
+ "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-horizontal-line/-/ckeditor5-horizontal-line-36.0.1.tgz",
+ "integrity": "sha512-ht3mRhImB4BNVYzr73k8syOiXLM3UNBBvaPGmbFylXiAj9+Hbh4EFR0i8e1v5fFCtGBMilBRZeFN1QlMYXHtvg==",
"dev": true,
"dependencies": {
- "ckeditor5": "^34.2.0"
+ "ckeditor5": "^36.0.1"
},
"engines": {
"node": ">=14.0.0",
@@ -2626,12 +2456,12 @@
}
},
"node_modules/@ckeditor/ckeditor5-html-support": {
- "version": "34.2.0",
- "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-html-support/-/ckeditor5-html-support-34.2.0.tgz",
- "integrity": "sha512-al5WbJ+pMB9YUhOnx9k9haAo28WNe06wZSvDiPL+wpBmZ+Xa9vZnVS4Rf/H4PSZjQT/GnOkeo5vdEhSjd5bA4Q==",
+ "version": "36.0.1",
+ "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-html-support/-/ckeditor5-html-support-36.0.1.tgz",
+ "integrity": "sha512-ofOZb+RKKNXikbigyArewijN5lnmCFDUp5k9GTUWpjDCNwEgx+sdBU6qqMKqciJGxY4/gM4qLJ4VQ56dv7r0Wg==",
"dev": true,
"dependencies": {
- "ckeditor5": "^34.2.0",
+ "ckeditor5": "^36.0.1",
"lodash-es": "^4.17.15"
},
"engines": {
@@ -2640,13 +2470,13 @@
}
},
"node_modules/@ckeditor/ckeditor5-image": {
- "version": "34.2.0",
- "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-image/-/ckeditor5-image-34.2.0.tgz",
- "integrity": "sha512-JY6uETyhIFjOk4kky6HrpNg8JFYVz0mU654qZ7o+a5J+L55cOIC8JDMA8VUa5Opn2XDwZb4Q91ArX1hIJSGRQA==",
+ "version": "36.0.1",
+ "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-image/-/ckeditor5-image-36.0.1.tgz",
+ "integrity": "sha512-HElSvvBXL4kmwtwrAw28oIuJN1gXMr0kOYnR+sLkJGlfeymOQ4RKEqW3vOPMmN6s2RMJVoNkpytPbhzalFn3Sg==",
"dev": true,
"dependencies": {
- "@ckeditor/ckeditor5-ui": "^34.2.0",
- "ckeditor5": "^34.2.0",
+ "@ckeditor/ckeditor5-ui": "^36.0.1",
+ "ckeditor5": "^36.0.1",
"lodash-es": "^4.17.15"
},
"engines": {
@@ -2655,12 +2485,12 @@
}
},
"node_modules/@ckeditor/ckeditor5-indent": {
- "version": "34.2.0",
- "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-indent/-/ckeditor5-indent-34.2.0.tgz",
- "integrity": "sha512-6yGuUI06C6bTpNXvUXh5/AbmYoV0FvUW23wIsarml2SgdBi/NCFDHCJsFcJn33uRQgEuZHaO2ORhOe6yQfBBFQ==",
+ "version": "36.0.1",
+ "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-indent/-/ckeditor5-indent-36.0.1.tgz",
+ "integrity": "sha512-3E+3UCP9Krr41yP8g5a/QmJEJCChOFWdrLShi0YYODkJlhI/UUJFWVDTx54x1GnnDhXt8HhpOVGHCo14+KuRfA==",
"dev": true,
"dependencies": {
- "ckeditor5": "^34.2.0"
+ "ckeditor5": "^36.0.1"
},
"engines": {
"node": ">=14.0.0",
@@ -2678,13 +2508,13 @@
}
},
"node_modules/@ckeditor/ckeditor5-link": {
- "version": "34.2.0",
- "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-link/-/ckeditor5-link-34.2.0.tgz",
- "integrity": "sha512-rqw2Pu3NY2VTE6hpeLoOnH2FOMRZLZgo2biWVitHR9upzv1x50PngJujoaWerTB4dHbWz+W2M1uc+UZADm/P1A==",
+ "version": "36.0.1",
+ "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-link/-/ckeditor5-link-36.0.1.tgz",
+ "integrity": "sha512-u0E22wCzgAWMlg5BemYAUHws6zausSek+tmI6VmTRibogsUsfso3JnWI0RXNiEd4i2w1wRspvb9S/D8iy7n4fA==",
"dev": true,
"dependencies": {
- "@ckeditor/ckeditor5-ui": "^34.2.0",
- "ckeditor5": "^34.2.0",
+ "@ckeditor/ckeditor5-ui": "^36.0.1",
+ "ckeditor5": "^36.0.1",
"lodash-es": "^4.17.15"
},
"engines": {
@@ -2693,27 +2523,13 @@
}
},
"node_modules/@ckeditor/ckeditor5-list": {
- "version": "34.2.0",
- "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-list/-/ckeditor5-list-34.2.0.tgz",
- "integrity": "sha512-mP/XlvFDDQL4PDKOZuFWPHtRikSPbx6vARh/2INTsa41AURN35O86hESTwMhz+ZqmTe4av1KRPZYtVhgS3xGeA==",
+ "version": "36.0.1",
+ "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-list/-/ckeditor5-list-36.0.1.tgz",
+ "integrity": "sha512-v4h5iXCqbOpjaiQRZNp1SExU7BzKfcDU9VUGZpUzFLC0S1JKVO1DAJKMxhqgUCvgGrTOrYHZoGaqNWQZXXwZQg==",
"dev": true,
"dependencies": {
- "@ckeditor/ckeditor5-ui": "^34.2.0",
- "ckeditor5": "^34.2.0"
- },
- "engines": {
- "node": ">=14.0.0",
- "npm": ">=5.7.1"
- }
- },
- "node_modules/@ckeditor/ckeditor5-media-embed": {
- "version": "34.2.0",
- "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-media-embed/-/ckeditor5-media-embed-34.2.0.tgz",
- "integrity": "sha512-XQxTAwtZ0Fe6eph+5equH8DGtcHMj6ktJ54g/aQKyC4UxHb5JFSQ8y9Ud0IQfH12lT1uyagDOnC8rY2AUKGBGA==",
- "dev": true,
- "dependencies": {
- "@ckeditor/ckeditor5-ui": "^34.2.0",
- "ckeditor5": "^34.2.0"
+ "@ckeditor/ckeditor5-ui": "^36.0.1",
+ "ckeditor5": "^36.0.1"
},
"engines": {
"node": ">=14.0.0",
@@ -2721,27 +2537,14 @@
}
},
"node_modules/@ckeditor/ckeditor5-paragraph": {
- "version": "34.2.0",
- "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-paragraph/-/ckeditor5-paragraph-34.2.0.tgz",
- "integrity": "sha512-xcXUsXz3PY355gJ8u+y0qFLWcScYo0CZPZSbs5YwDz7g9lV8foVVzzdW7ITYwr5/YIpJsjjxYC+dDUqsH6EpBQ==",
+ "version": "36.0.1",
+ "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-paragraph/-/ckeditor5-paragraph-36.0.1.tgz",
+ "integrity": "sha512-NF1PH9WVfY81vkohj6GV1W/u1ogbZnfy60wrDy8Qp3iaFK1LJBsKNz3q1tf0WkBghaX/MUjR9E06l/OrTtaTZw==",
"dev": true,
"dependencies": {
- "@ckeditor/ckeditor5-core": "^34.2.0",
- "@ckeditor/ckeditor5-ui": "^34.2.0",
- "@ckeditor/ckeditor5-utils": "^34.2.0"
- },
- "engines": {
- "node": ">=14.0.0",
- "npm": ">=5.7.1"
- }
- },
- "node_modules/@ckeditor/ckeditor5-paste-from-office": {
- "version": "34.2.0",
- "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-paste-from-office/-/ckeditor5-paste-from-office-34.2.0.tgz",
- "integrity": "sha512-NT3NYBeQqibswfj5w1WjvaXFk1XPMjiJZQKR8qoi5o5jH7bwmhlnsZM7cZdYgZHS8rX6JSLAtD6A1XRD3deRfQ==",
- "dev": true,
- "dependencies": {
- "ckeditor5": "^34.2.0"
+ "@ckeditor/ckeditor5-core": "^36.0.1",
+ "@ckeditor/ckeditor5-ui": "^36.0.1",
+ "@ckeditor/ckeditor5-utils": "^36.0.1"
},
"engines": {
"node": ">=14.0.0",
@@ -2749,12 +2552,12 @@
}
},
"node_modules/@ckeditor/ckeditor5-remove-format": {
- "version": "34.2.0",
- "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-remove-format/-/ckeditor5-remove-format-34.2.0.tgz",
- "integrity": "sha512-3eYXu5SUusnoqllEJnXN2mvtJW26W73ntNxEj+5JTdZ5TxvZurqSUJM00GQuDXdoyZN52SOFz980rgbszegMEg==",
+ "version": "36.0.1",
+ "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-remove-format/-/ckeditor5-remove-format-36.0.1.tgz",
+ "integrity": "sha512-bOE4s5e+DiTujGm7L2AQLOtv4/hV5dQkv3czrC3OZ6wtXxAnSYHb3wWPUeIrtJTOisri4Pf9oL6If7uFKWkZNg==",
"dev": true,
"dependencies": {
- "ckeditor5": "^34.2.0"
+ "ckeditor5": "^36.0.1"
},
"engines": {
"node": ">=14.0.0",
@@ -2762,14 +2565,14 @@
}
},
"node_modules/@ckeditor/ckeditor5-select-all": {
- "version": "34.2.0",
- "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-select-all/-/ckeditor5-select-all-34.2.0.tgz",
- "integrity": "sha512-/Va85RwNlmpgQ7vWxiAFLyzXhXrWiA5Pde7yCNcc6hJpqnaGcqvscOJoZLMk5oASTvMnPhQIgNSMDN/oq6ej0Q==",
+ "version": "36.0.1",
+ "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-select-all/-/ckeditor5-select-all-36.0.1.tgz",
+ "integrity": "sha512-8rPxcenTAoqXy1gleZvfsc7VD0IltPFq8R+blD4JL+sSMMDUtKhPuok4TA9h6Yh0nP6LfRK2fBUKIWH3xRPABg==",
"dev": true,
"dependencies": {
- "@ckeditor/ckeditor5-core": "^34.2.0",
- "@ckeditor/ckeditor5-ui": "^34.2.0",
- "@ckeditor/ckeditor5-utils": "^34.2.0"
+ "@ckeditor/ckeditor5-core": "^36.0.1",
+ "@ckeditor/ckeditor5-ui": "^36.0.1",
+ "@ckeditor/ckeditor5-utils": "^36.0.1"
},
"engines": {
"node": ">=14.0.0",
@@ -2777,13 +2580,13 @@
}
},
"node_modules/@ckeditor/ckeditor5-source-editing": {
- "version": "34.2.0",
- "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-source-editing/-/ckeditor5-source-editing-34.2.0.tgz",
- "integrity": "sha512-FI/2czbYl58M5mkIOtokeidGTqAcxZyOZ5PsC7Mx06o7PNnNsW7/vjG7U5i2jpnWweSfZPyGVb3P5xLfgJQ0xg==",
+ "version": "36.0.1",
+ "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-source-editing/-/ckeditor5-source-editing-36.0.1.tgz",
+ "integrity": "sha512-8Hxbmt60G530zDhpVHDeY+USdRKrdGn0spx1YREVbWAhQ1kMV6FUWDGtDJx9Rbj8BRe19AtlT40ctSbKS/XVzQ==",
"dev": true,
"dependencies": {
- "@ckeditor/ckeditor5-theme-lark": "^34.2.0",
- "ckeditor5": "^34.2.0"
+ "@ckeditor/ckeditor5-theme-lark": "^36.0.1",
+ "ckeditor5": "^36.0.1"
},
"engines": {
"node": ">=14.0.0",
@@ -2791,12 +2594,12 @@
}
},
"node_modules/@ckeditor/ckeditor5-special-characters": {
- "version": "34.2.0",
- "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-special-characters/-/ckeditor5-special-characters-34.2.0.tgz",
- "integrity": "sha512-7et0PY5MZaPwOpEz7pdajxm3ENVzRAuh4RBG0TyV6aJHbK/Z8d3FJM8S3dse/DiwzOf+oTQVOWALIx2cNYBcUA==",
+ "version": "36.0.1",
+ "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-special-characters/-/ckeditor5-special-characters-36.0.1.tgz",
+ "integrity": "sha512-vYloQvPPU1aGJAkjDWTZvU9BbK7CLsyVg8FV+NSSbdPKAY6K4IPS52jvbCDZBHQqzmeFVEy5U8iMhbZxYdkI6g==",
"dev": true,
"dependencies": {
- "ckeditor5": "^34.2.0"
+ "ckeditor5": "^36.0.1"
},
"engines": {
"node": ">=14.0.0",
@@ -2804,12 +2607,12 @@
}
},
"node_modules/@ckeditor/ckeditor5-table": {
- "version": "34.2.0",
- "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-table/-/ckeditor5-table-34.2.0.tgz",
- "integrity": "sha512-ALJAldO7x+gvY7AeOg7j9PuG0ftQekkPTN3QvLHMqDFBfeRh76fK7xPGz+A42DeSFGIcMQ8IS9jpiT4PRKC7cw==",
+ "version": "36.0.1",
+ "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-table/-/ckeditor5-table-36.0.1.tgz",
+ "integrity": "sha512-ishbq3Rp8n7aypswmbqAVWT5W0iYZfAfm6wS+dpSoFqzAPX6ko8+bnoTkq+Wbs1S4+JDaua7QOJw9A1L1cv17A==",
"dev": true,
"dependencies": {
- "ckeditor5": "^34.2.0",
+ "ckeditor5": "^36.0.1",
"lodash-es": "^4.17.15"
},
"engines": {
@@ -2818,12 +2621,12 @@
}
},
"node_modules/@ckeditor/ckeditor5-theme-lark": {
- "version": "34.2.0",
- "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-theme-lark/-/ckeditor5-theme-lark-34.2.0.tgz",
- "integrity": "sha512-oXFtkgUs7g6u9n4KwXflLptsqIh+XMHyuZXq1//iBLKFQKpCM0NVvf7fPM4hZNKB96/khxN238hSH5bHstS6Zw==",
+ "version": "36.0.1",
+ "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-theme-lark/-/ckeditor5-theme-lark-36.0.1.tgz",
+ "integrity": "sha512-R7VnSjET52mxHEAt6+GxSHmBKddsRjkVHDxbd13GTkDl01SKjbYfVF+Ek6iVuf6eVyNu6eedRJugShZSsHhXiA==",
"dev": true,
"dependencies": {
- "@ckeditor/ckeditor5-ui": "^34.2.0"
+ "@ckeditor/ckeditor5-ui": "^36.0.1"
},
"engines": {
"node": ">=14.0.0",
@@ -2831,14 +2634,14 @@
}
},
"node_modules/@ckeditor/ckeditor5-typing": {
- "version": "34.2.0",
- "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-typing/-/ckeditor5-typing-34.2.0.tgz",
- "integrity": "sha512-Eq8mhb8M7RwUmeVUantN+PrqxDELXCvLCcpixy+ge/5lM8wxVcn/SonfUL9PLqs2eluRc4Bx+mstMQySglkVkw==",
+ "version": "36.0.1",
+ "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-typing/-/ckeditor5-typing-36.0.1.tgz",
+ "integrity": "sha512-NwXQxNxf/LLANiiteEVaLr1ZzvJd7y6+O5a6x0Tv9Uuheu80aw2Axm3icneODt05G/XT+iJmCHzUYdEiCsHUaw==",
"dev": true,
"dependencies": {
- "@ckeditor/ckeditor5-core": "^34.2.0",
- "@ckeditor/ckeditor5-engine": "^34.2.0",
- "@ckeditor/ckeditor5-utils": "^34.2.0",
+ "@ckeditor/ckeditor5-core": "^36.0.1",
+ "@ckeditor/ckeditor5-engine": "^36.0.1",
+ "@ckeditor/ckeditor5-utils": "^36.0.1",
"lodash-es": "^4.17.15"
},
"engines": {
@@ -2847,13 +2650,13 @@
}
},
"node_modules/@ckeditor/ckeditor5-ui": {
- "version": "34.2.0",
- "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-ui/-/ckeditor5-ui-34.2.0.tgz",
- "integrity": "sha512-XL561G/e3b1YLGHNjLxS9IgoVn4BSugHmidEXYNUTMLATRCKld1XMUKFsB/wm3DwLBUfWn4d2j3qdcO2CnDuBg==",
+ "version": "36.0.1",
+ "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-ui/-/ckeditor5-ui-36.0.1.tgz",
+ "integrity": "sha512-wPqAdXUZnEAD3XPvS5vEGU2kxzTQah3wne3B1esdlbJ7dSLZDdx8r1dyKyp3/WCpCT8G+PqGvSUrlnqcy7WI5A==",
"dev": true,
"dependencies": {
- "@ckeditor/ckeditor5-core": "^34.2.0",
- "@ckeditor/ckeditor5-utils": "^34.2.0",
+ "@ckeditor/ckeditor5-core": "^36.0.1",
+ "@ckeditor/ckeditor5-utils": "^36.0.1",
"lodash-es": "^4.17.15"
},
"engines": {
@@ -2862,14 +2665,14 @@
}
},
"node_modules/@ckeditor/ckeditor5-undo": {
- "version": "34.2.0",
- "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-undo/-/ckeditor5-undo-34.2.0.tgz",
- "integrity": "sha512-WW3f6ku36DpKhUxXACfNFm2DaKcJ2Rz0EFEkol0+offpOjltJnUEJ7LvfOthGdMvGz+5lmnySTbkvOvNruq1Ew==",
+ "version": "36.0.1",
+ "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-undo/-/ckeditor5-undo-36.0.1.tgz",
+ "integrity": "sha512-TBm6TAnur59f5hqlgUZ89NV3cPQw0xqqpSuVMFrvFruPmPiIay2E34Mapb5KRXr83AEPhNN8GAE2YM7HmMqKrQ==",
"dev": true,
"dependencies": {
- "@ckeditor/ckeditor5-core": "^34.2.0",
- "@ckeditor/ckeditor5-engine": "^34.2.0",
- "@ckeditor/ckeditor5-ui": "^34.2.0"
+ "@ckeditor/ckeditor5-core": "^36.0.1",
+ "@ckeditor/ckeditor5-engine": "^36.0.1",
+ "@ckeditor/ckeditor5-ui": "^36.0.1"
},
"engines": {
"node": ">=14.0.0",
@@ -2877,14 +2680,14 @@
}
},
"node_modules/@ckeditor/ckeditor5-upload": {
- "version": "34.2.0",
- "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-upload/-/ckeditor5-upload-34.2.0.tgz",
- "integrity": "sha512-HBJr0/wFE+R13aIXRF/xJVQqo6Yh34EgbnrNYYhlNiHG40Vr6079eCuoZrnY3vwEsjtFNnTRQ433+RqxJ652zw==",
+ "version": "36.0.1",
+ "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-upload/-/ckeditor5-upload-36.0.1.tgz",
+ "integrity": "sha512-932vnvO++SzfZ6EpNkOj6PPKN6vVgn5aW3gu0c1D51cF9KkCFiaMhBDsOzDRVvq/bbnDqUQ9v3j1cNo2UlC8oA==",
"dev": true,
"dependencies": {
- "@ckeditor/ckeditor5-core": "^34.2.0",
- "@ckeditor/ckeditor5-ui": "^34.2.0",
- "@ckeditor/ckeditor5-utils": "^34.2.0"
+ "@ckeditor/ckeditor5-core": "^36.0.1",
+ "@ckeditor/ckeditor5-ui": "^36.0.1",
+ "@ckeditor/ckeditor5-utils": "^36.0.1"
},
"engines": {
"node": ">=14.0.0",
@@ -2892,9 +2695,9 @@
}
},
"node_modules/@ckeditor/ckeditor5-utils": {
- "version": "34.2.0",
- "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-utils/-/ckeditor5-utils-34.2.0.tgz",
- "integrity": "sha512-jHJV2S8DzmpVvd3jdercY6HsGRAwpm/MK79Rs/Mrc3NNYKzN9SVFs/NLbrELNoMZeJ1WKt5BwKgBY+PEOpfyLw==",
+ "version": "36.0.1",
+ "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-utils/-/ckeditor5-utils-36.0.1.tgz",
+ "integrity": "sha512-TW/YRb0OQe88IyqRoq2xS02iXOG82NQybzMuFDnGyCaFV0hA/9ysOyWwFpxDLcPDhDgVJZIxuwvFaek9x+uCMA==",
"dev": true,
"dependencies": {
"lodash-es": "^4.17.15"
@@ -2915,17 +2718,17 @@
}
},
"node_modules/@ckeditor/ckeditor5-widget": {
- "version": "34.2.0",
- "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-widget/-/ckeditor5-widget-34.2.0.tgz",
- "integrity": "sha512-h2iF/RRK+GjvVHb6VY7+slnIV+IdWdLfZS83OECQNYp2e+6kN/JZp+PxiyYC4asPTraL43zJGzlgT53Jof77vw==",
+ "version": "36.0.1",
+ "resolved": "https://registry.npmjs.org/@ckeditor/ckeditor5-widget/-/ckeditor5-widget-36.0.1.tgz",
+ "integrity": "sha512-on92cCRYLWTfwrpnFi5z4FY7NDhY+X+p6yuYStnB9d9jM3FJi3/7y2q9ojr8fSMot4pQsXCiFXzaF6yez+77wA==",
"dev": true,
"dependencies": {
- "@ckeditor/ckeditor5-core": "^34.2.0",
- "@ckeditor/ckeditor5-engine": "^34.2.0",
- "@ckeditor/ckeditor5-enter": "^34.2.0",
- "@ckeditor/ckeditor5-typing": "^34.2.0",
- "@ckeditor/ckeditor5-ui": "^34.2.0",
- "@ckeditor/ckeditor5-utils": "^34.2.0",
+ "@ckeditor/ckeditor5-core": "^36.0.1",
+ "@ckeditor/ckeditor5-engine": "^36.0.1",
+ "@ckeditor/ckeditor5-enter": "^36.0.1",
+ "@ckeditor/ckeditor5-typing": "^36.0.1",
+ "@ckeditor/ckeditor5-ui": "^36.0.1",
+ "@ckeditor/ckeditor5-utils": "^36.0.1",
"lodash-es": "^4.17.15"
},
"engines": {
@@ -6163,23 +5966,23 @@
"dev": true
},
"node_modules/ckeditor5": {
- "version": "34.2.0",
- "resolved": "https://registry.npmjs.org/ckeditor5/-/ckeditor5-34.2.0.tgz",
- "integrity": "sha512-CxSMAzpN20HYZJQRw0AQJ/saLLXMz3qBywZOo0IKxVwwUE96PZudV08G/OjgciGrzQ/GjhpW/C+wdciMQ4cpzQ==",
+ "version": "36.0.1",
+ "resolved": "https://registry.npmjs.org/ckeditor5/-/ckeditor5-36.0.1.tgz",
+ "integrity": "sha512-9zKX7WIRKSDviM0s41VvW8JtDiRtNrhwrzYj4XCjGpZyIXsUKttdJYHIP5iP1MdfZU/hCvpgSUn2fmRPxFbg+Q==",
"dev": true,
"dependencies": {
- "@ckeditor/ckeditor5-clipboard": "^34.2.0",
- "@ckeditor/ckeditor5-core": "^34.2.0",
- "@ckeditor/ckeditor5-engine": "^34.2.0",
- "@ckeditor/ckeditor5-enter": "^34.2.0",
- "@ckeditor/ckeditor5-paragraph": "^34.2.0",
- "@ckeditor/ckeditor5-select-all": "^34.2.0",
- "@ckeditor/ckeditor5-typing": "^34.2.0",
- "@ckeditor/ckeditor5-ui": "^34.2.0",
- "@ckeditor/ckeditor5-undo": "^34.2.0",
- "@ckeditor/ckeditor5-upload": "^34.2.0",
- "@ckeditor/ckeditor5-utils": "^34.2.0",
- "@ckeditor/ckeditor5-widget": "^34.2.0"
+ "@ckeditor/ckeditor5-clipboard": "^36.0.1",
+ "@ckeditor/ckeditor5-core": "^36.0.1",
+ "@ckeditor/ckeditor5-engine": "^36.0.1",
+ "@ckeditor/ckeditor5-enter": "^36.0.1",
+ "@ckeditor/ckeditor5-paragraph": "^36.0.1",
+ "@ckeditor/ckeditor5-select-all": "^36.0.1",
+ "@ckeditor/ckeditor5-typing": "^36.0.1",
+ "@ckeditor/ckeditor5-ui": "^36.0.1",
+ "@ckeditor/ckeditor5-undo": "^36.0.1",
+ "@ckeditor/ckeditor5-upload": "^36.0.1",
+ "@ckeditor/ckeditor5-utils": "^36.0.1",
+ "@ckeditor/ckeditor5-widget": "^36.0.1"
},
"engines": {
"node": ">=14.0.0",
@@ -6187,19 +5990,19 @@
}
},
"node_modules/ckeditor5-math": {
- "version": "34.1.1",
- "resolved": "https://registry.npmjs.org/ckeditor5-math/-/ckeditor5-math-34.1.1.tgz",
- "integrity": "sha512-KS0YDwXpqa1oojHVsCQyHZbpM/PJ1sGtHgeWk3yWd/gIICJ1/iDqH9dTycTHJrcCwPoZAfJNC/iPGD732H74XQ==",
+ "version": "36.0.2",
+ "resolved": "https://registry.npmjs.org/ckeditor5-math/-/ckeditor5-math-36.0.2.tgz",
+ "integrity": "sha512-7KZbMxF/yjwZ47xt8U3jgP8xS7cYX9RR991f1FdyI1ThSUBtqWkAJj28xAnE7pOzEzQbBamzzBuhj/vruA00Rg==",
"dev": true,
"dependencies": {
- "@ckeditor/ckeditor5-clipboard": "^34.1.0",
- "@ckeditor/ckeditor5-core": "^34.1.0",
- "@ckeditor/ckeditor5-engine": "^34.1.0",
+ "@ckeditor/ckeditor5-clipboard": "^36.0.1",
+ "@ckeditor/ckeditor5-core": "^36.0.1",
+ "@ckeditor/ckeditor5-engine": "^36.0.1",
"@ckeditor/ckeditor5-inspector": "^3.0.0",
- "@ckeditor/ckeditor5-ui": "^34.1.0",
- "@ckeditor/ckeditor5-undo": "^34.1.0",
- "@ckeditor/ckeditor5-utils": "^34.1.0",
- "@ckeditor/ckeditor5-widget": "^34.1.0"
+ "@ckeditor/ckeditor5-ui": "^36.0.1",
+ "@ckeditor/ckeditor5-undo": "^36.0.1",
+ "@ckeditor/ckeditor5-utils": "^36.0.1",
+ "@ckeditor/ckeditor5-widget": "^36.0.1"
},
"engines": {
"node": ">=14.0.0",
@@ -8287,27 +8090,35 @@
}
},
"node_modules/escodegen": {
- "version": "1.14.3",
- "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz",
- "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz",
+ "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==",
"dev": true,
"dependencies": {
"esprima": "^4.0.1",
- "estraverse": "^4.2.0",
- "esutils": "^2.0.2",
- "optionator": "^0.8.1"
+ "estraverse": "^5.2.0",
+ "esutils": "^2.0.2"
},
"bin": {
"escodegen": "bin/escodegen.js",
"esgenerate": "bin/esgenerate.js"
},
"engines": {
- "node": ">=4.0"
+ "node": ">=6.0"
},
"optionalDependencies": {
"source-map": "~0.6.1"
}
},
+ "node_modules/escodegen/node_modules/estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "dev": true,
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
"node_modules/eslint": {
"version": "7.32.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz",
@@ -8644,23 +8455,6 @@
"node": ">= 4"
}
},
- "node_modules/eslint/node_modules/optionator": {
- "version": "0.9.3",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz",
- "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==",
- "dev": true,
- "dependencies": {
- "@aashutoshrathi/word-wrap": "^1.2.3",
- "deep-is": "^0.1.3",
- "fast-levenshtein": "^2.0.6",
- "levn": "^0.4.1",
- "prelude-ls": "^1.2.1",
- "type-check": "^0.4.0"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
"node_modules/eslint/node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@@ -12102,36 +11896,6 @@
"node": ">=0.4.0"
}
},
- "node_modules/jsdom/node_modules/escodegen": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz",
- "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==",
- "dev": true,
- "dependencies": {
- "esprima": "^4.0.1",
- "estraverse": "^5.2.0",
- "esutils": "^2.0.2"
- },
- "bin": {
- "escodegen": "bin/escodegen.js",
- "esgenerate": "bin/esgenerate.js"
- },
- "engines": {
- "node": ">=6.0"
- },
- "optionalDependencies": {
- "source-map": "~0.6.1"
- }
- },
- "node_modules/jsdom/node_modules/estraverse": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
- "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
- "dev": true,
- "engines": {
- "node": ">=4.0"
- }
- },
"node_modules/jsesc": {
"version": "2.5.2",
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
@@ -13031,51 +12795,17 @@
}
},
"node_modules/optionator": {
- "version": "0.8.3",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
- "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
- "dev": true,
- "dependencies": {
- "deep-is": "~0.1.3",
- "fast-levenshtein": "~2.0.6",
- "levn": "~0.3.0",
- "prelude-ls": "~1.1.2",
- "type-check": "~0.3.2",
- "word-wrap": "~1.2.3"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/optionator/node_modules/levn": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
- "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==",
- "dev": true,
- "dependencies": {
- "prelude-ls": "~1.1.2",
- "type-check": "~0.3.2"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/optionator/node_modules/prelude-ls": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
- "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==",
- "dev": true,
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/optionator/node_modules/type-check": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
- "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==",
+ "version": "0.9.3",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz",
+ "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==",
"dev": true,
"dependencies": {
- "prelude-ls": "~1.1.2"
+ "@aashutoshrathi/word-wrap": "^1.2.3",
+ "deep-is": "^0.1.3",
+ "fast-levenshtein": "^2.0.6",
+ "levn": "^0.4.1",
+ "prelude-ls": "^1.2.1",
+ "type-check": "^0.4.0"
},
"engines": {
"node": ">= 0.8.0"
@@ -17169,15 +16899,6 @@
"node": ">= 10.0.0"
}
},
- "node_modules/word-wrap": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
- "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/wrap-ansi": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
diff --git a/package.json b/package.json
index d0d17fc..37aae5d 100644
--- a/package.json
+++ b/package.json
@@ -26,29 +26,35 @@
"@babel/plugin-transform-runtime": "^7.12.1",
"@babel/preset-env": "^7.12.1",
"@babel/register": "^7.12.1",
- "@ckeditor/ckeditor5-alignment": "34.2.0",
- "@ckeditor/ckeditor5-autoformat": "34.2.0",
- "@ckeditor/ckeditor5-basic-styles": "34.2.0",
- "@ckeditor/ckeditor5-build-classic": "34.2.0",
- "@ckeditor/ckeditor5-build-decoupled-document": "34.2.0",
- "@ckeditor/ckeditor5-build-inline": "34.2.0",
- "@ckeditor/ckeditor5-code-block": "34.2.0",
- "@ckeditor/ckeditor5-dev-utils": "^30.5.0",
- "@ckeditor/ckeditor5-dev-webpack-plugin": "^30.5.0",
- "@ckeditor/ckeditor5-essentials": "34.2.0",
- "@ckeditor/ckeditor5-find-and-replace": "34.2.0",
- "@ckeditor/ckeditor5-font": "34.2.0",
- "@ckeditor/ckeditor5-horizontal-line": "34.2.0",
- "@ckeditor/ckeditor5-html-support": "34.2.0",
- "@ckeditor/ckeditor5-indent": "34.2.0",
- "@ckeditor/ckeditor5-paragraph": "34.2.0",
- "@ckeditor/ckeditor5-remove-format": "34.2.0",
- "@ckeditor/ckeditor5-source-editing": "34.2.0",
- "@ckeditor/ckeditor5-special-characters": "34.2.0",
- "@ckeditor/ckeditor5-table": "34.2.0",
- "@ckeditor/ckeditor5-theme-lark": "34.2.0",
- "@ckeditor/ckeditor5-typing": "34.2.0",
- "@ckeditor/ckeditor5-upload": "34.2.0",
+ "@ckeditor/ckeditor5-alignment": "^36.x",
+ "@ckeditor/ckeditor5-autoformat": "^36.x",
+ "@ckeditor/ckeditor5-basic-styles": "^36.x",
+ "@ckeditor/ckeditor5-block-quote": "^36.x",
+ "@ckeditor/ckeditor5-code-block": "^36.x",
+ "@ckeditor/ckeditor5-core": "^36.x",
+ "@ckeditor/ckeditor5-dev-translations": "^36.x",
+ "@ckeditor/ckeditor5-dev-utils": "^36.x",
+ "@ckeditor/ckeditor5-easy-image": "^36.x",
+ "@ckeditor/ckeditor5-editor-balloon": "^36.x",
+ "@ckeditor/ckeditor5-editor-classic": "^36.x",
+ "@ckeditor/ckeditor5-essentials": "^36.x",
+ "@ckeditor/ckeditor5-find-and-replace": "^36.x",
+ "@ckeditor/ckeditor5-font": "^36.x",
+ "@ckeditor/ckeditor5-heading": "^36.x",
+ "@ckeditor/ckeditor5-horizontal-line": "^36.x",
+ "@ckeditor/ckeditor5-html-support": "^36.x",
+ "@ckeditor/ckeditor5-image": "^36.x",
+ "@ckeditor/ckeditor5-indent": "^36.x",
+ "@ckeditor/ckeditor5-link": "^36.x",
+ "@ckeditor/ckeditor5-list": "^36.x",
+ "@ckeditor/ckeditor5-paragraph": "^36.x",
+ "@ckeditor/ckeditor5-remove-format": "^36.x",
+ "@ckeditor/ckeditor5-source-editing": "^36.x",
+ "@ckeditor/ckeditor5-special-characters": "^36.x",
+ "@ckeditor/ckeditor5-table": "^36.x",
+ "@ckeditor/ckeditor5-theme-lark": "^36.x",
+ "@ckeditor/ckeditor5-typing": "^36.x",
+ "@ckeditor/ckeditor5-upload": "^36.x",
"@ckeditor/ckeditor5-vue2": "^3.0.1",
"@elan-ev/reststate-vuex": "~1.0.5",
"@fullcalendar/core": "^4.3.1",
@@ -72,7 +78,7 @@
"buffer": "^6.0.3",
"chart.js": "^2.9.4",
"chartist": "0.11.4",
- "ckeditor5-math": "34.1.1",
+ "ckeditor5-math": "^36.x",
"colorpare": "^2.2.0",
"cropperjs": "1.5.9",
"css-loader": "^5.0.1",
diff --git a/resources/assets/javascripts/chunk-loader.js b/resources/assets/javascripts/chunk-loader.js
index db613fd..d2da2a7 100644
--- a/resources/assets/javascripts/chunk-loader.js
+++ b/resources/assets/javascripts/chunk-loader.js
@@ -76,11 +76,9 @@ export const loadChunk = (function () {
case 'wysiwyg':
promise = import(
- /* webpackChunkName: "vue.js" */
+ /* webpackChunkName: "wysiwyg.js" */
'./chunks/wysiwyg'
- ).then(({default: ClassicEditor}) => {
- return ClassicEditor;
- });
+ );
break;
default:
diff --git a/resources/assets/javascripts/chunks/wysiwyg.js b/resources/assets/javascripts/chunks/wysiwyg.js
index b5161b1..fa218b2 100644
--- a/resources/assets/javascripts/chunks/wysiwyg.js
+++ b/resources/assets/javascripts/chunks/wysiwyg.js
@@ -1,305 +1,14 @@
-/* ckeditor official */
-import Alignment from '@ckeditor/ckeditor5-alignment/src/alignment';
-import Autoformat from '@ckeditor/ckeditor5-autoformat/src/autoformat';
-import BlockQuote from '@ckeditor/ckeditor5-block-quote/src/blockquote';
-import BoldPlugin from '@ckeditor/ckeditor5-basic-styles/src/bold';
-import ClassicEditorBase from '@ckeditor/ckeditor5-editor-classic/src/classiceditor';
-import CodeBlock from '@ckeditor/ckeditor5-code-block/src/codeblock';
-import EasyImagePlugin from '@ckeditor/ckeditor5-easy-image/src/easyimage';
-import EssentialsPlugin from '@ckeditor/ckeditor5-essentials/src/essentials';
-import FileRepository from '@ckeditor/ckeditor5-upload/src/filerepository';
-import FindAndReplace from '@ckeditor/ckeditor5-find-and-replace/src/findandreplace';
-import FontBackgroundColor from '@ckeditor/ckeditor5-font/src/fontbackgroundcolor.js';
-import FontColor from '@ckeditor/ckeditor5-font/src/fontcolor.js';
-import GeneralHtmlSupport from '@ckeditor/ckeditor5-html-support/src/generalhtmlsupport';
-import HeadingPlugin from '@ckeditor/ckeditor5-heading/src/heading';
-import HorizontalLine from '@ckeditor/ckeditor5-horizontal-line/src/horizontalline';
-import HtmlComment from '@ckeditor/ckeditor5-html-support/src/htmlcomment';
-import ImagePlugin from '@ckeditor/ckeditor5-image/src/image';
-import ImageUploadPlugin from '@ckeditor/ckeditor5-image/src/imageupload';
-import ImageCaptionPlugin from '@ckeditor/ckeditor5-image/src/imagecaption';
-import ImageResizePlugin from '@ckeditor/ckeditor5-image/src/imageresize';
-import ImageStylePlugin from '@ckeditor/ckeditor5-image/src/imagestyle';
-import ImageToolbarPlugin from '@ckeditor/ckeditor5-image/src/imagetoolbar';
-import Indent from '@ckeditor/ckeditor5-indent/src/indent';
-import IndentBlock from '@ckeditor/ckeditor5-indent/src/indentblock';
-import ItalicPlugin from '@ckeditor/ckeditor5-basic-styles/src/italic';
-import LanguageDe from '@ckeditor/ckeditor5-build-classic/build/translations/de.js';
-import LinkPlugin from '@ckeditor/ckeditor5-link/src/link';
-import List from '@ckeditor/ckeditor5-list/src/list';
-import ListProperties from '@ckeditor/ckeditor5-list/src/listproperties';
-import Paragraph from '@ckeditor/ckeditor5-paragraph/src/paragraph';
-import RemoveFormat from '@ckeditor/ckeditor5-remove-format/src/removeformat.js';
-import SourceEditing from '@ckeditor/ckeditor5-source-editing/src/sourceediting';
-import SpecialCharacters from '@ckeditor/ckeditor5-special-characters/src/specialcharacters.js';
-import SpecialCharactersCurrency from '@ckeditor/ckeditor5-special-characters/src/specialcharacterscurrency.js';
-import SpecialCharactersEssentials from '@ckeditor/ckeditor5-special-characters/src/specialcharactersessentials.js';
-import SpecialCharactersLatin from '@ckeditor/ckeditor5-special-characters/src/specialcharacterslatin.js';
-import SpecialCharactersMathematical from '@ckeditor/ckeditor5-special-characters/src/specialcharactersmathematical.js';
-import SpecialCharactersText from '@ckeditor/ckeditor5-special-characters/src/specialcharacterstext.js';
-import Strikethrough from '@ckeditor/ckeditor5-basic-styles/src/strikethrough.js';
-import Subscript from '@ckeditor/ckeditor5-basic-styles/src/subscript.js';
-import Superscript from '@ckeditor/ckeditor5-basic-styles/src/superscript.js';
-import Table from '@ckeditor/ckeditor5-table/src/table.js';
-import TableCaption from '@ckeditor/ckeditor5-table/src/tablecaption.js';
-import TableCellProperties from '@ckeditor/ckeditor5-table/src/tablecellproperties';
-import TableProperties from '@ckeditor/ckeditor5-table/src/tableproperties';
-import TableToolbar from '@ckeditor/ckeditor5-table/src/tabletoolbar.js';
-import TextTransformation from '@ckeditor/ckeditor5-typing/src/texttransformation';
-import Underline from '@ckeditor/ckeditor5-basic-styles/src/underline.js';
-/* ckeditor third party */
-import Mathematics from 'ckeditor5-math/src/math';
-/* ckeditor elan */
-import StudipA11YDialog, { updateVoiceLabel } from '../cke/studip-a11y-dialog/a11y-dialog.js';
-import StudipBlockQuote from '../cke/studip-quote/StudipBlockQuote.js';
-import StudipUpload from '../cke/StudipUpload.js';
-import StudipWikiLink from '../cke/wiki-link/wiki-link.js';
-import SpecialCharactersSmiley from '../cke/special_characters/SpecialCharactersSmiley.js';
-import SpecialCharactersGreek from '../cke/special_characters/SpecialCharactersGreek.js';
-import '../../stylesheets/scss/studip-cke-ui.scss';
-
-export default class ClassicEditor extends ClassicEditorBase {}
-
-ClassicEditor.builtinPlugins = [
- ImageUploadPlugin,
- Alignment,
- Autoformat,
- BlockQuote,
- BoldPlugin,
- CodeBlock,
- EssentialsPlugin,
- FindAndReplace,
- FontColor,
- FontBackgroundColor,
- GeneralHtmlSupport,
- HeadingPlugin,
- HorizontalLine,
- HtmlComment,
- ImageCaptionPlugin,
- ImagePlugin,
- ImageResizePlugin,
- ImageStylePlugin,
- ImageToolbarPlugin,
- Indent,
- IndentBlock,
- ItalicPlugin,
- LinkPlugin,
- ListProperties,
- Mathematics,
- Paragraph,
- RemoveFormat,
- SourceEditing,
- SpecialCharacters,
- SpecialCharactersCurrency,
- SpecialCharactersSmiley,
- SpecialCharactersEssentials,
- SpecialCharactersGreek,
- SpecialCharactersLatin,
- SpecialCharactersMathematical,
- SpecialCharactersText,
- Strikethrough,
- StudipBlockQuote,
- StudipUpload,
- Subscript,
- Superscript,
- Table,
- TableCaption,
- TableCellProperties,
- TableProperties,
- TableToolbar,
- TextTransformation,
- Underline,
- FileRepository,
- StudipA11YDialog,
-];
+import BalloonEditor, { createBalloonEditorFromTextarea } from '../cke/balloon-editor.js';
+import ClassicEditor, { createClassicEditorFromTextarea } from '../cke/classic-editor.js';
+import { updateVoiceLabel } from '../cke/studip-a11y-dialog/a11y-dialog.js';
-const customColorPalette = [
- { color: '#000000' },
- { color: '#6c737a' }, //75%
- { color: '#a7abaf' }, //45%
- { color: '#c4c7c9' }, //30%
- { color: '#ffffff', hasBorder: true },
-
- { color: '#cb1800' }, //red
- { color: '#f26e00' }, //pumpkin
- { color: '#ffbd33' }, //yellow
- { color: '#8bbd40' }, // apple green
- { color: '#00962d' }, //green
-
- { color: '#41afaa' }, //verdigris
- { color: '#a9b6cb' }, // blue 40%
- { color: '#28497c' }, // blue
- { color: '#bf5796' }, // mulberry
- { color: '#8656a2' }, // royal purple
-];
+import '../../stylesheets/scss/studip-cke-ui.scss';
-ClassicEditor.defaultConfig = {
- toolbar: {
- items: [
- 'undo',
- 'redo',
- 'findAndReplace',
- '|',
- 'bold',
- 'italic',
- 'underline',
- 'strikethrough',
- 'subscript',
- 'superscript',
- '|',
- 'removeFormat',
- '|',
- 'bulletedList',
- 'numberedList',
- '|',
- 'outdent',
- 'indent',
- '|',
- 'alignment:left',
- 'alignment:right',
- 'alignment:center',
- 'alignment:justify',
- '-',
- 'heading',
- 'fontColor',
- 'fontBackgroundColor',
- '|',
- 'link',
- 'insertTable',
- 'uploadImage',
- 'codeBlock',
- 'math',
- 'studip-wiki',
- 'specialCharacters',
- 'horizontalLine',
- '|',
- 'insertBlockQuote',
- 'splitBlockQuote',
- 'removeBlockQuote',
- '|',
- 'sourceEditing',
- ],
- shouldNotGroupWhenFull: true,
- },
- fontColor: {
- colors: customColorPalette,
- },
- fontBackgroundColor: {
- colors: customColorPalette,
- },
- image: {
- resizeOptions: [
- {
- name: 'resizeImage:original',
- value: null,
- icon: 'original'
- },
- {
- name: 'resizeImage:25',
- value: '25',
- icon: 'small'
- },
- {
- name: 'resizeImage:50',
- value: '50',
- icon: 'medium'
- },
- {
- name: 'resizeImage:75',
- value: '75',
- icon: 'large'
- }
- ],
- toolbar: [
- 'resizeImage:25',
- 'resizeImage:50',
- 'resizeImage:75',
- 'resizeImage:original',
- '|',
- 'imageStyle:inline',
- 'imageStyle:block',
- 'imageStyle:side',
- '|',
- 'toggleImageCaption',
- 'imageTextAlternative',
- ],
- },
- heading: {
- options: [
- { model: 'paragraph', title: 'Paragraph', class: 'ck-heading_paragraph' },
- { model: 'heading1', view: 'h1', title: 'Heading 1', class: 'ck-heading_heading1' },
- { model: 'heading2', view: 'h2', title: 'Heading 2', class: 'ck-heading_heading2' },
- { model: 'heading3', view: 'h3', title: 'Heading 3', class: 'ck-heading_heading3' },
- { model: 'heading4', view: 'h4', title: 'Heading 4', class: 'ck-heading_heading4' },
- { model: 'heading5', view: 'h5', title: 'Heading 5', class: 'ck-heading_heading5' },
- { model: 'heading6', view: 'h6', title: 'Heading 6', class: 'ck-heading_heading6' },
- ],
- },
- table: {
- contentToolbar: [
- 'toggleTableCaption',
- 'tableColumn',
- 'tableRow',
- 'mergeTableCells',
- 'tableCellProperties',
- 'tableProperties',
- ],
- tableProperties: {
- borderColors: customColorPalette,
- backgroundColors: customColorPalette,
- defaultProperties: {
- alignment: 'left',
- borderStyle: 'solid',
- borderColor: '#666666',
- borderWidth: '1px',
- },
- },
- tableCellProperties: {
- borderColors: customColorPalette,
- backgroundColors: customColorPalette,
- defaultProperties: {
- borderStyle: 'solid',
- borderColor: '#666666',
- borderWidth: '1px',
- },
- },
- },
- typing: {
- transformations: {
- remove: ['quotes'],
- },
- },
- list: {
- properties: {
- styles: true,
- startIndex: true,
- reversed: true,
- },
- },
- math: {
- engine: 'mathjax',
- outputType: 'span',
- },
- link: {
- defaultProtocol: 'https://',
- },
- language: 'de',
- htmlSupport: {
- allow: [
- /* HTML features to allow */
- {
- name: 'div',
- classes: 'author',
- },
- {
- name: 'pre',
- classes: 'usercode'
- }
- ],
- disallow: [
- /* HTML features to disallow */
- ],
- },
+export {
+ BalloonEditor,
+ ClassicEditor,
+ createBalloonEditorFromTextarea,
+ createClassicEditorFromTextarea,
};
updateVoiceLabel();
diff --git a/resources/assets/javascripts/cke/balloon-editor.js b/resources/assets/javascripts/cke/balloon-editor.js
new file mode 100644
index 0000000..4eba886
--- /dev/null
+++ b/resources/assets/javascripts/cke/balloon-editor.js
@@ -0,0 +1,53 @@
+import BalloonEditorBase from '@ckeditor/ckeditor5-editor-balloon/src/ballooneditor';
+import { builtinPlugins } from './builtin-plugins.js';
+import { defaultConfig } from './default-config.js';
+
+export default class BalloonEditor extends BalloonEditorBase {}
+export { createBalloonEditorFromTextarea };
+
+BalloonEditor.builtinPlugins = builtinPlugins;
+BalloonEditor.defaultConfig = {
+ ...defaultConfig,
+ balloonToolbar: {
+ items: [
+ 'bold',
+ 'italic',
+ 'underline',
+ 'subscript',
+ 'superscript',
+ '|',
+ 'removeFormat',
+ '|',
+ 'fontColor',
+ 'fontBackgroundColor',
+ '|',
+ 'link',
+ 'math',
+ 'specialCharacters',
+ ],
+ shouldNotGroupWhenFull: true,
+ },
+ blockToolbar: [
+ 'paragraph',
+ 'heading1',
+ 'heading2',
+ '|',
+ 'bulletedList',
+ 'numberedList',
+ '|',
+ 'alignment:left',
+ 'alignment:right',
+ 'alignment:center',
+ 'alignment:justify',
+ ],
+};
+
+function createBalloonEditorFromTextarea(textarea, options) {
+ const replacement = document.createElement('div');
+ replacement.classList.add('wysiwyg-balloon');
+ replacement.innerHTML = textarea.value;
+ textarea.parentNode.insertBefore(replacement, textarea.nextSibling);
+ textarea.style.display = 'none';
+
+ return BalloonEditor.create(replacement);
+}
diff --git a/resources/assets/javascripts/cke/builtin-plugins.js b/resources/assets/javascripts/cke/builtin-plugins.js
new file mode 100644
index 0000000..3b285df
--- /dev/null
+++ b/resources/assets/javascripts/cke/builtin-plugins.js
@@ -0,0 +1,114 @@
+/* ckeditor official */
+import Alignment from '@ckeditor/ckeditor5-alignment/src/alignment';
+import Autoformat from '@ckeditor/ckeditor5-autoformat/src/autoformat';
+import BlockQuote from '@ckeditor/ckeditor5-block-quote/src/blockquote';
+import BoldPlugin from '@ckeditor/ckeditor5-basic-styles/src/bold';
+import CodeBlock from '@ckeditor/ckeditor5-code-block/src/codeblock';
+import EasyImagePlugin from '@ckeditor/ckeditor5-easy-image/src/easyimage';
+import EssentialsPlugin from '@ckeditor/ckeditor5-essentials/src/essentials';
+import FileRepository from '@ckeditor/ckeditor5-upload/src/filerepository';
+import FindAndReplace from '@ckeditor/ckeditor5-find-and-replace/src/findandreplace';
+import FontBackgroundColor from '@ckeditor/ckeditor5-font/src/fontbackgroundcolor.js';
+import FontColor from '@ckeditor/ckeditor5-font/src/fontcolor.js';
+import GeneralHtmlSupport from '@ckeditor/ckeditor5-html-support/src/generalhtmlsupport';
+import HeadingPlugin from '@ckeditor/ckeditor5-heading/src/heading';
+import HorizontalLine from '@ckeditor/ckeditor5-horizontal-line/src/horizontalline';
+import HtmlComment from '@ckeditor/ckeditor5-html-support/src/htmlcomment';
+import ImagePlugin from '@ckeditor/ckeditor5-image/src/image';
+import ImageUploadPlugin from '@ckeditor/ckeditor5-image/src/imageupload';
+import ImageCaptionPlugin from '@ckeditor/ckeditor5-image/src/imagecaption';
+import ImageResizePlugin from '@ckeditor/ckeditor5-image/src/imageresize';
+import ImageStylePlugin from '@ckeditor/ckeditor5-image/src/imagestyle';
+import ImageToolbarPlugin from '@ckeditor/ckeditor5-image/src/imagetoolbar';
+import Indent from '@ckeditor/ckeditor5-indent/src/indent';
+import IndentBlock from '@ckeditor/ckeditor5-indent/src/indentblock';
+import ItalicPlugin from '@ckeditor/ckeditor5-basic-styles/src/italic';
+import LinkPlugin from '@ckeditor/ckeditor5-link/src/link';
+import List from '@ckeditor/ckeditor5-list/src/list';
+import ListProperties from '@ckeditor/ckeditor5-list/src/listproperties';
+import Paragraph from '@ckeditor/ckeditor5-paragraph/src/paragraph';
+import RemoveFormat from '@ckeditor/ckeditor5-remove-format/src/removeformat.js';
+import SourceEditing from '@ckeditor/ckeditor5-source-editing/src/sourceediting';
+import SpecialCharacters from '@ckeditor/ckeditor5-special-characters/src/specialcharacters.js';
+import SpecialCharactersCurrency from '@ckeditor/ckeditor5-special-characters/src/specialcharacterscurrency.js';
+import SpecialCharactersEssentials from '@ckeditor/ckeditor5-special-characters/src/specialcharactersessentials.js';
+import SpecialCharactersLatin from '@ckeditor/ckeditor5-special-characters/src/specialcharacterslatin.js';
+import SpecialCharactersMathematical from '@ckeditor/ckeditor5-special-characters/src/specialcharactersmathematical.js';
+import SpecialCharactersText from '@ckeditor/ckeditor5-special-characters/src/specialcharacterstext.js';
+import Strikethrough from '@ckeditor/ckeditor5-basic-styles/src/strikethrough.js';
+import Subscript from '@ckeditor/ckeditor5-basic-styles/src/subscript.js';
+import Superscript from '@ckeditor/ckeditor5-basic-styles/src/superscript.js';
+import Table from '@ckeditor/ckeditor5-table/src/table.js';
+import TableCaption from '@ckeditor/ckeditor5-table/src/tablecaption.js';
+import TableCellProperties from '@ckeditor/ckeditor5-table/src/tablecellproperties';
+import TableProperties from '@ckeditor/ckeditor5-table/src/tableproperties';
+import TableToolbar from '@ckeditor/ckeditor5-table/src/tabletoolbar.js';
+import TextTransformation from '@ckeditor/ckeditor5-typing/src/texttransformation';
+import Underline from '@ckeditor/ckeditor5-basic-styles/src/underline.js';
+/* ckeditor third party */
+import Mathematics from 'ckeditor5-math/src/math';
+/* ckeditor elan */
+import StudipA11YDialog, { updateVoiceLabel } from '../cke/studip-a11y-dialog/a11y-dialog.js';
+import StudipBlockQuote from '../cke/studip-quote/StudipBlockQuote.js';
+import StudipUpload from '../cke/StudipUpload.js';
+import StudipWikiLink from '../cke/wiki-link/wiki-link.js';
+import SpecialCharactersSmiley from '../cke/special_characters/SpecialCharactersSmiley.js';
+import SpecialCharactersGreek from '../cke/special_characters/SpecialCharactersGreek.js';
+
+import { BlockToolbar } from '@ckeditor/ckeditor5-ui';
+
+const builtinPlugins = [
+ ImageUploadPlugin,
+ Alignment,
+ Autoformat,
+ BlockQuote,
+ BoldPlugin,
+ CodeBlock,
+ EssentialsPlugin,
+ FindAndReplace,
+ FontColor,
+ FontBackgroundColor,
+ GeneralHtmlSupport,
+ HeadingPlugin,
+ HorizontalLine,
+ HtmlComment,
+ ImageCaptionPlugin,
+ ImagePlugin,
+ ImageResizePlugin,
+ ImageStylePlugin,
+ ImageToolbarPlugin,
+ Indent,
+ IndentBlock,
+ ItalicPlugin,
+ LinkPlugin,
+ ListProperties,
+ Mathematics,
+ Paragraph,
+ RemoveFormat,
+ SourceEditing,
+ SpecialCharacters,
+ SpecialCharactersCurrency,
+ SpecialCharactersSmiley,
+ SpecialCharactersEssentials,
+ SpecialCharactersGreek,
+ SpecialCharactersLatin,
+ SpecialCharactersMathematical,
+ SpecialCharactersText,
+ Strikethrough,
+ StudipBlockQuote,
+ StudipUpload,
+ Subscript,
+ Superscript,
+ Table,
+ TableCaption,
+ TableCellProperties,
+ TableProperties,
+ TableToolbar,
+ TextTransformation,
+ Underline,
+ FileRepository,
+ StudipA11YDialog,
+ BlockToolbar,
+];
+
+export { builtinPlugins };
diff --git a/resources/assets/javascripts/cke/classic-editor.js b/resources/assets/javascripts/cke/classic-editor.js
new file mode 100644
index 0000000..53154c3
--- /dev/null
+++ b/resources/assets/javascripts/cke/classic-editor.js
@@ -0,0 +1,108 @@
+import ClassicEditorBase from '@ckeditor/ckeditor5-editor-classic/src/classiceditor';
+import { builtinPlugins } from './builtin-plugins.js';
+import { defaultConfig } from './default-config.js';
+import eventBus from '../lib/event-bus.ts';
+
+export default class ClassicEditor extends ClassicEditorBase {}
+export { createClassicEditorFromTextarea };
+
+ClassicEditor.builtinPlugins = builtinPlugins;
+ClassicEditor.defaultConfig = {
+ ...defaultConfig,
+ toolbar: {
+ items: [
+ 'undo',
+ 'redo',
+ 'findAndReplace',
+ '|',
+ 'bold',
+ 'italic',
+ 'underline',
+ 'strikethrough',
+ 'subscript',
+ 'superscript',
+ '|',
+ 'removeFormat',
+ '|',
+ 'bulletedList',
+ 'numberedList',
+ '|',
+ 'outdent',
+ 'indent',
+ '|',
+ 'alignment:left',
+ 'alignment:right',
+ 'alignment:center',
+ 'alignment:justify',
+ '-',
+ 'heading',
+ 'fontColor',
+ 'fontBackgroundColor',
+ '|',
+ 'link',
+ 'insertTable',
+ 'uploadImage',
+ 'codeBlock',
+ 'math',
+ 'studip-wiki',
+ 'specialCharacters',
+ 'horizontalLine',
+ '|',
+ 'insertBlockQuote',
+ 'splitBlockQuote',
+ 'removeBlockQuote',
+ '|',
+ 'sourceEditing',
+ ],
+ shouldNotGroupWhenFull: true,
+ },
+};
+
+function createClassicEditorFromTextarea(textarea, options) {
+ return ClassicEditor.create(textarea, options)
+ .then((editor) => {
+ const updateOffsetTop = createUpdater(editor);
+
+ updateOffsetTop();
+
+ eventBus.on('toggle-compact-navigation', updateOffsetTop);
+ eventBus.on('switch-focus-mode', updateOffsetTop);
+
+ editor.on('destroy', () => {
+ eventBus.off('toggle-compact-navigation', updateOffsetTop);
+ eventBus.off('switch-focus-mode', updateOffsetTop);
+ });
+
+ return editor;
+ })
+ .then((editor) => {
+ const button = editor.ui.view.toolbar?.items.find((item) => item.class === 'ck-source-editing-button');
+ if (button) {
+ button.withText = false;
+ }
+
+ return editor;
+ });
+}
+
+function createUpdater(editor) {
+ // This needs to be delayed since some events will fire before
+ // changing the DOM
+ return () =>
+ setTimeout(() => {
+ editor.ui.viewportOffset = { top: getViewportOffsetTop() };
+ editor.ui.update();
+ }, 50);
+}
+
+function getViewportOffsetTop() {
+ const topBar = document.getElementById('top-bar');
+ const responsiveContentbar = document.getElementById('responsive-contentbar');
+
+ let top = topBar.clientHeight + topBar.clientTop;
+ if (responsiveContentbar) {
+ top += responsiveContentbar?.clientHeight + responsiveContentbar.clientTop;
+ }
+
+ return top;
+}
diff --git a/resources/assets/javascripts/cke/default-config.js b/resources/assets/javascripts/cke/default-config.js
new file mode 100644
index 0000000..4c71e68
--- /dev/null
+++ b/resources/assets/javascripts/cke/default-config.js
@@ -0,0 +1,144 @@
+const customColorPalette = [
+ { color: '#000000' },
+ { color: '#6c737a' }, //75%
+ { color: '#a7abaf' }, //45%
+ { color: '#c4c7c9' }, //30%
+ { color: '#ffffff', hasBorder: true },
+
+ { color: '#cb1800' }, //red
+ { color: '#f26e00' }, //pumpkin
+ { color: '#ffbd33' }, //yellow
+ { color: '#8bbd40' }, // apple green
+ { color: '#00962d' }, //green
+
+ { color: '#41afaa' }, //verdigris
+ { color: '#a9b6cb' }, // blue 40%
+ { color: '#28497c' }, // blue
+ { color: '#bf5796' }, // mulberry
+ { color: '#8656a2' }, // royal purple
+];
+
+const defaultConfig = {
+ fontColor: {
+ colors: customColorPalette,
+ },
+ fontBackgroundColor: {
+ colors: customColorPalette,
+ },
+ image: {
+ resizeOptions: [
+ {
+ name: 'resizeImage:original',
+ value: null,
+ icon: 'original'
+ },
+ {
+ name: 'resizeImage:25',
+ value: '25',
+ icon: 'small'
+ },
+ {
+ name: 'resizeImage:50',
+ value: '50',
+ icon: 'medium'
+ },
+ {
+ name: 'resizeImage:75',
+ value: '75',
+ icon: 'large'
+ }
+ ],
+ toolbar: [
+ 'resizeImage:25',
+ 'resizeImage:50',
+ 'resizeImage:75',
+ 'resizeImage:original',
+ '|',
+ 'imageStyle:inline',
+ 'imageStyle:block',
+ 'imageStyle:side',
+ '|',
+ 'toggleImageCaption',
+ 'imageTextAlternative',
+ ],
+ },
+ heading: {
+ options: [
+ { model: 'paragraph', title: 'Paragraph', class: 'ck-heading_paragraph' },
+ { model: 'heading1', view: 'h1', title: 'Heading 1', class: 'ck-heading_heading1' },
+ { model: 'heading2', view: 'h2', title: 'Heading 2', class: 'ck-heading_heading2' },
+ { model: 'heading3', view: 'h3', title: 'Heading 3', class: 'ck-heading_heading3' },
+ { model: 'heading4', view: 'h4', title: 'Heading 4', class: 'ck-heading_heading4' },
+ { model: 'heading5', view: 'h5', title: 'Heading 5', class: 'ck-heading_heading5' },
+ { model: 'heading6', view: 'h6', title: 'Heading 6', class: 'ck-heading_heading6' },
+ ],
+ },
+ table: {
+ contentToolbar: [
+ 'toggleTableCaption',
+ 'tableColumn',
+ 'tableRow',
+ 'mergeTableCells',
+ 'tableCellProperties',
+ 'tableProperties',
+ ],
+ tableProperties: {
+ borderColors: customColorPalette,
+ backgroundColors: customColorPalette,
+ defaultProperties: {
+ alignment: 'left',
+ borderStyle: 'solid',
+ borderColor: '#666666',
+ borderWidth: '1px',
+ },
+ },
+ tableCellProperties: {
+ borderColors: customColorPalette,
+ backgroundColors: customColorPalette,
+ defaultProperties: {
+ borderStyle: 'solid',
+ borderColor: '#666666',
+ borderWidth: '1px',
+ },
+ },
+ },
+ typing: {
+ transformations: {
+ remove: ['quotes'],
+ },
+ },
+ list: {
+ properties: {
+ styles: true,
+ startIndex: true,
+ reversed: true,
+ },
+ },
+ math: {
+ engine: 'mathjax',
+ outputType: 'span',
+ },
+ link: {
+ defaultProtocol: 'https://',
+ },
+ // This value must be kept in sync with the language defined in webpack.config.js.
+ language: 'de',
+ htmlSupport: {
+ allow: [
+ /* HTML features to allow */
+ {
+ name: 'div',
+ classes: 'author',
+ },
+ {
+ name: 'pre',
+ classes: 'usercode',
+ },
+ ],
+ disallow: [
+ /* HTML features to disallow */
+ ],
+ },
+};
+
+export { defaultConfig };
diff --git a/resources/assets/javascripts/cke/studip-a11y-dialog/a11y-dialog.js b/resources/assets/javascripts/cke/studip-a11y-dialog/a11y-dialog.js
index 1cef618..814e931 100644
--- a/resources/assets/javascripts/cke/studip-a11y-dialog/a11y-dialog.js
+++ b/resources/assets/javascripts/cke/studip-a11y-dialog/a11y-dialog.js
@@ -1,4 +1,4 @@
-import { Plugin } from 'ckeditor5/src/core';
+import { Plugin } from '@ckeditor/ckeditor5-core';
import { add } from '@ckeditor/ckeditor5-utils/src/translation-service';
import { $gettext } from '../../lib/gettext.js';
import A11YDialogEditing from './editing.js';
diff --git a/resources/assets/javascripts/cke/studip-a11y-dialog/command.js b/resources/assets/javascripts/cke/studip-a11y-dialog/command.js
index 71c6fe0..62c8efd 100644
--- a/resources/assets/javascripts/cke/studip-a11y-dialog/command.js
+++ b/resources/assets/javascripts/cke/studip-a11y-dialog/command.js
@@ -1,4 +1,4 @@
-import { Command } from 'ckeditor5/src/core';
+import { Command } from '@ckeditor/ckeditor5-core';
import Dialog from '../../lib/dialog.js';
export default class A11YDialogCommand extends Command {
diff --git a/resources/assets/javascripts/cke/studip-a11y-dialog/editing.js b/resources/assets/javascripts/cke/studip-a11y-dialog/editing.js
index 95c1559..4369bb5 100644
--- a/resources/assets/javascripts/cke/studip-a11y-dialog/editing.js
+++ b/resources/assets/javascripts/cke/studip-a11y-dialog/editing.js
@@ -1,4 +1,4 @@
-import { Plugin } from 'ckeditor5/src/core';
+import { Plugin } from '@ckeditor/ckeditor5-core';
import A11YDialogCommand from './command.js';
export default class A11YDialogEditing extends Plugin {
diff --git a/resources/assets/javascripts/cke/studip-a11y-dialog/ui.js b/resources/assets/javascripts/cke/studip-a11y-dialog/ui.js
index 9d2980b..a2d207f 100644
--- a/resources/assets/javascripts/cke/studip-a11y-dialog/ui.js
+++ b/resources/assets/javascripts/cke/studip-a11y-dialog/ui.js
@@ -1,5 +1,5 @@
import ButtonView from '@ckeditor/ckeditor5-ui/src/button/buttonview';
-import { Plugin } from 'ckeditor5/src/core';
+import { Plugin } from '@ckeditor/ckeditor5-core';
import { $gettext } from '../../lib/gettext.js';
const a11yIcon =
diff --git a/resources/assets/javascripts/cke/studip-quote/StudipBlockQuote.js b/resources/assets/javascripts/cke/studip-quote/StudipBlockQuote.js
index 8b0b739..e50f8c6 100644
--- a/resources/assets/javascripts/cke/studip-quote/StudipBlockQuote.js
+++ b/resources/assets/javascripts/cke/studip-quote/StudipBlockQuote.js
@@ -1,7 +1,7 @@
import Plugin from '@ckeditor/ckeditor5-core/src/plugin';
import ButtonView from '@ckeditor/ckeditor5-ui/src/button/buttonview';
import { $gettext } from '../../lib/gettext.js';
-import { Command, icons } from 'ckeditor5/src/core';
+import { Command, icons } from '@ckeditor/ckeditor5-core';
const divideIcon =
'<svg version="1.1" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="m9.3 2h2v16h-2zm-7.2987 8.423a6.5 6.5 0 0 1 6.056-6.408l0.038 0.67c-2.646 0.738-3.74 2.978-3.874 5.315h3.78c0.552 0 0.5 0.432 0.5 0.986v4.511c0 0.554-0.448 0.503-1 0.503h-5c-0.552 0-0.5-0.449-0.5-1.003zm10 0a6.5 6.5 0 0 1 6.056-6.408l0.038 0.67c-2.646 0.739-3.74 2.979-3.873 5.315h3.779c0.552 0 0.5 0.432 0.5 0.986v4.511c0 0.554-0.448 0.503-1 0.503h-5c-0.552 0-0.5-0.449-0.5-1.003z" stroke-width="1.1664"/></svg>';
diff --git a/resources/assets/javascripts/cke/wiki-link/editing.js b/resources/assets/javascripts/cke/wiki-link/editing.js
index 5322694..a42461f 100644
--- a/resources/assets/javascripts/cke/wiki-link/editing.js
+++ b/resources/assets/javascripts/cke/wiki-link/editing.js
@@ -1,4 +1,4 @@
-import { Plugin } from 'ckeditor5/src/core';
+import { Plugin } from '@ckeditor/ckeditor5-core';
import InsertCommand from './insertcommand';
export default class WikiLinkEditing extends Plugin {
diff --git a/resources/assets/javascripts/cke/wiki-link/formview.js b/resources/assets/javascripts/cke/wiki-link/formview.js
index 68f4e0a..8d82e25 100644
--- a/resources/assets/javascripts/cke/wiki-link/formview.js
+++ b/resources/assets/javascripts/cke/wiki-link/formview.js
@@ -10,8 +10,8 @@ import {
injectCssTransitionDisabler,
createDropdown,
addListToDropdown,
-} from 'ckeditor5/src/ui';
-import { FocusTracker, KeystrokeHandler, Collection, Rect, isVisible } from 'ckeditor5/src/utils';
+} from '@ckeditor/ckeditor5-ui';
+import { FocusTracker, KeystrokeHandler, Collection, Rect, isVisible } from '@ckeditor/ckeditor5-utils';
import { $gettext } from '../../lib/gettext.js';
export default class WikiLinkFormView extends View {
diff --git a/resources/assets/javascripts/cke/wiki-link/insertcommand.js b/resources/assets/javascripts/cke/wiki-link/insertcommand.js
index 1bf36b8..2b57cac 100644
--- a/resources/assets/javascripts/cke/wiki-link/insertcommand.js
+++ b/resources/assets/javascripts/cke/wiki-link/insertcommand.js
@@ -1,4 +1,4 @@
-import { Command } from 'ckeditor5/src/core';
+import { Command } from '@ckeditor/ckeditor5-core';
export default class InsertCommand extends Command {
refresh() {
diff --git a/resources/assets/javascripts/cke/wiki-link/ui.js b/resources/assets/javascripts/cke/wiki-link/ui.js
index 1765a93..a8e5f89 100644
--- a/resources/assets/javascripts/cke/wiki-link/ui.js
+++ b/resources/assets/javascripts/cke/wiki-link/ui.js
@@ -1,5 +1,5 @@
-import { Plugin } from 'ckeditor5/src/core';
-import { createDropdown } from 'ckeditor5/src/ui';
+import { Plugin } from '@ckeditor/ckeditor5-core';
+import { createDropdown } from '@ckeditor/ckeditor5-ui';
import WikiLinkFormView from './formview.js';
import { $gettext } from '../../lib/gettext.js';
diff --git a/resources/assets/javascripts/cke/wiki-link/wiki-link.js b/resources/assets/javascripts/cke/wiki-link/wiki-link.js
index 4809977..1abf5bf 100644
--- a/resources/assets/javascripts/cke/wiki-link/wiki-link.js
+++ b/resources/assets/javascripts/cke/wiki-link/wiki-link.js
@@ -1,4 +1,4 @@
-import { Plugin } from 'ckeditor5/src/core';
+import { Plugin } from '@ckeditor/ckeditor5-core';
import WikiLinkUI from './ui.js';
import WikiLinkEditing from './editing.js';
diff --git a/resources/assets/javascripts/lib/wysiwyg.js b/resources/assets/javascripts/lib/wysiwyg.js
index 95a4f1a..6b5f502 100644
--- a/resources/assets/javascripts/lib/wysiwyg.js
+++ b/resources/assets/javascripts/lib/wysiwyg.js
@@ -56,169 +56,22 @@ function isEditorHidden(textarea) {
return editor && editor.ui && $(editor.ui.element).is(':hidden');
}
-function replaceTextarea(textarea) {
- setEditor(textarea, {});
- const $textarea = textarea instanceof jQuery ? textarea : $(textarea);
-
- let options = {};
-
- if ($textarea.attr('data-editor')) {
- const parsed = parseOptions($textarea.attr('data-editor'));
-
- if (parsed.toolbar === 'small') {
- options.toolbar = {
- removeItems: [
- 'undo',
- 'redo',
- 'findAndReplace',
- 'strikethrough',
- 'horizontalLine',
- 'insertBlockQuote',
- 'splitBlockQuote',
- 'removeBlockQuote',
- ]
- };
- } else if (parsed.toolbar === 'minimal') {
- options.toolbar = {
- items: [
- 'bold',
- 'italic',
- 'underline',
- 'subscript',
- 'superscript',
- '|',
- 'removeFormat',
- '|',
- 'bulletedList',
- 'numberedList',
- '|',
- 'fontColor',
- 'fontBackgroundColor',
- '|',
- 'link',
- 'math',
- 'specialCharacters',
- ]
- };
- }
-
- if (parsed.removePlugins) {
- options.removePlugins = parsed.removePlugins.split(",")
- }
-
- if (parsed.extraPlugins) {
- const pluginMap = { WikiLink };
- options.extraPlugins = parsed.extraPlugins.split(",").reduce((memo, plugin) => {
- if (plugin in pluginMap) {
- memo.push(pluginMap[plugin]);
- }
- return memo;
- }, []);
- }
- }
-
- return STUDIP.loadChunk('wysiwyg')
- .then(loadMathJax)
- .then(createEditor)
- .then(setEditorInstance)
- .then(enhanceEditor)
- .then(emitLoadEvent);
-
- function createEditor(ClassicEditor) {
- return ClassicEditor.create(textarea, options).then(editor => {
- function getViewportOffsetTop() {
- const topBar = document.getElementById('top-bar');
- const responsiveContentbar = document.getElementById('responsive-contentbar');
-
- let top = topBar.clientHeight + topBar.clientTop;
- if (responsiveContentbar) {
- top += responsiveContentbar?.clientHeight + responsiveContentbar.clientTop;
- }
-
- return top;
- }
-
- function updateOffsetTop() {
- // This needs to be delayed since some events will fire before
- // changing the DOM
- setTimeout(() => {
- editor.ui.viewportOffset = {top: getViewportOffsetTop()};
- editor.ui.update();
- }, 50);
- }
-
- // Set initial offset top
- updateOffsetTop();
-
- // Listen to relevant events that may require the sticky panel to be misplaced
- STUDIP.eventBus.on('toggle-compact-navigation', updateOffsetTop);
- STUDIP.eventBus.on('switch-focus-mode', updateOffsetTop);
+async function replaceTextarea(textarea) {
+ await loadMathJax();
- // Stop listening if editor is destroyed
- editor.on('destroy', () => {
- STUDIP.eventBus.off('toggle-compact-navigation', updateOffsetTop);
- STUDIP.eventBus.off('switch-focus-mode', updateOffsetTop);
- });
-
- return editor;
- });
- }
-
- function setEditorInstance(ckeditor) {
- setEditor(textarea, ckeditor);
- return ckeditor;
- }
-
- function enhanceEditor(ckeditor) {
- // make sure HTML marker is always set, in
- // case contents are cut-off by the backend
- $textarea.closest('form').submit(() => {
- ckeditor.setData(wysiwyg.markAsHtml(ckeditor.getData()));
- ckeditor.updateSourceElement();
- });
-
- // focus the editor if requested
- if ($textarea.is('[autofocus]')) {
- ckeditor.focus();
- }
-
- ckeditor.ui.focusTracker.on('change:isFocused', (evt, name, isFocused) => {
- if (!isFocused) {
- ckeditor.updateSourceElement(wysiwyg.markAsHtml(ckeditor.getData()));
- }
- });
-
- const button = ckeditor.ui.view.toolbar.items.find( item => item.class === "ck-source-editing-button");
- if (button) {
- button.withText = false;
- }
-
- // Tell MathJax v2.7 to leave the editor alone
- ckeditor.ui.element.classList.add('tex2jax_ignore');
-
- return ckeditor;
- }
-
- function emitLoadEvent(ckeditor) {
- $textarea.trigger('load.wysiwyg');
-
- return ckeditor;
- }
+ setEditor(textarea, {});
- async function loadMathJax(ckeditor) {
- let mathjaxP;
+ const chunk = await STUDIP.loadChunk('wysiwyg');
- if (window.MathJax && window.MathJax.Hub) {
- mathjaxP = Promise.resolve(window.MathJax);
- } else if (window.STUDIP && window.STUDIP.loadChunk) {
- mathjaxP = window.STUDIP.loadChunk('mathjax');
- }
+ const $textarea = textarea instanceof jQuery ? textarea : $(textarea);
+ const { options, editorType } = parseEditorOptions($textarea.attr('data-editor'));
+ const editor = await createEditor(chunk, textarea, editorType, options);
+ enhanceEditor($textarea, editor);
- await mathjaxP;
+ setEditor(textarea, editor);
+ $textarea.trigger('load.wysiwyg');
- //console.log('loading MathJaxP...', mathjaxP);
- return ckeditor;
- }
+ return editor;
}
function destroyTextarea(textarea) {
@@ -260,3 +113,127 @@ function setEditor(textarea, editor) {
function unsetEditor(textarea) {
instances.delete(textarea.id);
}
+
+////////////////////////////////////////////////////////////////////////////////
+function parseEditorOptions(data) {
+ const result = { options: {}, editorType: 'classic' };
+
+ if (data) {
+ const parsed = parseOptions(data);
+
+ const toolbar = getToolbarOptions(parsed);
+ if (toolbar) {
+ result.options.toolbar = toolbar;
+ }
+
+ if (parsed.removePlugins) {
+ result.options.removePlugins = parsed.removePlugins.split(',');
+ }
+
+ if (parsed.extraPlugins) {
+ const pluginMap = { WikiLink };
+ result.options.extraPlugins = parsed.extraPlugins.split(',').reduce((memo, plugin) => {
+ return plugin in pluginMap ? [...memo, pluginMap[plugin]] : memo;
+ }, []);
+ }
+
+ if (parsed.type) {
+ if (['balloon', 'classic'].includes(parsed.type)) {
+ result.editorType = parsed.type;
+ }
+ }
+ }
+
+ return result;
+}
+
+function getToolbarOptions(parsed) {
+ if (parsed.toolbar === 'small') {
+ return {
+ removeItems: [
+ 'undo',
+ 'redo',
+ 'findAndReplace',
+ 'strikethrough',
+ 'horizontalLine',
+ 'insertBlockQuote',
+ 'splitBlockQuote',
+ 'removeBlockQuote',
+ ],
+ };
+ } else if (parsed.toolbar === 'minimal') {
+ return {
+ items: [
+ 'bold',
+ 'italic',
+ 'underline',
+ 'subscript',
+ 'superscript',
+ '|',
+ 'removeFormat',
+ '|',
+ 'bulletedList',
+ 'numberedList',
+ '|',
+ 'fontColor',
+ 'fontBackgroundColor',
+ '|',
+ 'link',
+ 'math',
+ 'specialCharacters',
+ ],
+ };
+ }
+
+ return null;
+}
+
+function loadMathJax() {
+ if (window.MathJax && window.MathJax.Hub) {
+ return Promise.resolve(window.MathJax);
+ } else if (window.STUDIP && window.STUDIP.loadChunk) {
+ return window.STUDIP.loadChunk('mathjax');
+ }
+
+ return Promise.reject(new Error('Could not load MathJax'));
+}
+
+function createEditor(chunk, textarea, editorType, options) {
+ switch (editorType) {
+ case 'classic':
+ return chunk.createClassicEditorFromTextarea(textarea, options);
+ case 'balloon':
+ return chunk.createBalloonEditorFromTextarea(textarea, options);
+ }
+
+ throw new Error('No such type of WYSIWYG editor.');
+}
+
+function enhanceEditor($textarea, ckeditor) {
+ // make sure HTML marker is always set, in
+ // case contents are cut-off by the backend
+ $textarea.closest('form').submit(() => {
+ const data = wysiwyg.markAsHtml(ckeditor.getData());
+ ckeditor.setData(data);
+ ckeditor.updateSourceElement();
+ $textarea.get(0).value = data;
+ });
+
+ // focus the editor if requested
+ if ($textarea.is('[autofocus]')) {
+ ckeditor.focus();
+ }
+
+ ckeditor.ui.focusTracker.on('change:isFocused', (evt, name, isFocused) => {
+ if (!isFocused) {
+ const data = wysiwyg.markAsHtml(ckeditor.getData());
+ ckeditor.updateSourceElement(data);
+ $textarea.get(0).value = data;
+ }
+ });
+
+ // Tell MathJax v2.7 to leave the editor alone
+ ckeditor.ui.element.classList.add('tex2jax_ignore');
+
+ return ckeditor;
+}
diff --git a/resources/assets/stylesheets/scss/studip-cke-ui.scss b/resources/assets/stylesheets/scss/studip-cke-ui.scss
index d2b52b1..5e28678 100644
--- a/resources/assets/stylesheets/scss/studip-cke-ui.scss
+++ b/resources/assets/stylesheets/scss/studip-cke-ui.scss
@@ -60,6 +60,9 @@
/* z-index */
--ck-z-modal: 1003;
+
+ /* tooltips */
+ --ck-color-tooltip-text: var(--color-text);
}
.ck.ck-editor {
@@ -78,6 +81,7 @@
/* buttons */
.ck.ck-button, a.ck.ck-button {
font-size: 12px;
+ color: var(--base-color);
}
.ck.ck-button:hover {
@@ -315,22 +319,28 @@ a.ck.ck-button.ck-button_with-text.ck-dropdown__button:not(.ck-disabled):hover {
/* tooltips */
+.ck.ck-balloon-panel.ck-tooltip {
+ background-color: transparent;
+}
+.ck.ck-balloon-panel.ck-tooltip .ck.ck-tooltip__text,
.ck.ck-tooltip .ck-tooltip__text {
+ background-color: var(--dark-gray-color-5);
border: 1px solid var(--dark-gray-color-30);
box-shadow: inset 0 1px 0 hsla(0,0%,100%,.5);
font-size: 14px;
margin-bottom: 8px;
- padding: 8px;
+ padding: 12px;
text-align: left;
text-shadow: 0 1px 0 hsla(0,0%,100%,.5);
white-space: normal;
z-index: 10000;
word-wrap: break-word;
color: var(--black);
- top: 4px;
+ top: 12px;
+ position: relative;
}
-
+.ck.ck-tooltip__text::after,
.ck.ck-tooltip.ck-tooltip_s .ck-tooltip__text::after {
content: "";
height: 0;
@@ -344,6 +354,7 @@ a.ck.ck-button.ck-button_with-text.ck-dropdown__button:not(.ck-disabled):hover {
margin-right: -8px;
top: -16px;
}
+.ck.ck-tooltip__text::before,
.ck.ck-tooltip.ck-tooltip_s .ck-tooltip__text::before {
content: "";
height: 0;
@@ -374,6 +385,15 @@ $editor-min-height: 8em;
cursor: text;
min-height: $editor-min-height;
}
+.ck.ck-editor__editable_inline {
+ border: 1px solid var(--ck-color-base-border);
+}
+.ck.ck-block-toolbar-button {
+ background: var(--ck-color-base-background);
+ border: 1px solid var(--ck-color-base-border);
+ color: var(--base-color);
+ z-index: 10000;
+}
form.default label:not(.undecorated):not(.ck-voice-label) .ck-source-editing-area textarea {
margin-top: 0;
@@ -391,12 +411,19 @@ form.default .ck-source-editing-area textarea {
#forum .ck form {
display: inherit;
}
-
+.ck.ck-toolbar {
+ background-color: var(--dark-gray-color-5);
+}
/* toolbar fix for dialogs */
.ck.ck-toolbar > .ck-toolbar__items {
max-width: calc(100% - 20px);
}
+/* tooltip fix for balloon panel */
+.ck.ck-balloon-panel.ck-tooltip {
+ padding: 0;
+}
+
.studip-dialog {
.ck-editor {
overflow: hidden;
@@ -406,3 +433,7 @@ form.default .ck-source-editing-area textarea {
}
}
}
+/* balloon editor button*/
+.ck.ck-block-toolbar-button {
+ background-color: var(--dark-gray-color-5);
+}
diff --git a/resources/vue/components/StudipWysiwyg.vue b/resources/vue/components/StudipWysiwyg.vue
index 086cbe8..66f49a1 100644
--- a/resources/vue/components/StudipWysiwyg.vue
+++ b/resources/vue/components/StudipWysiwyg.vue
@@ -6,7 +6,7 @@
@ready="prefill"
v-model="currentText"
@input="onInput"
- ></ckeditor>
+ />
<textarea
v-else
:value="text"
@@ -17,7 +17,7 @@
</template>
<script>
-import ClassicEditor from '../../assets/javascripts/chunks/wysiwyg.js';
+import { ClassicEditor, BalloonEditor } from '../../assets/javascripts/chunks/wysiwyg.js';
import Toolbar from '../../assets/javascripts/lib/toolbar.js';
export default {
@@ -27,16 +27,34 @@ export default {
event: 'input',
},
props: {
- text: String,
+ text: {
+ type: String,
+ required: true,
+ },
+ editorType: {
+ type: String,
+ validator: function (value) {
+ return ['classic', 'balloon'].includes(value);
+ },
+ default: 'classic',
+ },
},
data() {
return {
currentText: '',
- editor: ClassicEditor,
editorConfig: {},
};
},
computed: {
+ editor() {
+ switch (this.editorType) {
+ case 'classic':
+ return ClassicEditor;
+ case 'balloon':
+ return BalloonEditor;
+ }
+ throw new Error('Unknown `editorType`');
+ },
enabled() {
return STUDIP.editor_enabled;
},
diff --git a/resources/vue/components/courseware/CoursewareTextBlock.vue b/resources/vue/components/courseware/CoursewareTextBlock.vue
index 7367cf8..30eff2f 100644
--- a/resources/vue/components/courseware/CoursewareTextBlock.vue
+++ b/resources/vue/components/courseware/CoursewareTextBlock.vue
@@ -24,7 +24,7 @@
<script>
import CoursewareDefaultBlock from './CoursewareDefaultBlock.vue';
import { blockMixin } from './block-mixin.js';
-import ClassicEditor from '../../../assets/javascripts/chunks/wysiwyg.js'
+import { ClassicEditor, BalloonEditor } from '@/assets/javascripts/chunks/wysiwyg'
import { mapActions } from 'vuex';
export default {
diff --git a/webpack.common.js b/webpack.common.js
index d71aff6..3dd376d 100644
--- a/webpack.common.js
+++ b/webpack.common.js
@@ -3,7 +3,7 @@ const path = require("path");
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
const VueLoaderPlugin = require('vue-loader/lib/plugin');
const ESLintPlugin = require('eslint-webpack-plugin');
-const CKEditorWebpackPlugin = require( '@ckeditor/ckeditor5-dev-webpack-plugin' );
+const { CKEditorTranslationsPlugin } = require( '@ckeditor/ckeditor5-dev-translations' );
const { styles } = require('@ckeditor/ckeditor5-dev-utils');
@@ -142,7 +142,7 @@ module.exports = {
'resources/assets/javascripts/jquery/jstree/jquery.jstree.js',
]
}),
- new CKEditorWebpackPlugin({
+ new CKEditorTranslationsPlugin({
language: 'de',
addMainLanguageTranslationsToAllAssets: true
}),