diff --git a/core/.eslintignore b/core/.eslintignore
index 8e49f48d1c..44777b9fe3 100644
--- a/core/.eslintignore
+++ b/core/.eslintignore
@@ -15,4 +15,5 @@ modules/system/tests/themes/test_theme_libraries_empty/test_theme_libraries_empt
tests/Drupal/Tests/Core/Asset/library_test_files/empty.libraries.yml
tests/Drupal/Tests/Core/Asset/library_test_files/invalid_file.libraries.yml
-!modules/ckeditor5/js/drupal/**/*.js
+# TODO: get rid of this!
+modules/ckeditor5/js/ckeditor5.admin.es6.js
diff --git a/core/modules/ckeditor5/js/build/alignment.js b/core/assets/vendor/ckeditor5/build/alignment.js
similarity index 100%
rename from core/modules/ckeditor5/js/build/alignment.js
rename to core/assets/vendor/ckeditor5/build/alignment.js
diff --git a/core/modules/ckeditor5/js/build/basic-styles.js b/core/assets/vendor/ckeditor5/build/basic-styles.js
similarity index 100%
rename from core/modules/ckeditor5/js/build/basic-styles.js
rename to core/assets/vendor/ckeditor5/build/basic-styles.js
diff --git a/core/modules/ckeditor5/js/build/block-quote.js b/core/assets/vendor/ckeditor5/build/block-quote.js
similarity index 100%
rename from core/modules/ckeditor5/js/build/block-quote.js
rename to core/assets/vendor/ckeditor5/build/block-quote.js
diff --git a/core/modules/ckeditor5/js/build/ckeditor5-dll.js b/core/assets/vendor/ckeditor5/build/ckeditor5-dll.js
similarity index 100%
rename from core/modules/ckeditor5/js/build/ckeditor5-dll.js
rename to core/assets/vendor/ckeditor5/build/ckeditor5-dll.js
diff --git a/core/assets/vendor/ckeditor5/build/drupal/drupalEmphasis.js b/core/assets/vendor/ckeditor5/build/drupal/drupalEmphasis.js
new file mode 100644
index 0000000000..0ee238a1f6
--- /dev/null
+++ b/core/assets/vendor/ckeditor5/build/drupal/drupalEmphasis.js
@@ -0,0 +1 @@
+!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.CKEditor5=t():(e.CKEditor5=e.CKEditor5||{},e.CKEditor5.drupalEmphasis=t())}(self,(function(){return(()=>{var e={"ckeditor5/src/core.js":(e,t,r)=>{e.exports=r("dll-reference CKEditor5.dll")("./src/core.js")},"dll-reference CKEditor5.dll":e=>{"use strict";e.exports=CKEditor5.dll}},t={};function r(o){var i=t[o];if(void 0!==i)return i.exports;var s=t[o]={exports:{}};return e[o](s,s.exports,r),s.exports}r.d=(e,t)=>{for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var o={};return(()=>{"use strict";r.d(o,{default:()=>n});var e=r("ckeditor5/src/core.js");class t extends e.Plugin{static get pluginName(){return"DrupalEmphasisEditing"}init(){this.editor.conversion.for("downcast").attributeToElement({model:"italic",view:"em",converterPriority:"high"})}}const i=t;class s extends e.Plugin{static get requires(){return[i]}static get pluginName(){return"DrupalEmphasis"}}const n={DrupalEmphasis:s}})(),o=o.default})()}));
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor5/build/drupal/drupalImage.js b/core/assets/vendor/ckeditor5/build/drupal/drupalImage.js
new file mode 100644
index 0000000000..cebf40652f
--- /dev/null
+++ b/core/assets/vendor/ckeditor5/build/drupal/drupalImage.js
@@ -0,0 +1 @@
+!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.CKEditor5=e():(t.CKEditor5=t.CKEditor5||{},t.CKEditor5.drupalImage=e())}(self,(function(){return(()=>{var t={"ckeditor5/src/core.js":(t,e,i)=>{t.exports=i("dll-reference CKEditor5.dll")("./src/core.js")},"ckeditor5/src/upload.js":(t,e,i)=>{t.exports=i("dll-reference CKEditor5.dll")("./src/upload.js")},"ckeditor5/src/utils.js":(t,e,i)=>{t.exports=i("dll-reference CKEditor5.dll")("./src/utils.js")},"dll-reference CKEditor5.dll":t=>{"use strict";t.exports=CKEditor5.dll}},e={};function i(r){var n=e[r];if(void 0!==n)return n.exports;var a=e[r]={exports:{}};return t[r](a,a.exports,i),a.exports}i.d=(t,e)=>{for(var r in e)i.o(e,r)&&!i.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var r={};return(()=>{"use strict";i.d(r,{default:()=>p});var t=i("ckeditor5/src/core.js");function e(t){return t.createEmptyElement("img")}class n extends t.Plugin{static get pluginName(){return"DrupalImageEditing"}init(){const t=this.editor,i=t.conversion,{schema:r}=t.model;r.isRegistered("imageInline")&&r.extend("imageInline",{allowAttributes:["dataEntityUuid","dataEntityType","width","height"]}),r.isRegistered("imageBlock")&&r.extend("imageBlock",{allowAttributes:["dataEntityUuid","dataEntityType","width","height"]}),i.for("upcast").add(function(t){function e(e,i,r){const{viewItem:n}=i,{writer:a,consumable:o,safeInsert:s,updateConversionResult:l,schema:u}=r,d=[];let c;if(o.test(n,{name:!0,attributes:"src"})){if(c=u.checkChild(i.modelCursor,"imageInline")?a.createElement("imageInline",{src:n.getAttribute("src")}):a.createElement("imageBlock",{src:n.getAttribute("src")}),t.plugins.has("ImageStyleEditing")&&o.test(n,{name:!0,attributes:"data-align"})){const t={left:"alignBlockLeft",center:"alignCenter",right:"alignBlockRight"},e={left:"alignLeft",right:"alignRight"},i=n.getAttribute("data-align"),r=c.is("element","imageBlock")?t[i]:e[i];a.setAttribute("imageStyle",r,c),d.push("data-align")}if(c.is("element","imageBlock")&&o.test(n,{name:!0,attributes:"data-caption"})){const t=a.createElement("caption");a.insertText(n.getAttribute("data-caption"),t),a.append(t,c),d.push("data-caption")}o.test(n,{name:!0,attributes:"data-entity-uuid"})&&(a.setAttribute("dataEntityUuid",n.getAttribute("data-entity-uuid"),c),d.push("data-entity-uuid")),o.test(n,{name:!0,attributes:"data-entity-type"})&&(a.setAttribute("dataEntityType",n.getAttribute("data-entity-type"),c),d.push("data-entity-type")),s(c,i.modelCursor)&&(o.consume(n,{name:!0,attributes:d}),l(c,i))}}return t=>{t.on("element:img",e,{priority:"high"})}}(t)).attributeToAttribute({view:{name:"img",key:"width"},model:{key:"width",value:t=>`${t.getAttribute("width")}px`}}).attributeToAttribute({view:{name:"img",key:"height"},model:{key:"height",value:t=>`${t.getAttribute("height")}px`}}),i.for("downcast").add(function(){function t(t,e,i){const{item:r}=e,{consumable:n,writer:a}=i;if(!n.consume(r,t.name))return;const o=i.mapper.toViewElement(r),s=Array.from(o.getChildren()).find((t=>"img"===t.name));a.setAttribute("data-entity-uuid",e.attributeNewValue,s||o)}return e=>{e.on("attribute:dataEntityUuid",t)}}()).add(function(){function t(t,e,i){const{item:r}=e,{consumable:n,writer:a}=i;if(!n.consume(r,t.name))return;const o=i.mapper.toViewElement(r),s=Array.from(o.getChildren()).find((t=>"img"===t.name));a.setAttribute("data-entity-type",e.attributeNewValue,s||o)}return e=>{e.on("attribute:dataEntityType",t)}}()),i.for("dataDowncast").add((e=>{e.on("insert:caption",((e,i,r)=>{if(!r.consumable.consume(i.item,"insert"))return;let n="";if(Array.from(t.model.createRangeIn(i.item)).forEach((({item:t})=>{r.consumable.consume(t,"insert")&&t.is("$textProxy")&&(n+=t.data)})),n){const t=r.mapper.toViewElement(i.item.parent);r.writer.setAttribute("data-caption",n,t)}}),{priority:"high"})})).add((t=>{t.on("insert:$text",((t,e)=>{const{parent:i}=e.item;i.is("element","caption")&&i.parent.is("element","imageBlock")&&t.stop()}),{priority:"highest"})})).elementToElement({model:"imageBlock",view:(t,{writer:i})=>e(i),converterPriority:"high"}).elementToElement({model:"imageInline",view:(t,{writer:i})=>e(i),converterPriority:"high"}).add(function(){function t(t,e,i){const{item:r}=e,{consumable:n,writer:a}=i,o={alignLeft:"left",alignRight:"right",alignCenter:"center",alignBlockRight:"right",alignBlockLeft:"left"};if(!o[e.attributeNewValue]||!n.consume(r,t.name))return;const s=i.mapper.toViewElement(r),l=Array.from(s.getChildren()).find((t=>"img"===t.name));a.setAttribute("data-align",o[e.attributeNewValue],l||s)}return e=>{e.on("attribute:imageStyle",t,{priority:"high"})}}()).add(function(){function t(t,e,i){const{item:r}=e,{consumable:n,writer:a}=i;if(!n.consume(r,t.name))return;const o=i.mapper.toViewElement(r),s=Array.from(o.getChildren()).find((t=>"img"===t.name));a.setAttribute("width",e.attributeNewValue.replace("px",""),s||o)}return e=>{e.on("attribute:width:imageInline",t,{priority:"high"}),e.on("attribute:width:imageBlock",t,{priority:"high"})}}()).add(function(){function t(t,e,i){const{item:r}=e,{consumable:n,writer:a}=i;if(!n.consume(r,t.name))return;const o=i.mapper.toViewElement(r),s=Array.from(o.getChildren()).find((t=>"img"===t.name));a.setAttribute("height",e.attributeNewValue.replace("px",""),s||o)}return e=>{e.on("attribute:height:imageInline",t,{priority:"high"}),e.on("attribute:height:imageBlock",t,{priority:"high"})}}())}}class a extends t.Plugin{static get requires(){return[n]}static get pluginName(){return"DrupalImage"}}const o=a;class s extends t.Plugin{init(){const{editor:t}=this;t.plugins.get("ImageUploadEditing").on("uploadComplete",((e,{data:i,imageElement:r})=>{t.model.change((t=>{t.setAttribute("dataEntityUuid",i.dataEntityUuid,r),t.setAttribute("dataEntityType",i.dataEntityType,r)}))}))}static get pluginName(){return"DrupalImageUploadEditing"}}var l=i("ckeditor5/src/upload.js"),u=i("ckeditor5/src/utils.js");class d{constructor(t,e){this.loader=t,this.options=e}upload(){return this.loader.file.then((t=>new Promise(((e,i)=>{this._initRequest(),this._initListeners(e,i,t),this._sendRequest(t)}))))}abort(){this.xhr&&this.xhr.abort()}_initRequest(){this.xhr=new XMLHttpRequest,this.xhr.open("POST",this.options.uploadUrl,!0),this.xhr.responseType="json"}_initListeners(t,e,i){const r=this.xhr,n=this.loader,a=`Couldn't upload file: ${i.name}.`;r.addEventListener("error",(()=>e(a))),r.addEventListener("abort",(()=>e())),r.addEventListener("load",(()=>{const i=r.response;if(!i||i.error)return e(i&&i.error&&i.error.message?i.error.message:a);t({urls:{default:i.url},dataEntityUuid:i.uuid?i.uuid:"",dataEntityType:i.entity_type?i.entity_type:""})})),r.upload&&r.upload.addEventListener("progress",(t=>{t.lengthComputable&&(n.uploadTotal=t.total,n.uploaded=t.loaded)}))}_sendRequest(t){const e=this.options.headers||{},i=this.options.withCredentials||!1;Object.keys(e).forEach((t=>{this.xhr.setRequestHeader(t,e[t])})),this.xhr.withCredentials=i;const r=new FormData;r.append("upload",t),this.xhr.send(r)}}class c extends t.Plugin{static get requires(){return[l.FileRepository]}static get pluginName(){return"DrupalFileRepository"}init(){const t=this.editor.config.get("drupalImageUpload");t&&(t.uploadUrl?this.editor.plugins.get(l.FileRepository).createUploadAdapter=e=>new d(e,t):(0,u.logWarning)("simple-upload-adapter-missing-uploadurl"))}}class m extends t.Plugin{static get requires(){return[c,s]}static get pluginName(){return"DrupalImageUpload"}}const p={DrupalImage:o,DrupalImageUpload:m}})(),r=r.default})()}));
\ No newline at end of file
diff --git a/core/assets/vendor/ckeditor5/build/drupal/drupalMedia.js b/core/assets/vendor/ckeditor5/build/drupal/drupalMedia.js
new file mode 100644
index 0000000000..b96a914478
--- /dev/null
+++ b/core/assets/vendor/ckeditor5/build/drupal/drupalMedia.js
@@ -0,0 +1 @@
+!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.CKEditor5=t():(e.CKEditor5=e.CKEditor5||{},e.CKEditor5.drupalMedia=t())}(self,(function(){return(()=>{var e={"ckeditor5/src/core.js":(e,t,i)=>{e.exports=i("dll-reference CKEditor5.dll")("./src/core.js")},"ckeditor5/src/ui.js":(e,t,i)=>{e.exports=i("dll-reference CKEditor5.dll")("./src/ui.js")},"ckeditor5/src/utils.js":(e,t,i)=>{e.exports=i("dll-reference CKEditor5.dll")("./src/utils.js")},"ckeditor5/src/widget.js":(e,t,i)=>{e.exports=i("dll-reference CKEditor5.dll")("./src/widget.js")},"dll-reference CKEditor5.dll":e=>{"use strict";e.exports=CKEditor5.dll}},t={};function i(r){var s=t[r];if(void 0!==s)return s.exports;var o=t[r]={exports:{}};return e[r](o,o.exports,i),o.exports}i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var r={};return(()=>{"use strict";i.d(r,{default:()=>_});var e=i("ckeditor5/src/core.js"),t=i("ckeditor5/src/widget.js");class s extends e.Command{execute(e){this.editor.model.change((t=>{this.editor.model.insertContent(function(e,t){return e.createElement("drupalMedia",t)}(t,e))}))}refresh(){const e=this.editor.model,t=e.document.selection,i=e.schema.findAllowedParent(t.getFirstPosition(),"drupalMedia");this.isEnabled=null!==i}}const o=e=>{const t=e.getAttributes();let i="
${this.editor.t("An error occurred while trying to preview the media. Please save your work and reload this page.")}
\n `,this._defineSchema(),this._defineConverters(),this.editor.commands.add("insertDrupalMedia",new s(this.editor))}async _fetchPreview(e,t){const i=await fetch(`${e}?${new URLSearchParams(t)}`);if(i.ok){return{label:i.headers.get("drupal-media-label"),preview:await i.text()}}return this.themeError}_defineSchema(){this.editor.model.schema.register("drupalMedia",{allowWhere:"$block",isObject:!0,isContent:!0,allowAttributes:this.attrs})}_defineConverters(){const e=this.editor.conversion;e.for("upcast").elementToElement({view:{name:"drupal-media"},model:"drupalMedia"}),e.for("dataDowncast").elementToElement({model:"drupalMedia",view:{name:"drupal-media"}}),e.for("editingDowncast").elementToElement({model:"drupalMedia",view:(e,{writer:i})=>{const r=i.createContainerElement("div",{class:"drupal-media"}),s=i.createRawElement("div",{},(t=>{this.previewURL?this._fetchPreview(this.previewURL,{text:o(e),uuid:e.getAttribute("data-entity-uuid")}).then((({label:e,preview:i})=>{t.innerHTML=i,t.setAttribute("aria-label",e)})):(t.innerHTML=this.themeError,t.setAttribute("aria-label","drupal-media"))}));return i.insert(i.createPositionAt(r,0),s),i.setCustomProperty("drupalMedia",!0,r),(0,t.toWidget)(r,i,{label:"media widget"})}}),this.attrs.forEach((t=>{e.attributeToAttribute({model:t,view:t})}))}}var n=i("ckeditor5/src/ui.js");class l extends e.Plugin{init(){const e=this.editor,t=this.editor.config.get("drupalMedia");if(!t)return;const{libraryURL:i,openDialog:r,dialogSettings:s={}}=t;i&&"function"==typeof r&&e.ui.componentFactory.add("drupalMedia",(t=>{const o=e.commands.get("insertDrupalMedia"),a=new n.ButtonView(t);return a.set({label:e.t("Insert Drupal Media"),icon:'\n',tooltip:!0}),a.bind("isOn","isEnabled").to(o,"value","isEnabled"),this.listenTo(a,"execute",(()=>{r(i,(({attributes:t})=>{e.execute("insertDrupalMedia",t)}),s)})),a}))}}function d(e){return!!e&&e.is("element","drupalMedia")}function c(e){const i=e.getSelectedElement();return i&&function(e){return(0,t.isWidget)(e)&&!!e.getCustomProperty("drupalMedia")}(i)?i:null}class u extends e.Plugin{static get requires(){return[t.WidgetToolbarRepository]}static get pluginName(){return"DrupalMediaToolbar"}afterInit(){const e=this.editor,{t:i}=e;e.plugins.get(t.WidgetToolbarRepository).register("drupalMedia",{ariaLabel:i("Drupal Media toolbar"),items:e.config.get("drupalMedia.toolbar")||[],getRelatedElement:e=>c(e)})}}class h extends e.Command{refresh(){const e=this.editor.model.document.selection.getSelectedElement();this.isEnabled=!1,d(e)&&this._isMediaImage(e).then((e=>{this.isEnabled=e})),d(e)&&e.hasAttribute("alt")?this.value=e.getAttribute("alt"):this.value=!1}execute(e){const t=this.editor.model,i=t.document.selection.getSelectedElement();t.change((t=>{t.setAttribute("alt",e.newValue,i)}))}async _isMediaImage(e){const t=this.editor.config.get("drupalMedia");if(!t)return null;const{isMediaUrl:i}=t,r=new URLSearchParams({uuid:e.getAttribute("data-entity-uuid")}),s=await fetch(`${i}?${r}`);return s.ok?JSON.parse(await s.text()):null}}class m extends e.Plugin{static get pluginName(){return"MediaImageTextAlternativeEditing"}init(){this.editor.commands.add("mediaImageTextAlternative",new h(this.editor))}}function p(e){const t=e.editing.view,i=n.BalloonPanelView.defaultPositions;return{target:t.domConverter.viewToDom(t.document.selection.getSelectedElement()),positions:[i.northArrowSouth,i.northArrowSouthWest,i.northArrowSouthEast,i.southArrowNorth,i.southArrowNorthWest,i.southArrowNorthEast]}}var f=i("ckeditor5/src/utils.js");class g extends n.View{constructor(t){super(t);const i=this.locale.t;this.focusTracker=new f.FocusTracker,this.keystrokes=new f.KeystrokeHandler,this.labeledInput=this._createLabeledInputView(),this.saveButtonView=this._createButton(i("Save"),e.icons.check,"ck-button-save"),this.saveButtonView.type="submit",this.cancelButtonView=this._createButton(i("Cancel"),e.icons.cancel,"ck-button-cancel","cancel"),this._focusables=new n.ViewCollection,this._focusCycler=new n.FocusCycler({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"form",attributes:{class:["ck","ck-text-alternative-form","ck-responsive-form"],tabindex:"-1"},children:[this.labeledInput,this.saveButtonView,this.cancelButtonView]}),(0,n.injectCssTransitionDisabler)(this)}render(){super.render(),this.keystrokes.listenTo(this.element),(0,n.submitHandler)({view:this}),[this.labeledInput,this.saveButtonView,this.cancelButtonView].forEach((e=>{this._focusables.add(e),this.focusTracker.add(e.element)}))}_createButton(e,t,i,r){const s=new n.ButtonView(this.locale);return s.set({label:e,icon:t,tooltip:!0}),s.extendTemplate({attributes:{class:i}}),r&&s.delegate("execute").to(this,r),s}_createLabeledInputView(){const e=this.locale.t,t=new n.LabeledFieldView(this.locale,n.createLabeledInputText);return t.label=e("Override text alternative"),t}}class w extends e.Plugin{static get requires(){return[n.ContextualBalloon]}static get pluginName(){return"MediaImageTextAlternativeUi"}init(){this._createButton(),this._createForm()}destroy(){super.destroy(),this._form.destroy()}_createButton(){const t=this.editor,i=t.t;t.ui.componentFactory.add("mediaImageTextAlternative",(r=>{const s=t.commands.get("mediaImageTextAlternative"),o=new n.ButtonView(r);return o.set({label:i("Override media image text alternative"),icon:e.icons.lowVision,tooltip:!0}),o.bind("isVisible").to(s,"isEnabled"),this.listenTo(o,"execute",(()=>{this._showForm()})),o}))}_createForm(){const e=this.editor,t=e.editing.view.document;this._balloon=this.editor.plugins.get("ContextualBalloon"),this._form=new g(e.locale),this._form.render(),this.listenTo(this._form,"submit",(()=>{e.execute("mediaImageTextAlternative",{newValue:this._form.labeledInput.fieldView.element.value}),this._hideForm(!0)})),this.listenTo(this._form,"cancel",(()=>{this._hideForm(!0)})),this._form.keystrokes.set("Esc",((e,t)=>{this._hideForm(!0),t()})),this.listenTo(e.ui,"update",(()=>{c(t.selection)?this._isVisible&&function(e){const t=e.plugins.get("ContextualBalloon");if(c(e.editing.view.document.selection)){const i=p(e);t.updatePosition(i)}}(e):this._hideForm(!0)})),(0,n.clickOutsideHandler)({emitter:this._form,activator:()=>this._isVisible,contextElements:[this._balloon.view.element],callback:()=>this._hideForm()})}_showForm(){if(this._isVisible)return;const e=this.editor,t=e.commands.get("mediaImageTextAlternative"),i=this._form.labeledInput;this._form.disableCssTransitions(),this._isInBalloon||this._balloon.add({view:this._form,position:p(e)}),i.fieldView.element.value=t.value||"",i.fieldView.value=i.fieldView.element.value,this._form.labeledInput.fieldView.select(),this._form.enableCssTransitions()}_hideForm(e){this._isInBalloon&&(this._form.focusTracker.isFocused&&this._form.saveButtonView.focus(),this._balloon.remove(this._form),e&&this.editor.editing.view.focus())}get _isVisible(){return this._balloon.visibleView===this._form}get _isInBalloon(){return this._balloon.hasView(this._form)}}class b extends e.Plugin{static get requires(){return[m,w]}static get pluginName(){return"MediaImageTextAlternative"}}class v extends e.Plugin{static get requires(){return[a,l,u,b]}}const _={DrupalMedia:v,MediaImageTextAlternative:b,MediaImageTextAlternativeEditing:m,MediaImageTextAlternativeUi:w}})(),r=r.default})()})); \ No newline at end of file diff --git a/core/modules/ckeditor5/js/build/editor-classic.js b/core/assets/vendor/ckeditor5/build/editor-classic.js similarity index 100% rename from core/modules/ckeditor5/js/build/editor-classic.js rename to core/assets/vendor/ckeditor5/build/editor-classic.js diff --git a/core/modules/ckeditor5/js/build/editor-decoupled.js b/core/assets/vendor/ckeditor5/build/editor-decoupled.js similarity index 100% rename from core/modules/ckeditor5/js/build/editor-decoupled.js rename to core/assets/vendor/ckeditor5/build/editor-decoupled.js diff --git a/core/modules/ckeditor5/js/build/essentials.js b/core/assets/vendor/ckeditor5/build/essentials.js similarity index 100% rename from core/modules/ckeditor5/js/build/essentials.js rename to core/assets/vendor/ckeditor5/build/essentials.js diff --git a/core/modules/ckeditor5/js/build/heading.js b/core/assets/vendor/ckeditor5/build/heading.js similarity index 100% rename from core/modules/ckeditor5/js/build/heading.js rename to core/assets/vendor/ckeditor5/build/heading.js diff --git a/core/modules/ckeditor5/js/build/horizontal-line.js b/core/assets/vendor/ckeditor5/build/horizontal-line.js similarity index 100% rename from core/modules/ckeditor5/js/build/horizontal-line.js rename to core/assets/vendor/ckeditor5/build/horizontal-line.js diff --git a/core/modules/ckeditor5/js/build/html-support.js b/core/assets/vendor/ckeditor5/build/html-support.js similarity index 100% rename from core/modules/ckeditor5/js/build/html-support.js rename to core/assets/vendor/ckeditor5/build/html-support.js diff --git a/core/modules/ckeditor5/js/build/image.js b/core/assets/vendor/ckeditor5/build/image.js similarity index 100% rename from core/modules/ckeditor5/js/build/image.js rename to core/assets/vendor/ckeditor5/build/image.js diff --git a/core/modules/ckeditor5/js/build/indent.js b/core/assets/vendor/ckeditor5/build/indent.js similarity index 100% rename from core/modules/ckeditor5/js/build/indent.js rename to core/assets/vendor/ckeditor5/build/indent.js diff --git a/core/modules/ckeditor5/js/build/language.js b/core/assets/vendor/ckeditor5/build/language.js similarity index 100% rename from core/modules/ckeditor5/js/build/language.js rename to core/assets/vendor/ckeditor5/build/language.js diff --git a/core/modules/ckeditor5/js/build/link.js b/core/assets/vendor/ckeditor5/build/link.js similarity index 100% rename from core/modules/ckeditor5/js/build/link.js rename to core/assets/vendor/ckeditor5/build/link.js diff --git a/core/modules/ckeditor5/js/build/list.js b/core/assets/vendor/ckeditor5/build/list.js similarity index 100% rename from core/modules/ckeditor5/js/build/list.js rename to core/assets/vendor/ckeditor5/build/list.js diff --git a/core/modules/ckeditor5/js/build/source-editing.js b/core/assets/vendor/ckeditor5/build/source-editing.js similarity index 100% rename from core/modules/ckeditor5/js/build/source-editing.js rename to core/assets/vendor/ckeditor5/build/source-editing.js diff --git a/core/modules/ckeditor5/js/build/table.js b/core/assets/vendor/ckeditor5/build/table.js similarity index 100% rename from core/modules/ckeditor5/js/build/table.js rename to core/assets/vendor/ckeditor5/build/table.js diff --git a/core/modules/ckeditor5/js/build/translations/af.js b/core/assets/vendor/ckeditor5/build/translations/af.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/af.js rename to core/assets/vendor/ckeditor5/build/translations/af.js diff --git a/core/modules/ckeditor5/js/build/translations/ar.js b/core/assets/vendor/ckeditor5/build/translations/ar.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/ar.js rename to core/assets/vendor/ckeditor5/build/translations/ar.js diff --git a/core/modules/ckeditor5/js/build/translations/ast.js b/core/assets/vendor/ckeditor5/build/translations/ast.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/ast.js rename to core/assets/vendor/ckeditor5/build/translations/ast.js diff --git a/core/modules/ckeditor5/js/build/translations/az.js b/core/assets/vendor/ckeditor5/build/translations/az.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/az.js rename to core/assets/vendor/ckeditor5/build/translations/az.js diff --git a/core/modules/ckeditor5/js/build/translations/bg.js b/core/assets/vendor/ckeditor5/build/translations/bg.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/bg.js rename to core/assets/vendor/ckeditor5/build/translations/bg.js diff --git a/core/modules/ckeditor5/js/build/translations/ca.js b/core/assets/vendor/ckeditor5/build/translations/ca.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/ca.js rename to core/assets/vendor/ckeditor5/build/translations/ca.js diff --git a/core/modules/ckeditor5/js/build/translations/cs.js b/core/assets/vendor/ckeditor5/build/translations/cs.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/cs.js rename to core/assets/vendor/ckeditor5/build/translations/cs.js diff --git a/core/modules/ckeditor5/js/build/translations/da.js b/core/assets/vendor/ckeditor5/build/translations/da.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/da.js rename to core/assets/vendor/ckeditor5/build/translations/da.js diff --git a/core/modules/ckeditor5/js/build/translations/de-ch.js b/core/assets/vendor/ckeditor5/build/translations/de-ch.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/de-ch.js rename to core/assets/vendor/ckeditor5/build/translations/de-ch.js diff --git a/core/modules/ckeditor5/js/build/translations/de.js b/core/assets/vendor/ckeditor5/build/translations/de.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/de.js rename to core/assets/vendor/ckeditor5/build/translations/de.js diff --git a/core/modules/ckeditor5/js/build/translations/el.js b/core/assets/vendor/ckeditor5/build/translations/el.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/el.js rename to core/assets/vendor/ckeditor5/build/translations/el.js diff --git a/core/modules/ckeditor5/js/build/translations/en-au.js b/core/assets/vendor/ckeditor5/build/translations/en-au.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/en-au.js rename to core/assets/vendor/ckeditor5/build/translations/en-au.js diff --git a/core/modules/ckeditor5/js/build/translations/en-gb.js b/core/assets/vendor/ckeditor5/build/translations/en-gb.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/en-gb.js rename to core/assets/vendor/ckeditor5/build/translations/en-gb.js diff --git a/core/modules/ckeditor5/js/build/translations/eo.js b/core/assets/vendor/ckeditor5/build/translations/eo.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/eo.js rename to core/assets/vendor/ckeditor5/build/translations/eo.js diff --git a/core/modules/ckeditor5/js/build/translations/es.js b/core/assets/vendor/ckeditor5/build/translations/es.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/es.js rename to core/assets/vendor/ckeditor5/build/translations/es.js diff --git a/core/modules/ckeditor5/js/build/translations/et.js b/core/assets/vendor/ckeditor5/build/translations/et.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/et.js rename to core/assets/vendor/ckeditor5/build/translations/et.js diff --git a/core/modules/ckeditor5/js/build/translations/eu.js b/core/assets/vendor/ckeditor5/build/translations/eu.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/eu.js rename to core/assets/vendor/ckeditor5/build/translations/eu.js diff --git a/core/modules/ckeditor5/js/build/translations/fa.js b/core/assets/vendor/ckeditor5/build/translations/fa.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/fa.js rename to core/assets/vendor/ckeditor5/build/translations/fa.js diff --git a/core/modules/ckeditor5/js/build/translations/fi.js b/core/assets/vendor/ckeditor5/build/translations/fi.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/fi.js rename to core/assets/vendor/ckeditor5/build/translations/fi.js diff --git a/core/modules/ckeditor5/js/build/translations/fr.js b/core/assets/vendor/ckeditor5/build/translations/fr.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/fr.js rename to core/assets/vendor/ckeditor5/build/translations/fr.js diff --git a/core/modules/ckeditor5/js/build/translations/gl.js b/core/assets/vendor/ckeditor5/build/translations/gl.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/gl.js rename to core/assets/vendor/ckeditor5/build/translations/gl.js diff --git a/core/modules/ckeditor5/js/build/translations/gu.js b/core/assets/vendor/ckeditor5/build/translations/gu.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/gu.js rename to core/assets/vendor/ckeditor5/build/translations/gu.js diff --git a/core/modules/ckeditor5/js/build/translations/he.js b/core/assets/vendor/ckeditor5/build/translations/he.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/he.js rename to core/assets/vendor/ckeditor5/build/translations/he.js diff --git a/core/modules/ckeditor5/js/build/translations/hi.js b/core/assets/vendor/ckeditor5/build/translations/hi.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/hi.js rename to core/assets/vendor/ckeditor5/build/translations/hi.js diff --git a/core/modules/ckeditor5/js/build/translations/hr.js b/core/assets/vendor/ckeditor5/build/translations/hr.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/hr.js rename to core/assets/vendor/ckeditor5/build/translations/hr.js diff --git a/core/modules/ckeditor5/js/build/translations/hu.js b/core/assets/vendor/ckeditor5/build/translations/hu.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/hu.js rename to core/assets/vendor/ckeditor5/build/translations/hu.js diff --git a/core/modules/ckeditor5/js/build/translations/id.js b/core/assets/vendor/ckeditor5/build/translations/id.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/id.js rename to core/assets/vendor/ckeditor5/build/translations/id.js diff --git a/core/modules/ckeditor5/js/build/translations/it.js b/core/assets/vendor/ckeditor5/build/translations/it.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/it.js rename to core/assets/vendor/ckeditor5/build/translations/it.js diff --git a/core/modules/ckeditor5/js/build/translations/ja.js b/core/assets/vendor/ckeditor5/build/translations/ja.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/ja.js rename to core/assets/vendor/ckeditor5/build/translations/ja.js diff --git a/core/modules/ckeditor5/js/build/translations/kk.js b/core/assets/vendor/ckeditor5/build/translations/kk.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/kk.js rename to core/assets/vendor/ckeditor5/build/translations/kk.js diff --git a/core/modules/ckeditor5/js/build/translations/km.js b/core/assets/vendor/ckeditor5/build/translations/km.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/km.js rename to core/assets/vendor/ckeditor5/build/translations/km.js diff --git a/core/modules/ckeditor5/js/build/translations/kn.js b/core/assets/vendor/ckeditor5/build/translations/kn.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/kn.js rename to core/assets/vendor/ckeditor5/build/translations/kn.js diff --git a/core/modules/ckeditor5/js/build/translations/ko.js b/core/assets/vendor/ckeditor5/build/translations/ko.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/ko.js rename to core/assets/vendor/ckeditor5/build/translations/ko.js diff --git a/core/modules/ckeditor5/js/build/translations/ku.js b/core/assets/vendor/ckeditor5/build/translations/ku.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/ku.js rename to core/assets/vendor/ckeditor5/build/translations/ku.js diff --git a/core/modules/ckeditor5/js/build/translations/lt.js b/core/assets/vendor/ckeditor5/build/translations/lt.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/lt.js rename to core/assets/vendor/ckeditor5/build/translations/lt.js diff --git a/core/modules/ckeditor5/js/build/translations/lv.js b/core/assets/vendor/ckeditor5/build/translations/lv.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/lv.js rename to core/assets/vendor/ckeditor5/build/translations/lv.js diff --git a/core/modules/ckeditor5/js/build/translations/nb.js b/core/assets/vendor/ckeditor5/build/translations/nb.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/nb.js rename to core/assets/vendor/ckeditor5/build/translations/nb.js diff --git a/core/modules/ckeditor5/js/build/translations/ne.js b/core/assets/vendor/ckeditor5/build/translations/ne.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/ne.js rename to core/assets/vendor/ckeditor5/build/translations/ne.js diff --git a/core/modules/ckeditor5/js/build/translations/nl.js b/core/assets/vendor/ckeditor5/build/translations/nl.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/nl.js rename to core/assets/vendor/ckeditor5/build/translations/nl.js diff --git a/core/modules/ckeditor5/js/build/translations/no.js b/core/assets/vendor/ckeditor5/build/translations/no.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/no.js rename to core/assets/vendor/ckeditor5/build/translations/no.js diff --git a/core/modules/ckeditor5/js/build/translations/oc.js b/core/assets/vendor/ckeditor5/build/translations/oc.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/oc.js rename to core/assets/vendor/ckeditor5/build/translations/oc.js diff --git a/core/modules/ckeditor5/js/build/translations/pl.js b/core/assets/vendor/ckeditor5/build/translations/pl.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/pl.js rename to core/assets/vendor/ckeditor5/build/translations/pl.js diff --git a/core/modules/ckeditor5/js/build/translations/pt-br.js b/core/assets/vendor/ckeditor5/build/translations/pt-br.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/pt-br.js rename to core/assets/vendor/ckeditor5/build/translations/pt-br.js diff --git a/core/modules/ckeditor5/js/build/translations/pt.js b/core/assets/vendor/ckeditor5/build/translations/pt.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/pt.js rename to core/assets/vendor/ckeditor5/build/translations/pt.js diff --git a/core/modules/ckeditor5/js/build/translations/ro.js b/core/assets/vendor/ckeditor5/build/translations/ro.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/ro.js rename to core/assets/vendor/ckeditor5/build/translations/ro.js diff --git a/core/modules/ckeditor5/js/build/translations/ru.js b/core/assets/vendor/ckeditor5/build/translations/ru.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/ru.js rename to core/assets/vendor/ckeditor5/build/translations/ru.js diff --git a/core/modules/ckeditor5/js/build/translations/si.js b/core/assets/vendor/ckeditor5/build/translations/si.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/si.js rename to core/assets/vendor/ckeditor5/build/translations/si.js diff --git a/core/modules/ckeditor5/js/build/translations/sk.js b/core/assets/vendor/ckeditor5/build/translations/sk.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/sk.js rename to core/assets/vendor/ckeditor5/build/translations/sk.js diff --git a/core/modules/ckeditor5/js/build/translations/sl.js b/core/assets/vendor/ckeditor5/build/translations/sl.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/sl.js rename to core/assets/vendor/ckeditor5/build/translations/sl.js diff --git a/core/modules/ckeditor5/js/build/translations/sq.js b/core/assets/vendor/ckeditor5/build/translations/sq.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/sq.js rename to core/assets/vendor/ckeditor5/build/translations/sq.js diff --git a/core/modules/ckeditor5/js/build/translations/sr-latn.js b/core/assets/vendor/ckeditor5/build/translations/sr-latn.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/sr-latn.js rename to core/assets/vendor/ckeditor5/build/translations/sr-latn.js diff --git a/core/modules/ckeditor5/js/build/translations/sr.js b/core/assets/vendor/ckeditor5/build/translations/sr.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/sr.js rename to core/assets/vendor/ckeditor5/build/translations/sr.js diff --git a/core/modules/ckeditor5/js/build/translations/sv.js b/core/assets/vendor/ckeditor5/build/translations/sv.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/sv.js rename to core/assets/vendor/ckeditor5/build/translations/sv.js diff --git a/core/modules/ckeditor5/js/build/translations/th.js b/core/assets/vendor/ckeditor5/build/translations/th.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/th.js rename to core/assets/vendor/ckeditor5/build/translations/th.js diff --git a/core/modules/ckeditor5/js/build/translations/tk.js b/core/assets/vendor/ckeditor5/build/translations/tk.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/tk.js rename to core/assets/vendor/ckeditor5/build/translations/tk.js diff --git a/core/modules/ckeditor5/js/build/translations/tr.js b/core/assets/vendor/ckeditor5/build/translations/tr.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/tr.js rename to core/assets/vendor/ckeditor5/build/translations/tr.js diff --git a/core/modules/ckeditor5/js/build/translations/tt.js b/core/assets/vendor/ckeditor5/build/translations/tt.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/tt.js rename to core/assets/vendor/ckeditor5/build/translations/tt.js diff --git a/core/modules/ckeditor5/js/build/translations/ug.js b/core/assets/vendor/ckeditor5/build/translations/ug.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/ug.js rename to core/assets/vendor/ckeditor5/build/translations/ug.js diff --git a/core/modules/ckeditor5/js/build/translations/uk.js b/core/assets/vendor/ckeditor5/build/translations/uk.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/uk.js rename to core/assets/vendor/ckeditor5/build/translations/uk.js diff --git a/core/modules/ckeditor5/js/build/translations/vi.js b/core/assets/vendor/ckeditor5/build/translations/vi.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/vi.js rename to core/assets/vendor/ckeditor5/build/translations/vi.js diff --git a/core/modules/ckeditor5/js/build/translations/zh-cn.js b/core/assets/vendor/ckeditor5/build/translations/zh-cn.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/zh-cn.js rename to core/assets/vendor/ckeditor5/build/translations/zh-cn.js diff --git a/core/modules/ckeditor5/js/build/translations/zh.js b/core/assets/vendor/ckeditor5/build/translations/zh.js similarity index 100% rename from core/modules/ckeditor5/js/build/translations/zh.js rename to core/assets/vendor/ckeditor5/build/translations/zh.js diff --git a/core/assets/vendor/ckeditor5/drupal/README.md b/core/assets/vendor/ckeditor5/drupal/README.md new file mode 100644 index 0000000000..2f42f6d7b1 --- /dev/null +++ b/core/assets/vendor/ckeditor5/drupal/README.md @@ -0,0 +1,24 @@ +CKEditor 5 build tools +---------------------- + +This module contains .js files necessary for CKEditor 5. +These files are all contained in js/build. + +The original files are created by downloading the ckeditor5 repo +running `yarn install` and `yarn dll:build`. + +Inside the ckeditor5 repo, the files are in individual package folders, +for example: `packages/ckeditor5-basic-styles/build/basic-styles.js` + + +Drupal specific CKEditor 5 plugins +---------------------------------- + +The `yarn dll:build` command generates a json manifest. +In the ckeditor5 repo it is in `build/ckeditor5-dll.manifest.json` +When building a custom CKEditor 5 plugin, it must reference this file in order +to correctly set any dependency paths. + +This module currently has custom plugins for images and drupal media. +The source js is in `js/drupal/src/drupalImage` or `js/drupal/src/drupalMedia` +The built js loaded by Drupal is in `js/build/drupal` diff --git a/core/modules/ckeditor5/js/drupal/scripts/manifest.js b/core/assets/vendor/ckeditor5/drupal/scripts/manifest.js similarity index 100% rename from core/modules/ckeditor5/js/drupal/scripts/manifest.js rename to core/assets/vendor/ckeditor5/drupal/scripts/manifest.js diff --git a/core/modules/ckeditor5/js/drupal/src/drupalEmphasis/src/drupalemphasis.js b/core/assets/vendor/ckeditor5/drupal/src/drupalEmphasis/src/drupalemphasis.js similarity index 100% rename from core/modules/ckeditor5/js/drupal/src/drupalEmphasis/src/drupalemphasis.js rename to core/assets/vendor/ckeditor5/drupal/src/drupalEmphasis/src/drupalemphasis.js diff --git a/core/modules/ckeditor5/js/drupal/src/drupalEmphasis/src/drupalemphasisediting.js b/core/assets/vendor/ckeditor5/drupal/src/drupalEmphasis/src/drupalemphasisediting.js similarity index 100% rename from core/modules/ckeditor5/js/drupal/src/drupalEmphasis/src/drupalemphasisediting.js rename to core/assets/vendor/ckeditor5/drupal/src/drupalEmphasis/src/drupalemphasisediting.js diff --git a/core/modules/ckeditor5/js/drupal/src/drupalEmphasis/src/index.js b/core/assets/vendor/ckeditor5/drupal/src/drupalEmphasis/src/index.js similarity index 100% rename from core/modules/ckeditor5/js/drupal/src/drupalEmphasis/src/index.js rename to core/assets/vendor/ckeditor5/drupal/src/drupalEmphasis/src/index.js diff --git a/core/modules/ckeditor5/js/drupal/src/drupalImage/README.md b/core/assets/vendor/ckeditor5/drupal/src/drupalImage/README.md similarity index 100% rename from core/modules/ckeditor5/js/drupal/src/drupalImage/README.md rename to core/assets/vendor/ckeditor5/drupal/src/drupalImage/README.md diff --git a/core/modules/ckeditor5/js/drupal/src/drupalImage/src/drupalimage.js b/core/assets/vendor/ckeditor5/drupal/src/drupalImage/src/drupalimage.js similarity index 100% rename from core/modules/ckeditor5/js/drupal/src/drupalImage/src/drupalimage.js rename to core/assets/vendor/ckeditor5/drupal/src/drupalImage/src/drupalimage.js diff --git a/core/modules/ckeditor5/js/drupal/src/drupalImage/src/drupalimageediting.js b/core/assets/vendor/ckeditor5/drupal/src/drupalImage/src/drupalimageediting.js similarity index 97% rename from core/modules/ckeditor5/js/drupal/src/drupalImage/src/drupalimageediting.js rename to core/assets/vendor/ckeditor5/drupal/src/drupalImage/src/drupalimageediting.js index 2f23240f66..287c329c5d 100644 --- a/core/modules/ckeditor5/js/drupal/src/drupalImage/src/drupalimageediting.js +++ b/core/assets/vendor/ckeditor5/drupal/src/drupalImage/src/drupalimageediting.js @@ -358,17 +358,15 @@ export default class DrupalImageEditing extends Plugin { let captionText = ''; - Array.from(editor.model.createRangeIn(data.item)).forEach( - ({ item }) => { - if (!conversionApi.consumable.consume(item, 'insert')) { - return; - } - - if (item.is('$textProxy')) { - captionText += item.data; - } - }, - ); + Array.from(editor.model.createRangeIn(data.item)).forEach(({ item }) => { + if (!conversionApi.consumable.consume(item, 'insert')) { + return; + } + + if (item.is('$textProxy')) { + captionText += item.data; + } + }); if (captionText) { const imageViewElement = conversionApi.mapper.toViewElement( diff --git a/core/modules/ckeditor5/js/drupal/src/drupalImage/src/imageupload/drupalfilerepository.js b/core/assets/vendor/ckeditor5/drupal/src/drupalImage/src/imageupload/drupalfilerepository.js similarity index 100% rename from core/modules/ckeditor5/js/drupal/src/drupalImage/src/imageupload/drupalfilerepository.js rename to core/assets/vendor/ckeditor5/drupal/src/drupalImage/src/imageupload/drupalfilerepository.js diff --git a/core/modules/ckeditor5/js/drupal/src/drupalImage/src/imageupload/drupalimageupload.js b/core/assets/vendor/ckeditor5/drupal/src/drupalImage/src/imageupload/drupalimageupload.js similarity index 100% rename from core/modules/ckeditor5/js/drupal/src/drupalImage/src/imageupload/drupalimageupload.js rename to core/assets/vendor/ckeditor5/drupal/src/drupalImage/src/imageupload/drupalimageupload.js diff --git a/core/modules/ckeditor5/js/drupal/src/drupalImage/src/imageupload/drupalimageuploadadapter.js b/core/assets/vendor/ckeditor5/drupal/src/drupalImage/src/imageupload/drupalimageuploadadapter.js similarity index 100% rename from core/modules/ckeditor5/js/drupal/src/drupalImage/src/imageupload/drupalimageuploadadapter.js rename to core/assets/vendor/ckeditor5/drupal/src/drupalImage/src/imageupload/drupalimageuploadadapter.js diff --git a/core/modules/ckeditor5/js/drupal/src/drupalImage/src/imageupload/drupalimageuploadediting.js b/core/assets/vendor/ckeditor5/drupal/src/drupalImage/src/imageupload/drupalimageuploadediting.js similarity index 100% rename from core/modules/ckeditor5/js/drupal/src/drupalImage/src/imageupload/drupalimageuploadediting.js rename to core/assets/vendor/ckeditor5/drupal/src/drupalImage/src/imageupload/drupalimageuploadediting.js diff --git a/core/modules/ckeditor5/js/drupal/src/drupalImage/src/index.js b/core/assets/vendor/ckeditor5/drupal/src/drupalImage/src/index.js similarity index 100% rename from core/modules/ckeditor5/js/drupal/src/drupalImage/src/index.js rename to core/assets/vendor/ckeditor5/drupal/src/drupalImage/src/index.js diff --git a/core/modules/ckeditor5/js/drupal/src/drupalMedia/README.md b/core/assets/vendor/ckeditor5/drupal/src/drupalMedia/README.md similarity index 100% rename from core/modules/ckeditor5/js/drupal/src/drupalMedia/README.md rename to core/assets/vendor/ckeditor5/drupal/src/drupalMedia/README.md diff --git a/core/modules/ckeditor5/js/drupal/src/drupalMedia/src/drupalmedia.js b/core/assets/vendor/ckeditor5/drupal/src/drupalMedia/src/drupalmedia.js similarity index 100% rename from core/modules/ckeditor5/js/drupal/src/drupalMedia/src/drupalmedia.js rename to core/assets/vendor/ckeditor5/drupal/src/drupalMedia/src/drupalmedia.js diff --git a/core/modules/ckeditor5/js/drupal/src/drupalMedia/src/drupalmediaediting.js b/core/assets/vendor/ckeditor5/drupal/src/drupalMedia/src/drupalmediaediting.js similarity index 100% rename from core/modules/ckeditor5/js/drupal/src/drupalMedia/src/drupalmediaediting.js rename to core/assets/vendor/ckeditor5/drupal/src/drupalMedia/src/drupalmediaediting.js diff --git a/core/modules/ckeditor5/js/drupal/src/drupalMedia/src/drupalmediatoolbar.js b/core/assets/vendor/ckeditor5/drupal/src/drupalMedia/src/drupalmediatoolbar.js similarity index 100% rename from core/modules/ckeditor5/js/drupal/src/drupalMedia/src/drupalmediatoolbar.js rename to core/assets/vendor/ckeditor5/drupal/src/drupalMedia/src/drupalmediatoolbar.js diff --git a/core/modules/ckeditor5/js/drupal/src/drupalMedia/src/drupalmediaui.js b/core/assets/vendor/ckeditor5/drupal/src/drupalMedia/src/drupalmediaui.js similarity index 97% rename from core/modules/ckeditor5/js/drupal/src/drupalMedia/src/drupalmediaui.js rename to core/assets/vendor/ckeditor5/drupal/src/drupalMedia/src/drupalmediaui.js index f9cf72d830..75cbbd6f77 100644 --- a/core/modules/ckeditor5/js/drupal/src/drupalMedia/src/drupalmediaui.js +++ b/core/assets/vendor/ckeditor5/drupal/src/drupalMedia/src/drupalmediaui.js @@ -1,5 +1,6 @@ import { Plugin } from 'ckeditor5/src/core'; import { ButtonView } from 'ckeditor5/src/ui'; +// cspell:ignore medialibrary import mediaIcon from '../theme/icons/medialibrary.svg'; export default class DrupalMediaUI extends Plugin { diff --git a/core/modules/ckeditor5/js/drupal/src/drupalMedia/src/index.js b/core/assets/vendor/ckeditor5/drupal/src/drupalMedia/src/index.js similarity index 91% rename from core/modules/ckeditor5/js/drupal/src/drupalMedia/src/index.js rename to core/assets/vendor/ckeditor5/drupal/src/drupalMedia/src/index.js index c8c3a47458..f52e6bc9ca 100644 --- a/core/modules/ckeditor5/js/drupal/src/drupalMedia/src/index.js +++ b/core/assets/vendor/ckeditor5/drupal/src/drupalMedia/src/index.js @@ -1,4 +1,5 @@ import DrupalMedia from './drupalmedia'; +// cspell:ignore mediaimagetextalternative import MediaImageTextAlternative from './mediaimagetextalternative'; import MediaImageTextAlternativeEditing from './mediaimagetextalternative/mediaimagetextalternativeediting'; import MediaImageTextAlternativeUi from './mediaimagetextalternative/mediaimagetextalternativeui'; diff --git a/core/modules/ckeditor5/js/drupal/src/drupalMedia/src/insertdrupalmedia.js b/core/assets/vendor/ckeditor5/drupal/src/drupalMedia/src/insertdrupalmedia.js similarity index 100% rename from core/modules/ckeditor5/js/drupal/src/drupalMedia/src/insertdrupalmedia.js rename to core/assets/vendor/ckeditor5/drupal/src/drupalMedia/src/insertdrupalmedia.js diff --git a/core/modules/ckeditor5/js/drupal/src/drupalMedia/src/mediaimagetextalternative.js b/core/assets/vendor/ckeditor5/drupal/src/drupalMedia/src/mediaimagetextalternative.js similarity index 100% rename from core/modules/ckeditor5/js/drupal/src/drupalMedia/src/mediaimagetextalternative.js rename to core/assets/vendor/ckeditor5/drupal/src/drupalMedia/src/mediaimagetextalternative.js diff --git a/core/modules/ckeditor5/js/drupal/src/drupalMedia/src/mediaimagetextalternative/mediaimagetextalternativecommand.js b/core/assets/vendor/ckeditor5/drupal/src/drupalMedia/src/mediaimagetextalternative/mediaimagetextalternativecommand.js similarity index 100% rename from core/modules/ckeditor5/js/drupal/src/drupalMedia/src/mediaimagetextalternative/mediaimagetextalternativecommand.js rename to core/assets/vendor/ckeditor5/drupal/src/drupalMedia/src/mediaimagetextalternative/mediaimagetextalternativecommand.js diff --git a/core/modules/ckeditor5/js/drupal/src/drupalMedia/src/mediaimagetextalternative/mediaimagetextalternativeediting.js b/core/assets/vendor/ckeditor5/drupal/src/drupalMedia/src/mediaimagetextalternative/mediaimagetextalternativeediting.js similarity index 100% rename from core/modules/ckeditor5/js/drupal/src/drupalMedia/src/mediaimagetextalternative/mediaimagetextalternativeediting.js rename to core/assets/vendor/ckeditor5/drupal/src/drupalMedia/src/mediaimagetextalternative/mediaimagetextalternativeediting.js diff --git a/core/modules/ckeditor5/js/drupal/src/drupalMedia/src/mediaimagetextalternative/mediaimagetextalternativeui.js b/core/assets/vendor/ckeditor5/drupal/src/drupalMedia/src/mediaimagetextalternative/mediaimagetextalternativeui.js similarity index 100% rename from core/modules/ckeditor5/js/drupal/src/drupalMedia/src/mediaimagetextalternative/mediaimagetextalternativeui.js rename to core/assets/vendor/ckeditor5/drupal/src/drupalMedia/src/mediaimagetextalternative/mediaimagetextalternativeui.js diff --git a/core/modules/ckeditor5/js/drupal/src/drupalMedia/src/mediaimagetextalternative/ui/textalternativeformview.js b/core/assets/vendor/ckeditor5/drupal/src/drupalMedia/src/mediaimagetextalternative/ui/textalternativeformview.js similarity index 99% rename from core/modules/ckeditor5/js/drupal/src/drupalMedia/src/mediaimagetextalternative/ui/textalternativeformview.js rename to core/assets/vendor/ckeditor5/drupal/src/drupalMedia/src/mediaimagetextalternative/ui/textalternativeformview.js index 10ca1a95a7..b4062264f5 100644 --- a/core/modules/ckeditor5/js/drupal/src/drupalMedia/src/mediaimagetextalternative/ui/textalternativeformview.js +++ b/core/assets/vendor/ckeditor5/drupal/src/drupalMedia/src/mediaimagetextalternative/ui/textalternativeformview.js @@ -11,6 +11,8 @@ import { import { FocusTracker, KeystrokeHandler } from 'ckeditor5/src/utils'; import { icons } from 'ckeditor5/src/core'; +// cspell:ignore focusables + export default class TextAlternativeFormView extends View { /** * @inheritDoc diff --git a/core/modules/ckeditor5/js/drupal/src/drupalMedia/src/ui/utils.js b/core/assets/vendor/ckeditor5/drupal/src/drupalMedia/src/ui/utils.js similarity index 100% rename from core/modules/ckeditor5/js/drupal/src/drupalMedia/src/ui/utils.js rename to core/assets/vendor/ckeditor5/drupal/src/drupalMedia/src/ui/utils.js diff --git a/core/modules/ckeditor5/js/drupal/src/drupalMedia/src/utils.js b/core/assets/vendor/ckeditor5/drupal/src/drupalMedia/src/utils.js similarity index 100% rename from core/modules/ckeditor5/js/drupal/src/drupalMedia/src/utils.js rename to core/assets/vendor/ckeditor5/drupal/src/drupalMedia/src/utils.js diff --git a/core/modules/ckeditor5/js/drupal/src/drupalMedia/theme/icons/medialibrary.svg b/core/assets/vendor/ckeditor5/drupal/src/drupalMedia/theme/icons/medialibrary.svg similarity index 100% rename from core/modules/ckeditor5/js/drupal/src/drupalMedia/theme/icons/medialibrary.svg rename to core/assets/vendor/ckeditor5/drupal/src/drupalMedia/theme/icons/medialibrary.svg diff --git a/core/modules/ckeditor5/js/scripts/build.js b/core/assets/vendor/ckeditor5/scripts/build.js similarity index 100% rename from core/modules/ckeditor5/js/scripts/build.js rename to core/assets/vendor/ckeditor5/scripts/build.js diff --git a/core/modules/ckeditor5/js/scripts/utils.js b/core/assets/vendor/ckeditor5/scripts/utils.js similarity index 100% rename from core/modules/ckeditor5/js/scripts/utils.js rename to core/assets/vendor/ckeditor5/scripts/utils.js diff --git a/core/core.libraries.yml b/core/core.libraries.yml index ee69d9c619..e2b2c4d3d5 100644 --- a/core/core.libraries.yml +++ b/core/core.libraries.yml @@ -22,6 +22,174 @@ ckeditor: js: assets/vendor/ckeditor/ckeditor.js: { preprocess: false, minified: true } +ckeditor5: + remote: &ckeditor5Remote https://github.com/ckeditor/ckeditor5 + version: &ckeditor5Version "29.0.0" + license: &ckeditor5License + name: GNU-GPL-2.0-or-later + url: https://github.com/ckeditor/ckeditor5/blob/master/LICENSE.md + gpl-compatible: true + js: + assets/vendor/ckeditor5/build/ckeditor5-dll.js: { preprocess: false, minified: true } + +ckeditor5.editorClassic: + remote: *ckeditor5Remote + version: *ckeditor5Version + license: *ckeditor5License + js: + assets/vendor/ckeditor5/build/editor-classic.js: { preprocess: false, minified: true } + dependencies: + - core/ckeditor5 + +ckeditor5.editorDecoupled: + remote: *ckeditor5Remote + version: *ckeditor5Version + license: *ckeditor5License + js: + assets/vendor/ckeditor5/build/editor-decoupled.js: { preprocess: false, minified: true } + dependencies: + - core/ckeditor5 + +ckeditor5.internal: + remote: *ckeditor5Remote + version: *ckeditor5Version + license: *ckeditor5License + js: + assets/vendor/ckeditor5/build/essentials.js: { preprocess: false, minified: true } + assets/vendor/ckeditor5/build/heading.js: { preprocess: false, minified: true } + dependencies: + - core/ckeditor5 + +ckeditor5.basic: + remote: *ckeditor5Remote + version: *ckeditor5Version + license: *ckeditor5License + js: + assets/vendor/ckeditor5/build/basic-styles.js: { preprocess: false, minified: true } + dependencies: + - core/ckeditor5 + +ckeditor5.blockquote: + remote: *ckeditor5Remote + version: *ckeditor5Version + license: *ckeditor5License + js: + assets/vendor/ckeditor5/build/block-quote.js: { preprocess: false, minified: true } + dependencies: + - core/ckeditor5 + +ckeditor5.image: + remote: *ckeditor5Remote + version: *ckeditor5Version + license: *ckeditor5License + js: + assets/vendor/ckeditor5/build/image.js: { preprocess: false, minified: true } + dependencies: + - core/ckeditor5 + +ckeditor5.link: + remote: *ckeditor5Remote + version: *ckeditor5Version + license: *ckeditor5License + js: + assets/vendor/ckeditor5/build/link.js: { preprocess: false, minified: true } + dependencies: + - core/ckeditor5 + +ckeditor5.list: + remote: *ckeditor5Remote + version: *ckeditor5Version + license: *ckeditor5License + js: + assets/vendor/ckeditor5/build/list.js: { preprocess: false, minified: true } + dependencies: + - core/ckeditor5 + +ckeditor5.horizontalLine: + remote: *ckeditor5Remote + version: *ckeditor5Version + license: *ckeditor5License + js: + assets/vendor/ckeditor5/build/horizontal-line.js: { preprocess: false, minified: true } + dependencies: + - core/ckeditor5 + +ckeditor5.htmlSupport: + remote: *ckeditor5Remote + version: *ckeditor5Version + license: *ckeditor5License + js: + assets/vendor/ckeditor5/build/html-support.js: { preprocess: false, minified: true } + dependencies: + - core/ckeditor5 + +ckeditor5.alignment: + remote: *ckeditor5Remote + version: *ckeditor5Version + license: *ckeditor5License + js: + assets/vendor/ckeditor5/build/alignment.js: { preprocess: false, minified: true } + dependencies: + - core/ckeditor5 + +ckeditor5.indent: + remote: *ckeditor5Remote + version: *ckeditor5Version + license: *ckeditor5License + js: + assets/vendor/ckeditor5/build/indent.js: { preprocess: false, minified: true } + dependencies: + - core/ckeditor5 + +ckeditor5.sourceEditing: + remote: *ckeditor5Remote + version: *ckeditor5Version + license: *ckeditor5License + js: + assets/vendor/ckeditor5/build/source-editing.js: { preprocess: false, minified: true } + dependencies: + - core/ckeditor5 + +ckeditor5.table: + remote: *ckeditor5Remote + version: *ckeditor5Version + license: *ckeditor5License + js: + assets/vendor/ckeditor5/build/table.js: { preprocess: false, minified: true } + dependencies: + - core/ckeditor5 + +ckeditor5.language: + remote: *ckeditor5Remote + version: *ckeditor5Version + license: *ckeditor5License + css: + component: + css/language.css: {} + js: + assets/vendor/ckeditor5/build/language.js: { preprocess: false, minified: true } + dependencies: + - core/ckeditor5 + +drupal.ckeditor5.image: + js: + assets/vendor/ckeditor5/build/drupal/drupalImage.js: { preprocess: false, minified: true } + dependencies: + - core/ckeditor5.image + +drupal.ckeditor5.emphasis: + version: VERSION + js: + assets/vendor/ckeditor5/build/drupal/drupalEmphasis.js: { preprocess: false, minified: true } + dependencies: + - core/ckeditor5.basic + +drupal.ckeditor5.media: + js: + assets/vendor/ckeditor5/build/drupal/drupalMedia.js: { preprocess: false, minified: true } + dependencies: + - core/ckeditor5 + css.escape: remote: https://github.com/mathiasbynens/CSS.escape version: "1.5.1" diff --git a/core/modules/ckeditor5/ckeditor5.ckeditor5.yml b/core/modules/ckeditor5/ckeditor5.ckeditor5.yml index 2fef53b2d4..c5a8efa1da 100644 --- a/core/modules/ckeditor5/ckeditor5.ckeditor5.yml +++ b/core/modules/ckeditor5/ckeditor5.ckeditor5.yml @@ -7,7 +7,7 @@ ckeditor5_essentials: plugins: [essentials.Essentials] drupal: label: Essentials - library: ckeditor5/ckeditor5.internal + library: core/ckeditor5.internal admin_library: ckeditor5/admin.internal toolbar_items: undo: @@ -23,7 +23,7 @@ ckeditor5_paragraph: plugins: [paragraph.Paragraph] drupal: label: Paragraph - library: ckeditor5/ckeditor5.internal + library: core/ckeditor5.internal admin_library: ckeditor5/admin.internal elements: -
@@ -46,7 +46,7 @@ ckeditor5_heading:
- { model: 'heading6', view: 'h6', title: 'Heading 6', class: 'ck-heading_heading6' }
drupal:
label: Headings
- library: ckeditor5/ckeditor5.internal
+ library: core/ckeditor5.internal
admin_library: ckeditor5/admin.heading
class: Drupal\ckeditor5\Plugin\CKEditor5Plugin\Heading
toolbar_items:
@@ -76,7 +76,7 @@ ckeditor5_htmlSupport:
drupal:
label: Arbitrary HTML support
elements: false
- library: ckeditor5/ckeditor5.htmlSupport
+ library: core/ckeditor5.htmlSupport
# @see \Drupal\ckeditor5\Plugin\CKEditor5PluginManagerInterface::getEnabledDefinitions()
conditions: []
@@ -91,7 +91,7 @@ ckeditor5_sourceEditing:
# This is the only CKEditor 5 plugin allowed to generate a superset of elements.
# @see \Drupal\ckeditor5\Plugin\CKEditor5Plugin\SourceEditing::getElementsSubset()
elements: ['<*>']
- library: ckeditor5/ckeditor5.sourceEditing
+ library: core/ckeditor5.sourceEditing
admin_library: ckeditor5/admin.sourceEditing
toolbar_items:
sourceEditing:
@@ -102,7 +102,7 @@ ckeditor5_bold:
plugins: [basicStyles.Bold]
drupal:
label: Bold
- library: ckeditor5/ckeditor5.basic
+ library: core/ckeditor5.basic
admin_library: ckeditor5/admin.basic
toolbar_items:
bold:
@@ -117,7 +117,7 @@ ckeditor5_emphasis:
- drupalEmphasis.DrupalEmphasis
drupal:
label: Emphasis
- library: ckeditor5/drupal.ckeditor5.emphasis
+ library: core/drupal.ckeditor5.emphasis
admin_library: ckeditor5/admin.basic
toolbar_items:
italic:
@@ -130,7 +130,7 @@ ckeditor5_underline:
plugins: [basicStyles.Underline]
drupal:
label: Underline
- library: ckeditor5/ckeditor5.basic
+ library: core/ckeditor5.basic
admin_library: ckeditor5/admin.basic
toolbar_items:
underline:
@@ -143,7 +143,7 @@ ckeditor5_code:
plugins: [basicStyles.Code]
drupal:
label: Code
- library: ckeditor5/ckeditor5.basic
+ library: core/ckeditor5.basic
admin_library: ckeditor5/admin.basic
toolbar_items:
code:
@@ -156,7 +156,7 @@ ckeditor5_strikethrough:
plugins: [basicStyles.Strikethrough]
drupal:
label: Strikethrough
- library: ckeditor5/ckeditor5.basic
+ library: core/ckeditor5.basic
admin_library: ckeditor5/admin.basic
toolbar_items:
strikethrough:
@@ -169,7 +169,7 @@ ckeditor5_subscript:
plugins: [basicStyles.Subscript]
drupal:
label: Subscript
- library: ckeditor5/ckeditor5.basic
+ library: core/ckeditor5.basic
admin_library: ckeditor5/admin.basic
toolbar_items:
subscript:
@@ -182,7 +182,7 @@ ckeditor5_superscript:
plugins: [basicStyles.Superscript]
drupal:
label: Superscript
- library: ckeditor5/ckeditor5.basic
+ library: core/ckeditor5.basic
admin_library: ckeditor5/admin.basic
toolbar_items:
superscript:
@@ -196,7 +196,7 @@ ckeditor5_blockquote:
- blockQuote.BlockQuote
drupal:
label: Block quote
- library: ckeditor5/ckeditor5.blockquote
+ library: core/ckeditor5.blockquote
admin_library: ckeditor5/admin.blockquote
toolbar_items:
blockQuote:
@@ -210,7 +210,7 @@ ckeditor5_link:
- link.Link
drupal:
label: Link
- library: ckeditor5/ckeditor5.link
+ library: core/ckeditor5.link
admin_library: ckeditor5/admin.link
toolbar_items:
link:
@@ -223,7 +223,7 @@ ckeditor5_list:
plugins: [list.List]
drupal:
label: List
- library: ckeditor5/ckeditor5.list
+ library: core/ckeditor5.list
admin_library: ckeditor5/admin.list
toolbar_items:
bulletedList:
@@ -240,7 +240,7 @@ ckeditor5_horizontalLine:
plugins: [horizontalLine.HorizontalLine]
drupal:
label: Horizontal line
- library: ckeditor5/ckeditor5.horizontalLine
+ library: core/ckeditor5.horizontalLine
admin_library: ckeditor5/admin.horizontalLine
toolbar_items:
horizontalLine:
@@ -265,7 +265,7 @@ ckeditor5_alignment:
className: text-align-justify
drupal:
label: Alignment
- library: ckeditor5/ckeditor5.alignment
+ library: core/ckeditor5.alignment
admin_library: ckeditor5/admin.alignment
toolbar_items:
alignment:
@@ -291,7 +291,7 @@ ckeditor5_table:
contentToolbar: [tableColumn, tableRow, mergeTableCells]
drupal:
label: Table
- library: ckeditor5/ckeditor5.table
+ library: core/ckeditor5.table
admin_library: ckeditor5/admin.table
toolbar_items:
insertTable:
@@ -316,7 +316,7 @@ ckeditor5_image:
toolbar: [imageTextAlternative]
drupal:
label: Image
- library: ckeditor5/drupal.ckeditor5.image
+ library: core/drupal.ckeditor5.image
elements:
-
conditions:
@@ -367,7 +367,7 @@ ckeditor5_indent:
drupal:
label: Indent
elements: false
- library: ckeditor5/ckeditor5.indent
+ library: core/ckeditor5.indent
admin_library: ckeditor5/admin.indent
toolbar_items:
indent:
diff --git a/core/modules/ckeditor5/ckeditor5.libraries.yml b/core/modules/ckeditor5/ckeditor5.libraries.yml
index 8630e825f9..467a7d5435 100644
--- a/core/modules/ckeditor5/ckeditor5.libraries.yml
+++ b/core/modules/ckeditor5/ckeditor5.libraries.yml
@@ -1,157 +1,11 @@
# cspell:ignore imageupload
-ckeditor5:
- remote: &ckeditor5Remote https://github.com/ckeditor/ckeditor5
- version: &ckeditor5Version "29.0.0"
- license: &ckeditor5License
- name: GNU-GPL-2.0-or-later
- url: https://github.com/ckeditor/ckeditor5/blob/master/LICENSE.md
- gpl-compatible: true
- js:
- js/build/ckeditor5-dll.js: { preprocess: false, minified: true }
-
-ckeditor5.editorClassic:
- remote: *ckeditor5Remote
- version: *ckeditor5Version
- license: *ckeditor5License
- js:
- js/build/editor-classic.js: { preprocess: false, minified: true }
- dependencies:
- - ckeditor5/ckeditor5
-
-ckeditor5.editorDecoupled:
- remote: *ckeditor5Remote
- version: *ckeditor5Version
- license: *ckeditor5License
- js:
- js/build/editor-decoupled.js: { preprocess: false, minified: true }
- dependencies:
- - ckeditor5/ckeditor5
-
-ckeditor5.internal:
- remote: *ckeditor5Remote
- version: *ckeditor5Version
- license: *ckeditor5License
- js:
- js/build/essentials.js: { preprocess: false, minified: true }
- js/build/heading.js: { preprocess: false, minified: true }
- dependencies:
- - ckeditor5/ckeditor5
-
-ckeditor5.basic:
- remote: *ckeditor5Remote
- version: *ckeditor5Version
- license: *ckeditor5License
- js:
- js/build/basic-styles.js: { preprocess: false, minified: true }
- dependencies:
- - ckeditor5/ckeditor5
-
-ckeditor5.blockquote:
- remote: *ckeditor5Remote
- version: *ckeditor5Version
- license: *ckeditor5License
- js:
- js/build/block-quote.js: { preprocess: false, minified: true }
- dependencies:
- - ckeditor5/ckeditor5
-
-ckeditor5.image:
- remote: *ckeditor5Remote
- version: *ckeditor5Version
- license: *ckeditor5License
- js:
- js/build/image.js: { preprocess: false, minified: true }
- dependencies:
- - ckeditor5/ckeditor5
-
-ckeditor5.link:
- remote: *ckeditor5Remote
- version: *ckeditor5Version
- license: *ckeditor5License
- js:
- js/build/link.js: { preprocess: false, minified: true }
- dependencies:
- - ckeditor5/ckeditor5
-
-ckeditor5.list:
- remote: *ckeditor5Remote
- version: *ckeditor5Version
- license: *ckeditor5License
- js:
- js/build/list.js: { preprocess: false, minified: true }
- dependencies:
- - ckeditor5/ckeditor5
-
-ckeditor5.horizontalLine:
- remote: *ckeditor5Remote
- version: *ckeditor5Version
- license: *ckeditor5License
- js:
- js/build/horizontal-line.js: { preprocess: false, minified: true }
- dependencies:
- - ckeditor5/ckeditor5
-
-ckeditor5.htmlSupport:
- remote: *ckeditor5Remote
- version: *ckeditor5Version
- license: *ckeditor5License
- js:
- js/build/html-support.js: { preprocess: false, minified: true }
- dependencies:
- - ckeditor5/ckeditor5
-
-ckeditor5.alignment:
- remote: *ckeditor5Remote
- version: *ckeditor5Version
- license: *ckeditor5License
- js:
- js/build/alignment.js: { preprocess: false, minified: true }
- dependencies:
- - ckeditor5/ckeditor5
-
-ckeditor5.indent:
- remote: *ckeditor5Remote
- version: *ckeditor5Version
- license: *ckeditor5License
- js:
- js/build/indent.js: { preprocess: false, minified: true }
- dependencies:
- - ckeditor5/ckeditor5
-
-ckeditor5.sourceEditing:
- remote: *ckeditor5Remote
- version: *ckeditor5Version
- license: *ckeditor5License
- js:
- js/build/source-editing.js: { preprocess: false, minified: true }
- dependencies:
- - ckeditor5/ckeditor5
-
-ckeditor5.table:
- remote: *ckeditor5Remote
- version: *ckeditor5Version
- license: *ckeditor5License
- js:
- js/build/table.js: { preprocess: false, minified: true }
-
ckeditor5.language:
- remote: *ckeditor5Remote
- version: *ckeditor5Version
- license: *ckeditor5License
css:
component:
css/language.css: {}
- js:
- js/build/language.js: { preprocess: false, minified: true }
dependencies:
- - ckeditor5/ckeditor5
-
-media_embed_ckeditor5_theme:
- js:
- js/media_embed_ckeditor5.theme.js: {}
- dependencies:
- - core/drupal
+ - core/ckeditor5.language
drupal.ckeditor5:
js:
@@ -163,9 +17,9 @@ drupal.ckeditor5:
- core/jquery
- core/drupal
- core/drupal.debounce
- - ckeditor5/ckeditor5.editorClassic
- - ckeditor5/ckeditor5.editorDecoupled
- - ckeditor5/ckeditor5
+ - core/ckeditor5.editorClassic
+ - core/ckeditor5.editorDecoupled
+ - core/ckeditor5
- editor/drupal.editor
- ckeditor5/drupal.ckeditor5.quickedit-temporary-work-around
@@ -175,37 +29,12 @@ drupal.ckeditor5.quickedit-temporary-work-around:
theme:
css/quickedit-override.css: {}
-drupal.ckeditor5.image:
- remote: https://github.com/zrpnr/ckeditor5-drupal-image
- version: 1.0.0
- license:
- name: GNU-GPL-2.0-or-later
- url: https://github.com/zrpnr/ckeditor5-drupal-image/blob/main/LICENSE
- gpl-compatible: true
- js:
- js/build/drupal/drupalImage.js: { preprocess: false, minified: true }
- dependencies:
- - ckeditor5/ckeditor5.image
-
-drupal.ckeditor5.emphasis:
- version: VERSION
- js:
- js/build/drupal/drupalEmphasis.js: { preprocess: false, minified: true }
- dependencies:
- - ckeditor5/ckeditor5.basic
-
drupal.ckeditor5.media:
- remote: https://github.com/zrpnr/ckeditor5-drupal-media
- version: 1.0.0
- license:
- name: GNU-GPL-2.0-or-later
- url: https://github.com/zrpnr/ckeditor5-drupal-media/blob/main/LICENSE
- gpl-compatible: true
js:
- js/build/drupal/drupalMedia.js: { preprocess: false, minified: true }
+ js/media_embed_ckeditor5.theme.js: {}
dependencies:
- - ckeditor5/ckeditor5
- - ckeditor5/media_embed_ckeditor5_theme
+ - core/drupal
+ - core/drupal.ckeditor5.media
ie11.user.warnings:
js:
@@ -283,7 +112,7 @@ admin.heading:
theme:
css/heading.admin.css: { }
dependencies:
- - ckeditor5/ckeditor5.internal
+ - core/ckeditor5.internal
admin.horizontalLine:
css:
diff --git a/core/modules/ckeditor5/ckeditor5.module b/core/modules/ckeditor5/ckeditor5.module
index 10699e90d2..0ac517bc19 100644
--- a/core/modules/ckeditor5/ckeditor5.module
+++ b/core/modules/ckeditor5/ckeditor5.module
@@ -321,11 +321,11 @@ function ckeditor5_library_info_alter(&$libraries, $extension) {
$libraries['base']['dependencies'][] = 'ckeditor5/ie11.user.warnings';
}
- if ($extension === 'ckeditor5') {
+ if ($extension === 'core') {
// Generate libraries for each of the CKEditor 5 translation files so that
// the correct translation file can be attached depending on the current
// language.
- $files = scandir(\Drupal::service('extension.list.module')->getPath('ckeditor5') . '/js/build/translations');
+ $files = scandir('core/assets/vendor/ckeditor5/build/translations');
foreach ($files as $file) {
if ($file[0] !== '.' && preg_match('/\.js$/', $file)) {
$langcode = basename($file, '.js');
@@ -334,7 +334,7 @@ function ckeditor5_library_info_alter(&$libraries, $extension) {
'version' => $libraries['ckeditor5']['version'],
'license' => $libraries['ckeditor5']['license'],
'js' => [
- 'js/build/translations/' . $file => ['preprocess' => FALSE, 'minified' => TRUE],
+ 'assets/vendor/ckeditor5/build/translations/' . $file => ['preprocess' => FALSE, 'minified' => TRUE],
],
];
}
diff --git a/core/modules/ckeditor5/css/alignment.admin.css b/core/modules/ckeditor5/css/alignment.admin.css
index 83b50ecc88..2830a9d556 100644
--- a/core/modules/ckeditor5/css/alignment.admin.css
+++ b/core/modules/ckeditor5/css/alignment.admin.css
@@ -27,19 +27,19 @@
background-position-x: 30px;
}
.ckeditor5-toolbar-button-alignment::after {
- content: '';
- color: #000;
+ position: relative;
+ right: -10px;
display: inline-block;
- border-style: solid;
- border-width: 2px 2px 0 0;
- height: 7px;
width: 7px;
+ height: 7px;
+ content: "";
transform: rotate(135deg);
- position: relative;
+ color: #000;
+ border-width: 2px 2px 0 0;
+ border-style: solid;
background-position-x: -10px;
- right: -10px;
}
[dir="rtl"] .ckeditor5-toolbar-button-alignment::after {
- background-position-x: 10px;
right: 10px;
+ background-position-x: 10px;
}
diff --git a/core/modules/ckeditor5/css/drupalmedia.admin.css b/core/modules/ckeditor5/css/drupalmedia.admin.css
index 254747879d..7a381a053d 100644
--- a/core/modules/ckeditor5/css/drupalmedia.admin.css
+++ b/core/modules/ckeditor5/css/drupalmedia.admin.css
@@ -1,3 +1,4 @@
+/* cspell:ignore medialibrary */
.ckeditor5-toolbar-button-drupalMedia {
background-image: url(../icons/medialibrary.svg);
}
diff --git a/core/modules/ckeditor5/css/filter.admin.css b/core/modules/ckeditor5/css/filter.admin.css
index 75f51d0327..dc9c54cbb3 100644
--- a/core/modules/ckeditor5/css/filter.admin.css
+++ b/core/modules/ckeditor5/css/filter.admin.css
@@ -1,4 +1,4 @@
.ckeditor5-filter-attention {
- outline: 1px red dashed;
padding: 4px;
+ outline: 1px red dashed;
}
diff --git a/core/modules/ckeditor5/css/heading.admin.css b/core/modules/ckeditor5/css/heading.admin.css
index a26c1ab780..d16d435a4a 100644
--- a/core/modules/ckeditor5/css/heading.admin.css
+++ b/core/modules/ckeditor5/css/heading.admin.css
@@ -20,4 +20,4 @@
.ck[class*="ck-heading_heading"] {
font-weight: bold;
-}
\ No newline at end of file
+}
diff --git a/core/modules/ckeditor5/css/ie-warnings.css b/core/modules/ckeditor5/css/ie-warnings.css
index edd27897e9..b330d27f88 100644
--- a/core/modules/ckeditor5/css/ie-warnings.css
+++ b/core/modules/ckeditor5/css/ie-warnings.css
@@ -1,8 +1,8 @@
.quickedit-field.quickedit-highlighted.ck5-ie11,
.quickedit-form.quickedit-highlighted.ck5-ie11,
.quickedit-field .quickedit-highlighted.ck5-ie11 {
- box-shadow: 0 0 0 1px #ff0000, 0 0 0 2px #ff0000;
cursor: default;
+ box-shadow: 0 0 0 1px #f00, 0 0 0 2px #f00;
}
.quickedit .icon.ck5-ie11 {
diff --git a/core/modules/ckeditor5/css/imageupload.admin.css b/core/modules/ckeditor5/css/imageupload.admin.css
index a29b16e5fc..5d4f9549b0 100644
--- a/core/modules/ckeditor5/css/imageupload.admin.css
+++ b/core/modules/ckeditor5/css/imageupload.admin.css
@@ -1,3 +1,4 @@
+/* cspell:ignore imageupload */
.ckeditor5-toolbar-button-uploadImage {
background-image: url(../icons/imageupload.svg);
}
diff --git a/core/modules/ckeditor5/css/internal.admin.css b/core/modules/ckeditor5/css/internal.admin.css
index 09ea17e38b..62a5ac434b 100644
--- a/core/modules/ckeditor5/css/internal.admin.css
+++ b/core/modules/ckeditor5/css/internal.admin.css
@@ -14,30 +14,30 @@
}
.ckeditor5-toolbar-button-heading {
- width: 100px;
display: flex;
- justify-content: space-between;
align-items: center;
+ justify-content: space-between;
+ width: 100px;
color: #000;
}
.ckeditor5-toolbar-button-heading::before {
- content: 'Heading';
margin-left: 10px;
+ content: "Heading";
font-size: 14px;
}
[dir="rtl"] .ckeditor5-toolbar-button-heading::before {
- margin-left: 0;
margin-right: 10px;
+ margin-left: 0;
}
.ckeditor5-toolbar-button-heading::after {
- content: '';
- margin-right: 10px;
display: inline-block;
- border-style: solid;
- border-width: 2px 2px 0 0;
- height: 7px;
width: 7px;
+ height: 7px;
+ margin-right: 10px;
+ content: "";
transform: rotate(135deg);
+ border-width: 2px 2px 0 0;
+ border-style: solid;
}
[dir="rtl"] .ckeditor5-toolbar-button-heading::after {
margin-right: 0;
diff --git a/core/modules/ckeditor5/css/language.admin.css b/core/modules/ckeditor5/css/language.admin.css
index a360466144..42ebab47e9 100644
--- a/core/modules/ckeditor5/css/language.admin.css
+++ b/core/modules/ckeditor5/css/language.admin.css
@@ -1,28 +1,28 @@
.ckeditor5-toolbar-button-textPartLanguage {
- width: 110px;
display: flex;
- justify-content: space-between;
align-items: center;
+ justify-content: space-between;
+ width: 110px;
color: #000;
}
.ckeditor5-toolbar-button-textPartLanguage::before {
- content: 'Language';
margin-left: 10px;
+ content: "Language";
font-size: 14px;
}
[dir="rtl"] .ckeditor5-toolbar-button-textPartLanguage::before {
- margin-left: 0;
margin-right: 10px;
+ margin-left: 0;
}
.ckeditor5-toolbar-button-textPartLanguage::after {
- content: '';
- margin-right: 10px;
display: inline-block;
- border-style: solid;
- border-width: 2px 2px 0 0;
- height: 7px;
width: 7px;
+ height: 7px;
+ margin-right: 10px;
+ content: "";
transform: rotate(135deg);
+ border-width: 2px 2px 0 0;
+ border-style: solid;
}
[dir="rtl"] .ckeditor5-toolbar-button-textPartLanguage::after {
margin-right: 0;
diff --git a/core/modules/ckeditor5/css/language.css b/core/modules/ckeditor5/css/language.css
index 3097b6681f..b13e52150e 100644
--- a/core/modules/ckeditor5/css/language.css
+++ b/core/modules/ckeditor5/css/language.css
@@ -9,10 +9,10 @@
* '(en)'. Since the html element has a 'lang' attribute too we only target
* elements within the html scope.
*/
-.ck-content [lang] {
+.ck-content [lang] {
outline: 1px dotted gray;
}
-.ck-content [lang]:after {
+.ck-content [lang]:after {
content: " ("attr(lang)")";
color: #666;
font-size: 10px;
diff --git a/core/modules/ckeditor5/css/list.admin.css b/core/modules/ckeditor5/css/list.admin.css
index 5b6e316054..7c37fa0cf0 100644
--- a/core/modules/ckeditor5/css/list.admin.css
+++ b/core/modules/ckeditor5/css/list.admin.css
@@ -1,3 +1,4 @@
+/* cspell:ignore bulletedlist numberedlist */
.ckeditor5-toolbar-button-bulletedList {
background-image: url(../icons/bulletedlist.svg);
}
diff --git a/core/modules/ckeditor5/css/quickedit-override.css b/core/modules/ckeditor5/css/quickedit-override.css
index 260ea79898..e64eb0d03c 100644
--- a/core/modules/ckeditor5/css/quickedit-override.css
+++ b/core/modules/ckeditor5/css/quickedit-override.css
@@ -1,8 +1,8 @@
.quickedit-editable,
.quickedit-editing.ck.ck-editor__editable_inline {
- margin-bottom: inherit !important;
top: inherit !important;
left: inherit !important;
+ margin-bottom: inherit !important;
}
.quickedit-editing.ck.ck-editor__editable_inline > :first-child {
margin-top: inherit;
diff --git a/core/modules/ckeditor5/css/toolbar.admin.css b/core/modules/ckeditor5/css/toolbar.admin.css
index 3d70a31460..40b04dd951 100644
--- a/core/modules/ckeditor5/css/toolbar.admin.css
+++ b/core/modules/ckeditor5/css/toolbar.admin.css
@@ -7,15 +7,15 @@
}
.ckeditor5-toolbar-tray {
- margin: 0 0 0.5em 0;
- padding: 0;
display: flex;
flex-flow: row wrap;
align-items: center;
+ min-height: 40px;
+ margin: 0 0 0.5em 0;
+ padding: 0;
list-style: none;
/* Disallow any user selections in the drag-and-drop toolbar config UI. */
user-select: none;
- min-height: 40px;
}
.ckeditor5-toolbar-active__buttons {
@@ -28,16 +28,16 @@
.ckeditor5-toolbar-item,
.ckeditor5-toolbar-button {
+ display: block;
min-width: 36px;
height: 36px;
- border-radius: 2px;
- display: block;
cursor: move;
+ border-radius: 2px;
}
.ckeditor5-toolbar-item {
- margin: 5px 8px 5px 0;
position: relative;
+ margin: 5px 8px 5px 0;
}
.ckeditor5-toolbar-disabled .ckeditor5-toolbar-item {
@@ -45,17 +45,17 @@
}
.ckeditor5-toolbar-button {
+ border: none;
background-color: #eee;
- background-size: 20px;
- background-position: center;
background-repeat: no-repeat;
- border: none;
+ background-position: center;
+ background-size: 20px;
}
.ckeditor5-toolbar-button:focus,
.ckeditor5-toolbar-button:hover {
- background-color: #e6e6e6;
color: #000;
+ background-color: #e6e6e6;
}
.ckeditor5-toolbar-button:focus,
@@ -64,27 +64,27 @@
text-decoration: none;
}
.ckeditor5-toolbar-tooltip {
- padding: 6px 10px;
- display: block;
position: absolute;
+ z-index: 1;
left: 50%;
+ display: block;
+ padding: 6px 10px;
transform: translate(-50%, 2px);
- background: #333;
+ text-transform: capitalize;
+ color: #fff;
border-radius: 3px;
+ background: #333;
font-size: 12px;
line-height: 1;
- text-transform: capitalize;
- color: #fff;
- z-index: 1;
}
.ckeditor5-toolbar-tooltip::before {
- content: '';
position: absolute;
- width: 0px;
- height: 5px;
top: -10px;
left: 50%;
+ width: 0;
+ height: 5px;
+ content: "";
transform: translateX(-50%);
border-right: solid 5px transparent;
border-bottom: solid 5px #333;
diff --git a/core/modules/ckeditor5/js/build/drupal/drupalEmphasis.js b/core/modules/ckeditor5/js/build/drupal/drupalEmphasis.js
deleted file mode 100644
index 7aa31a0b7f..0000000000
--- a/core/modules/ckeditor5/js/build/drupal/drupalEmphasis.js
+++ /dev/null
@@ -1 +0,0 @@
-!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.CKEditor5=t():(e.CKEditor5=e.CKEditor5||{},e.CKEditor5.drupalEmphasis=t())}(self,(function(){return function(){var e={"ckeditor5/src/core.js":function(e,t,r){e.exports=r("dll-reference CKEditor5.dll")("./src/core.js")},"dll-reference CKEditor5.dll":function(e){"use strict";e.exports=CKEditor5.dll}},t={};function r(o){var i=t[o];if(void 0!==i)return i.exports;var n=t[o]={exports:{}};return e[o](n,n.exports,r),n.exports}r.d=function(e,t){for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)};var o={};return function(){"use strict";r.d(o,{default:function(){return s}});var e=r("ckeditor5/src/core.js");class t extends e.Plugin{static get pluginName(){return"DrupalEmphasisEditing"}init(){this.editor.conversion.for("downcast").attributeToElement({model:"italic",view:"em",converterPriority:"high"})}}var i=t;class n extends e.Plugin{static get requires(){return[i]}static get pluginName(){return"DrupalEmphasis"}}var s={DrupalEmphasis:n}}(),o=o.default}()}));
\ No newline at end of file
diff --git a/core/modules/ckeditor5/js/build/drupal/drupalImage.js b/core/modules/ckeditor5/js/build/drupal/drupalImage.js
deleted file mode 100644
index f8cfd6b902..0000000000
--- a/core/modules/ckeditor5/js/build/drupal/drupalImage.js
+++ /dev/null
@@ -1 +0,0 @@
-!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.CKEditor5=e():(t.CKEditor5=t.CKEditor5||{},t.CKEditor5.drupalImage=e())}(self,(function(){return function(){var t={"ckeditor5/src/core.js":function(t,e,i){t.exports=i("dll-reference CKEditor5.dll")("./src/core.js")},"ckeditor5/src/upload.js":function(t,e,i){t.exports=i("dll-reference CKEditor5.dll")("./src/upload.js")},"ckeditor5/src/utils.js":function(t,e,i){t.exports=i("dll-reference CKEditor5.dll")("./src/utils.js")},"dll-reference CKEditor5.dll":function(t){"use strict";t.exports=CKEditor5.dll}},e={};function i(r){var n=e[r];if(void 0!==n)return n.exports;var a=e[r]={exports:{}};return t[r](a,a.exports,i),a.exports}i.d=function(t,e){for(var r in e)i.o(e,r)&&!i.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)};var r={};return function(){"use strict";i.d(r,{default:function(){return p}});var t=i("ckeditor5/src/core.js");function e(t){return t.createEmptyElement("img")}class n extends t.Plugin{static get pluginName(){return"DrupalImageEditing"}init(){const t=this.editor,i=t.conversion,{schema:r}=t.model;r.isRegistered("imageInline")&&r.extend("imageInline",{allowAttributes:["dataEntityUuid","dataEntityType","width","height"]}),r.isRegistered("imageBlock")&&r.extend("imageBlock",{allowAttributes:["dataEntityUuid","dataEntityType","width","height"]}),i.for("upcast").add(function(t){function e(e,i,r){const{viewItem:n}=i,{writer:a,consumable:o,safeInsert:s,updateConversionResult:u,schema:l}=r,d=[];let c;if(o.test(n,{name:!0,attributes:"src"})){if(c=l.checkChild(i.modelCursor,"imageInline")?a.createElement("imageInline",{src:n.getAttribute("src")}):a.createElement("imageBlock",{src:n.getAttribute("src")}),t.plugins.has("ImageStyleEditing")&&o.test(n,{name:!0,attributes:"data-align"})){const t={left:"alignBlockLeft",center:"alignCenter",right:"alignBlockRight"},e={left:"alignLeft",right:"alignRight"},i=n.getAttribute("data-align"),r=c.is("element","imageBlock")?t[i]:e[i];a.setAttribute("imageStyle",r,c),d.push("data-align")}if(c.is("element","imageBlock")&&o.test(n,{name:!0,attributes:"data-caption"})){const t=a.createElement("caption");a.insertText(n.getAttribute("data-caption"),t),a.append(t,c),d.push("data-caption")}o.test(n,{name:!0,attributes:"data-entity-uuid"})&&(a.setAttribute("dataEntityUuid",n.getAttribute("data-entity-uuid"),c),d.push("data-entity-uuid")),o.test(n,{name:!0,attributes:"data-entity-type"})&&(a.setAttribute("dataEntityType",n.getAttribute("data-entity-type"),c),d.push("data-entity-type")),s(c,i.modelCursor)&&(o.consume(n,{name:!0,attributes:d}),u(c,i))}}return t=>{t.on("element:img",e,{priority:"high"})}}(t)).attributeToAttribute({view:{name:"img",key:"width"},model:{key:"width",value:t=>`${t.getAttribute("width")}px`}}).attributeToAttribute({view:{name:"img",key:"height"},model:{key:"height",value:t=>`${t.getAttribute("height")}px`}}),i.for("downcast").add(function(){function t(t,e,i){const{item:r}=e,{consumable:n,writer:a}=i;if(!n.consume(r,t.name))return;const o=i.mapper.toViewElement(r),s=Array.from(o.getChildren()).find((t=>"img"===t.name));a.setAttribute("data-entity-uuid",e.attributeNewValue,s||o)}return e=>{e.on("attribute:dataEntityUuid",t)}}()).add(function(){function t(t,e,i){const{item:r}=e,{consumable:n,writer:a}=i;if(!n.consume(r,t.name))return;const o=i.mapper.toViewElement(r),s=Array.from(o.getChildren()).find((t=>"img"===t.name));a.setAttribute("data-entity-type",e.attributeNewValue,s||o)}return e=>{e.on("attribute:dataEntityType",t)}}()),i.for("dataDowncast").add((e=>{e.on("insert:caption",((e,i,r)=>{if(!r.consumable.consume(i.item,"insert"))return;let n="";if(Array.from(t.model.createRangeIn(i.item)).forEach((({item:t})=>{r.consumable.consume(t,"insert")&&t.is("$textProxy")&&(n+=t.data)})),n){const t=r.mapper.toViewElement(i.item.parent);r.writer.setAttribute("data-caption",n,t)}}),{priority:"high"})})).add((t=>{t.on("insert:$text",((t,e)=>{const{parent:i}=e.item;i.is("element","caption")&&i.parent.is("element","imageBlock")&&t.stop()}),{priority:"highest"})})).elementToElement({model:"imageBlock",view:(t,{writer:i})=>e(i),converterPriority:"high"}).elementToElement({model:"imageInline",view:(t,{writer:i})=>e(i),converterPriority:"high"}).add(function(){function t(t,e,i){const{item:r}=e,{consumable:n,writer:a}=i,o={alignLeft:"left",alignRight:"right",alignCenter:"center",alignBlockRight:"right",alignBlockLeft:"left"};if(!o[e.attributeNewValue]||!n.consume(r,t.name))return;const s=i.mapper.toViewElement(r),u=Array.from(s.getChildren()).find((t=>"img"===t.name));a.setAttribute("data-align",o[e.attributeNewValue],u||s)}return e=>{e.on("attribute:imageStyle",t,{priority:"high"})}}()).add(function(){function t(t,e,i){const{item:r}=e,{consumable:n,writer:a}=i;if(!n.consume(r,t.name))return;const o=i.mapper.toViewElement(r),s=Array.from(o.getChildren()).find((t=>"img"===t.name));a.setAttribute("width",e.attributeNewValue.replace("px",""),s||o)}return e=>{e.on("attribute:width:imageInline",t,{priority:"high"}),e.on("attribute:width:imageBlock",t,{priority:"high"})}}()).add(function(){function t(t,e,i){const{item:r}=e,{consumable:n,writer:a}=i;if(!n.consume(r,t.name))return;const o=i.mapper.toViewElement(r),s=Array.from(o.getChildren()).find((t=>"img"===t.name));a.setAttribute("height",e.attributeNewValue.replace("px",""),s||o)}return e=>{e.on("attribute:height:imageInline",t,{priority:"high"}),e.on("attribute:height:imageBlock",t,{priority:"high"})}}())}}class a extends t.Plugin{static get requires(){return[n]}static get pluginName(){return"DrupalImage"}}var o=a;class s extends t.Plugin{init(){const{editor:t}=this;t.plugins.get("ImageUploadEditing").on("uploadComplete",((e,{data:i,imageElement:r})=>{t.model.change((t=>{t.setAttribute("dataEntityUuid",i.dataEntityUuid,r),t.setAttribute("dataEntityType",i.dataEntityType,r)}))}))}static get pluginName(){return"DrupalImageUploadEditing"}}var u=i("ckeditor5/src/upload.js"),l=i("ckeditor5/src/utils.js");class d{constructor(t,e){this.loader=t,this.options=e}upload(){return this.loader.file.then((t=>new Promise(((e,i)=>{this._initRequest(),this._initListeners(e,i,t),this._sendRequest(t)}))))}abort(){this.xhr&&this.xhr.abort()}_initRequest(){this.xhr=new XMLHttpRequest,this.xhr.open("POST",this.options.uploadUrl,!0),this.xhr.responseType="json"}_initListeners(t,e,i){const r=this.xhr,n=this.loader,a=`Couldn't upload file: ${i.name}.`;r.addEventListener("error",(()=>e(a))),r.addEventListener("abort",(()=>e())),r.addEventListener("load",(()=>{const i=r.response;if(!i||i.error)return e(i&&i.error&&i.error.message?i.error.message:a);t({urls:{default:i.url},dataEntityUuid:i.uuid?i.uuid:"",dataEntityType:i.entity_type?i.entity_type:""})})),r.upload&&r.upload.addEventListener("progress",(t=>{t.lengthComputable&&(n.uploadTotal=t.total,n.uploaded=t.loaded)}))}_sendRequest(t){const e=this.options.headers||{},i=this.options.withCredentials||!1;Object.keys(e).forEach((t=>{this.xhr.setRequestHeader(t,e[t])})),this.xhr.withCredentials=i;const r=new FormData;r.append("upload",t),this.xhr.send(r)}}class c extends t.Plugin{static get requires(){return[u.FileRepository]}static get pluginName(){return"DrupalFileRepository"}init(){const t=this.editor.config.get("drupalImageUpload");t&&(t.uploadUrl?this.editor.plugins.get(u.FileRepository).createUploadAdapter=e=>new d(e,t):(0,l.logWarning)("simple-upload-adapter-missing-uploadurl"))}}class m extends t.Plugin{static get requires(){return[c,s]}static get pluginName(){return"DrupalImageUpload"}}var p={DrupalImage:o,DrupalImageUpload:m}}(),r=r.default}()}));
\ No newline at end of file
diff --git a/core/modules/ckeditor5/js/build/drupal/drupalMedia.js b/core/modules/ckeditor5/js/build/drupal/drupalMedia.js
deleted file mode 100644
index 2e548304e0..0000000000
--- a/core/modules/ckeditor5/js/build/drupal/drupalMedia.js
+++ /dev/null
@@ -1 +0,0 @@
-!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.CKEditor5=t():(e.CKEditor5=e.CKEditor5||{},e.CKEditor5.drupalMedia=t())}(self,(function(){return function(){var e={"ckeditor5/src/core.js":function(e,t,i){e.exports=i("dll-reference CKEditor5.dll")("./src/core.js")},"ckeditor5/src/ui.js":function(e,t,i){e.exports=i("dll-reference CKEditor5.dll")("./src/ui.js")},"ckeditor5/src/utils.js":function(e,t,i){e.exports=i("dll-reference CKEditor5.dll")("./src/utils.js")},"ckeditor5/src/widget.js":function(e,t,i){e.exports=i("dll-reference CKEditor5.dll")("./src/widget.js")},"dll-reference CKEditor5.dll":function(e){"use strict";e.exports=CKEditor5.dll}},t={};function i(r){var s=t[r];if(void 0!==s)return s.exports;var o=t[r]={exports:{}};return e[r](o,o.exports,i),o.exports}i.d=function(e,t){for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)};var r={};return function(){"use strict";i.d(r,{default:function(){return _}});var e=i("ckeditor5/src/core.js"),t=i("ckeditor5/src/widget.js");class s extends e.Command{execute(e){this.editor.model.change((t=>{this.editor.model.insertContent(function(e,t){return e.createElement("drupalMedia",t)}(t,e))}))}refresh(){const e=this.editor.model,t=e.document.selection,i=e.schema.findAllowedParent(t.getFirstPosition(),"drupalMedia");this.isEnabled=null!==i}}const o=e=>{const t=e.getAttributes();let i="
${this.editor.t("An error occurred while trying to preview the media. Please save your work and reload this page.")}
\n `,this._defineSchema(),this._defineConverters(),this.editor.commands.add("insertDrupalMedia",new s(this.editor))}async _fetchPreview(e,t){const i=await fetch(`${e}?${new URLSearchParams(t)}`);if(i.ok){return{label:i.headers.get("drupal-media-label"),preview:await i.text()}}return this.themeError}_defineSchema(){this.editor.model.schema.register("drupalMedia",{allowWhere:"$block",isObject:!0,isContent:!0,allowAttributes:this.attrs})}_defineConverters(){const e=this.editor.conversion;e.for("upcast").elementToElement({view:{name:"drupal-media"},model:"drupalMedia"}),e.for("dataDowncast").elementToElement({model:"drupalMedia",view:{name:"drupal-media"}}),e.for("editingDowncast").elementToElement({model:"drupalMedia",view:(e,{writer:i})=>{const r=i.createContainerElement("div",{class:"drupal-media"}),s=i.createRawElement("div",{},(t=>{this.previewURL?this._fetchPreview(this.previewURL,{text:o(e),uuid:e.getAttribute("data-entity-uuid")}).then((({label:e,preview:i})=>{t.innerHTML=i,t.setAttribute("aria-label",e)})):(t.innerHTML=this.themeError,t.setAttribute("aria-label","drupal-media"))}));return i.insert(i.createPositionAt(r,0),s),i.setCustomProperty("drupalMedia",!0,r),(0,t.toWidget)(r,i,{label:"media widget"})}}),this.attrs.forEach((t=>{e.attributeToAttribute({model:t,view:t})}))}}var a=i("ckeditor5/src/ui.js");class l extends e.Plugin{init(){const e=this.editor,t=this.editor.config.get("drupalMedia");if(!t)return;const{libraryURL:i,openDialog:r,dialogSettings:s={}}=t;i&&"function"==typeof r&&e.ui.componentFactory.add("drupalMedia",(t=>{const o=e.commands.get("insertDrupalMedia"),n=new a.ButtonView(t);return n.set({label:e.t("Insert Drupal Media"),icon:'\n',tooltip:!0}),n.bind("isOn","isEnabled").to(o,"value","isEnabled"),this.listenTo(n,"execute",(()=>{r(i,(({attributes:t})=>{e.execute("insertDrupalMedia",t)}),s)})),n}))}}function d(e){return!!e&&e.is("element","drupalMedia")}function c(e){const i=e.getSelectedElement();return i&&function(e){return(0,t.isWidget)(e)&&!!e.getCustomProperty("drupalMedia")}(i)?i:null}class u extends e.Plugin{static get requires(){return[t.WidgetToolbarRepository]}static get pluginName(){return"DrupalMediaToolbar"}afterInit(){const e=this.editor,{t:i}=e;e.plugins.get(t.WidgetToolbarRepository).register("drupalMedia",{ariaLabel:i("Drupal Media toolbar"),items:e.config.get("drupalMedia.toolbar")||[],getRelatedElement:e=>c(e)})}}class h extends e.Command{refresh(){const e=this.editor.model.document.selection.getSelectedElement();this.isEnabled=!1,d(e)&&this._isMediaImage(e).then((e=>{this.isEnabled=e})),d(e)&&e.hasAttribute("alt")?this.value=e.getAttribute("alt"):this.value=!1}execute(e){const t=this.editor.model,i=t.document.selection.getSelectedElement();t.change((t=>{t.setAttribute("alt",e.newValue,i)}))}async _isMediaImage(e){const t=this.editor.config.get("drupalMedia");if(!t)return null;const{isMediaUrl:i}=t,r=new URLSearchParams({uuid:e.getAttribute("data-entity-uuid")}),s=await fetch(`${i}?${r}`);return s.ok?JSON.parse(await s.text()):null}}class m extends e.Plugin{static get pluginName(){return"MediaImageTextAlternativeEditing"}init(){this.editor.commands.add("mediaImageTextAlternative",new h(this.editor))}}function f(e){const t=e.editing.view,i=a.BalloonPanelView.defaultPositions;return{target:t.domConverter.viewToDom(t.document.selection.getSelectedElement()),positions:[i.northArrowSouth,i.northArrowSouthWest,i.northArrowSouthEast,i.southArrowNorth,i.southArrowNorthWest,i.southArrowNorthEast]}}var p=i("ckeditor5/src/utils.js");class g extends a.View{constructor(t){super(t);const i=this.locale.t;this.focusTracker=new p.FocusTracker,this.keystrokes=new p.KeystrokeHandler,this.labeledInput=this._createLabeledInputView(),this.saveButtonView=this._createButton(i("Save"),e.icons.check,"ck-button-save"),this.saveButtonView.type="submit",this.cancelButtonView=this._createButton(i("Cancel"),e.icons.cancel,"ck-button-cancel","cancel"),this._focusables=new a.ViewCollection,this._focusCycler=new a.FocusCycler({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}}),this.setTemplate({tag:"form",attributes:{class:["ck","ck-text-alternative-form","ck-responsive-form"],tabindex:"-1"},children:[this.labeledInput,this.saveButtonView,this.cancelButtonView]}),(0,a.injectCssTransitionDisabler)(this)}render(){super.render(),this.keystrokes.listenTo(this.element),(0,a.submitHandler)({view:this}),[this.labeledInput,this.saveButtonView,this.cancelButtonView].forEach((e=>{this._focusables.add(e),this.focusTracker.add(e.element)}))}_createButton(e,t,i,r){const s=new a.ButtonView(this.locale);return s.set({label:e,icon:t,tooltip:!0}),s.extendTemplate({attributes:{class:i}}),r&&s.delegate("execute").to(this,r),s}_createLabeledInputView(){const e=this.locale.t,t=new a.LabeledFieldView(this.locale,a.createLabeledInputText);return t.label=e("Override text alternative"),t}}class w extends e.Plugin{static get requires(){return[a.ContextualBalloon]}static get pluginName(){return"MediaImageTextAlternativeUi"}init(){this._createButton(),this._createForm()}destroy(){super.destroy(),this._form.destroy()}_createButton(){const t=this.editor,i=t.t;t.ui.componentFactory.add("mediaImageTextAlternative",(r=>{const s=t.commands.get("mediaImageTextAlternative"),o=new a.ButtonView(r);return o.set({label:i("Override media image text alternative"),icon:e.icons.lowVision,tooltip:!0}),o.bind("isVisible").to(s,"isEnabled"),this.listenTo(o,"execute",(()=>{this._showForm()})),o}))}_createForm(){const e=this.editor,t=e.editing.view.document;this._balloon=this.editor.plugins.get("ContextualBalloon"),this._form=new g(e.locale),this._form.render(),this.listenTo(this._form,"submit",(()=>{e.execute("mediaImageTextAlternative",{newValue:this._form.labeledInput.fieldView.element.value}),this._hideForm(!0)})),this.listenTo(this._form,"cancel",(()=>{this._hideForm(!0)})),this._form.keystrokes.set("Esc",((e,t)=>{this._hideForm(!0),t()})),this.listenTo(e.ui,"update",(()=>{c(t.selection)?this._isVisible&&function(e){const t=e.plugins.get("ContextualBalloon");if(c(e.editing.view.document.selection)){const i=f(e);t.updatePosition(i)}}(e):this._hideForm(!0)})),(0,a.clickOutsideHandler)({emitter:this._form,activator:()=>this._isVisible,contextElements:[this._balloon.view.element],callback:()=>this._hideForm()})}_showForm(){if(this._isVisible)return;const e=this.editor,t=e.commands.get("mediaImageTextAlternative"),i=this._form.labeledInput;this._form.disableCssTransitions(),this._isInBalloon||this._balloon.add({view:this._form,position:f(e)}),i.fieldView.element.value=t.value||"",i.fieldView.value=i.fieldView.element.value,this._form.labeledInput.fieldView.select(),this._form.enableCssTransitions()}_hideForm(e){this._isInBalloon&&(this._form.focusTracker.isFocused&&this._form.saveButtonView.focus(),this._balloon.remove(this._form),e&&this.editor.editing.view.focus())}get _isVisible(){return this._balloon.visibleView===this._form}get _isInBalloon(){return this._balloon.hasView(this._form)}}class b extends e.Plugin{static get requires(){return[m,w]}static get pluginName(){return"MediaImageTextAlternative"}}class v extends e.Plugin{static get requires(){return[n,l,u,b]}}var _={DrupalMedia:v,MediaImageTextAlternative:b,MediaImageTextAlternativeEditing:m,MediaImageTextAlternativeUi:w}}(),r=r.default}()})); \ No newline at end of file diff --git a/core/modules/ckeditor5/src/Plugin/Editor/CKEditor5.php b/core/modules/ckeditor5/src/Plugin/Editor/CKEditor5.php index 6bf23dd59a..1c0c38b5a2 100644 --- a/core/modules/ckeditor5/src/Plugin/Editor/CKEditor5.php +++ b/core/modules/ckeditor5/src/Plugin/Editor/CKEditor5.php @@ -840,7 +840,7 @@ protected function getLangcodes(): array { if (empty($langcodes)) { $langcodes = []; // Collect languages included with CKEditor 5 based on file listing. - $files = scandir($this->moduleHandler->getModule('ckeditor5')->getPath() . '/js/build/translations'); + $files = scandir('core/assets/vendor/ckeditor5/build/translations'); foreach ($files as $file) { if ($file[0] !== '.' && preg_match('/\.js$/', $file)) { $langcode = basename($file, '.js'); diff --git a/core/modules/ckeditor5/tests/modules/ckeditor5_test/ckeditor5_test.libraries.yml b/core/modules/ckeditor5/tests/modules/ckeditor5_test/ckeditor5_test.libraries.yml index b69254e079..c0c6118044 100644 --- a/core/modules/ckeditor5/tests/modules/ckeditor5_test/ckeditor5_test.libraries.yml +++ b/core/modules/ckeditor5/tests/modules/ckeditor5_test/ckeditor5_test.libraries.yml @@ -1,3 +1,4 @@ +# cspell:ignore layercake layercake: remote: https://github.com/zrpnr/ckeditor5-drupal-layercake version: 1.0.0 @@ -11,4 +12,4 @@ layercake: theme: css/layout.css: {} dependencies: - - ckeditor5/ckeditor5 + - core/ckeditor5 diff --git a/core/modules/ckeditor5/tests/modules/ckeditor5_test/css/layout.css b/core/modules/ckeditor5/tests/modules/ckeditor5_test/css/layout.css index 1fe43e2e70..91a76da70b 100644 --- a/core/modules/ckeditor5/tests/modules/ckeditor5_test/css/layout.css +++ b/core/modules/ckeditor5/tests/modules/ckeditor5_test/css/layout.css @@ -3,9 +3,8 @@ grid-template-columns: 1fr 1fr; } - .simple-box { - padding: .5rem; + padding: 0.5rem; background: #ccc; } diff --git a/core/modules/ckeditor5/tests/modules/ckeditor5_test/js/build/layercake.js b/core/modules/ckeditor5/tests/modules/ckeditor5_test/js/build/layercake.js index 3c1a3e76f6..9a48179291 100644 --- a/core/modules/ckeditor5/tests/modules/ckeditor5_test/js/build/layercake.js +++ b/core/modules/ckeditor5/tests/modules/ckeditor5_test/js/build/layercake.js @@ -1 +1 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.layerCake=t():(e.CKEditor5=e.CKEditor5||{},e.CKEditor5.layerCake=t())}(window,(function(){return function(e){var t={};function o(i){if(t[i])return t[i].exports;var n=t[i]={i:i,l:!1,exports:{}};return e[i].call(n.exports,n,n.exports,o),n.l=!0,n.exports}return o.m=e,o.c=t,o.d=function(e,t,i){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(e,t){if(1&t&&(e=o(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(o.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)o.d(i,n,function(t){return e[t]}.bind(null,n));return i},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="",o(o.s="./src/index.js")}({"./src/index.js":function(e,t,o){"use strict";o.r(t);var i=o("ckeditor5/src/core.js"),n=o("ckeditor5/src/widget.js");class l extends i.Command{execute(){const{model:e}=this.editor;e.change(t=>{e.insertContent(function(e){const t=e.createElement("simpleBox"),o=e.createElement("simpleBoxTitle"),i=e.createElement("simpleBoxDescription");return e.append(o,t),e.append(i,t),e.appendElement("paragraph",i),t}(t))})}refresh(){const{model:e}=this.editor,{selection:t}=e.document,o=e.schema.findAllowedParent(t.getFirstPosition(),"simpleBox");this.isEnabled=null!==o}}class s extends i.Plugin{static get requires(){return[n.Widget]}init(){this._defineSchema(),this._defineConverters(),this.editor.commands.add("insertSimpleBox",new l(this.editor))}_defineSchema(){const e=this.editor.model.schema;e.register("simpleBox",{isObject:!0,allowWhere:"$block"}),e.register("simpleBoxTitle",{isLimit:!0,allowIn:"simpleBox",allowContentOf:"$block"}),e.register("simpleBoxDescription",{isLimit:!0,allowIn:"simpleBox",allowContentOf:"$root"}),e.addChildCheck((e,t)=>{if(e.endsWith("simpleBoxDescription")&&"simpleBox"==t.name)return!1})}_defineConverters(){const{conversion:e}=this.editor;e.for("upcast").elementToElement({model:"simpleBox",view:{name:"section",classes:"simple-box"}}),e.for("dataDowncast").elementToElement({model:"simpleBox",view:{name:"section",classes:"simple-box"}}),e.for("editingDowncast").elementToElement({model:"simpleBox",view:(e,{writer:t})=>{const o=t.createContainerElement("section",{class:"simple-box"});return Object(n.toWidget)(o,t,{label:"simple box widget"})}}),e.for("upcast").elementToElement({model:"simpleBoxTitle",view:{name:"h1",classes:"simple-box-title"}}),e.for("dataDowncast").elementToElement({model:"simpleBoxTitle",view:{name:"h1",classes:"simple-box-title"}}),e.for("editingDowncast").elementToElement({model:"simpleBoxTitle",view:(e,{writer:t})=>{const o=t.createEditableElement("h1",{class:"simple-box-title"});return Object(n.toWidgetEditable)(o,t)}}),e.for("upcast").elementToElement({model:"simpleBoxDescription",view:{name:"div",classes:"simple-box-description"}}),e.for("dataDowncast").elementToElement({model:"simpleBoxDescription",view:{name:"div",classes:"simple-box-description"}}),e.for("editingDowncast").elementToElement({model:"simpleBoxDescription",view:(e,{writer:t})=>{const o=t.createEditableElement("div",{class:"simple-box-description"});return Object(n.toWidgetEditable)(o,t)}})}}var r=o("ckeditor5/src/ui.js");class c extends i.Plugin{init(){const e=this.editor;e.ui.componentFactory.add("simpleBox",t=>{const o=e.commands.get("insertSimpleBox"),i=new r.ButtonView(t);return i.set({label:e.t("Simple Box"),withText:!0,tooltip:!0}),i.bind("isOn","isEnabled").to(o,"value","isEnabled"),this.listenTo(i,"execute",()=>e.execute("insertSimpleBox")),i})}}class a extends i.Plugin{static get requires(){return[s,c]}}class d extends i.Command{execute(){const{model:e}=this.editor;e.change(t=>{e.insertContent(function(e){const t=e.createElement("twoCol"),o=e.createElement("col"),i=e.createElement("col");return e.append(o,t),e.append(i,t),e.appendElement("paragraph",o),e.appendElement("paragraph",i),t}(t))})}refresh(){const{model:e}=this.editor,{selection:t}=e.document,o=e.schema.findAllowedParent(t.getFirstPosition(),"twoCol");this.isEnabled=null!==o}}class m extends i.Plugin{static get requires(){return[n.Widget]}init(){this._defineSchema(),this._defineConverters(),this.editor.commands.add("insertTwoCol",new d(this.editor))}_defineSchema(){const e=this.editor.model.schema;e.register("twoCol",{isObject:!0,allowWhere:"$block"}),e.register("col",{isLimit:!0,allowIn:"twoCol",allowContentOf:"$root"})}_defineConverters(){const{conversion:e}=this.editor;e.for("upcast").elementToElement({model:"twoCol",view:{name:"section",classes:"layout--two-col"}}),e.for("dataDowncast").elementToElement({model:"twoCol",view:{name:"section",classes:"layout--two-col"}}),e.for("editingDowncast").elementToElement({model:"twoCol",view:(e,{writer:t})=>{const o=t.createContainerElement("section",{class:"layout--two-col"});return Object(n.toWidget)(o,t,{label:"Two col layut widget"})}}),e.for("upcast").elementToElement({model:"col",view:{name:"div",classes:"layout__col"}}),e.for("dataDowncast").elementToElement({model:"col",view:{name:"div",classes:"layout__col"}}),e.for("editingDowncast").elementToElement({model:"col",view:(e,{writer:t})=>{const o=t.createEditableElement("div",{class:"layout__col"});return Object(n.toWidgetEditable)(o,t)}})}}class u extends i.Plugin{init(){const e=this.editor;e.ui.componentFactory.add("twoCol",t=>{const o=e.commands.get("insertTwoCol"),i=new r.ButtonView(t);return i.set({label:e.t("Two Col"),withText:!0,tooltip:!0}),i.bind("isOn","isEnabled").to(o,"value","isEnabled"),this.listenTo(i,"execute",()=>e.execute("insertTwoCol")),i})}}class p extends i.Plugin{static get requires(){return[m,u]}}t.default={SimpleBox:a,TwoCol:p}},"ckeditor5/src/core.js":function(e,t,o){e.exports=o("dll-reference CKEditor5.dll")("./src/core.js")},"ckeditor5/src/ui.js":function(e,t,o){e.exports=o("dll-reference CKEditor5.dll")("./src/ui.js")},"ckeditor5/src/widget.js":function(e,t,o){e.exports=o("dll-reference CKEditor5.dll")("./src/widget.js")},"dll-reference CKEditor5.dll":function(e,t){e.exports=CKEditor5.dll}}).default})); \ No newline at end of file +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.layerCake=t():(e.CKEditor5=e.CKEditor5||{},e.CKEditor5.layerCake=t())}(window,(function(){return function(e){var t={};function o(i){if(t[i])return t[i].exports;var n=t[i]={i:i,l:!1,exports:{}};return e[i].call(n.exports,n,n.exports,o),n.l=!0,n.exports}return o.m=e,o.c=t,o.d=function(e,t,i){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(e,t){if(1&t&&(e=o(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(o.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)o.d(i,n,function(t){return e[t]}.bind(null,n));return i},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="",o(o.s="./src/index.js")}({"./src/index.js":function(e,t,o){"use strict";o.r(t);var i=o("ckeditor5/src/core.js"),n=o("ckeditor5/src/widget.js");class l extends i.Command{execute(){const{model:e}=this.editor;e.change(t=>{e.insertContent(function(e){const t=e.createElement("simpleBox"),o=e.createElement("simpleBoxTitle"),i=e.createElement("simpleBoxDescription");return e.append(o,t),e.append(i,t),e.appendElement("paragraph",i),t}(t))})}refresh(){const{model:e}=this.editor,{selection:t}=e.document,o=e.schema.findAllowedParent(t.getFirstPosition(),"simpleBox");this.isEnabled=null!==o}}class s extends i.Plugin{static get requires(){return[n.Widget]}init(){this._defineSchema(),this._defineConverters(),this.editor.commands.add("insertSimpleBox",new l(this.editor))}_defineSchema(){const e=this.editor.model.schema;e.register("simpleBox",{isObject:!0,allowWhere:"$block"}),e.register("simpleBoxTitle",{isLimit:!0,allowIn:"simpleBox",allowContentOf:"$block"}),e.register("simpleBoxDescription",{isLimit:!0,allowIn:"simpleBox",allowContentOf:"$root"}),e.addChildCheck((e,t)=>{if(e.endsWith("simpleBoxDescription")&&"simpleBox"==t.name)return!1})}_defineConverters(){const{conversion:e}=this.editor;e.for("upcast").elementToElement({model:"simpleBox",view:{name:"section",classes:"simple-box"}}),e.for("dataDowncast").elementToElement({model:"simpleBox",view:{name:"section",classes:"simple-box"}}),e.for("editingDowncast").elementToElement({model:"simpleBox",view:(e,{writer:t})=>{const o=t.createContainerElement("section",{class:"simple-box"});return Object(n.toWidget)(o,t,{label:"simple box widget"})}}),e.for("upcast").elementToElement({model:"simpleBoxTitle",view:{name:"h1",classes:"simple-box-title"}}),e.for("dataDowncast").elementToElement({model:"simpleBoxTitle",view:{name:"h1",classes:"simple-box-title"}}),e.for("editingDowncast").elementToElement({model:"simpleBoxTitle",view:(e,{writer:t})=>{const o=t.createEditableElement("h1",{class:"simple-box-title"});return Object(n.toWidgetEditable)(o,t)}}),e.for("upcast").elementToElement({model:"simpleBoxDescription",view:{name:"div",classes:"simple-box-description"}}),e.for("dataDowncast").elementToElement({model:"simpleBoxDescription",view:{name:"div",classes:"simple-box-description"}}),e.for("editingDowncast").elementToElement({model:"simpleBoxDescription",view:(e,{writer:t})=>{const o=t.createEditableElement("div",{class:"simple-box-description"});return Object(n.toWidgetEditable)(o,t)}})}}var r=o("ckeditor5/src/ui.js");class c extends i.Plugin{init(){const e=this.editor;e.ui.componentFactory.add("simpleBox",t=>{const o=e.commands.get("insertSimpleBox"),i=new r.ButtonView(t);return i.set({label:e.t("Simple Box"),withText:!0,tooltip:!0}),i.bind("isOn","isEnabled").to(o,"value","isEnabled"),this.listenTo(i,"execute",()=>e.execute("insertSimpleBox")),i})}}class a extends i.Plugin{static get requires(){return[s,c]}}class d extends i.Command{execute(){const{model:e}=this.editor;e.change(t=>{e.insertContent(function(e){const t=e.createElement("twoCol"),o=e.createElement("col"),i=e.createElement("col");return e.append(o,t),e.append(i,t),e.appendElement("paragraph",o),e.appendElement("paragraph",i),t}(t))})}refresh(){const{model:e}=this.editor,{selection:t}=e.document,o=e.schema.findAllowedParent(t.getFirstPosition(),"twoCol");this.isEnabled=null!==o}}class m extends i.Plugin{static get requires(){return[n.Widget]}init(){this._defineSchema(),this._defineConverters(),this.editor.commands.add("insertTwoCol",new d(this.editor))}_defineSchema(){const e=this.editor.model.schema;e.register("twoCol",{isObject:!0,allowWhere:"$block"}),e.register("col",{isLimit:!0,allowIn:"twoCol",allowContentOf:"$root"})}_defineConverters(){const{conversion:e}=this.editor;e.for("upcast").elementToElement({model:"twoCol",view:{name:"section",classes:"layout--two-col"}}),e.for("dataDowncast").elementToElement({model:"twoCol",view:{name:"section",classes:"layout--two-col"}}),e.for("editingDowncast").elementToElement({model:"twoCol",view:(e,{writer:t})=>{const o=t.createContainerElement("section",{class:"layout--two-col"});return Object(n.toWidget)(o,t,{label:"Two col layout widget"})}}),e.for("upcast").elementToElement({model:"col",view:{name:"div",classes:"layout__col"}}),e.for("dataDowncast").elementToElement({model:"col",view:{name:"div",classes:"layout__col"}}),e.for("editingDowncast").elementToElement({model:"col",view:(e,{writer:t})=>{const o=t.createEditableElement("div",{class:"layout__col"});return Object(n.toWidgetEditable)(o,t)}})}}class u extends i.Plugin{init(){const e=this.editor;e.ui.componentFactory.add("twoCol",t=>{const o=e.commands.get("insertTwoCol"),i=new r.ButtonView(t);return i.set({label:e.t("Two Col"),withText:!0,tooltip:!0}),i.bind("isOn","isEnabled").to(o,"value","isEnabled"),this.listenTo(i,"execute",()=>e.execute("insertTwoCol")),i})}}class p extends i.Plugin{static get requires(){return[m,u]}}t.default={SimpleBox:a,TwoCol:p}},"ckeditor5/src/core.js":function(e,t,o){e.exports=o("dll-reference CKEditor5.dll")("./src/core.js")},"ckeditor5/src/ui.js":function(e,t,o){e.exports=o("dll-reference CKEditor5.dll")("./src/ui.js")},"ckeditor5/src/widget.js":function(e,t,o){e.exports=o("dll-reference CKEditor5.dll")("./src/widget.js")},"dll-reference CKEditor5.dll":function(e,t){e.exports=CKEditor5.dll}}).default})); diff --git a/core/package.json b/core/package.json index a084b730aa..51289fb71d 100644 --- a/core/package.json +++ b/core/package.json @@ -31,8 +31,8 @@ "vendor-update": "node ./scripts/js/assets.js", "ckeditor5:drupal:watch": "yarn ckeditor5:drupal:manifest && webpack --mode development --watch", "ckeditor5:drupal:build": "yarn ckeditor5:drupal:manifest && webpack", - "ckeditor5:drupal:manifest": "node modules/ckeditor5/js/drupal/scripts/manifest.js", - "ckeditor5:build": "node modules/ckeditor5/js/scripts/build.js" + "ckeditor5:drupal:manifest": "node assets/vendor/ckeditor5/drupal/scripts/manifest.js", + "ckeditor5:build": "node assets/vendor/ckeditor5/scripts/build.js" }, "devDependencies": { "@babel/core": "^7.0.0", diff --git a/core/scripts/dev/commit-code-check.sh b/core/scripts/dev/commit-code-check.sh index bbeb3eb2d3..eb85521763 100755 --- a/core/scripts/dev/commit-code-check.sh +++ b/core/scripts/dev/commit-code-check.sh @@ -293,7 +293,7 @@ else # If there is no .es6.js file then there should be unless the .js is # not really Drupal's. - if ! [[ "$FILE" =~ ^core/assets/vendor ]] && ! [[ "$FILE" =~ ^core/scripts/js ]] && ! [[ "$FILE" =~ ^core/scripts/css ]] && ! [[ "$FILE" =~ core/postcss.config.js ]] && ! [[ -f "$TOP_LEVEL/$BASENAME.es6.js" ]]; then + if ! [[ "$FILE" =~ ^core/assets/vendor ]] && ! [[ "$FILE" =~ ^core/scripts/js ]] && ! [[ "$FILE" =~ ^core/scripts/css ]] && ! [[ "$FILE" =~ core/postcss.config.js ]] && ! [[ "$FILE" =~ core/webpack.config.js ]] && ! [[ -f "$TOP_LEVEL/$BASENAME.es6.js" ]]; then printf "${red}FAILURE${reset} $FILE does not have a corresponding $BASENAME.es6.js\n" STATUS=1 fi diff --git a/core/webpack.config.js b/core/webpack.config.js index 562b643f66..37d4649bd3 100644 --- a/core/webpack.config.js +++ b/core/webpack.config.js @@ -13,7 +13,7 @@ function getDirectories(srcpath) { module.exports = []; // Loop through every subdirectory in src, which should be a different // plugin, and build them all in ./build. -getDirectories('modules/ckeditor5/js/drupal/src').forEach((dir) => { +getDirectories('assets/vendor/ckeditor5/drupal/src').forEach((dir) => { const bc = { mode: 'production', optimization: { @@ -32,10 +32,10 @@ getDirectories('modules/ckeditor5/js/drupal/src').forEach((dir) => { moduleIds: 'named', }, entry: { - path: path.resolve(__dirname, 'modules/ckeditor5/js/drupal/src', dir, 'src/index.js'), + path: path.resolve(__dirname, 'assets/vendor/ckeditor5/drupal/src', dir, 'src/index.js'), }, output: { - path: path.resolve(__dirname, 'modules/ckeditor5/js/build/drupal'), + path: path.resolve(__dirname, 'assets/vendor/ckeditor5/build/drupal'), filename: `${dir}.js`, library: ['CKEditor5', dir], libraryTarget: 'umd',