/*! * froala_editor v4.0.4 (https://www.froala.com/wysiwyg-editor) * License https://froala.com/wysiwyg-editor/terms/ * Copyright 2014-2021 Froala Labs */ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("froala-editor")):"function"==typeof define&&define.amd?define(["froala-editor"],t):t(e.FroalaEditor)}(this,function(m){"use strict";m=m&&m.hasOwnProperty("default")?m["default"]:m,Object.assign(m.POPUP_TEMPLATES,{"file.insert":"[_BUTTONS_][_UPLOAD_LAYER_][_PROGRESS_BAR_]"}),Object.assign(m.DEFAULTS,{fileUpload:!0,fileUploadURL:null,fileUploadParam:"file",fileUploadParams:{},fileUploadToS3:!1,fileUploadToAzure:!1,fileUploadMethod:"POST",fileMaxSize:10485760,fileAllowedTypes:["*"],fileInsertButtons:["fileBack","|"],fileUseSelectedText:!1}),m.PLUGINS.file=function(y){var i,u=y.$,T="https://i.froala.com/upload",c=2,v=3,g=4,A=5,S=6,o={};function P(){var e=y.popups.get("file.insert");e||(e=l()),e.find(".fr-layer.fr-active").removeClass("fr-active").addClass("fr-pactive"),e.find(".fr-file-progress-bar-layer").addClass("fr-active"),e.find(".fr-buttons").hide(),r(y.language.translate("Uploading"),0)}function a(e){var t=y.popups.get("file.insert");t&&(t.find(".fr-layer.fr-pactive").addClass("fr-active").removeClass("fr-pactive"),t.find(".fr-file-progress-bar-layer").removeClass("fr-active"),t.find(".fr-buttons").show(),e&&(y.events.focus(),y.popups.hide("file.insert")))}function r(e,t){var o=y.popups.get("file.insert");if(o){var i=o.find(".fr-file-progress-bar-layer");i.find("h3").text(e+(t?" ".concat(t,"%"):"")),i.removeClass("fr-error"),t?(i.find("div").removeClass("fr-indeterminate"),i.find("div > span").css("width","".concat(t,"%"))):i.find("div").addClass("fr-indeterminate")}}function h(e,t,o){y.edit.on(),y.events.focus(!0),y.selection.restore(),y.opts.fileUseSelectedText&&y.selection.text().length&&(t=y.selection.text()),y.html.insert('').concat(t,""));var i=y.$el.find("#fr-inserted-file");i.removeAttr("id"),y.popups.hide("file.insert"),y.undo.saveStep(),f(),y.events.trigger("file.inserted",[i,o])}function w(e,t,o){var i=this.status,r=this.response,a=this.responseXML,n=this.responseText;try{if(y.opts.fileUploadToS3||y.opts.fileUploadToAzure)if(201===i){var s;if(y.opts.fileUploadToAzure){if(!1===y.events.trigger("file.uploadedToAzure",[this.responseURL,o,r],!0))return y.edit.on(),!1;s=t}else s=function p(e){try{var t=u(e).find("Location").text(),o=u(e).find("Key").text();return!1===y.events.trigger("file.uploadedToS3",[t,o,e],!0)?(y.edit.on(),!1):t}catch(i){return C(g,e),!1}}(a);s&&h(s,e,r||a)}else C(g,r||a);else if(200<=i&&i<300){var l=function f(e){try{if(!1===y.events.trigger("file.uploaded",[e],!0))return y.edit.on(),!1;var t=JSON.parse(e);return t.link?t:(C(c,e),!1)}catch(o){return C(g,e),!1}}(n);l&&h(l.link,e,r||n)}else C(v,r||n)}catch(d){C(g,r||n)}}function R(){C(g,this.response||this.responseText||this.responseXML)}function k(e){if(e.lengthComputable){var t=e.loaded/e.total*100|0;r(y.language.translate("Uploading"),t)}}function C(e,t){y.edit.on(),function i(e){P();var t=y.popups.get("file.insert").find(".fr-file-progress-bar-layer");t.addClass("fr-error");var o=t.find("h3");o.text(e),y.events.disableBlur(),o.focus()}(y.language.translate("Something went wrong. Please try again.")),y.events.trigger("file.error",[{code:e,message:o[e]},t])}function x(){y.edit.on(),a(!0)}function n(e){if(void 0!==e&&0y.opts.fileMaxSize)return C(A),!1;if(y.opts.fileAllowedTypes.indexOf("*")<0&&y.opts.fileAllowedTypes.indexOf(o.type.replace(/file\//g,""))<0)return C(S),!1;if(y.drag_support.formdata&&(t=y.drag_support.formdata?new FormData:null),t){var i;if(!1!==y.opts.fileUploadToS3)for(i in t.append("key",y.opts.fileUploadToS3.keyStart+(new Date).getTime()+"-"+(o.name||"untitled")),t.append("success_action_status","201"),t.append("X-Requested-With","xhr"),t.append("Content-Type",o.type),y.opts.fileUploadToS3.params)y.opts.fileUploadToS3.params.hasOwnProperty(i)&&t.append(i,y.opts.fileUploadToS3.params[i]);for(i in y.opts.fileUploadParams)y.opts.fileUploadParams.hasOwnProperty(i)&&t.append(i,y.opts.fileUploadParams[i]);t.append(y.opts.fileUploadParam,o);var r,a,n=y.opts.fileUploadURL;y.opts.fileUploadToS3&&(n=y.opts.fileUploadToS3.uploadURL?y.opts.fileUploadToS3.uploadURL:"https://".concat(y.opts.fileUploadToS3.region,".amazonaws.com/").concat(y.opts.fileUploadToS3.bucket));var s=y.opts.fileUploadMethod;y.opts.fileUploadToAzure&&(n=y.opts.fileUploadToAzure.uploadURL?"".concat(y.opts.fileUploadToAzure.uploadURL,"/").concat(o.name):encodeURI("https://".concat(y.opts.fileUploadToAzure.account,".blob.core.windows.net/").concat(y.opts.fileUploadToAzure.container,"/").concat(o.name)),r=n,y.opts.fileUploadToAzure.SASToken&&(n+=y.opts.fileUploadToAzure.SASToken),s="PUT");var l=y.core.getXHR(n,s);if(y.opts.fileUploadToAzure){var p=(new Date).toUTCString();if(!y.opts.fileUploadToAzure.SASToken&&y.opts.fileUploadToAzure.accessKey){var f=y.opts.fileUploadToAzure.account,d=y.opts.fileUploadToAzure.container;if(y.opts.fileUploadToAzure.uploadURL){var u=y.opts.fileUploadToAzure.uploadURL.split("/");d=u.pop(),f=u.pop().split(".")[0]}var c="x-ms-blob-type:BlockBlob\nx-ms-date:".concat(p,"\nx-ms-version:2019-07-07"),v=encodeURI("/"+f+"/"+d+"/"+o.name),g=s+"\n\n\n"+o.size+"\n\n"+o.type+"\n\n\n\n\n\n\n"+c+"\n"+v,h=y.cryptoJSPlugin.cryptoJS.HmacSHA256(g,y.cryptoJSPlugin.cryptoJS.enc.Base64.parse(y.opts.fileUploadToAzure.accessKey)).toString(y.cryptoJSPlugin.cryptoJS.enc.Base64),U="SharedKey "+f+":"+h;a=h,l.setRequestHeader("Authorization",U)}for(i in l.setRequestHeader("x-ms-version","2019-07-07"),l.setRequestHeader("x-ms-date",p),l.setRequestHeader("Content-Type",o.type),l.setRequestHeader("x-ms-blob-type","BlockBlob"),y.opts.fileUploadParams)y.opts.fileUploadParams.hasOwnProperty(i)&&l.setRequestHeader(i,y.opts.fileUploadParams[i]);for(i in y.opts.fileUploadToAzure.params)y.opts.fileUploadToAzure.params.hasOwnProperty(i)&&l.setRequestHeader(i,y.opts.fileUploadToAzure.params[i])}l.onload=function(){w.call(l,o.name,r,a)},l.onerror=R,l.upload.onprogress=k,l.onabort=x,P();var m=y.popups.get("file.insert");m&&(m.off("abortUpload"),m.on("abortUpload",function(){4!==l.readyState&&l.abort()})),l.send(y.opts.fileUploadToAzure?o:t)}}}function s(){a()}function l(e){if(e)return y.popups.onHide("file.insert",s),!0;var t;y.opts.fileUpload||y.opts.fileInsertButtons.splice(y.opts.fileInsertButtons.indexOf("fileUpload"),1),t=''.concat(y.button.buildList(y.opts.fileInsertButtons),"");var o="";y.opts.fileUpload&&(o='').concat(y.language.translate("Drop file"),"(").concat(y.language.translate("or click"),')'));var i={buttons:t,upload_layer:o,progress_bar:'UploadingOK'},r=y.popups.create("file.insert",i);return function a(o){y.events.$on(o,"dragover dragenter",".fr-file-upload-layer",function(){return u(this).addClass("fr-drop"),!1},!0),y.events.$on(o,"dragleave dragend",".fr-file-upload-layer",function(){return u(this).removeClass("fr-drop"),!1},!0),y.events.$on(o,"drop",".fr-file-upload-layer",function(e){e.preventDefault(),e.stopPropagation(),u(this).removeClass("fr-drop");var t=e.originalEvent.dataTransfer;t&&t.files&&(o.data("instance")||y).file.upload(t.files)},!0),y.helpers.isIOS()&&y.events.$on(o,"touchstart",'.fr-file-upload-layer input[type="file"]',function(){u(this).trigger("click")}),y.events.$on(o,"change",'.fr-file-upload-layer input[type="file"]',function(){if(this.files){var e=o.data("instance")||y;e.events.disableBlur(),o.find("input:focus").blur(),e.events.enableBlur(),e.file.upload(this.files)}u(this).val("")},!0)}(r),r}function t(e){y.node.hasClass(e,"fr-file")}function p(e){var t=e.originalEvent.dataTransfer;if(t&&t.files&&t.files.length){var o=t.files[0];if(o&&"undefined"!=typeof o.type){if(o.type.indexOf("image")<0){if(!y.opts.fileUpload)return e.preventDefault(),e.stopPropagation(),!1;y.markers.remove(),y.markers.insertAtPoint(e.originalEvent),y.$el.find(".fr-marker").replaceWith(m.MARKERS),y.popups.hideAll();var i=y.popups.get("file.insert");return i||(i=l()),y.popups.setContainer("file.insert",y.$sc),y.popups.show("file.insert",e.originalEvent.pageX,e.originalEvent.pageY),P(),n(t.files),e.preventDefault(),e.stopPropagation(),!1}}else o.type.indexOf("image")<0&&(e.preventDefault(),e.stopPropagation())}}function f(){var e,t=Array.prototype.slice.call(y.el.querySelectorAll("a.fr-file")),o=[];for(e=0;e