monster_menus-9.0.x-dev/modules/mm_media/js/build/MMMediaLibrary.js
modules/mm_media/js/build/MMMediaLibrary.js
!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.MMMediaLibrary=t())}(self,(()=>(()=>{var e={"ckeditor5/src/core.js":(e,t,r)=>{e.exports=r("dll-reference CKEditor5.dll")("./src/core.js")},"ckeditor5/src/ui.js":(e,t,r)=>{e.exports=r("dll-reference CKEditor5.dll")("./src/ui.js")},"ckeditor5/src/widget.js":(e,t,r)=>{e.exports=r("dll-reference CKEditor5.dll")("./src/widget.js")},"dll-reference CKEditor5.dll":e=>{"use strict";e.exports=CKEditor5.dll}},t={};function r(i){var a=t[i];if(void 0!==a)return a.exports;var d=t[i]={exports:{}};return e[i](d,d.exports,r),d.exports}r.d=(e,t)=>{for(var i in t)r.o(t,i)&&!r.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var i={};return(()=>{"use strict";r.d(i,{default:()=>g});var e=r("ckeditor5/src/core.js"),t=r("ckeditor5/src/widget.js");function a(e){return!!e&&e.is("element","drupalMedia")}function d(e){for(const t of e){if(t.hasAttribute("data-drupal-media-preview"))return t;if(t.childCount){const e=d(t.getChildren());if(e)return e}}return null}function n(e){return`drupalElementStyle${e[0].toUpperCase()+e.substring(1)}`}class s extends e.Command{execute(e){const t=this.editor.plugins.get("DrupalMediaEditing"),r=Object.entries(t.attrs).reduce(((e,[t,r])=>(e[r]=t,e)),{}),i=Object.keys(e).reduce(((t,i)=>(r[i]&&(t[r[i]]=e[i]),t)),{});if(this.editor.plugins.has("DrupalElementStyleEditing")){const t=this.editor.plugins.get("DrupalElementStyleEditing"),{normalizedStyles:r}=t;for(const a of Object.keys(r))for(const r of t.normalizedStyles[a])if(e[r.attributeName]&&r.attributeValue===e[r.attributeName]){const e=n(a);i[e]=r.name}}this.editor.model.change((e=>{this.editor.model.insertObject(function(e,t){return e.createElement("drupalMedia",t)}(e,i))}))}refresh(){const e=this.editor.model,t=e.document.selection,r=e.schema.findAllowedParent(t.getFirstPosition(),"drupalMedia");this.isEnabled=null!==r}}class o extends s{}const l="METADATA_ERROR";class u extends e.Plugin{static get requires(){return[t.Widget]}constructor(e){super(e),this.attrs={drupalMediaAlt:"alt",drupalMediaEntityType:"data-entity-type",drupalMediaEntityUuid:"data-entity-uuid"},this.converterAttributes=["drupalMediaEntityUuid","drupalElementStyleViewMode","drupalMediaEntityType","drupalMediaAlt"]}init(){const e=this.editor.config.get("drupalMedia");if(!e)return;const{previewURL:t,themeError:r}=e;this.previewUrl=t,this.labelError=Drupal.t("Preview failed"),this.themeError=r||`\n <p>${Drupal.t("An error occurred while trying to preview the media. Save your work and reload this page.")}<p>\n `,this._defineSchema(),this._defineConverters(),this._defineListeners(),this.editor.commands.add("insertDrupalMedia",new s(this.editor))}upcastDrupalMediaIsImage(e){const{model:t,plugins:r}=this.editor;r.get("DrupalMediaMetadataRepository").getMetadata(e).then((r=>{e&&t.enqueueChange({isUndoable:!1},(t=>{t.setAttribute("drupalMediaIsImage",!!r.imageSourceMetadata,e)}))})).catch((r=>{e&&(console.warn(r.toString()),t.enqueueChange({isUndoable:!1},(t=>{t.setAttribute("drupalMediaIsImage",l,e)})))}))}upcastDrupalMediaType(e){this.editor.plugins.get("DrupalMediaMetadataRepository").getMetadata(e).then((t=>{e&&this.editor.model.enqueueChange({isUndoable:!1},(r=>{r.setAttribute("drupalMediaType",t.type,e)}))})).catch((t=>{e&&(console.warn(t.toString()),this.editor.model.enqueueChange({isUndoable:!1},(t=>{t.setAttribute("drupalMediaType",l,e)})))}))}async _fetchPreview(e){const t={text:this._renderElement(e),uuid:e.getAttribute("drupalMediaEntityUuid")},r=await fetch(`${this.previewUrl}?${new URLSearchParams(t)}`,{headers:{"X-Drupal-MediaPreview-CSRF-Token":this.editor.config.get("drupalMedia").previewCsrfToken}});if(r.ok){return{label:r.headers.get("drupal-media-label"),preview:await r.text()}}return{label:this.labelError,preview:this.themeError}}_defineSchema(){this.editor.model.schema.register("drupalMedia",{inheritAllFrom:"$blockObject",allowAttributes:Object.keys(this.attrs)}),this.editor.editing.view.domConverter.blockElements.push("drupal-media")}_defineConverters(){const e=this.editor.conversion,r=this.editor.plugins.get("DrupalMediaMetadataRepository");e.for("upcast").elementToElement({view:{name:"drupal-media"},model:"drupalMedia"}).add((e=>{e.on("element:drupal-media",((e,t)=>{const[i]=t.modelRange.getItems();r.getMetadata(i).then((e=>{i&&(this.upcastDrupalMediaIsImage(i),this.editor.model.enqueueChange({isUndoable:!1},(t=>{t.setAttribute("drupalMediaType",e.type,i)})))})).catch((e=>{console.warn(e.toString())}))}),{priority:"lowest"})})),e.for("dataDowncast").elementToElement({model:"drupalMedia",view:{name:"drupal-media"}}),e.for("editingDowncast").elementToElement({model:"drupalMedia",view:(e,{writer:r})=>{const i=r.createContainerElement("figure",{class:"drupal-media"});if(!this.previewUrl){const e=r.createRawElement("div",{"data-drupal-media-preview":"unavailable"});r.insert(r.createPositionAt(i,0),e)}return r.setCustomProperty("drupalMedia",!0,i),(0,t.toWidget)(i,r,{label:Drupal.t("Media widget")})}}).add((e=>{const t=(e,t,r)=>{const i=r.writer,a=t.item,n=r.mapper.toViewElement(t.item);let s=d(n.getChildren());if(s){if("ready"!==s.getAttribute("data-drupal-media-preview"))return;i.setAttribute("data-drupal-media-preview","loading",s)}else s=i.createRawElement("div",{"data-drupal-media-preview":"loading"}),i.insert(i.createPositionAt(n,0),s);this._fetchPreview(a).then((({label:e,preview:t})=>{s&&this.editor.editing.view.change((r=>{const i=r.createRawElement("div",{"data-drupal-media-preview":"ready","aria-label":e},(e=>{e.innerHTML=t}));r.insert(r.createPositionBefore(s),i),r.remove(s)}))}))};return this.converterAttributes.forEach((r=>{e.on(`attribute:${r}:drupalMedia`,t)})),e})),e.for("editingDowncast").add((e=>{e.on("attribute:drupalElementStyleAlign:drupalMedia",((e,t,r)=>{const i={left:"drupal-media-style-align-left",right:"drupal-media-style-align-right",center:"drupal-media-style-align-center"},a=r.mapper.toViewElement(t.item),d=r.writer;i[t.attributeOldValue]&&d.removeClass(i[t.attributeOldValue],a),i[t.attributeNewValue]&&r.consumable.consume(t.item,e.name)&&d.addClass(i[t.attributeNewValue],a)}))})),Object.keys(this.attrs).forEach((t=>{const r={model:{key:t,name:"drupalMedia"},view:{name:"drupal-media",key:this.attrs[t]}};e.for("dataDowncast").attributeToAttribute(r),e.for("upcast").attributeToAttribute(r)}))}_defineListeners(){this.editor.model.on("insertContent",((e,[t])=>{a(t)&&(this.upcastDrupalMediaIsImage(t),this.upcastDrupalMediaType(t))}))}_renderElement(e){const t=this.editor.model.change((t=>{const r=t.createDocumentFragment(),i=t.cloneElement(e,!1);return["linkHref"].forEach((e=>{t.removeAttribute(e,i)})),t.append(i,r),r}));return this.editor.data.stringify(t)}static get pluginName(){return"DrupalMediaEditing"}}class c extends u{static get requires(){return[t.Widget]}init(){const e=this.editor.config.get("MMMediaLibrary");if(!e)return;const{previewURL:t,themeError:r}=e;this.previewUrl=t,this.labelError=Drupal.t("Preview failed"),this.themeError=r||`\n <p>${Drupal.t("An error occurred while trying to preview the media. Please save your work and reload this page.")}<p>\n `,this.editor.commands.add("insertMMMediaLibrary",new o(this.editor))}static get pluginName(){return"MMMediaLibraryEditing"}}var p=r("ckeditor5/src/ui.js");class m extends e.Plugin{init(){const e=this.editor,t=this.editor.config.get("MMMediaLibrary");if(!t)return;const{libraryURL:r,openDialog:i,dialogSettings:a={}}=t;r&&"function"==typeof i&&e.ui.componentFactory.add("MMMediaLibrary",(t=>{const d=e.commands.get("insertMMMediaLibrary"),n=new p.ButtonView(t);return n.set({label:e.t("Insert Media from This Site"),icon:'<svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M19.1873 4.86414L10.2509 6.86414V7.02335H10.2499V15.5091C9.70972 15.1961 9.01793 15.1048 8.34069 15.3136C7.12086 15.6896 6.41013 16.8967 6.75322 18.0096C7.09631 19.1226 8.3633 19.72 9.58313 19.344C10.6666 19.01 11.3484 18.0203 11.2469 17.0234H11.2499V9.80173L18.1803 8.25067V14.3868C17.6401 14.0739 16.9483 13.9825 16.2711 14.1913C15.0513 14.5674 14.3406 15.7744 14.6836 16.8875C15.0267 18.0004 16.2937 18.5978 17.5136 18.2218C18.597 17.8877 19.2788 16.8982 19.1773 15.9011H19.1803V8.02687L19.1873 8.0253V4.86414Z" /><path fill-rule="evenodd" clip-rule="evenodd" d="M13.5039 0.743652H0.386932V12.1603H13.5039V0.743652ZM12.3379 1.75842H1.55289V11.1454H1.65715L4.00622 8.86353L6.06254 10.861L9.24985 5.91309L11.3812 9.22179L11.7761 8.6676L12.3379 9.45621V1.75842ZM6.22048 4.50869C6.22048 5.58193 5.35045 6.45196 4.27722 6.45196C3.20398 6.45196 2.33395 5.58193 2.33395 4.50869C2.33395 3.43546 3.20398 2.56543 4.27722 2.56543C5.35045 2.56543 6.22048 3.43546 6.22048 4.50869Z" /></svg>\n',tooltip:!0}),n.bind("isOn","isEnabled").to(d,"value","isEnabled"),this.listenTo(n,"execute",(()=>{i(r,(({attributes:t})=>{e.execute("insertMMMediaLibrary",t)}),a)})),n}))}}class h extends e.Plugin{static get requires(){return[c,m]}static get pluginName(){return"MMMediaLibrary"}}const g={MMMediaLibrary:h}})(),i=i.default})()));