/* eslint-disable */

/* Origin: https://github.com/Platoniq/quill-image-upload */
(function () {
    var exports = {};
"use strict";Object.defineProperty(exports,"__esModule",{value:true});var _createClass=function(){function e(e,t){for(var a=0;a<t.length;a++){var i=t[a];i.enumerable=i.enumerable||false;i.configurable=true;if("value"in i)i.writable=true;Object.defineProperty(e,i.key,i)}}return function(t,a,i){if(a)e(t.prototype,a);if(i)e(t,i);return t}}();function _classCallCheck(e,t){if(!(e instanceof t)){throw new TypeError("Cannot call a class as a function")}}var ImageUpload=exports.ImageUpload=function(){function e(t){var a=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};_classCallCheck(this,e);this.quill=t;this.options=a;this.quill.getModule("toolbar").addHandler("image",this.selectLocalImage.bind(this));this.handleDrop=this.handleDrop.bind(this);this.handlePaste=this.handlePaste.bind(this);this.quill.root.addEventListener("drop",this.handleDrop,false);this.quill.root.addEventListener("paste",this.handlePaste,false)}_createClass(e,[{key:"selectLocalImage",value:function e(){var t=this;var a=document.createElement("input");a.setAttribute("type","file");a.click();a.onchange=function(){var e=a.files[0];if(/^image\//.test(e.type)){var i=t.options.checkBeforeSend||t.checkBeforeSend.bind(t);i(e,t.sendToServer.bind(t))}else{console.warn("You could only upload images.")}}}},{key:"checkBeforeSend",value:function e(t,a){a(t)}},{key:"sendToServer",value:function e(t){var a=this;if(this.options.customUploader){this.options.customUploader(t,function(e){a.insert(e)})}else{var i=this.options.url,n=this.options.method||"POST",s=this.options.name||"image",o=this.options.headers||{},r=this.options.callbackOK||this.uploadImageCallbackOK.bind(this),l=this.options.callbackKO||this.uploadImageCallbackKO.bind(this);if(i){var d=new FormData;d.append(s,t);if(this.options.csrf){d.append(this.options.csrf.token,this.options.csrf.hash)}var c=new XMLHttpRequest;c.open(n,i,true);for(var u in o){c.setRequestHeader(u,o[u])}c.onload=function(){if(c.status===200){r(JSON.parse(c.responseText),a.insert.bind(a))}else{l({code:c.status,type:c.statusText,body:c.responseText})}};if(this.options.withCredentials){c.withCredentials=true}c.send(d)}else{var f=new FileReader;f.onload=function(e){r(e.target.result,a.insert.bind(a))};f.readAsDataURL(t)}}}},{key:"handleDrop",value:function e(t){t.preventDefault();if(t.dataTransfer&&t.dataTransfer.files&&t.dataTransfer.files.length){if(document.caretRangeFromPoint){var a=document.getSelection();var i=document.caretRangeFromPoint(t.clientX,t.clientY);if(a&&i){a.setBaseAndExtent(i.startContainer,i.startOffset,i.startContainer,i.startOffset)}}this.readFiles(t.dataTransfer.files,this.sendToServer.bind(this))}}},{key:"handlePaste",value:function e(t){var a=this;var i=Quill.import("delta");if(t.clipboardData&&t.clipboardData.items&&t.clipboardData.items.length){this.readFiles(t.clipboardData.items,function(e){var t=a.quill.getSelection();if(t){a.quill.updateContents((new i).retain(t.index-1).delete(1))}setTimeout(function(){return a.sendToServer(e.getAsFile())},0)})}}},{key:"readFiles",value:function e(t,a){var i=this;[].forEach.call(t,function(e){if(!/^image\//.test(e.type)){return}var t=new FileReader;t.onload=function(t){var n=i.options.checkBeforeSend||i.checkBeforeSend.bind(i);n(e,a)};var n=e.getAsFile?e.getAsFile():e;if(n instanceof Blob){t.readAsDataURL(n)}})}},{key:"insert",value:function e(t){var a=(this.quill.getSelection()||{}).index||this.quill.getLength();this.quill.insertEmbed(a,"image",t,"user")}},{key:"uploadImageCallbackOK",value:function e(t,a){a(t)}},{key:"uploadImageCallbackKO",value:function e(t){alert(t)}}]);return e}();
    window.Quill.register('modules/imageUpload', exports.ImageUpload);
})();