editor_file-8.x-1.5/js/build/drupalFile.js
js/build/drupalFile.js
!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.drupalFile=e())}(self,(()=>(()=>{var t={"ckeditor5/src/core.js":(t,e,i)=>{t.exports=i("dll-reference CKEditor5.dll")("./src/core.js")},"ckeditor5/src/typing.js":(t,e,i)=>{t.exports=i("dll-reference CKEditor5.dll")("./src/typing.js")},"ckeditor5/src/ui.js":(t,e,i)=>{t.exports=i("dll-reference CKEditor5.dll")("./src/ui.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(n){var l=e[n];if(void 0!==l)return l.exports;var r=e[n]={exports:{}};return t[n](r,r.exports,i),r.exports}i.d=(t,e)=>{for(var n in e)i.o(e,n)&&!i.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var n={};return(()=>{"use strict";i.d(n,{default:()=>g});var t=i("ckeditor5/src/core.js"),e=i("ckeditor5/src/ui.js");class l extends t.Plugin{static get pluginName(){return"DrupalInsertFile"}init(){const{editor:t}=this,i=t.config.get("drupalFileUpload");this.editor.plugins.get("LinkUI")._createViews&&t.plugins.get("LinkUI")._createViews(),t.ui.componentFactory.add("drupalInsertFile",(n=>{const l=new e.ButtonView(this.locale),r=t.commands.get("link"),a=t.commands.get("insertFileToEditor");return l.set({icon:'<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M12.502 7h-5c-.276 0-.502-.225-.502-.5v-5c0-.275-.225-.5-.5-.5h-3c-.275 0-.5.225-.5.5v12.029c0 .275.225.5.5.5h9.002c.275 0 .5-.225.5-.5v-6.029c0-.275-.225-.5-.5-.5zM8.502 6h4c.275 0 .34-.159.146-.354l-4.293-4.292c-.195-.195-.353-.129-.353.146v4c0 .275.225.5.5.5z" /></svg>\n',label:Drupal.t("Insert file"),tooltip:!0}),l.bind("isOn").to(a,"value"),l.bind("isEnabled").to(a,"isEnabled",a,"value",r,"value",((t,e,i)=>t&&!(i&&!e))),l.on("execute",(()=>{const e=t.plugins.get("LinkUI")._getSelectedLinkElement();let n={};e&&(n={"data-entity-uuid":e.getAttribute("data-entity-uuid"),"data-entity-type":e.getAttribute("data-entity-type")}),this.constructor.openDialog(Drupal.url(`editor_file/dialog/file/${i.format}`),n,(({attributes:e})=>{t.execute("insertFileToEditor",e)}))})),l}))}afterInit(){const{editor:t}=this,{locale:e}=t;t.ui.view.toolbar.items.on("add",((i,n)=>{if(n.label===e.t("Link")){const e=t.commands.get("link"),i=t.commands.get("insertFileToEditor");n.unbind("isOn"),n.bind("isOn").to(e,"value",i,"value",((t,e)=>t&&!e)),n.unbind("isEnabled"),n.bind("isEnabled").to(e,"isEnabled",i,"value",((t,e)=>t&&!e))}}))}static openDialog(t,e,i,n={}){const l=n.dialogClass?n.dialogClass.split(" "):[];l.push("ui-dialog--narrow"),n.dialogClass=l.join(" "),n.autoResize=window.matchMedia("(min-width: 600px)").matches,n.width="auto";Drupal.ajax({dialog:n,dialogType:"modal",selector:".ckeditor5-dialog-loading-link",url:t,progress:{type:"fullscreen"},submit:{editor_object:e}}).execute(),Drupal.ckeditor5.saveCallback=i}}const r=l;var a=i("ckeditor5/src/typing.js"),o=i("ckeditor5/src/utils.js");class s extends t.Command{refresh(){const{model:t}=this.editor,{selection:e}=t.document,i=e.getSelectedElement()||(0,o.first)(e.getSelectedBlocks());this.constructor.isLinkableElement(i,t.schema)?(this.value="file"===i.getAttribute("fileDataEntityType"),this.isEnabled=t.schema.checkAttribute(i,"linkHref")):(this.value="file"===e.getAttribute("fileDataEntityType"),this.isEnabled=t.schema.checkAttributeInSelection(e,"linkHref"))}execute(t){const{editor:e}=this,{model:i}=e;i.change((e=>{this.constructor.updateFileLink(e,i,t)}))}static updateFileLink(t,e,i={}){const{selection:n}=e.document,l={linkHref:"href",fileDataEntityType:"data-entity-type",fileDataEntityUuid:"data-entity-uuid"};if(n.hasAttribute("linkHref")){const r=n.getFirstPosition();Object.entries(l).forEach((([l,o])=>{const s=(0,a.findAttributeRange)(r,l,n.getAttribute(l),e);t.setAttribute(l,i[o],s)}))}else{let r;const a=n.getFirstRange();for(const t of a.getItems())r=t.data;const o={};Object.entries(l).forEach((([t,e])=>{o[t]=i[e]}));const s=r||i.filename,d=t.createText(s,o);e.insertContent(d),d.parent&&t.setSelection(d,"on")}}static isLinkableElement(t,e){return!!t&&e.checkAttribute(t.name,"linkHref")}}const d=s;class c extends t.Plugin{static get requires(){return[r]}static get pluginName(){return"FileUploadEditing"}init(){const{editor:t}=this,{schema:e}=t.model,{conversion:i}=t;e.extend("$text",{allowAttributes:["fileDataEntityType","fileDataEntityUuid"]}),t.commands.add("insertFileToEditor",new d(t)),i.for("upcast").attributeToAttribute({view:{name:"a",key:"data-entity-uuid"},model:{key:"fileDataEntityUuid",value:t=>!1===("file"===t.getAttribute("data-entity-type"))?null:t.getAttribute("data-entity-uuid")}}).attributeToAttribute({view:{name:"a",key:"data-entity-type"},model:{key:"fileDataEntityType",value:t=>!1===("file"===t.getAttribute("data-entity-type"))?null:t.getAttribute("data-entity-type")}}),i.for("downcast").attributeToElement({model:"fileDataEntityType",view:(t,{writer:e})=>{const i=e.createAttributeElement("a",{"data-entity-type":t},{priority:5});return e.setCustomProperty("link",!0,i),i}}).attributeToElement({model:"fileDataEntityUuid",view:(t,{writer:e})=>{const i=e.createAttributeElement("a",{"data-entity-uuid":t},{priority:5});return e.setCustomProperty("link",!0,i),i}})}}class u extends t.Plugin{static get requires(){return["LinkEditing","LinkUI","FileUploadEditing"]}static get pluginName(){return"DrupalEditorFileUploadActionUi"}init(){const{editor:t}=this;this.linkUI=t.plugins.get("LinkUI"),t.ui.componentFactory.add("drupalFileLinkEdit",(i=>{const n=new e.ButtonView(i),l=t.commands.get("insertFileToEditor");return n.set({icon:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path d="M3.5 1a.5.5 0 0 0-.5.5v12.03c0 .27.23.5.5.5h5.84c.01-.22.08-.44.2-.63a.77.77 0 0 1 .02-.03l.02-.03 2.72-4.06a.77.77 0 0 1 .01-.02c.18-.25.43-.42.7-.54V7.5a.5.5 0 0 0-.5-.5h-5A.5.5 0 0 1 7 6.5v-5a.5.5 0 0 0-.5-.5h-3zm4.66.24c-.1 0-.16.09-.16.26v4c0 .28.23.5.5.5h4c.28 0 .34-.16.15-.35l-4.3-4.3c-.07-.07-.14-.1-.2-.1zm4.23 14.05-.03.03a.57.57 0 0 1-.35.2l-1.58.26-.3-1.58a.57.57 0 0 1 .06-.4l.03-.03 2.72-4.06c.37-.51 1.07-.4 1.63 0 .57.39.9 1.01.54 1.53zm.7-4.79-2.1 3.16 1.24.87 2.1-3.16zm-1.17 4.46-1.24-.86.2 1.03zm1.49-4.92 1.24.87c.12-.17-.06-.5-.4-.75-.35-.24-.72-.3-.84-.12z"/></svg>\n',label:Drupal.t("Edit File"),tooltip:!0}),n.bind("isEnabled").to(l,"isEnabled"),n.bind("isVisible").to(l,"value"),n.on("execute",this.openEditingDialog.bind(this)),n})),t.ui.componentFactory.add("drupalFileLinkUnlink",(i=>{const n=new e.ButtonView(i),l=t.commands.get("insertFileToEditor");return n.set({icon:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path d="M3.5 1a.5.5 0 0 0-.5.5v12.03c0 .27.23.5.5.5h5.24c.07-.1.15-.2.24-.29l.75-.75-.77-.78a.9.9 0 0 1-.01-.01c-.33-.34-.5-.82-.48-1.25.03-.43.23-.8.5-1.07s.63-.46 1.07-.49c.43-.03.9.15 1.24.48a.9.9 0 0 1 .01 0l.78.78.78-.78c.04-.05.1-.1.15-.13V7.5a.5.5 0 0 0-.5-.5h-5a.5.5 0 0 1-.5-.5v-5a.5.5 0 0 0-.5-.5h-3zm4.66.24c-.1 0-.16.09-.16.26v4c0 .28.23.5.5.5h4c.28 0 .34-.16.15-.35l-4.3-4.3c-.07-.07-.14-.1-.2-.1zm5.81 9.04a.74.74 0 0 0-.49.23l-1.41 1.42-1.42-1.42c-.7-.68-1.74.36-1.06 1.06L11.01 13l-1.42 1.4c-.75.7.36 1.82 1.06 1.06l1.42-1.41 1.41 1.41c.7.66 1.72-.35 1.06-1.06l-1.41-1.41 1.41-1.42c.56-.55.03-1.32-.57-1.3z"/></svg>\n',label:Drupal.t("Unlink File"),tooltip:!0}),n.bind("isEnabled").to(l,"isEnabled"),n.bind("isVisible").to(l,"value"),n.on("execute",this.unlinkFile.bind(this)),n}))}afterInit(){this.linkUI.toolbarView.once("render",(()=>{const t=this.editor.ui.componentFactory.create("drupalFileLinkEdit"),e=this.editor.ui.componentFactory.create("drupalFileLinkUnlink");this.linkUI.toolbarView.registerChild(t),this.linkUI.toolbarView.registerChild(e),this.linkUI.toolbarView.items.addMany([t,e]);const{locale:i}=this.editor,n=this.linkUI.toolbarView.items.find((t=>t.label===i.t("Edit link"))),l=this.linkUI.toolbarView.items.find((t=>t.label===i.t("Unlink"))),r=this.editor.commands.get("insertFileToEditor");n.bind("isVisible").to(r,"value",(t=>!1===t)),l.bind("isVisible").to(r,"value",(t=>!1===t))}))}unlinkFile(){const t={linkHref:"href",fileDataEntityType:"data-entity-type",fileDataEntityUuid:"data-entity-uuid"},{model:e}=this.editor,{selection:i}=e.document;e.change((n=>{(i.isCollapsed?[(0,a.findAttributeRange)(i.getFirstPosition(),"linkHref",i.getAttribute("linkHref"),e)]:e.schema.getValidRanges(i.getRanges(),"linkHref")).forEach((e=>{Object.keys(t).forEach((t=>{n.removeAttribute(t,e)}))}))}))}openEditingDialog(){const{editor:t}=this,e=this.linkUI._getSelectedLinkElement();if(!e)return;const i=e.hasAttribute("data-entity-uuid")?{"data-entity-uuid":e.getAttribute("data-entity-uuid"),"data-entity-type":e.getAttribute("data-entity-type")}:{},n=t.config.get("drupalFileUpload");t.plugins.get("DrupalInsertFile").constructor.openDialog(Drupal.url(`editor_file/dialog/file/${n.format}`),i,(({attributes:e})=>{t.execute("insertFileToEditor",e)}))}}class p extends t.Plugin{static get requires(){return[c,u]}static get pluginName(){return"DrupalFile"}}const g={DrupalFile:p,DrupalInsertFile:r}})(),n=n.default})()));