UNPKG

froala-editor

Version:

The next generation Javascript WYSIWYG HTML rich text editor made by devs for devs. High performance and modern design make it easy to use for developers and loved by users.

7 lines (6 loc) 93.8 kB
/*! * froala_editor v5.1.0 (https://www.froala.com/wysiwyg-editor) * License https://froala.com/wysiwyg-editor/terms/ * Copyright 2014-2026 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(("undefined"!=typeof globalThis?globalThis:e||self).FroalaEditor)}(this,function(dt){"use strict";function ct(e){return(ct="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.assign(dt.POPUP_TEMPLATES,{"filesManager.insert":"[_BUTTONS_][_UPLOAD_LAYER_][_BY_URL_LAYER_][_EMBED_LAYER_][_UPLOAD_PROGRESS_LAYER_][_PROGRESS_BAR_]","image.edit":"[_BUTTONS_]","image.alt":"[_BUTTONS_][_ALT_LAYER_]","image.size":"[_BUTTONS_][_SIZE_LAYER_]"}),Object.assign(dt.DEFAULTS,{filesInsertButtons:["imageBack","|","filesUpload","filesByURL","filesEmbed"],filesInsertButtons2:["deleteAll","insertAll","cancel","minimize"],imageEditButtons:["imageReplace","imageAlign","imageCaption","imageRemove","imageLink","linkOpen","linkEdit","linkRemove","-","imageDisplay","imageStyle","imageAlt","imageSize"],imageAltButtons:["imageBack","|"],imageSizeButtons:["imageBack","|"],imageUpload:!0,filesManagerUploadURL:null,imageCORSProxy:"https://cors-anywhere.froala.com",imageUploadRemoteUrls:!0,filesManagerUploadParam:"file",filesManagerUploadParams:{},googleOptions:{},filesManagerUploadToS3:!1,filesManagerUploadToAzure:!1,filesManagerUploadMethod:"POST",filesManagerMaxSize:10485760,filesManagerAllowedTypes:["*"],imageResize:!0,imageResizeWithPercent:!1,imageRoundPercent:!1,imageDefaultWidth:300,imageDefaultAlign:"center",imageDefaultDisplay:"block",imageSplitHTML:!1,imageStyles:{"fr-rounded":"Rounded","fr-bordered":"Bordered","fr-shadow":"Shadow"},imageMove:!0,imageMultipleStyles:!0,imageTextNear:!0,imagePaste:!0,imagePasteProcess:!1,imageMinWidth:16,imageOutputSize:!1,imageDefaultMargin:5,imageAddNewLine:!1}),dt.VIDEO_PROVIDERS=[{test_regex:/^.*((youtu.be)|(youtube.com))\/((v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))?\??v?=?([^#\&\?]*).*/,url_regex:/(?:https?:\/\/)?(?:www\.)?(?:m\.)?(?:youtube\.com|youtu\.be)\/(?:watch\?v=|embed\/)?([0-9a-zA-Z_\-]+)(.+)?/g,url_text:"https://www.youtube.com/embed/$1?$2",html:'<iframe width="640" height="360" src="{url}&wmode=opaque" frameborder="0" allowfullscreen></iframe>',provider:"youtube"},{test_regex:/^.*(?:vimeo.com)\/(?:channels(\/\w+\/)?|groups\/*\/videos\/\u200b\d+\/|video\/|)(\d+)(?:$|\/|\?)/,url_regex:/(?:https?:\/\/)?(?:www\.|player\.)?vimeo.com\/(?:channels\/(?:\w+\/)?|groups\/(?:[^\/]*)\/videos\/|album\/(?:\d+)\/video\/|video\/|)(\d+)(?:[a-zA-Z0-9_\-]+)?(\/[a-zA-Z0-9_\-]+)?/i,url_text:"https://player.vimeo.com/video/$1",html:'<iframe width="640" height="360" src="{url}" frameborder="0" allowfullscreen></iframe>',provider:"vimeo"},{test_regex:/^.+(dailymotion.com|dai.ly)\/(video|hub)?\/?([^_]+)[^#]*(#video=([^_&]+))?/,url_regex:/(?:https?:\/\/)?(?:www\.)?(?:dailymotion\.com|dai\.ly)\/(?:video|hub)?\/?(.+)/g,url_text:"https://www.dailymotion.com/embed/video/$1",html:'<iframe width="640" height="360" src="{url}" frameborder="0" allowfullscreen></iframe>',provider:"dailymotion"},{test_regex:/^.+(screen.yahoo.com)\/[^_&]+/,url_regex:"",url_text:"",html:'<iframe width="640" height="360" src="{url}?format=embed" frameborder="0" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true" allowtransparency="true"></iframe>',provider:"yahoo"},{test_regex:/^.+(rutube.ru)\/[^_&]+/,url_regex:/(?:https?:\/\/)?(?:www\.)?(?:rutube\.ru)\/(?:video)?\/?(.+)/g,url_text:"https://rutube.ru/play/embed/$1",html:'<iframe width="640" height="360" src="{url}" frameborder="0" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true" allowtransparency="true"></iframe>',provider:"rutube"},{test_regex:/^(?:.+)vidyard.com\/(?:watch)?\/?([^.&/]+)\/?(?:[^_.&]+)?/,url_regex:/^(?:.+)vidyard.com\/(?:watch)?\/?([^.&/]+)\/?(?:[^_.&]+)?/g,url_text:"https://play.vidyard.com/$1",html:'<iframe width="640" height="360" src="{url}" frameborder="0" allowfullscreen></iframe>',provider:"vidyard"}],dt.VIDEO_EMBED_REGEX=/^\W*((<iframe(.|\n)*>(\s|\n)*<\/iframe>)|(<embed(.|\n)*>))\W*$/i,dt.IMAGE_EMBED_REGEX=/^\W*((<img(.|\n)*>(\s|\n)*))\W*$/i,dt.IMAGE_TYPE="image/png",dt.IMAGE_ALLOW_REGEX=/\.(gif|jpe?g|tiff?|png|webp|bmp)$/i,dt.PLUGINS.filesManager=function(w){var v,l,x,d,a,c,r,t,M=w.$,P="https://i.froala.com/upload",F=!1,n=!1,E=new Map,k=new Map,h=new Map,b=new Map,A=new Map,y=new Map,N=0,i=[],H=-1,C=[],f=0,K=["file","image","imageTUI","video"],Y=1,V=2,W=3,I=4,G=5,X=6,j=10,q=["video/avi","video/mpeg","video/x-ms-wmv"],s={};function Z(){var e=w.popups.get("filesManager.insert"),t=e.find(".fr-files-by-url-layer input");t.val(""),e.find(".fr-files-embed-layer textarea").val("").trigger("change"),t.trigger("change")}function J(e){w.hasOwnProperty("imageTUI")||(r="fr-disabled"),y.forEach(function(e,t){o(t)}),Q()?t=(t=w.popups.get("filesManager.insert"))||Ke():(t=w.popups.get("filesManager.insert"))||(i={buttons:'<div class="fr-buttons fr-tabs"></div>',upload_layer:i="<div style= 'padding:10px'>\n <div class = 'fr-message'><h3 style ='font-size: 16px; margin: 10px 10px;font-weight: normal;'>".concat(w.language.translate(function(){var e="",t=function(){var t=[];return K.forEach(function(e){w.opts.pluginsEnabled.indexOf(e)<0&&t.push(e.charAt(0).toUpperCase()+e.slice(1))}),t}();e=t.join(", "),1<t.length?e+=" plugin are":e+=" plugin is";return e}()+" not enabled. Do you want to enable?"),"</h3></div>\n <div style='text-align:right;'>\n <button class='fr-trim-button fr-plugins-enable'>").concat(w.language.translate("Enable"),"</button> \n <button class='fr-trim-button fr-plugins-cancel'>").concat(w.language.translate("Cancel"),"</button>\n </div>"),by_url_layer:"",embed_layer:"",upload_progress_layer:"",progress_bar:""},$e(i=w.popups.create("filesManager.insert",i)),t=i);var t,n,i=w.$tb.find('.fr-command[data-cmd="insertFiles"]');g(),!e&&t.hasClass("fr-active")||(e||le(),w.popups.refresh("filesManager.insert"),w.popups.setContainer("filesManager.insert",w.$tb),i.isVisible()?(n=(e=w.button.getPosition(i,E.size)).left,w.popups.show("filesManager.insert",n,e.top,i.outerHeight())):(w.position.forSelection(t),w.popups.show("filesManager.insert"))),w.popups.setPopupDimensions(t),Q()&&w.popups.setFileListHeight(t),t.find(".fr-upload-progress")&&0==E.size&&t.find(".fr-upload-progress").addClass("fr-none")}function Q(){var t=!0;return K.forEach(function(e){w.opts.pluginsEnabled.indexOf(e)<0&&(t=!1)}),t}function ee(){g()}function te(){var i,a,r,e,t,n,s,o,l;d||(w.shared.$image_resizer?(d=w.shared.$image_resizer,c=w.shared.$img_overlay,w.events.on("destroy",function(){M("body").first().append(d.removeClass("fr-active"))},!0)):(w.shared.$image_resizer=M(document.createElement("div")).attr("class","fr-image-resizer"),d=w.shared.$image_resizer,w.events.$on(d,"mousedown",function(e){e.stopPropagation()},!0),w.opts.imageResize&&(d.append(ne("nw")+ne("ne")+ne("sw")+ne("se")),w.shared.$img_overlay=M(document.createElement("div")).attr("class","fr-image-overlay"),c=w.shared.$img_overlay,e=d.get(0).ownerDocument,M(e).find("body").first().append(c))),w.events.on("shared.destroy",function(){d.html("").removeData().remove(),d=null,w.opts.imageResize&&(c.remove(),c=null)},!0),w.helpers.isMobile()||w.events.$on(M(w.o_win),"resize",function(){v&&!v.hasClass("fr-uploading")?z(!0):v&&(te(),replace(),p(!1))}),w.opts.imageResize&&(e=d.get(0).ownerDocument,w.events.$on(d,w._mousedown,".fr-handler",ae),w.events.$on(M(e),w._mousemove,re),w.events.$on(M(e.defaultView||e.parentWindow),w._mouseup,se),w.events.$on(c,"mouseleave",se),i=1,a=null,r=0,w.events.on("keydown",function(e){var t,n;v&&(t=-1!=navigator.userAgent.indexOf("Mac OS X")?e.metaKey:e.ctrlKey,((n=e.which)!==a||200<e.timeStamp-r)&&(i=1),(n==dt.KEYCODE.EQUALS||w.browser.mozilla&&n==dt.KEYCODE.FF_EQUALS)&&t&&!e.altKey?i=Ze.call(this,e,1,1,i):(n==dt.KEYCODE.HYPHEN||w.browser.mozilla&&n==dt.KEYCODE.FF_HYPHEN)&&t&&!e.altKey?i=Ze.call(this,e,2,-1,i):w.keys.ctrlKey(e)||n!=dt.KEYCODE.ENTER||(v.before("<br>"),R(v)),a=n,r=e.timeStamp)},!0),w.events.on("keyup",function(){i=1})));v&&((e=w.$wp||w.$sc).append(d),d.data("instance",w),t=e.scrollTop()-("static"!=e.css("position")?e.offset().top:0),n=e.scrollLeft()-("static"!=e.css("position")?e.offset().left:0),n-=w.helpers.getPX(e.css("border-left-width")),t-=w.helpers.getPX(e.css("border-top-width")),w.$el.is("img")&&w.$sc.is("body")&&(n=t=0),s=O(),$()&&(s=s.find(".fr-img-wrap")),l=o=0,w.opts.iframe&&(o=w.helpers.getPX(w.$wp.find(".fr-iframe").css("padding-top")),l=w.helpers.getPX(w.$wp.find(".fr-iframe").css("padding-left"))),d.css("top",(w.opts.iframe?s.offset().top+o:s.offset().top+t)-1).css("left",(w.opts.iframe?s.offset().left+l:s.offset().left+n)-1).css("width",s.get(0).getBoundingClientRect().width).css("height",s.get(0).getBoundingClientRect().height).addClass("fr-active"))}function ne(e){return'<div class="fr-handler fr-h'.concat(e,'"></div>')}function ie(e){($()?v.parents(".fr-img-caption"):v).css("width",e)}function ae(e){if(!w.core.sameInstance(d))return!0;if(e.preventDefault(),e.stopPropagation(),w.$el.find("img.fr-error").left)return!1;w.undo.canDo()||w.undo.saveStep();var t=e.pageX||e.originalEvent.touches[0].pageX;if("mousedown"==e.type){var e=w.$oel.get(0).ownerDocument,e=e.defaultView||e.parentWindow,n=!1;try{n=e.location!=e.parent.location&&!(e.$&&e.$.FE)}catch(i){}n&&e.frameElement&&(t+=w.helpers.getPX(M(e.frameElement).offset().left)+e.frameElement.clientLeft)}(a=M(this)).data("start-x",t),a.data("start-width",v.width()),a.data("start-height",v.height());n=v.width();w.opts.imageResizeWithPercent&&(e=v.parentsUntil(w.$el,w.html.blockTagsQuery()).get(0)||w.el,n=(n/M(e).outerWidth()*100).toFixed(2)+"%"),ie(n),c.show(),w.popups.hideAll(),st()}function re(e){var t,n;return!w.core.sameInstance(d)||(a&&v?(e.preventDefault(),!w.$el.find("img.fr-error").left&&!!(e=e.pageX||(e.originalEvent.touches?e.originalEvent.touches[0].pageX:null))&&(e=e-a.data("start-x"),n=a.data("start-width"),(a.hasClass("fr-hnw")||a.hasClass("fr-hsw"))&&(e=0-e),w.opts.imageResizeWithPercent?(t=v.parentsUntil(w.$el,w.html.blockTagsQuery()).get(0)||w.el,n=((n+e)/M(t).outerWidth()*100).toFixed(2),w.opts.imageRoundPercent&&(n=Math.round(n)),ie("".concat(n,"%")),(t=($()?w.helpers.getPX(v.parents(".fr-img-caption").css("width"))/M(t).outerWidth()*100:w.helpers.getPX(v.css("width"))/M(t).outerWidth()*100).toFixed(2))===n||w.opts.imageRoundPercent||ie("".concat(t,"%")),v.css("height","").removeAttr("height")):(n+e>=w.opts.imageMinWidth&&(ie(n+e),t=$()?w.helpers.getPX(v.parents(".fr-img-caption").css("width")):w.helpers.getPX(v.css("width"))),t!==n+e&&ie(t),((v.attr("style")||"").match(/(^height:)|(; *height:)/)||v.attr("height"))&&(v.css("height",a.data("start-height")*v.width()/a.data("start-width")),v.removeAttr("height"))),te(),void w.events.trigger("image.resize",[v]))):void 0)}function se(e){if(!w.core.sameInstance(d))return!0;if(a&&v){if(e&&e.stopPropagation(),w.$el.find("img.fr-error").left)return!1;a=null,c.hide(),te(),w.undo.saveStep(),w.events.trigger("image.resizeEnd",[v])}else d.removeClass("fr-active")}function oe(){y.forEach(function(e,t){var n=w.popups.get("filesManager.insert");n.find(".fr-checkbox-file-"+t).get(0).disabled=!0,document.getElementById("fr-file-autoplay-button-"+t)&&(document.getElementById("fr-file-autoplay-button-"+t).disabled=!0,document.getElementById("fr-file-autoplay-button-"+t).parentElement.classList.add("fr-checkbox-disabled"),document.getElementById("fr-file-autoplay-button-"+t).parentElement.classList.remove("fr-files-checkbox")),n.find(".fr-checkbox-"+t).get(0).classList.remove("fr-files-checkbox"),n.find(".fr-checkbox-"+t).get(0).classList.add("fr-checkbox-disabled")})}function L(e,t,n,i){w.edit.on(),v&&v.addClass("fr-error"),s[e]?(e!=W&&e!=V&&e!=I||Ie(100,i,!0),y.set(i,s[e]),oe(),y.forEach(function(e,t){w.popups.get("filesManager.insert"),document.getElementById("fr-file-edit-button-".concat(t))&&(document.getElementById("fr-file-edit-button-".concat(t)).classList.add("fr-disabled"),document.getElementById("fr-file-view-button-".concat(t)).classList.add("fr-disabled"),document.getElementById("fr-file-insert-button-".concat(t)).classList.add("fr-disabled"))}),ce(w.language.translate(s[e]),i)):ce(w.language.translate("Something went wrong. Please try again."),i),!v&&n&&Je(n),w.events.trigger("filesManager.error",[{code:e,message:s[e]},t,n])}function _(){var e=w.popups.get("filesManager.insert"),t=e.find('.fr-command[data-cmd="insertAll"]'),e=e.find('.fr-command[data-cmd="deleteAll"]'),i=!0;A.forEach(function(e,t,n){A.get(t)&&(i=!1)}),i?t.addClass("fr-disabled"):t.removeClass("fr-disabled"),i?e.addClass("fr-disabled"):e.removeClass("fr-disabled")}function o(e){k.get(e)&&k.get(e).link&&w.events.trigger("filesManager.removed",[k.get(e).link]);var t=w.popups.get("filesManager.insert");t.find(".fr-file-"+e).get(0)!==undefined&&(t.find(".fr-file-"+e).get(0).outerHTML=""),k["delete"](e),E["delete"](e),A["delete"](e),_(),0==E.size&&(f=0),y["delete"](e),w.popups.setPopupDimensions(t,!0),w.opts.toolbarBottom?J(!0):w.popups.setPopupDimensions(t),t.find(".fr-upload-progress")&&0==E.size&&t.find(".fr-upload-progress").addClass("fr-none")}function le(){for(var e=w.popups.get("filesManager.insert"),t=e.find(".fr-insert-checkbox"),n=0;n<t.length;n++)t.get(n).children.target.checked=!1,e.find(".fr-file-"+t.get(n).id.split("-").pop()).get(0).classList.add("fr-unchecked");if(x)document.getElementById("fr-file-autoplay-button-".concat(x))&&(document.getElementById("fr-file-autoplay-button-".concat(x)).checked=!1),C=C.filter(function(e){return e!=x});else{for(var i=e.find(".fr-file-autoplay-button"),a=0;a<i.length;a++)i.get(a).checked=!1;C=[]}A=new Map,_()}function p(e){var t,n,i=w.popups.get("filesManager.insert");(i=i||Ke()).find(".fr-layer.fr-active").removeClass("fr-active").addClass("fr-pactive"),i.find(".fr-files-progress-bar-layer").addClass("fr-active"),i.find(".fr-buttons").hide(),v&&(i=O(),w.popups.setContainer("filesManager.insert",w.$sc),t=i.offset().left,n=i.offset().top+i.height(),w.popups.show("filesManager.insert",t,n,i.outerHeight())),void 0===e&&S(w.language.translate("Uploading"),0)}function g(e){var t=w.popups.get("filesManager.insert");t&&(t.find(".fr-layer.fr-pactive").addClass("fr-active").removeClass("fr-pactive"),t.find(".fr-files-progress-bar-layer").removeClass("fr-active"),t.find(".fr-buttons").show(),e||w.$el.find("img.fr-error").length)&&(w.events.focus(),w.$el.find("img.fr-error").length&&(w.$el.find("img.fr-error").remove(),w.undo.saveStep(),w.undo.run(),w.undo.dropRedo()),!w.$wp&&v&&(t=v,z(!0),w.selection.setAfter(t.get(0)),w.selection.restore()),w.popups.hide("filesManager.insert"))}function S(e,t){var n=w.popups.get("filesManager.insert");n&&((n=n.find(".fr-files-progress-bar-layer")).find("h3").text(e+(t?" ".concat(t,"%"):"")),n.removeClass("fr-error"),t?(n.find("div").removeClass("fr-indeterminate"),n.find("div > span").css("width","".concat(t,"%"))):n.find("div").addClass("fr-indeterminate"))}function de(e){p();var t=w.popups.get("filesManager.insert").find(".fr-files-progress-bar-layer"),t=(t.addClass("fr-error"),t.find("h3"));t.text(e),w.events.disableBlur(),t.focus()}function ce(e,t){var n=w.popups.get("filesManager.insert"),i=n.find(".fr-upload-progress-layer"),t=n.find(".fr-file-".concat(t));i.addClass("fr-error"),t.find("h5").text(e)}s[Y]="File cannot be loaded from the passed link.",s[V]="No link in upload response.",s[W]="Error during file upload.",s[I]="Parsing response failed.",s[G]="File is too large.",s[X]="File type is invalid.",s[7]="Files can be uploaded only to same domain in IE 8 and IE 9.",s[8]="File is corrupted.",s[9]="Error during file loading.";var fe,pe,ge,u,ue,me,ve,he,be,ye,m="";function we(e){m=e,fe=document.getElementsByClassName(e),Array.prototype.map.call(fe,function(e){e.addEventListener("dragover",function(e){e.preventDefault(),e.stopPropagation(),pe=e.pageX,ge=e.pageY;e=document.getElementById("filesList");ge+20>e.getBoundingClientRect().bottom&&xe(e,0,10),ge-20<e.getBoundingClientRect().top&&xe(e,0,-10)},!1),w.helpers.isMobile()&&e.getElementsByClassName("dot")[0].addEventListener("touchmove",function(e){e.preventDefault(),e.stopPropagation();for(var t=e.target;t&&!t.classList.contains(m);)t=t.parentElement;for(var n=document.elementFromPoint(e.targetTouches[0].clientX,e.targetTouches[0].clientY);n&&!n.classList.contains(m);)n=n.parentElement;var i=document.getElementsByClassName("fr-hovered-over-file"),i=(Array.prototype.forEach.call(i,function(e){e.classList.remove("fr-hovered-over-file")}),n&&!t.classList.contains("fr-unchecked")&&n.classList.add("fr-hovered-over-file"),document.getElementById("filesList"));e.targetTouches[0].clientY+5>i.getBoundingClientRect().bottom&&xe(i,0,5),e.targetTouches[0].clientY-5<i.getBoundingClientRect().top&&xe(i,0,-5)},!1),e.ondrag=Me,e.ondragend=Ee,w.helpers.isMobile()&&((e=e.getElementsByClassName("dot"))[0].addEventListener("touchmove",Me,!1),e[0].addEventListener("touchend",Ee,!1))})}function xe(e,t,n){e.scrollLeft+=t,e.scrollTop+=n}function Me(e){for(w.helpers.isMobile()&&(ue=event.touches[0].clientX,me=event.touches[0].clientY),u=e.target;!u.classList.contains(m);)u=u.parentElement;!u.classList.contains(m)||u.classList.contains("fr-unchecked")?u=undefined:w.helpers.isMobile()&&u.classList.add("drag-sort-active")}function Ee(e){var t,n,i;if(u!==undefined){if(w.helpers.isMobile())for(n=ue,i=me,t=event.target;!t.classList.contains(m);)t=t.parentElement;else n=event.clientX,i=event.clientY;w.helpers.isMobile()||!w.browser.safari&&!w.browser.mozilla||(n=pe,i=ge);for(var a=document.elementFromPoint(n,i);a&&!a.classList.contains(m);)a=a.parentElement;if(a&&!a.classList.contains(m))a=undefined;else if(a&&u!==a){var r,s,o=u,l=a,d=o.parentNode,c=l.parentNode;if(d&&c&&!d.isEqualNode(l)&&!c.isEqualNode(o)){for(var f=0;f<d.children.length;f++)d.children[f].isEqualNode(o)&&(r=f);for(f=0;f<c.children.length;f++)c.children[f].isEqualNode(l)&&(s=f);d.isEqualNode(c)&&r<s&&s++,d.insertBefore(l,d.children[r]),c.insertBefore(o,c.children[s])}}w.helpers.isMobile()&&(t.classList.remove("fr-hovered-over-file"),a.classList.remove("fr-hovered-over-file"))}}function T(e){var i=w.popups.get("filesManager.insert"),t=(i.find(".fr-upload-progress-layer").hasClass("fr-active")||i.find(".fr-upload-progress-layer").addClass("fr-active"),i.find(".fr-upload-progress").removeClass("fr-none"),E.get(e)),n=function(e){var t,n={weekday:"long",year:"numeric",month:"long",day:"numeric"};try{t=e.toLocaleDateString(w.opts.language||undefined,n)}catch(i){t=e.toLocaleDateString(undefined,n)}return t+""}(new Date),a=A.get(e)?"":"fr-unchecked ",a="\n <div id='fr-file-".concat(e,"' class='fr-file-list-item fr-file-").concat(e," ").concat(a,"' draggable = \"").concat(!a,'" >\n <div class=\'fr-file-item-left\' >\n\n \n <div class="fr-file-item-insert-checkbox fr-files-checkbox-line">\n ').concat(w.helpers.isMobile()?"<div id='fr-pick-".concat(e,"}' class='dot'>\n </div>"):"",'\n <div id="checkbox-key-').concat(e,'" class="fr-files-checkbox fr-insert-checkbox fr-checkbox-').concat(e,'">\n <input name="target" class="fr-insert-attr fr-checkbox-file-').concat(e,' fr-file-insert-check" data-cmd="fileInsertCheckbox"\n data-checked="_blank" type="checkbox" id="fr-link-target-').concat(w.id,'" tabIndex="0" />\n <span>').concat('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="10" height="10" viewBox="0 0 32 32"><path d="M27 4l-15 15-7-7-5 5 12 12 20-20z" fill="#FFF"></path></svg>','\n </span>\n </div>\n <label id="fr-label-target-').concat(w.id,"\"></label>\n </div>\n \n <div class='fr-file-item-icon fr-file-item-icon-").concat(e,"' >\n <img src='https://secure.webtoolhub.com/static/resources/icons/set112/f2afb6f7.png' alt='Image preview' class='fr-thumbnail-padding' height='36px' width='36px' />\n </div>\n\n <div class='fr-file-item-description' >\n <div class='fr-file-name fr-files-manager-tooltip'>\n ").concat(function(e,t,n){null==n&&(n="...");return e.length>t?e.substring(0,t-n.length)+n:e}(t.name,20),'\n <span class="').concat(20<t.name.length?"tooltiptext":"fr-none",'">').concat(t.name,"\n </span>\n </div>\n <div class='fr-file-details'>\n <div class='fr-file-date'>").concat(n,"\n </div>\n \n <div class='fr-file-size'>\n ").concat(0==(a=t.size)?"0 Bytes":(n=Math.floor(Math.log(a)/Math.log(1024))," | "+ +(a/Math.pow(1024,n)).toFixed(2)+" "+["Bytes","KB","MB","GB","TB"][n]),"\n </div>\n </div>\n\n <div class='fr-file-error'>\n <h5 class='fr-file-error-h5'></h5>\n </div>\n </div>\n \n </div>\n\n <div class='fr-file-item-right fr-file-item-right-").concat(e,"'>")+Ce(e)+"</div>\n </div>";i.find(".fr-upload-progress-layer")[0].innerHTML=a+i.find(".fr-upload-progress-layer")[0].innerHTML,E.forEach(function(e,t,n){A.get(t)&&i.find("input.fr-insert-attr.fr-checkbox-file-".concat(t))[0].setAttribute("checked",null)}),C.forEach(function(e){document.getElementById("fr-file-autoplay-button-"+e).checked=!0}),Ae(e,t),g(),w.opts.toolbarBottom?J(!0):w.popups.setPopupDimensions(i),we("fr-file-list-item")}function ke(e){switch(e){case"application/msword":return w.icon.getFileIcon("docIcon");case"application/vnd.openxmlformats-officedocument.wordprocessingml.document":return w.icon.getFileIcon("docxIcon");case"image/gif":return w.icon.getFileIcon("gifIcon");case"image/jpeg":return w.icon.getFileIcon("jpegIcon");case"image/jpeg":return w.icon.getFileIcon("jpgIcon");case"type/text":return w.icon.getFileIcon("logIcon");case"video/quicktime":return w.icon.getFileIcon("movIcon");case"audio/mp3":case"audio/mpeg":return w.icon.getFileIcon("mp3Icon");case"video/mp4":return w.icon.getFileIcon("mp4Icon");case"audio/ogg":return w.icon.getFileIcon("oggIcon");case"video/ogg":return w.icon.getFileIcon("ogvIcon");case"application/pdf":return w.icon.getFileIcon("pdfIcon");case"image/png":return w.icon.getFileIcon("pngIcon");case"text/plain":return w.icon.getFileIcon("txtIcon");case"video/webm":return w.icon.getFileIcon("webmIcon");case"image/webp":return w.icon.getFileIcon("webpIcon");case"video/x-ms-wmv":return w.icon.getFileIcon("wmvIcon");case"application/vnd.ms-excel":return w.icon.getFileIcon("xlsIcon");case"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":return w.icon.getFileIcon("xlsxIcon");case"application/x-zip-compressed":case"application/zip":return w.icon.getFileIcon("zipIcon");default:return w.icon.getFileIcon("defaultIcon")}}function Ae(i,a,e){var r,s=w.popups.get("filesManager.insert"),t=s.find(".fr-file-item-icon-"+i).get(0);D(B(a))&&"image/gif"!=B(a)&&"image/webp"!=B(a)?("a"!=t.children[0].localName&&(t.innerHTML="<a target='_blank' href=''>"+t.innerHTML+"</a>"),s.find(".fr-file-item-icon-"+i).get(0).children[0].children[0],r=new FileReader,null!=e&&e&&(e=E.get(i),a.name=e.name,E.set(i,a)),r.onloadend=function(){s.find(".fr-file-item-icon-"+i).get(0).children[0].children[0].src=r.result;for(var e=atob(r.result.split(",")[1]),t=[],n=0;n<e.length;n++)t.push(e.charCodeAt(n));s.find(".fr-file-item-icon-"+i).get(0).children[0].href=window.URL.createObjectURL(new Blob([new Uint8Array(t)],{type:B(a)})),s.find(".fr-file-item-icon-"+i).get(0).classList.add("fr-file-item-thumbnail-hover")},a?r.readAsDataURL(a):(e=ke(B(a)),t.innerHTML='<svg height="40px" width="40px" viewBox="0 0 55 5" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">\n '.concat(e.path,"\n </svg>"))):(e=ke(B(a)),t.innerHTML='<svg height="40px" width="40px" viewBox="0 0 55 55" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">\n '.concat(e.path,"\n </svg>"))}function Ce(e){var t="",n=(Fe(B(E.get(e)))&&(n="fr-files-checkbox",i="",He(B(E.get(e)))||(n="fr-checkbox-disabled",i="disabled"),t='\n <div class="fr-files-checkbox-line align-autoplay">\n <div id="checkbox-key-'.concat(e,'" class="').concat(n," fr-autoplay-checkbox fr-checkbox-").concat(e,'"> \n \n <input type="checkbox" id="fr-file-autoplay-button-').concat(e,'" class="fr-file-button-').concat(e,' fr-file-autoplay-button" data-title="Edit" data-param1="').concat(e,'" role="button" ').concat(i,"/>\n\n <span>").concat('<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="10" height="10" viewBox="0 0 32 32"><path d="M27 4l-15 15-7-7-5 5 12 12 20-20z" fill="#FFF"></path></svg>'," </span>\n </div> \n <label class='fr-autoplay-checkbox-label'>Autoplay </label>\n </div>")),"application/msword"),i="application/vnd.openxmlformats-officedocument.wordprocessingml.document",a="";return!Ne(B(E.get(e)))&&He(B(E.get(e)))||(r="fr-disabled"),Fe(B(E.get(e)))&&(r="fr-disabled"),U(B(E.get(e)))&&(r="fr-disabled",B(E.get(e))!=n&&B(E.get(e))!=i||w.opts.googleOptions&&!w.helpers.isMobile()&&w.opts.googleOptions.API_KEY&&w.opts.googleOptions.CLIENT_ID&&(r=""),"text/plain"!=B(E.get(e))&&B(E.get(e))!=n&&"application/pdf"!=B(E.get(e))&&B(E.get(e))!=i&&"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"!=B(E.get(e))&&"application/vnd.ms-excel"!=B(E.get(e))&&"type/text"!=B(E.get(e))||(a="")),"video/url"===B(E.get(e))&&(r="fr-disabled"),t+='<div class=\'fr-file-item-action-buttons\' >\n <button type="button" id="fr-file-insert-button-'.concat(e,'" class=" fr-doc-edit-').concat(e," fr-img-icon fr-btn fr-command fr-submit fr-file-action-icons \n fr-file-button-").concat(e," fr-file-insert-button-").concat(e,' fr-file-insert-button" data-cmd="imageInsertByUpload" data-title="Insert" data-param1="').concat(e,'" tabIndex="2" role="button">\n <svg style=\'margin:0px !important; opacity:0.9\' class = "fr-svg" focusable="false" width="16px" height="16px" viewBox = "-5 0 28 28" xlmns = "http://w3.org/200/svg"><path d = \'M 9.25 12 L 6.75 12 C 6.335938 12 6 11.664062 6 11.25 L 6 6 L 3.257812 6 C 2.703125 6 2.425781 5.328125 2.820312 4.933594 L 7.570312 0.179688 C 7.804688 -0.0546875 8.191406 -0.0546875 8.425781 0.179688 L 13.179688 4.933594 C 13.574219 5.328125 13.296875 6 12.742188 6 L 10 6 L 10 11.25 C 10 11.664062 9.664062 12 9.25 12 Z M 16 11.75 L 16 15.25 C 16 15.664062 15.664062 16 15.25 16 L 0.75 16 C 0.335938 16 0 15.664062 0 15.25 L 0 11.75 C 0 11.335938 0.335938 11 0.75 11 L 5 11 L 5 11.25 C 5 12.214844 5.785156 13 6.75 13 L 9.25 13 C 10.214844 13 11 12.214844 11 11.25 L 11 11 L 15.25 11 C 15.664062 11 16 11.335938 16 11.75 Z M 12.125 14.5 C 12.125 14.15625 11.84375 13.875 11.5 13.875 C 11.15625 13.875 10.875 14.15625 10.875 14.5 C 10.875 14.84375 11.15625 15.125 11.5 15.125 C 11.84375 15.125 12.125 14.84375 12.125 14.5 Z M 14.125 14.5 C 14.125 14.15625 13.84375 13.875 13.5 13.875 C 13.15625 13.875 12.875 14.15625 12.875 14.5 C 12.875 14.84375 13.15625 15.125 13.5 15.125 C 13.84375 15.125 14.125 14.84375 14.125 14.5 Z M 14.125 14.5 \'></path></svg>\n </button>\n\n <button type="button" id="fr-file-edit-button-').concat(e,'" class=" fr-doc-edit-').concat(e," ").concat(r," fr-img-icon fr-btn fr-command fr-submit \n fr-file-action-icons fr-file-edit-button-").concat(e," fr-file-button-").concat(e,' fr-file-edit-button" data-cmd="editImage" data-title="Edit" data-param1="').concat(e,'" role="button">\n <svg style=\'margin:0px !important; opacity:0.9\' class = "fr-svg" focusable="false" width="16px" height="16px" viewBox = "0 4 25 25" xlmns = "http://w3.org/200/svg"><path d = \'M17,11.2L12.8,7L5,14.8V19h4.2L17,11.2z M7,16.8v-1.5l5.6-5.6l1.4,1.5l-5.6,5.6H7z M13.5,6.3l0.7-0.7c0.8-0.8,2.1-0.8,2.8,0 c0,0,0,0,0,0L18.4,7c0.8,0.8,0.8,2,0,2.8l-0.7,0.7L13.5,6.3z\'></path></svg>\n </button>\n \n <span class="fr-file-view-').concat(e,'"><button type="button" id="fr-file-view-button-').concat(e,'" class=" fr-doc-edit-').concat(e," ").concat(a," fr-img-icon fr-btn fr-command fr-submit fr-file-action-icons \n fr-file-view-button-").concat(e,' fr-file-view-button" data-cmd="viewImage" data-title="View" data-param1="').concat(e,'" tabIndex="2" role="button">\n <svg style=\'margin:0px !important; opacity:0.9\' class = "fr-svg" focusable="false" width="16px" height="16px" viewBox = "15 19 21 21" xlmns = "http://w3.org/200/svg"> <path style="fill:none;stroke-width:0.9077;stroke-linecap:round;stroke-linejoin:round;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 19.086094 16.541466 C 16.185625 16.541466 14.318281 19.447115 14.318281 19.447115 L 14.318281 19.555288 C 14.318281 19.555288 16.176719 22.475962 19.077187 22.475962 C 21.977656 22.475962 23.847969 19.576322 23.847969 19.576322 L 23.847969 19.465144 C 23.847969 19.465144 21.989531 16.541466 19.086094 16.541466 Z M 19.07125 21.024639 C 18.248906 21.024639 17.583906 20.357572 17.583906 19.53726 C 17.583906 18.716947 18.248906 18.04988 19.07125 18.04988 C 19.890625 18.04988 20.555625 18.716947 20.555625 19.53726 C 20.555625 20.357572 19.890625 21.024639 19.07125 21.024639 Z M 19.07125 21.024639 " transform="matrix(1.315789,0,0,1.3,0,0)"/></svg></button></span>\n\n <button type="button" id="fr-file-delete-button-').concat(e,'" class=" fr-doc-edit-').concat(e," fr-img-icon fr-btn fr-command fr-submit fr-file-action-icons\n fr-file-button-").concat(e,' fr-file-delete-button" data-cmd="deleteImage" data-title="Delete" data-param1="').concat(e,'" role="button">\n <svg style=\'margin:0px !important; opacity:0.9\' class = "fr-svg" focusable="false" width="16px" height="16px" viewBox = "-2 3 30 30" xlmns = "http://w3.org/200/svg"><path d = \'M15,10v8H9v-8H15 M14,4H9.9l-1,1H6v2h12V5h-3L14,4z M17,8H7v10c0,1.1,0.9,2,2,2h6c1.1,0,2-0.9,2-2V8z\'></path></svg>\n </button>\n \n </div>\n <div id="user_area-').concat(e,"\" style=\"display: none;\">\n \n <div id=\"file_container\"></div>\n\n <div style='display:block;text-align: center; margin-left:50%; id='edit-file-loader' class='fr-file-loader'></div>\n\n </div> \n ")}function Ie(e,t,n){var i,a,r=w.popups.get("filesManager.insert");!n&&e<=100?(r.find(".fr-checkbox-file-"+t).get(0).disabled=!0,r.find(".fr-checkbox-"+t).get(0).classList.remove("fr-files-checkbox"),r.find(".fr-checkbox-"+t).get(0).classList.add("fr-checkbox-disabled"),i=r.find(".fr-file-progress-circle-"+t),a=r.find(".fr-file-upload-percent-"+t),50<e?i.get(0).setAttribute("class","fr-file-progress-circle-"+t+" progress-circle p"+Math.floor(e)+" over50"):i.get(0).setAttribute("class","fr-file-progress-circle-"+t+" progress-circle p"+Math.floor(e)),a.get(0).innerHTML=Math.floor(e)+"%",Le(t,e,n)):n&&(r.find(".fr-checkbox-file-"+t).get(0).disabled=!1,r.find(".fr-checkbox-"+t).get(0).classList.remove("fr-checkbox-disabled"),r.find(".fr-checkbox-"+t).get(0).classList.add("fr-files-checkbox"),r.find(".fr-file-item-right-"+t).get(0).innerHTML=Ce(t),Le(t,100,n))}function Le(e,t,n){var i=w.popups.get("filesManager.insert"),a=(i.find(".fr-progress-bar").removeClass("fr-none").addClass("fr-display-block"),i.find(".fr-upload-progress").hasClass("fr-height-set")&&w.popups.setFileListHeight(i),0);b.set(e,t),b.forEach(function(e,t){a+=e}),a/=b.size,100==t&&n&&N++,i.find('.fr-command[data-cmd="filesUpload"]').addClass("fr-disabled"),i.find('.fr-command[data-cmd="filesByURL"]').addClass("fr-disabled"),i.find('.fr-command[data-cmd="filesEmbed"]').addClass("fr-disabled"),i.find(".fr-progress-bar").get(0).style.width=a+"%",N==b.size&&(i.find(".fr-progress-bar").removeClass("fr-display-block").addClass("fr-none"),b=new Map,N=0,i.find('.fr-command[data-cmd="filesUpload"]').removeClass("fr-disabled"),i.find('.fr-command[data-cmd="filesByURL"]').removeClass("fr-disabled"),i.find('.fr-command[data-cmd="filesEmbed"]').removeClass("fr-disabled"))}function _e(n,i){g(),w.popups.get("filesManager.insert").find(".fr-upload-progress-layer").addClass("fr-active"),n.forEach(function(e,t){D(B(e))&&w.opts.imageUploadRemoteUrls&&w.opts.imageCORSProxy&&w.opts.imageUpload?Oe(e,n,0,i[t]):k.set(i[t],e)})}function R(e){e&&e.get&&!function(e){if("false"==M(this).parents("[contenteditable]").not(".fr-element").not(".fr-img-caption").not("body").first().attr("contenteditable"))return!0;if(e&&"touchend"==e.type&&ye)return!0;if(e&&w.edit.isDisabled())return e.stopPropagation(),e.preventDefault(),!1;for(var t=0;t<dt.INSTANCES.length;t++)dt.INSTANCES[t]!=w&&dt.INSTANCES[t].events.trigger("image.hideResizer");w.toolbar.disable(),e&&(e.stopPropagation(),e.preventDefault());w.helpers.isMobile()&&(w.events.disableBlur(),w.$el.blur(),w.events.enableBlur());w.opts.iframe&&w.size.syncIframe();v=M(this),te(),w.browser.msie?(w.popups.areVisible()&&w.events.disableBlur(),w.win.getSelection&&(w.win.getSelection().removeAllRanges(),w.win.getSelection().addRange(w.doc.createRange()))):w.selection.clear();w.helpers.isIOS()&&(w.events.disableBlur(),w.$el.blur());w.button.bulkRefresh(),w.events.trigger("video.hideResizer")}.call(e.get(0))}function Se(){var e=M(this);e.removeClass("fr-uploading"),e.next().is("br")&&e.next().remove(),(0==i.length||0<i.length&&i.length==H)&&(t=e),"VIDEO"==e.get(0).tagName||"AUDIO"==e.get(0).tagName?w.selection.setAfter(e.parent()):w.selection.setAfter(e),w.undo.saveStep(),w.events.trigger("filesManager.loaded",[e]),Re(i)}function Te(){for(var e=Array.prototype.slice.call(w.el.querySelectorAll("video, .fr-video > *")),t=[],n=0;n<e.length;n++)t.push(e[n].getAttribute("src")),M(e[n]).toggleClass("fr-draggable",w.opts.videoMove),""===e[n].getAttribute("class")&&e[n].removeAttribute("class"),""===e[n].getAttribute("style")&&e[n].removeAttribute("style");if(ve)for(n=0;n<ve.length;n++)t.indexOf(ve[n].getAttribute("src"))<0&&w.events.trigger("video.removed",[M(ve[n])]);ve=e}function Re(e){null!=e&&(0==e.length?null!=t&&("VIDEO"==t.get(0).tagName?w.video._editVideo(t.parent()):"IMG"==t.get(0).tagName?w.image.edit(t):t.trigger("click"),w.toolbar.disable()):De(e.shift(),e))}function Be(e){var t,n,i,a=!1;Fe(B(k.get(e)))?(w.trimVideoPlugin.trimVideo(E.get(e),e,E),a=!0):D(B(k.get(e)))?(t=k.get(e).link,(n=w.o_doc.createElement("img")).src=t,v=n,l=e,w.imageTUI.launch(w,!1,e),a=!0):U(B(k.get(e)))&&(t={apiKey:w.opts.googleOptions.API_KEY,clientId:w.opts.googleOptions.CLIENT_ID,authorizeButton:"authorize_button-".concat(e),signoutButton:"signout_button",userArea:"user_area-".concat(e),fileInput:"file_input",fileIndex:e,file:E.get(e),fileContainer:"file_container",loadingText:"File is being uploaded...",events:{onInvalidFile:function(e){},onError:function(e){}}},be=function(c){var i,e=["https://www.googleapis.com/discovery/v1/apis/drive/v2/rest"],f="id,title,mimeType,userPermission,editable,copyable,shared,fileSize",p="-------314159265358979323846",g="\r\n--"+p+"\r\n",u="\r\n--"+p+"--",t=(document.getElementById(c.authorizeButton),document.getElementById(c.userArea));c.events||(c.events={});function n(){gapi.client.init({apiKey:c.apiKey,clientId:c.clientId,discoveryDocs:e,scope:"https://www.googleapis.com/auth/drive https://www.googleapis.com/auth/drive.file https://www.googleapis.com/auth/drive.appdata"}).then(function(){gapi.auth2.getAuthInstance().isSignedIn.listen(a),a(gapi.auth2.getAuthInstance().isSignedIn.get()),!gapi.auth2.getAuthInstance().isSignedIn.get()||gapi.auth.getToken()!==undefined&&gapi.auth.getToken().access_token===undefined?Promise.resolve(gapi.auth2.getAuthInstance().signIn()).then(function(){s()}):s()},function(e){c.events.onError(e)})}function a(e){e&&(t.style.display="block")}function r(e){var t=gapi.auth.getToken().access_token,t="https://docs.google.com/feeds/download/documents/export/Export?id="+i+"&format=docx&access_token="+t,n=new XMLHttpRequest;n.open("get",t),n.responseType="arraybuffer",n.onload=function(){var e=new Blob([new Uint8Array(this.response)],{type:"application/vnd.openxmlformats-officedocument.wordprocessingml.document"}),t=E.get(c.fileIndex);e.name=t.name,e.lastModified=t.lastModified,e.lastModifiedDate=t.lastModifiedDate,E.set(c.fileIndex,e),w.filesManager.upload(e,k,v,c.fileIndex),o()},n.send()}function s(){for(var e=c.fileIndex,t=document.getElementsByClassName("fr-doc-edit-".concat(e)),n=0;n<t.length;n++)t[n].setAttribute("disabled",!0),t[n].classList.add("fr-disabled");var o,l,d,e=c.file;e?(o=e,l=m,(d=new FileReader).readAsArrayBuffer(o),d.onload=function(e){for(var t={title:o.name,mimeType:"application/vnd.google-apps.document"},n="",i=new Uint8Array(d.result),a=i.byteLength,r=0;r<a;r++)n+=String.fromCharCode(i[r]);var s=btoa(n),t=g+"Content-Type: application/json; charset=UTF-8\r\n\r\n"+JSON.stringify(t)+g+"Content-Type: application/octet-stream\r\nContent-Transfer-Encoding: base64\r\n\r\n"+s+u,s=gapi.client.request({path:"/upload/drive/v2/files",method:"POST",params:{uploadType:"multipart",fields:f},headers:{"Content-Type":'multipart/related; boundary="'+p+'"',"Content-Length":t.Length},body:t});l=l||function l(e){},s.execute(function(e,t){e.error?c.events.onError(e.error):l(e)})}):c.events.onInvalidFile("File is not selected")}function m(e){i=e.id;var e="https://docs.google.com/document/d/"+e.id+"/edit",t=w.o_doc.body,n=w.o_doc.createElement("div");n.setAttribute("id","editDocContainer"),n.style.cssText="position: fixed; top: 0;left: 0;padding: 0;width: 100%;height: 100%;background: rgba(255,255,255,1);z-index: 9998;display:block",n.innerHTML='<div style="margin-top:25px; text-align:center"><label>Sign Out : </label><input type="checkbox" id ="markSignOut" role="button"/> <button id="signout_button" class="fr-trim-button" >Save </button> <button id="cancel_file_edit" class="fr-trim-button">Cancel</button></div> <iframe title="Edit your file" frameBorder="0" width="100%" height="700px" src="'+e+'"></iframe>',t.appendChild(n),document.getElementById("signout_button").onclick=r,document.getElementById("cancel_file_edit").onclick=o}function o(){document.getElementById("markSignOut").checked&&gapi.auth2.getAuthInstance().signOut().then(function(){gapi.auth.getToken()&&(gapi.auth.getToken().access_token=undefined)});for(var e=document.getElementById("editDocContainer"),e=(e.parentNode.removeChild(e),document.getElementById("user_area-".concat(c.fileIndex))&&(document.getElementById("user_area-".concat(c.fileIndex)).style.display="none"),c.fileIndex),t=document.getElementsByClassName("fr-doc-edit-".concat(e)),n=0;n<t.length;n++)t[n].removeAttribute("disabled"),t[n].classList.remove("fr-disabled")}c.events.onInvalidFile=c.events.onInvalidFile||function(e){},c.events.onError=c.events.onError||function(e){};var l={handleClientLoad:function(){gapi.load("client:auth2",n)}};return l}(t),n=function(){},i=function i(e,t){var n=document.createElement("script");n.src=e,n.onload=function(){this.onload=function(){},be.handleClientLoad()},n.onreadystatechange=function(){"complete"===this.readyState&&this.onload()},(document.getElementsByTagName("head")[0]||document.body).appendChild(n)},0!=(e=["https://apis.google.com/js/api.js"]).length?i(e.shift()):n&&n()),a&&(F=!0)}function B(e){var n,i;return""==e.type?e.name&&e.name.endsWith(".msg")?n="application/vnd.ms-outlook":(i=/(?:\.([^.]+))?$/.exec(e.name)[1],[[".doc","application/msword"],[".docx","application/vnd.openxmlformats-officedocument.wordprocessingml.document"],[".gif","image/gif"],[".jpeg","image/jpeg"],[".jpg","image/jpeg"],[".txt","text/plain"],[".log","type/text"],[".mov","video/quicktime"],[".mp3","audio/mpeg"],[".mp4","video/mp4"],[".ogg","audio/ogg"],[".ogv","video/ogg"],[".pdf","application/pdf"],[".png","image/png"],[".webm","video/webm"],[".webp","image/webp"],[".wmv","video/x-ms-wmv"],[".xls","application/vnd.ms-excel"],[".xlsx","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"],[".zip","application/x-zip-compressed"],[".hex","application/octet-stream"]].forEach(function(e,t){e[0]==".".concat(i)&&(n=e[1])}),n):e.type}function De(o,e){if(U(B(k.get(o)))||!He(B(k.get(o)))){var t,n=k.get(o).link,i=k.get(o).text,a=k.get(o).data,r=(!i&&E.get(o)&&E.get(o).name&&(i=E.get(o).name),k.get(o).response),s=(w.edit.on(),w.events.focus(!0),w.selection.restore(),w.opts.fileUseSelectedText&&w.selection.text().length&&(i=w.selection.text()),'<a href="'.concat(n,'" target="_blank" id="fr-inserted-file" '));if(void 0!==a)for(t in a)a.hasOwnProperty(t)&&"link"!=t&&(s+="".concat(t,'="').concat(a[t],'" '));-1==s.indexOf(' class="')&&(s+='class="fr-file" '),s+=">".concat(i,"</a>"),w.html.insert(s);n=w.$el.find("#fr-inserted-file");n.removeAttr("id"),w.undo.saveStep();for(var l=Array.prototype.slice.call(w.el.querySelectorAll("a.fr-file")),d=[],c=0;c<l.length;c++)d.push(l[c].getAttribute("href"));if(he)for(c=0;c<he.length;c++)d.indexOf(he[c].getAttribute("href"))<0&&w.events.trigger("file.unlink",[he[c]]);he=l,w.selection.clear(),w.selection.setAfter(n),w.events.trigger("file.inserted",[n,r]),Re(e)}D(B(k.get(o)))&&He(B(k.get(o)))&&(f=k.get(o).link,i=k.get(o).sanitize,p=k.get(o).data,g=k.get(o).$existing_img,u=k.get(o).response,g&&"string"==typeof g&&(g=w.$(g)),w.edit.off(),S(w.language.translate("Loading image")),i&&(f=w.helpers.sanitizeURL(f)),(n=new Image).onload=function(){var e,t;if(g){w.undo.canDo()||g.hasClass("fr-uploading")||w.undo.saveStep();for(var n=g.data("fr-old-src"),i=(g.data("fr-image-pasted")&&(n=null),w.$wp?((e=g.clone().removeData("fr-old-src").removeClass("fr-uploading").removeAttr("data-fr-image-pasted")).off("load"),n&&g.attr("src",n),g.replaceWith(e)):e=g,e.get(0).attributes),a=0;a<i.length;a++){var r=i[a];0===r.nodeName.indexOf("data-")&&e.removeAttr(r.nodeName)}if(void 0!==p)for(t in p)p.hasOwnProperty(t)&&"link"!=t&&e.attr("data-".concat(t),p[t]);e.on("load",Se),e.attr("src",f),w.edit.on(),w.undo.saveStep(),w.events.disableBlur(),w.$el.blur(),w.events.trigger(n?"image.replaced":"image.inserted",[e,u])}else e=function(e,t,n){var i,a=M(document.createElement("img")).attr("src",e);if(t&&void 0!==t)for(i in t)t.hasOwnProperty(i)&&"link"!=i&&(" data-".concat(i,'="').concat(t[i],'"'),a.attr("data-".concat(i),t[i]));e=w.opts.imageDefaultWidth;e&&"auto"!=e&&(e=w.opts.imageResizeWithPercent?"100%":"".concat(e,"px"));a.attr("style",e?"width: ".concat(e,";"):""),ot(a,w.opts.imageDefaultDisplay,w.opts.imageDefaultAlign),a.on("load",n),a.on("error",n),w.edit.on(),w.events.focus(!0),w.selection.restore(),w.undo.saveStep(),w.opts.imageSplitHTML?w.markers.split():w.markers.insert();w.html.wrap();e=w.$el.find(".fr-marker");e.length?(e.parent().is("hr")&&e.parent().after(e),w.node.isLastSibling(e)&&e.parent().hasClass("fr-deletable")&&e.insertAfter(e.parent()),e.replaceWith(a)):w.$el.append(a);return a}(f,p,Se),w.undo.saveStep(),w.events.disableBlur(),w.$el.blur(),w.events.trigger("image.inserted",[e,u])},n.onerror=function(){L(Y,null,null,o),Re(e)},n.src=f),(Fe(B(k.get(o)))||Ne(B(k.get(o))))&&He(B(k.get(o)))&&(x=o,"video/url"==B(k.get(o))?(r=!1,(r=document.getElementById("fr-file-autoplay-button-"+o)!==undefined?document.getElementById("fr-file-autoplay-button-"+o).checked:r)&&k.get(o)!==undefined&&-1<k.get(o).video.indexOf("iframe")&&k.get(o).video.indexOf("autoplay=1")<0?(i="&",(n=(n=(n=k.get(o).video.substring(k.get(o).video.indexOf("src")+3)).substring(n.indexOf('"')+1)).substring(0,n.indexOf('"'))).indexOf("?")<0&&(i="?"),k.get(o).video=k.get(o).video.replace(n,n+=i+"autoplay=1&mute=1")):!r&&k.get(o).video.indexOf(!1)&&(-1<k.get(o).video.indexOf("&autoplay=1")&&(k.get(o).video=k.get(o).video.replace("&autoplay=1","")),-1<k.get(o).video.indexOf("?autoplay=1"))&&(k.get(o).video=k.get(o).video.replace("?autoplay=1","")),w.events.focus(!0),w.selection.restore(),w.html.insert('<span contenteditable="false" draggable="true" class="fr-jiv fr-video fr-deletable">'.concat(k.get(o).video,"</span>"),!1,w.opts.videoSplitHTML),w.popups.hide("filesManager.insert"),(i=w.$el.find(".fr-jiv")).removeClass("fr-jiv"),i.toggleClass("fr-rv",w.opts.videoResponsive),n=i,r=w.opts.videoDefaultDisplay,y=w.opts.videoDefaultAlign,!w.opts.htmlUntouched&&w.opts.useClasses?(n.removeClass("fr-fvl fr-fvr fr-dvb fr-dvi"),n.addClass("fr-fv".concat(y[0]," fr-dv").concat(r[0]))):"inline"==r?(n.css({display:"inline-block"}),"center"==y?n.css({"float":"none"}):"left"==y?n.css({"float":"left"}):n.css({"float":"right"})):(n.css({display:"block",clear:"both"}),"left"==y?n.css({textAlign:"left"}):"right"==y?n.css({textAlign:"right"}):n.css({textAlign:"center"})),i.toggleClass("fr-draggable",w.opts.videoMove),w.events.trigger("video.inserted",[i]),Se.call(i)):(m=k.get(o).link,y=k.get(o).sanitize,v=k.get(o).data,h=k.get(o).$existing_img,b=k.get(o).response,w.edit.off(),y&&(m=w.helpers.sanitizeURL(m)),function(){var e,t;if(h){w.undo.canDo()||h.find("video").hasClass("fr-uploading")||w.undo.saveStep();for(var n=h.find("video").data("fr-old-src"),i=h.data("fr-replaced"),a=(h.data("fr-replaced",!1),w.$wp?((e=h.clone(!0)).find("video").removeData("fr-old-src").removeClass("fr-uploading"),e.find("video").off("canplay"),n&&h.find("video").attr("src",n),h.replaceWith(e)):e=h,e.find("video").get(0).attributes),r=0;r<a.length;r++){var s=a[r];0===s.nodeName.indexOf("data-")&&e.find("video").removeAttr(s.nodeName)}if(void 0!==v)for(t in v)v.hasOwnProperty(t)&&"link"!=t&&e.find("video").attr("data-".concat(t),v[t]);e.find("video").on("canplay",Se),e.find("video").attr("src",m),w.edit.on(),Te(),w.undo.saveStep(),w.$el.blur(),w.events.trigger(i?"video.replaced":"video.inserted",[e,b])}else e=function(e,t,n,i,a){var r,s="";if(t&&void 0!==t)for(r in t)t.hasOwnProperty(r)&&"link"!=r&&(s+=" data-".concat(r,'="').concat(t[r],'"'));var o=w.opts.videoDefaultWidth;o&&"auto"!=o&&(o="".concat(o,"px"));{var l;a=Ne(i)?M(document.createElement("span")).attr("contenteditable","false").attr("draggable","true").attr("class","fr-video fr-dv"+w.opts.videoDefaultDisplay[0]+("center"!=w.opts.videoDefaultAlign?" fr-fv"+w.opts.videoDefaultAlign[0]:"")).html('<audio src="'+e+'" '+s+" controls>"+w.language.translate("Your browser does not support HTML5 video.")+"</audio>"):(l="",document.getElementById("fr-file-autoplay-button-"+a).checked&&(l="autoplay"),M(document.createElement("span")).attr("contenteditable","false").attr("draggable","true").attr("class","fr-video fr-dv"+w.opts.videoDefaultDisplay[0]+("center"!=w.opts.videoDefaultAlign?" fr-fv"+w.opts.videoDefaultAlign[0]:"")).html('<video src="'+e+'" '+s+(o?' style="width: '+o+';" ':"")+l+" controls>"+w.language.translate("Your browser does not support HTML5 video.")+"</video>"))}a.toggleClass("fr-draggable",w.opts.videoMove),w.edit.on(),w.events.focus(!0),w.selection.restore(),w.undo.saveStep(),w.opts.videoSplitHTML?w.markers.split():w.markers.insert();w.html.wrap();e=w.$el.find(".fr-marker");w.node.isLastSibling(e)&&e.parent().hasClass("fr-deletable")&&e.insertAfter(e.parent());e.replaceWith(a);o="";o=Ne(i)?"audio":"video",a.find(o).get(0).readyState>a.find(o).get(0).HAVE_FUTURE_DATA||w.helpers.isIOS()?n.call(a.find(o).get(0)):(a.find(o).on("canplaythrough load",n),a.find(o).on("error",n));return a}(m,v,Se,B(k.get(o)),o),Te(),w.undo.saveStep(),w.events.trigger("video.inserted",[e,b])}())),w.popups.hide("filesManager.insert"),A["delete"](o);var f,p,g,u,m,v,h,b,y,i=w.popups.get("filesManager.insert");i.find("input.fr-insert-attr.fr-checkbox-file-".concat(o))[0].checked=!1,i.find(".fr-file-"+o).get(0).classList.add("fr-unchecked"),_(),document.getElementById("fr-file-autoplay-button-"+o)&&(document.getElementById("fr-file-autoplay-button-"+o).checked=!1),C=C.filter(function(e){return e!=o})}function Ue(e,t){try{var n;return!1===w.events.trigger("filesManager.uploaded",[e],!0)?(w.edit.on(),!1):(n=JSON.parse(e)).link?n:(L(V,e,null,t),!1)}catch(i){return L(I,e,null,t),!1}}function ze(e,t){try{var n=M(e).find("Location").text(),i=M(e).find("Key").text();return!1===w.events.trigger("filesManager.uploadedToS3",[n,i,e],!0)?(w.edit.on(),!1):n}catch(a){return L(I,e,null,t),!1}}function Oe(e,t,n,i){if(-1<q.indexOf(B(e))||!B(e))return L(X,null,null,i),!1;if(!1===w.events.trigger("filesManager.beforeUpload",[t]))return!1;if(!(null!==w.opts.filesManagerUploadURL&&w.opts.filesManagerUploadURL!=P||w.opts.filesManagerUploadToS3||w.opts.filesManagerUploadToAzure))return r=i,s=e,(l=new FileReader).onload=function(){var e;l.result;if(l.result.indexOf("svg+xml")<0){for(var t,n=atob(l.result.split(",")[1]),i=[],a=0;a<n.length;a++)i.push(n.charCodeAt(a));e=window.URL.createObjectURL(new Blob([new Uint8Array(i)],{type:B(s)})),D(B(s))&&(t={link:e,sanitize:!1,data:null,$existing_img:o,response:null,type:B(s)},k.set(r,t)),U(B(s))&&(t={link:e,text:s.name,response:null,type:B(s)},k.set(r,t)),(Fe(B(s))||Ne(B(s)))&&(t={link:e,sanitize:!1,data:null,$existing_img:o,type:B(s)},k.set(r,t))}},l.readAsDataURL(s),!1;var r,s,o,l,a,d;if(!D(B(e))||e.name||(e.name=(new Date).getTime()+"."+(B(e)||"image/jpeg").replace(/image\//g,"")),e.size>w.opts.filesManagerMaxSize)return L(G,null,null,i),!1;if(w.opts.filesManagerAllowedTypes.indexOf("*")<0&&w.opts.filesManagerAllowedTypes.indexOf(B(e))<0)return L(X,null,null,i),!1;if(t=i,isNaN(t)||(w.popups.get("filesManager.insert").find(".fr-file-item-right-"+t).get(0).innerHTML='<div class=\'fr-file-item-action-buttons\' >\n <button type="button" id="fr-file-cancel-upload-bu