123456789101112 |
- /*!
- * bootstrap-fileinput v4.3.7
- * http://plugins.krajee.com/file-input
- *
- * Author: Kartik Visweswaran
- * Copyright: 2014 - 2017, Kartik Visweswaran, Krajee.com
- *
- * Licensed under the BSD 3-Clause
- * https://github.com/kartik-v/bootstrap-fileinput/blob/master/LICENSE.md
- */!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof module&&module.exports?module.exports=e(require("jquery")):e(window.jQuery)}(function(e){"use strict";e.fn.fileinputLocales={},e.fn.fileinputThemes={};var i,t,a,r,n,o,l,s,d,c,p,u,f,v,g,m,h,w,_,b,C,x,T,y,k,F,P,E,S,I;i=".fileinput",t="kvFileinputModal",a=".kv-preview-thumb",r="file-sortable",n='style="width:{width};height:{height};"',o='<param name="controller" value="true" />\n<param name="allowFullScreen" value="true" />\n<param name="allowScriptAccess" value="always" />\n<param name="autoPlay" value="false" />\n<param name="autoStart" value="false" />\n<param name="quality" value="high" />\n',l='<div class="file-preview-other">\n<span class="{previewFileIconClass}">{previewFileIcon}</span>\n</div>',s=window.URL||window.webkitURL,d=function(e,i,t){return void 0!==e&&(t?e===i:e.match(i))},c=function(e,t,a,r){var n=r?t:t.split(" ").join(i+" ")+i;e.length&&e.off(n).on(n,a)},p=function(e){if("Microsoft Internet Explorer"!==navigator.appName)return!1;if(10===e)return new RegExp("msie\\s"+e,"i").test(navigator.userAgent);var i,t=document.createElement("div");return t.innerHTML="<!--[if IE "+e+"]> <i></i> <![endif]-->",i=t.getElementsByTagName("i").length,document.body.appendChild(t),t.parentNode.removeChild(t),i},u=function(e,i){return i=i||0,"number"==typeof e?e:("string"==typeof e&&(e=parseFloat(e)),isNaN(e)?i:e)},f=function(){return!(!window.File||!window.FileReader)},v=function(){var e=document.createElement("div");return!p(9)&&(void 0!==e.draggable||void 0!==e.ondragstart&&void 0!==e.ondrop)},g=function(){return f()&&window.FormData},m=function(e,i){e.removeClass(i).addClass(i)},w=function(i,t){return void 0===i||null===i||0===i.length||t&&""===e.trim(i)},_=function(e){return Array.isArray(e)||"[object Array]"===Object.prototype.toString.call(e)},b=function(e,i,t){return t=t||"",i&&"object"==typeof i&&e in i?i[e]:t},h=function(i,t,a){return w(i)||w(i[t])?a:e(i[t])},C=function(){return Math.round((new Date).getTime()+100*Math.random())},x=function(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")},T=function(i,t){var a=i;return t?(e.each(t,function(e,i){"function"==typeof i&&(i=i()),a=a.split(e).join(i)}),a):a},y=function(e){var i=e.is("img")?e.attr("src"):e.find("source").attr("src");s.revokeObjectURL(i)},k=function(e){var i=e.lastIndexOf("/");return-1===i&&(i=e.lastIndexOf("\\")),e.split(e.substring(i,i+1)).pop()},F=function(){return document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement},P=function(e){var i=document,t=i.documentElement;t&&e&&!F()?t.requestFullscreen?t.requestFullscreen():t.msRequestFullscreen?t.msRequestFullscreen():t.mozRequestFullScreen?t.mozRequestFullScreen():t.webkitRequestFullscreen&&t.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT):i.exitFullscreen?i.exitFullscreen():i.msExitFullscreen?i.msExitFullscreen():i.mozCancelFullScreen?i.mozCancelFullScreen():i.webkitExitFullscreen&&i.webkitExitFullscreen()},E=function(e,i,t){if(t>=e.length)for(var a=t-e.length;a--+1;)e.push(void 0);return e.splice(t,0,e.splice(i,1)[0]),e},S=function(e){var i=e.closest(".kv-zoom-cache-theme");i.length||(i=e.closest(".kv-zoom-cache")),i.remove()},I=function(i,t){var a=this;a.$element=e(i),a._validate()&&(a.isPreviewable=f(),a.isIE9=p(9),a.isIE10=p(10),a.isPreviewable||a.isIE9?(a._init(t),a._listen()):a.$element.removeClass("file-loading"))},I.prototype={constructor:I,_init:function(i){var t,a=this,r=a.$element;a.options=i,e.each(i,function(e,i){switch(e){case"minFileCount":case"maxFileCount":case"maxFileSize":a[e]=u(i);break;default:a[e]=i}}),a._initTemplateDefaults(),a.fileInputCleared=!1,a.fileBatchCompleted=!0,a.isPreviewable||(a.showPreview=!1),a.uploadFileAttr=w(r.attr("name"))?"file_data":r.attr("name"),a.reader=null,a.formdata={},a.clearStack(),a.uploadCount=0,a.uploadStatus={},a.uploadLog=[],a.uploadAsyncCount=0,a.loadedImages=[],a.totalImagesCount=0,a.ajaxRequests=[],a.isError=!1,a.ajaxAborted=!1,a.cancelling=!1,t=a._getLayoutTemplate("progress"),a.progressTemplate=t.replace("{class}",a.progressClass),a.progressCompleteTemplate=t.replace("{class}",a.progressCompleteClass),a.progressErrorTemplate=t.replace("{class}",a.progressErrorClass),a.dropZoneEnabled=v()&&a.dropZoneEnabled,a.isDisabled=a.$element.attr("disabled")||a.$element.attr("readonly"),a.isUploadable=g()&&!w(a.uploadUrl),a.isClickable=a.browseOnZoneClick&&a.showPreview&&(a.isUploadable&&a.dropZoneEnabled||!w(a.defaultPreviewContent)),a.slug="function"==typeof i.slugCallback?i.slugCallback:a._slugDefault,a.mainTemplate=a.showCaption?a._getLayoutTemplate("main1"):a._getLayoutTemplate("main2"),a.captionTemplate=a._getLayoutTemplate("caption"),a.previewGenericTemplate=a._getPreviewTemplate("generic"),a.resizeImage&&(a.maxImageWidth||a.maxImageHeight)&&(a.imageCanvas=document.createElement("canvas"),a.imageCanvasContext=a.imageCanvas.getContext("2d")),w(a.$element.attr("id"))&&a.$element.attr("id",C()),void 0===a.$container?a.$container=a._createContainer():a._refreshContainer(),a.$dropZone=a.$container.find(".file-drop-zone"),a.$progress=a.$container.find(".kv-upload-progress"),a.$btnUpload=a.$container.find(".fileinput-upload"),a.$captionContainer=h(i,"elCaptionContainer",a.$container.find(".file-caption")),a.$caption=h(i,"elCaptionText",a.$container.find(".file-caption-name")),a.$previewContainer=h(i,"elPreviewContainer",a.$container.find(".file-preview")),a.$preview=h(i,"elPreviewImage",a.$container.find(".file-preview-thumbnails")),a.$previewStatus=h(i,"elPreviewStatus",a.$container.find(".file-preview-status")),a.$errorContainer=h(i,"elErrorContainer",a.$previewContainer.find(".kv-fileinput-error")),w(a.msgErrorClass)||m(a.$errorContainer,a.msgErrorClass),a.$errorContainer.hide(),a.previewInitId="preview-"+C(),a._initPreviewCache(),a._initPreview(!0),a._initPreviewActions(),a._setFileDropZoneTitle(),a.$element.removeClass("file-loading"),a.$element.attr("disabled")&&a.disable(),a._initZoom()},_initTemplateDefaults:function(){var i,a,r,s,c,p,u,f,v,g,m,h,w,_,b,C,x,T,y,k,F,P,E,S,I,$,z,D,A,U,j,L,Z,B,O=this;i='{preview}\n<div class="kv-upload-progress hide"></div>\n<div class="input-group {class}">\n {caption}\n <div class="input-group-btn">\n {remove}\n {cancel}\n {upload}\n {browse}\n </div>\n</div>',a='{preview}\n<div class="kv-upload-progress hide"></div>\n{remove}\n{cancel}\n{upload}\n{browse}\n',r='<div class="file-preview {class}">\n {close} <div class="{dropClass}">\n <div class="file-preview-thumbnails">\n </div>\n <div class="clearfix"></div> <div class="file-preview-status text-center text-success"></div>\n <div class="kv-fileinput-error"></div>\n </div>\n</div>',c='<div class="close fileinput-remove">×</div>\n',s='<i class="glyphicon glyphicon-file kv-caption-icon"></i>',p='<div tabindex="500" class="form-control file-caption {class}">\n <div class="file-caption-name"></div>\n</div>\n',u='<button type="{type}" tabindex="500" title="{title}" class="{css}" {status}>{icon} {label}</button>',f='<a href="{href}" tabindex="500" title="{title}" class="{css}" {status}>{icon} {label}</a>',v='<div tabindex="500" class="{css}" {status}>{icon} {label}</div>',g='<div id="'+t+'" class="file-zoom-dialog modal fade" tabindex="-1" aria-labelledby="'+t+'Label"></div>',m='<div class="modal-dialog modal-lg" role="document">\n <div class="modal-content">\n <div class="modal-header">\n <div class="kv-zoom-actions pull-right">{toggleheader}{fullscreen}{borderless}{close}</div>\n <h3 class="modal-title">{heading} <small><span class="kv-zoom-title"></span></small></h3>\n </div>\n <div class="modal-body">\n <div class="floating-buttons"></div>\n <div class="kv-zoom-body file-zoom-content"></div>\n{prev} {next}\n </div>\n </div>\n</div>\n',h='<div class="progress">\n <div class="{class}" role="progressbar" aria-valuenow="{percent}" aria-valuemin="0" aria-valuemax="100" style="width:{percent}%;">\n {percent}%\n </div>\n</div>',w=" <samp>({sizeText})</samp>",_='<div class="file-thumbnail-footer">\n <div class="file-footer-caption" title="{caption}">{caption}<br>{size}</div>\n {progress} {actions}\n</div>',b='<div class="file-upload-indicator" title="{indicatorTitle}">{indicator}</div>\n{drag}\n<div class="file-actions">\n <div class="file-footer-buttons">\n {upload} {delete} {zoom} {other} </div>\n <div class="clearfix"></div>\n</div>',C='<button type="button" class="kv-file-remove {removeClass}" title="{removeTitle}" {dataUrl}{dataKey}>{removeIcon}</button>\n',x='<button type="button" class="kv-file-upload {uploadClass}" title="{uploadTitle}">{uploadIcon}</button>',T='<button type="button" class="kv-file-zoom {zoomClass}" title="{zoomTitle}">{zoomIcon}</button>',y='<span class="file-drag-handle {dragClass}" title="{dragTitle}">{dragIcon}</span>',k='<div class="file-preview-frame {frameClass}" id="{previewId}" data-fileindex="{fileindex}" data-template="{template}"',F=k+'><div class="kv-file-content">\n',P=k+' title="{caption}" '+n+'><div class="kv-file-content">\n',E="</div>{footer}\n</div>\n",S="{content}\n",I='<div class="kv-preview-data file-preview-html" title="{caption}" '+n+">{data}</div>\n",$='<img src="{data}" class="kv-preview-data file-preview-image" title="{caption}" alt="{caption}" '+n+">\n",z='<textarea class="kv-preview-data file-preview-text" title="{caption}" readonly '+n+">{data}</textarea>\n",D='<video class="kv-preview-data" width="{width}" height="{height}" controls>\n<source src="{data}" type="{type}">\n'+l+"\n</video>\n",A='<audio class="kv-preview-data" controls>\n<source src="{data}" type="{type}">\n'+l+"\n</audio>\n",U='<object class="kv-preview-data file-object" type="application/x-shockwave-flash" width="{width}" height="{height}" data="{data}">\n'+o+" "+l+"\n</object>\n",j='<object class="kv-preview-data file-object" data="{data}" type="{type}" width="{width}" height="{height}">\n<param name="movie" value="{caption}" />\n'+o+" "+l+"\n</object>\n",L='<embed class="kv-preview-data" src="{data}" width="{width}" height="{height}" type="application/pdf">\n',Z='<div class="kv-preview-data file-preview-other-frame">\n'+l+"\n</div>\n",B='<div class="kv-zoom-cache" style="display:none">{zoomContent}</div>',O.defaults={layoutTemplates:{main1:i,main2:a,preview:r,close:c,fileIcon:s,caption:p,modalMain:g,modal:m,progress:h,size:w,footer:_,actions:b,actionDelete:C,actionUpload:x,actionZoom:T,actionDrag:y,btnDefault:u,btnLink:f,btnBrowse:v,zoomCache:B},previewMarkupTags:{tagBefore1:F,tagBefore2:P,tagAfter:E},previewContentTemplates:{generic:S,html:I,image:$,text:z,video:D,audio:A,flash:U,object:j,pdf:L,other:Z},allowedPreviewTypes:["image","html","text","video","audio","flash","pdf","object"],previewTemplates:{},previewSettings:{image:{width:"auto",height:"160px"},html:{width:"213px",height:"160px"},text:{width:"213px",height:"160px"},video:{width:"213px",height:"160px"},audio:{width:"213px",height:"80px"},flash:{width:"213px",height:"160px"},object:{width:"160px",height:"160px"},pdf:{width:"160px",height:"160px"},other:{width:"160px",height:"160px"}},previewZoomSettings:{image:{width:"auto",height:"auto","max-width":"100%","max-height":"100%"},html:{width:"100%",height:"100%","min-height":"480px"},text:{width:"100%",height:"100%","min-height":"480px"},video:{width:"auto",height:"100%","max-width":"100%"},audio:{width:"100%",height:"30px"},flash:{width:"auto",height:"480px"},object:{width:"auto",height:"100%","min-height":"480px"},pdf:{width:"100%",height:"100%","min-height":"480px"},other:{width:"auto",height:"100%","min-height":"480px"}},fileTypeSettings:{image:function(e,i){return d(e,"image.*")||d(i,/\.(gif|png|jpe?g)$/i)},html:function(e,i){return d(e,"text/html")||d(i,/\.(htm|html)$/i)},text:function(e,i){return d(e,"text.*")||d(i,/\.(xml|javascript)$/i)||d(i,/\.(txt|md|csv|nfo|ini|json|php|js|css)$/i)},video:function(e,i){return d(e,"video.*")&&(d(e,/(ogg|mp4|mp?g|mov|webm|3gp)$/i)||d(i,/\.(og?|mp4|webm|mp?g|mov|3gp)$/i))},audio:function(e,i){return d(e,"audio.*")&&(d(i,/(ogg|mp3|mp?g|wav)$/i)||d(i,/\.(og?|mp3|mp?g|wav)$/i))},flash:function(e,i){return d(e,"application/x-shockwave-flash",!0)||d(i,/\.(swf)$/i)},pdf:function(e,i){return d(e,"application/pdf",!0)||d(i,/\.(pdf)$/i)},object:function(){return!0},other:function(){return!0}},fileActionSettings:{showRemove:!0,showUpload:!0,showZoom:!0,showDrag:!0,removeIcon:'<i class="glyphicon glyphicon-trash text-danger"></i>',removeClass:"btn btn-xs btn-default",removeTitle:"Remove file",uploadIcon:'<i class="glyphicon glyphicon-upload text-info"></i>',uploadClass:"btn btn-xs btn-default",uploadTitle:"Upload file",zoomIcon:'<i class="glyphicon glyphicon-zoom-in"></i>',zoomClass:"btn btn-xs btn-default",zoomTitle:"View Details",dragIcon:'<i class="glyphicon glyphicon-menu-hamburger"></i>',dragClass:"text-info",dragTitle:"Move / Rearrange",dragSettings:{},indicatorNew:'<i class="glyphicon glyphicon-hand-down text-warning"></i>',indicatorSuccess:'<i class="glyphicon glyphicon-ok-sign text-success"></i>',indicatorError:'<i class="glyphicon glyphicon-exclamation-sign text-danger"></i>',indicatorLoading:'<i class="glyphicon glyphicon-hand-up text-muted"></i>',indicatorNewTitle:"Not uploaded yet",indicatorSuccessTitle:"Uploaded",indicatorErrorTitle:"Upload Error",indicatorLoadingTitle:"Uploading ..."}},e.each(O.defaults,function(i,t){return"allowedPreviewTypes"===i?void(void 0===O.allowedPreviewTypes&&(O.allowedPreviewTypes=t)):void(O[i]=e.extend(!0,t,O[i]))}),O._initPreviewTemplates()},_initPreviewTemplates:function(){var i,t=this,a=t.defaults,r=t.previewMarkupTags,n=r.tagAfter;e.each(a.previewContentTemplates,function(e,a){w(t.previewTemplates[e])&&(i=r.tagBefore2,"generic"!==e&&"image"!==e&&"html"!==e&&"text"!==e||(i=r.tagBefore1),t.previewTemplates[e]=i+a+n)})},_initPreviewCache:function(){var i=this;i.previewCache={data:{},init:function(){var e=i.initialPreview;e.length>0&&!_(e)&&(e=e.split(i.initialPreviewDelimiter)),i.previewCache.data={content:e,config:i.initialPreviewConfig,tags:i.initialPreviewThumbTags}},fetch:function(){return i.previewCache.data.content.filter(function(e){return null!==e})},count:function(e){return i.previewCache.data&&i.previewCache.data.content?e?i.previewCache.data.content.length:i.previewCache.fetch().length:0},get:function(t,a){var n,o,l,s,d,c,p,u="init_"+t,f=i.previewCache.data,v=f.config[t],g=f.content[t],m=i.previewInitId+"-"+u,h=b("previewAsData",v,i.initialPreviewAsData),_=function(e,t,a,n,o,l,s,d,c){return d=" file-preview-initial "+r+(d?" "+d:""),i._generatePreviewTemplate(e,t,a,n,o,!1,null,d,l,s,c)};return g?(a=void 0===a?!0:a,l=b("type",v,i.initialPreviewFileType||"generic"),d=b("filename",v,b("caption",v)),c=b("filetype",v,l),s=i.previewCache.footer(t,a,v&&v.size||null),p=b("frameClass",v),n=h?_(l,g,d,c,m,s,u,p):_("generic",g,d,c,m,s,u,p,l).replace(/\{content}/g,f.content[t]),f.tags.length&&f.tags[t]&&(n=T(n,f.tags[t])),w(v)||w(v.frameAttr)||(o=e(document.createElement("div")).html(n),o.find(".file-preview-initial").attr(v.frameAttr),n=o.html(),o.remove()),n):""},add:function(e,t,a,r){var n,o=i.previewCache.data;return _(e)||(e=e.split(i.initialPreviewDelimiter)),r?(n=o.content.push(e)-1,o.config[n]=t,o.tags[n]=a):(n=e.length-1,o.content=e,o.config=t,o.tags=a),i.previewCache.data=o,n},set:function(e,t,a,r){var n,o,l=i.previewCache.data;if(e&&e.length&&(_(e)||(e=e.split(i.initialPreviewDelimiter)),o=e.filter(function(e){return null!==e}),o.length)){if(void 0===l.content&&(l.content=[]),void 0===l.config&&(l.config=[]),void 0===l.tags&&(l.tags=[]),r){for(n=0;n<e.length;n++)e[n]&&l.content.push(e[n]);for(n=0;n<t.length;n++)t[n]&&l.config.push(t[n]);for(n=0;n<a.length;n++)a[n]&&l.tags.push(a[n])}else l.content=e,l.config=t,l.tags=a;i.previewCache.data=l}},unset:function(e){var t=i.previewCache.count();if(t){if(1===t)return i.previewCache.data.content=[],i.previewCache.data.config=[],i.previewCache.data.tags=[],i.initialPreview=[],i.initialPreviewConfig=[],void(i.initialPreviewThumbTags=[]);i.previewCache.data.content[e]=null,i.previewCache.data.config[e]=null,i.previewCache.data.tags[e]=null}},out:function(){var e,t,a="",r=i.previewCache.count(!0);if(0===r)return{content:"",caption:""};for(t=0;r>t;t++)a+=i.previewCache.get(t);return e=i._getMsgSelected(i.previewCache.count()),{content:a,caption:e}},footer:function(e,t,a){var r=i.previewCache.data;if(!r||!r.config||0===r.config.length||w(r.config[e]))return"";t=void 0===t?!0:t;var n=r.config[e],o=b("caption",n),l="",s=b("width",n,"auto"),d=b("url",n,!1),c=b("key",n,null),p=i.fileActionSettings,u=b("showDelete",n,!0),f=b("showZoom",n,p.showZoom),v=b("showDrag",n,p.showDrag),g=d===!1&&t;return i.initialPreviewShowDelete&&(l=i._renderFileActions(!1,u,f,v,g,d,c,!0)),i._getLayoutTemplate("footer").replace(/\{progress}/g,i._renderThumbProgress()).replace(/\{actions}/g,l).replace(/\{caption}/g,o).replace(/\{size}/g,i._getSize(a)).replace(/\{width}/g,s).replace(/\{indicator}/g,"").replace(/\{indicatorTitle}/g,"")}},i.previewCache.init()},_log:function(e){var i=this,t=i.$element.attr("id");t&&(e='"'+t+'": '+e),"undefined"!=typeof window.console.log?window.console.log(e):window.alert(e)},_validate:function(){var e=this,i="file"===e.$element.attr("type");return i||e._log('The input "type" must be set to "file" for initializing the "bootstrap-fileinput" plugin.'),i},_errorsExist:function(){var i,t=this;return t.$errorContainer.find("li").length?!0:(i=e(document.createElement("div")).html(t.$errorContainer.html()),i.find("span.kv-error-close").remove(),i.find("ul").remove(),!!e.trim(i.text()).length)},_errorHandler:function(e,i){var t=this,a=e.target.error;a.code===a.NOT_FOUND_ERR?t._showError(t.msgFileNotFound.replace("{name}",i)):a.code===a.SECURITY_ERR?t._showError(t.msgFileSecured.replace("{name}",i)):a.code===a.NOT_READABLE_ERR?t._showError(t.msgFileNotReadable.replace("{name}",i)):a.code===a.ABORT_ERR?t._showError(t.msgFilePreviewAborted.replace("{name}",i)):t._showError(t.msgFilePreviewError.replace("{name}",i))},_addError:function(e){var i=this,t=i.$errorContainer;e&&t.length&&(t.html(i.errorCloseButton+e),c(t.find(".kv-error-close"),"click",function(){t.fadeOut("slow")}))},_resetErrors:function(e){var i=this,t=i.$errorContainer;i.isError=!1,i.$container.removeClass("has-error"),t.html(""),e?t.fadeOut("slow"):t.hide()},_showFolderError:function(e){var i,t=this,a=t.$errorContainer;e&&(i=t.msgFoldersNotAllowed.replace(/\{n}/g,e),t._addError(i),m(t.$container,"has-error"),a.fadeIn(800),t._raise("filefoldererror",[e,i]))},_showUploadError:function(e,i,t){var a=this,r=a.$errorContainer,n=t||"fileuploaderror",o=i&&i.id?'<li data-file-id="'+i.id+'">'+e+"</li>":"<li>"+e+"</li>";return 0===r.find("ul").length?a._addError("<ul>"+o+"</ul>"):r.find("ul").append(o),r.fadeIn(800),a._raise(n,[i,e]),a.$container.removeClass("file-input-new"),m(a.$container,"has-error"),!0},_showError:function(e,i,t){var a=this,r=a.$errorContainer,n=t||"fileerror";return i=i||{},i.reader=a.reader,a._addError(e),r.fadeIn(800),a._raise(n,[i,e]),a.isUploadable||a._clearFileInput(),a.$container.removeClass("file-input-new"),m(a.$container,"has-error"),a.$btnUpload.attr("disabled",!0),!0},_noFilesError:function(e){var i=this,t=i.minFileCount>1?i.filePlural:i.fileSingle,a=i.msgFilesTooLess.replace("{n}",i.minFileCount).replace("{files}",t),r=i.$errorContainer;i._addError(a),i.isError=!0,i._updateFileDetails(0),r.fadeIn(800),i._raise("fileerror",[e,a]),i._clearFileInput(),m(i.$container,"has-error")},_parseError:function(i,t,a,r){var n=this,o=e.trim(a+""),l="."===o.slice(-1)?"":".",s=void 0!==t.responseJSON&&void 0!==t.responseJSON.error?t.responseJSON.error:t.responseText;return n.cancelling&&n.msgUploadAborted&&(o=n.msgUploadAborted),n.showAjaxErrorDetails&&s?(s=e.trim(s.replace(/\n\s*\n/g,"\n")),s=s.length>0?"<pre>"+s+"</pre>":"",o+=l+s):o+=l,o===l&&(o=n.msgAjaxError.replace("{operation}",i)),n.cancelling=!1,r?"<b>"+r+": </b>"+o:o},_parseFileType:function(e){var i,t,a,r,n=this,o=n.allowedPreviewTypes;for(r=0;r<o.length;r++)if(a=o[r],i=n.fileTypeSettings[a],t=i(e.type,e.name)?a:"",!w(t))return t;return"other"},_getPreviewIcon:function(i){var t,a=this,r=null;return i&&i.indexOf(".")>-1&&(t=i.split(".").pop(),a.previewFileIconSettings&&a.previewFileIconSettings[t]&&(r=a.previewFileIconSettings[t]),a.previewFileExtSettings&&e.each(a.previewFileExtSettings,function(e,i){return a.previewFileIconSettings[e]&&i(t)?void(r=a.previewFileIconSettings[e]):void 0})),r},_parseFilePreviewIcon:function(e,i){var t=this,a=t._getPreviewIcon(i)||t.previewFileIcon;return e.indexOf("{previewFileIcon}")>-1&&(e=e.replace(/\{previewFileIconClass}/g,t.previewFileIconClass).replace(/\{previewFileIcon}/g,a)),e},_raise:function(i,t){var a=this,r=e.Event(i);if(void 0!==t?a.$element.trigger(r,t):a.$element.trigger(r),r.isDefaultPrevented())return!1;if(!r.result)return r.result;switch(i){case"filebatchuploadcomplete":case"filebatchuploadsuccess":case"fileuploaded":case"fileclear":case"filecleared":case"filereset":case"fileerror":case"filefoldererror":case"fileuploaderror":case"filebatchuploaderror":case"filedeleteerror":case"filecustomerror":case"filesuccessremove":break;default:a.ajaxAborted=r.result}return!0},_listenFullScreen:function(e){var i,t,a=this,r=a.$modal;r&&r.length&&(i=r&&r.find(".btn-fullscreen"),t=r&&r.find(".btn-borderless"),i.length&&t.length&&(i.removeClass("active").attr("aria-pressed","false"),t.removeClass("active").attr("aria-pressed","false"),e?i.addClass("active").attr("aria-pressed","true"):t.addClass("active").attr("aria-pressed","true"),r.hasClass("file-zoom-fullscreen")?a._maximizeZoomDialog():e?a._maximizeZoomDialog():t.removeClass("active").attr("aria-pressed","false")))},_listen:function(){var i=this,t=i.$element,a=t.closest("form"),r=i.$container;c(t,"change",e.proxy(i._change,i)),i.showBrowse&&c(i.$btnFile,"click",e.proxy(i._browse,i)),c(a,"reset",e.proxy(i.reset,i)),c(r.find(".fileinput-remove:not([disabled])"),"click",e.proxy(i.clear,i)),c(r.find(".fileinput-cancel"),"click",e.proxy(i.cancel,i)),i._initDragDrop(),i.isUploadable||c(a,"submit",e.proxy(i._submitForm,i)),c(i.$container.find(".fileinput-upload"),"click",e.proxy(i._uploadClick,i)),c(e(window),"resize",function(){i._listenFullScreen(screen.width===window.innerWidth&&screen.height===window.innerHeight)}),c(e(document),"webkitfullscreenchange mozfullscreenchange fullscreenchange MSFullscreenChange",function(){i._listenFullScreen(F())}),i._initClickable()},_initClickable:function(){var i,t=this;t.isClickable&&(i=t.isUploadable?t.$dropZone:t.$preview.find(".file-default-preview"),m(i,"clickable"),i.attr("tabindex",-1),c(i,"click",function(a){var r=e(a.target);r.parents(".file-preview-thumbnails").length&&!r.parents(".file-default-preview").length||(t.$element.trigger("click"),i.blur())}))},_initDragDrop:function(){var i=this,t=i.$dropZone;i.isUploadable&&i.dropZoneEnabled&&i.showPreview&&(c(t,"dragenter dragover",e.proxy(i._zoneDragEnter,i)),c(t,"dragleave",e.proxy(i._zoneDragLeave,i)),c(t,"drop",e.proxy(i._zoneDrop,i)),c(e(document),"dragenter dragover drop",i._zoneDragDropInit))},_zoneDragDropInit:function(e){e.stopPropagation(),e.preventDefault()},_zoneDragEnter:function(i){var t=this,a=e.inArray("Files",i.originalEvent.dataTransfer.types)>-1;return t._zoneDragDropInit(i),t.isDisabled||!a?(i.originalEvent.dataTransfer.effectAllowed="none",void(i.originalEvent.dataTransfer.dropEffect="none")):void m(t.$dropZone,"file-highlighted")},_zoneDragLeave:function(e){var i=this;i._zoneDragDropInit(e),i.isDisabled||i.$dropZone.removeClass("file-highlighted")},_zoneDrop:function(e){var i=this;e.preventDefault(),i.isDisabled||w(e.originalEvent.dataTransfer.files)||(i._change(e,"dragdrop"),i.$dropZone.removeClass("file-highlighted"))},_uploadClick:function(e){var i,t=this,a=t.$container.find(".fileinput-upload"),r=!a.hasClass("disabled")&&w(a.attr("disabled"));if(!e||!e.isDefaultPrevented()){if(!t.isUploadable)return void(r&&"submit"!==a.attr("type")&&(i=a.closest("form"),i.length&&i.trigger("submit"),e.preventDefault()));e.preventDefault(),r&&t.upload()}},_submitForm:function(){var e=this,i=e.$element,t=i.get(0).files;return t&&e.minFileCount>0&&e._getFileCount(t.length)<e.minFileCount?(e._noFilesError({}),!1):!e._abort({})},_clearPreview:function(){var i=this,t=i.$preview,r=i.showUploadedThumbs?t.find(a+":not(.file-preview-success)"):t.find(a);r.each(function(){var i=e(this);i.remove(),S(t.find("#zoom-"+i.attr("id")))}),i.$preview.find(a).length&&i.showPreview||i._resetUpload(),i._validateDefaultPreview()},_initSortable:function(){var i,t=this,n=t.$preview,o="."+r;window.KvSortable&&0!==n.find(o).length&&(i={handle:".drag-handle-init",dataIdAttr:"data-preview-id",draggable:o,onSort:function(i){var r,n,o=i.oldIndex,l=i.newIndex;t.initialPreview=E(t.initialPreview,o,l),t.initialPreviewConfig=E(t.initialPreviewConfig,o,l),t.previewCache.init();for(var s=0;s<t.initialPreviewConfig.length;s++)null!==t.initialPreviewConfig[s]&&(r=t.initialPreviewConfig[s].key,n=e(".kv-file-remove[data-key='"+r+"']").closest(a),n.attr("data-fileindex","init_"+s).data("fileindex","init_"+s));t._raise("filesorted",{previewId:e(i.item).attr("id"),oldIndex:o,newIndex:l,stack:t.initialPreviewConfig})}},n.data("kvsortable")&&n.kvsortable("destroy"),e.extend(!0,i,t.fileActionSettings.dragSettings),n.kvsortable(i))},_initPreview:function(e){var i,t=this,a=t.initialCaption||"";return t.previewCache.count()?(i=t.previewCache.out(),a=e&&t.initialCaption?t.initialCaption:i.caption,t.$preview.html(i.content),t._setInitThumbAttr(),t._setCaption(a),t._initSortable(),void(w(i.content)||t.$container.removeClass("file-input-new"))):(t._clearPreview(),void(e?t._setCaption(a):t._initCaption()))},_getZoomButton:function(e){var i=this,t=i.previewZoomButtonIcons[e],a=i.previewZoomButtonClasses[e],r=' title="'+(i.previewZoomButtonTitles[e]||"")+'" ',n=r+("close"===e?' data-dismiss="modal" aria-hidden="true"':"");return"fullscreen"!==e&&"borderless"!==e&&"toggleheader"!==e||(n+=' data-toggle="button" aria-pressed="false" autocomplete="off"'),'<button type="button" class="'+a+" btn-"+e+'"'+n+">"+t+"</button>"},_getModalContent:function(){var e=this;return e._getLayoutTemplate("modal").replace(/\{heading}/g,e.msgZoomModalHeading).replace(/\{prev}/g,e._getZoomButton("prev")).replace(/\{next}/g,e._getZoomButton("next")).replace(/\{toggleheader}/g,e._getZoomButton("toggleheader")).replace(/\{fullscreen}/g,e._getZoomButton("fullscreen")).replace(/\{borderless}/g,e._getZoomButton("borderless")).replace(/\{close}/g,e._getZoomButton("close"))},_listenModalEvent:function(e){var i=this,t=i.$modal,a=function(e){return{sourceEvent:e,previewId:t.data("previewId"),modal:t}};t.on(e+".bs.modal",function(r){var n=t.find(".btn-fullscreen"),o=t.find(".btn-borderless");i._raise("filezoom"+e,a(r)),"shown"===e&&(o.removeClass("active").attr("aria-pressed","false"),n.removeClass("active").attr("aria-pressed","false"),t.hasClass("file-zoom-fullscreen")&&(i._maximizeZoomDialog(),F()?n.addClass("active").attr("aria-pressed","true"):o.addClass("active").attr("aria-pressed","true")))})},_initZoom:function(){var i,a=this,r=a._getLayoutTemplate("modalMain"),n="#"+t;a.$modal=e(n),a.$modal&&a.$modal.length||(i=e(document.createElement("div")).html(r).insertAfter(a.$container),a.$modal=e("#"+t).insertBefore(i),i.remove()),a.$modal.html(a._getModalContent()),a._listenModalEvent("show"),a._listenModalEvent("shown"),a._listenModalEvent("hide"),a._listenModalEvent("hidden"),a._listenModalEvent("loaded")},_initZoomButtons:function(){var i,t,r=this,n=r.$modal.data("previewId")||"",o=r.$preview,l=o.find(a).toArray(),s=l.length,d=r.$modal.find(".btn-prev"),c=r.$modal.find(".btn-next");return l.length<2?(d.hide(),void c.hide()):(d.show(),c.show(),void(s&&(i=e(l[0]),t=e(l[s-1]),d.removeAttr("disabled"),c.removeAttr("disabled"),i.length&&i.attr("id")===n&&d.attr("disabled",!0),t.length&&t.attr("id")===n&&c.attr("disabled",!0))))},_maximizeZoomDialog:function(){var i=this,t=i.$modal,a=t.find(".modal-header:visible"),r=t.find(".modal-footer:visible"),n=t.find(".modal-body"),o=e(window).height(),l=0;t.addClass("file-zoom-fullscreen"),a&&a.length&&(o-=a.outerHeight(!0)),r&&r.length&&(o-=r.outerHeight(!0)),n&&n.length&&(l=n.outerHeight(!0)-n.height(),o-=l),t.find(".kv-zoom-body").height(o)},_resizeZoomDialog:function(e){var i=this,t=i.$modal,a=t.find(".btn-fullscreen"),r=t.find(".btn-borderless");if(t.hasClass("file-zoom-fullscreen"))P(!1),e?a.hasClass("active")||(t.removeClass("file-zoom-fullscreen"),i._resizeZoomDialog(!0),r.hasClass("active")&&r.removeClass("active").attr("aria-pressed","false")):a.hasClass("active")?a.removeClass("active").attr("aria-pressed","false"):(t.removeClass("file-zoom-fullscreen"),i.$modal.find(".kv-zoom-body").css("height",i.zoomModalHeight));else{if(!e)return void i._maximizeZoomDialog();P(!0)}t.focus()},_setZoomContent:function(i,t){var a,r,n,o,l,s,d,p,u,f,v=this,g=i.attr("id"),h=v.$modal,w=h.find(".btn-prev"),_=h.find(".btn-next"),b=h.find(".btn-fullscreen"),C=h.find(".btn-borderless"),x=h.find(".btn-toggleheader"),T=v.$preview.find("#zoom-"+g);r=T.attr("data-template")||"generic",a=T.find(".kv-file-content"),n=a.length?a.html():"",u=i.data("caption")||"",f=i.data("size")||"",o=u+" "+f,h.find(".kv-zoom-title").html(o),l=h.find(".kv-zoom-body"),h.removeClass("kv-single-content"),t?(p=l.clone().insertAfter(l),l.html(n).hide(),p.fadeOut("fast",function(){l.fadeIn("fast"),p.remove()})):l.html(n),d=v.previewZoomSettings[r],d&&(s=l.find(".kv-preview-data"),m(s,"file-zoom-detail"),e.each(d,function(e,i){s.css(e,i),(s.attr("width")&&"width"===e||s.attr("height")&&"height"===e)&&s.removeAttr(e)})),h.data("previewId",g),c(w,"click",function(){v._zoomSlideShow("prev",g)}),c(_,"click",function(){v._zoomSlideShow("next",g)}),c(b,"click",function(){v._resizeZoomDialog(!0)}),c(C,"click",function(){v._resizeZoomDialog(!1)}),c(x,"click",function(){var e,i=h.find(".modal-header"),t=h.find(".modal-body .floating-buttons"),a=i.find(".kv-zoom-actions"),r=function(e){var t=v.$modal.find(".kv-zoom-body"),a=v.zoomModalHeight;h.hasClass("file-zoom-fullscreen")&&(a=t.outerHeight(!0),e||(a-=i.outerHeight(!0))),t.css("height",e?a+e:a)};i.is(":visible")?(e=i.outerHeight(!0),i.slideUp("slow",function(){a.find(".btn").appendTo(t),r(e)})):(t.find(".btn").appendTo(a),i.slideDown("slow",function(){r()})),h.focus()}),c(h,"keydown",function(e){var i=e.which||e.keyCode;37!==i||w.attr("disabled")||v._zoomSlideShow("prev",g),39!==i||_.attr("disabled")||v._zoomSlideShow("next",g)})},_zoomPreview:function(i){var t,r=this,n=e("body"),o=r.$modal;if(!i.length)throw"Cannot zoom to detailed preview!";n.length&&o.appendTo(n),o.html(r._getModalContent()),t=i.closest(a),r._setZoomContent(t),o.modal("show"),r._initZoomButtons()},_zoomSlideShow:function(i,t){var r,n,o,l=this,s=l.$modal.find(".kv-zoom-actions .btn-"+i),d=l.$preview.find(a).toArray(),c=d.length;if(!s.attr("disabled")){for(n=0;c>n;n++)if(e(d[n]).attr("id")===t){o="prev"===i?n-1:n+1;break}0>o||o>=c||!d[o]||(r=e(d[o]),r.length&&l._setZoomContent(r,!0),l._initZoomButtons(),l._raise("filezoom"+i,{previewId:t,modal:l.$modal}))}},_initZoomButton:function(){var i=this;i.$preview.find(".kv-file-zoom").each(function(){var t=e(this);c(t,"click",function(){i._zoomPreview(t)})})},_initPreviewActions:function(){var i=this,t=i.$preview,r=i.deleteExtraData||{},n=a+" .kv-file-remove",o=function(){var e=i.isUploadable?i.previewCache.count():i.$element.get(0).files.length;0!==t.find(n).length||e||(i.reset(),i.initialCaption="")};i._initZoomButton(),t.find(n).each(function(){var n=e(this),l=n.data("url")||i.deleteUrl,s=n.data("key");if(!w(l)&&void 0!==s){var d,p,u,f,v=n.closest(a),g=i.previewCache.data,h=v.data("fileindex");h=parseInt(h.replace("init_","")),u=w(g.config)&&w(g.config[h])?null:g.config[h],
- f=w(u)||w(u.extra)?r:u.extra,"function"==typeof f&&(f=f()),p={id:n.attr("id"),key:s,extra:f},d=e.extend(!0,{},{url:l,type:"POST",dataType:"json",data:e.extend(!0,{},{key:s},f),beforeSend:function(e){i.ajaxAborted=!1,i._raise("filepredelete",[s,e,f]),i.ajaxAborted?e.abort():(m(v,"file-uploading"),m(n,"disabled"))},success:function(e,a,r){var l,d;return w(e)||w(e.error)?(i.previewCache.init(),h=parseInt(v.data("fileindex").replace("init_","")),i.previewCache.unset(h),l=i.previewCache.count(),d=l>0?i._getMsgSelected(l):"",i._raise("filedeleted",[s,r,f]),i._setCaption(d),v.removeClass("file-uploading").addClass("file-deleted"),void v.fadeOut("slow",function(){S(t.find("#zoom-"+v.attr("id"))),i._clearObjects(v),v.remove(),o(),l||0!==i.getFileStack().length||(i._setCaption(""),i.reset())})):(p.jqXHR=r,p.response=e,i._showError(e.error,p,"filedeleteerror"),v.removeClass("file-uploading"),n.removeClass("disabled"),void o())},error:function(e,t,a){var r=i._parseError(i.ajaxOperations.deleteThumb,e,a);p.jqXHR=e,p.response={},i._showError(r,p,"filedeleteerror"),v.removeClass("file-uploading"),o()}},i.ajaxDeleteSettings),c(n,"click",function(){return i._validateMinCount()?void e.ajax(d):!1})}})},_clearObjects:function(i){i.find("video audio").each(function(){this.pause(),e(this).remove()}),i.find("img object div").each(function(){e(this).remove()})},_clearFileInput:function(){var i,t,a,r=this,n=r.$element;r.fileInputCleared=!0,w(n.val())||(r.isIE9||r.isIE10?(i=n.closest("form"),t=e(document.createElement("form")),a=e(document.createElement("div")),n.before(a),i.length?i.after(t):a.after(t),t.append(n).trigger("reset"),a.before(n).remove(),t.remove()):n.val(""))},_resetUpload:function(){var e=this;e.uploadCache={content:[],config:[],tags:[],append:!0},e.uploadCount=0,e.uploadStatus={},e.uploadLog=[],e.uploadAsyncCount=0,e.loadedImages=[],e.totalImagesCount=0,e.$btnUpload.removeAttr("disabled"),e._setProgress(0),m(e.$progress,"hide"),e._resetErrors(!1),e.ajaxAborted=!1,e.ajaxRequests=[],e._resetCanvas(),e.cacheInitialPreview={}},_resetCanvas:function(){var e=this;e.canvas&&e.imageCanvasContext&&e.imageCanvasContext.clearRect(0,0,e.canvas.width,e.canvas.height)},_hasInitialPreview:function(){var e=this;return!e.overwriteInitial&&e.previewCache.count()},_resetPreview:function(){var e,i,t=this;t.previewCache.count()?(e=t.previewCache.out(),t.$preview.html(e.content),t._setInitThumbAttr(),i=t.initialCaption?t.initialCaption:e.caption,t._setCaption(i)):(t._clearPreview(),t._initCaption()),t.showPreview&&(t._initZoom(),t._initSortable())},_clearDefaultPreview:function(){var e=this;e.$preview.find(".file-default-preview").remove()},_validateDefaultPreview:function(){var e=this;e.showPreview&&!w(e.defaultPreviewContent)&&(e.$preview.html('<div class="file-default-preview">'+e.defaultPreviewContent+"</div>"),e.$container.removeClass("file-input-new"),e._initClickable())},_resetPreviewThumbs:function(e){var i,t=this;return e?(t._clearPreview(),void t.clearStack()):void(t._hasInitialPreview()?(i=t.previewCache.out(),t.$preview.html(i.content),t._setInitThumbAttr(),t._setCaption(i.caption),t._initPreviewActions()):t._clearPreview())},_getLayoutTemplate:function(e){var i=this,t=i.layoutTemplates[e];return w(i.customLayoutTags)?t:T(t,i.customLayoutTags)},_getPreviewTemplate:function(e){var i=this,t=i.previewTemplates[e];return w(i.customPreviewTags)?t:T(t,i.customPreviewTags)},_getOutData:function(e,i,t){var a=this;return e=e||{},i=i||{},t=t||a.filestack.slice(0)||{},{form:a.formdata,files:t,filenames:a.filenames,filescount:a.getFilesCount(),extra:a._getExtraData(),response:i,reader:a.reader,jqXHR:e}},_getMsgSelected:function(e){var i=this,t=1===e?i.fileSingle:i.filePlural;return e>0?i.msgSelected.replace("{n}",e).replace("{files}",t):i.msgNoFilesSelected},_getThumbs:function(e){return e=e||"",this.$preview.find(a+":not(.file-preview-initial)"+e)},_getExtraData:function(e,i){var t=this,a=t.uploadExtraData;return"function"==typeof t.uploadExtraData&&(a=t.uploadExtraData(e,i)),a},_initXhr:function(e,i,t){var a=this;return e.upload&&e.upload.addEventListener("progress",function(e){var r=0,n=e.total,o=e.loaded||e.position;e.lengthComputable&&(r=Math.floor(o/n*100)),i?a._setAsyncUploadStatus(i,r,t):a._setProgress(r)},!1),e},_ajaxSubmit:function(i,t,a,r,n,o){var l,s=this;s._raise("filepreajax",[n,o]),s._uploadExtra(n,o),l=e.extend(!0,{},{xhr:function(){var i=e.ajaxSettings.xhr();return s._initXhr(i,n,s.getFileStack().length)},url:s.uploadUrl,type:"POST",dataType:"json",data:s.formdata,cache:!1,processData:!1,contentType:!1,beforeSend:i,success:t,complete:a,error:r},s.ajaxSettings),s.ajaxRequests.push(e.ajax(l))},_initUploadSuccess:function(i,t,a){var r,n,o,l,s,d,c,p,u,f=this,v=function(e,i){f[e]instanceof Array||(f[e]=[]),i&&i.length&&(f[e]=f[e].concat(i))};f.showPreview&&"object"==typeof i&&!e.isEmptyObject(i)&&void 0!==i.initialPreview&&i.initialPreview.length>0&&(f.hasInitData=!0,d=i.initialPreview||[],c=i.initialPreviewConfig||[],p=i.initialPreviewThumbTags||[],r=!(void 0!==i.append&&!i.append),d.length>0&&!_(d)&&(d=d.split(f.initialPreviewDelimiter)),f.overwriteInitial=!1,v("initialPreview",d),v("initialPreviewConfig",c),v("initialPreviewThumbTags",p),void 0!==t?a?(u=t.attr("data-fileindex"),f.uploadCache.content[u]=d[0],f.uploadCache.config[u]=c[0]||[],f.uploadCache.tags[u]=p[0]||[],f.uploadCache.append=r):(o=f.previewCache.add(d,c[0],p[0],r),n=f.previewCache.get(o,!1),l=e(document.createElement("div")).html(n).hide().insertAfter(t),s=l.find(".kv-zoom-cache"),s&&s.length&&s.insertAfter(t),t.fadeOut("slow",function(){var e=l.find(".file-preview-frame");e&&e.length&&e.insertBefore(t).fadeIn("slow").css("display:inline-block"),f._initPreviewActions(),f._clearFileInput(),S(f.$preview.find("#zoom-"+t.attr("id"))),t.remove(),l.remove(),f._initSortable()})):(f.previewCache.set(d,c,p,r),f._initPreview(),f._initPreviewActions()))},_initSuccessThumbs:function(){var i=this;i.showPreview&&i._getThumbs(a+" .file-preview-success").each(function(){var t=e(this),r=i.$preview,n=t.find(".kv-file-remove");n.removeAttr("disabled"),c(n,"click",function(){var e=t.attr("id"),n=i._raise("filesuccessremove",[e,t.data("fileindex")]);y(t),n!==!1&&t.fadeOut("slow",function(){S(r.find("#zoom-"+e)),t.remove(),r.find(a).length||i.reset()})})})},_checkAsyncComplete:function(){var i,t,a=this;for(t=0;t<a.filestack.length;t++)if(a.filestack[t]&&(i=a.previewInitId+"-"+t,-1===e.inArray(i,a.uploadLog)))return!1;return a.uploadAsyncCount===a.uploadLog.length},_uploadExtra:function(i,t){var a=this,r=a._getExtraData(i,t);0!==r.length&&e.each(r,function(e,i){a.formdata.append(e,i)})},_uploadSingle:function(i,t,a){var n,o,l,s,d,c,p,u,f,v,g=this,h=g.getFileStack().length,_=new FormData,b=g.previewInitId+"-"+i,C=g.filestack.length>0||!e.isEmptyObject(g.uploadExtraData),x={id:b,index:i};g.formdata=_,g.showPreview&&(o=e("#"+b+":not(.file-preview-initial)"),s=o.find(".kv-file-upload"),d=o.find(".kv-file-remove"),e("#"+b).find(".file-thumb-progress").removeClass("hide")),0===h||!C||s&&s.hasClass("disabled")||g._abort(x)||(v=function(e,i){g.updateStack(e,void 0),g.uploadLog.push(i),g._checkAsyncComplete()&&(g.fileBatchCompleted=!0)},l=function(){var e,i,t,a,n=g.uploadCache,o=g.cacheInitialPreview;g.fileBatchCompleted&&setTimeout(function(){if(g.showPreview){if(g.previewCache.set(n.content,n.config,n.tags,n.append),a=o&&o.content?o.content.length:0){for(i=0;i<n.content.length;i++)t=i+a,o.content[t]=n.content[i],o.config.length&&(o.config[t]=n.config[i]),o.tags.length&&(o.tags[t]=n.tags[i]);g.initialPreview=o.content,g.initialPreviewConfig=o.config,g.initialPreviewThumbTags=o.tags}else g.initialPreview=n.content,g.initialPreviewConfig=n.config,g.initialPreviewThumbTags=n.tags;g.cacheInitialPreview={},g.hasInitData&&(g._initPreview(),g._initPreviewActions())}g.unlock(),g._clearFileInput(),e=g.$preview.find(".file-preview-initial"),g.uploadAsync&&e.length&&(m(e,r),g._initSortable()),g._raise("filebatchuploadcomplete",[g.filestack,g._getExtraData()]),g.uploadCount=0,g.uploadStatus={},g.uploadLog=[],g._setProgress(101)},100)},c=function(t){n=g._getOutData(t),g.fileBatchCompleted=!1,g.showPreview&&(o.hasClass("file-preview-success")||(g._setThumbStatus(o,"Loading"),m(o,"file-uploading")),s.attr("disabled",!0),d.attr("disabled",!0)),a||g.lock(),g._raise("filepreupload",[n,b,i]),e.extend(!0,x,n),g._abort(x)&&(t.abort(),g._setProgressCancelled())},p=function(t,r,l){var d=g.showPreview&&o.attr("id")?o.attr("id"):b;n=g._getOutData(l,t),e.extend(!0,x,n),setTimeout(function(){w(t)||w(t.error)?(g.showPreview&&(g._setThumbStatus(o,"Success"),s.hide(),g._initUploadSuccess(t,o,a)),g._raise("fileuploaded",[n,d,i]),a?v(i,d):g.updateStack(i,void 0)):(g._showUploadError(t.error,x),g._setPreviewError(o,i),a&&v(i,d))},100)},u=function(){setTimeout(function(){g.showPreview&&(s.removeAttr("disabled"),d.removeAttr("disabled"),o.removeClass("file-uploading"),g._setProgress(101,e("#"+b).find(".file-thumb-progress"))),a?l():(g.unlock(!1),g._clearFileInput()),g._initSuccessThumbs()},100)},f=function(r,n,l){var s=g.ajaxOperations.uploadThumb,d=g._parseError(s,r,l,a?t[i].name:null);setTimeout(function(){a&&v(i,b),g.uploadStatus[b]=100,g._setPreviewError(o,i),e.extend(!0,x,g._getOutData(r)),g._showUploadError(d,x)},100)},_.append(g.uploadFileAttr,t[i],g.filenames[i]),_.append("file_id",i),g._ajaxSubmit(c,p,u,f,b,i))},_uploadBatch:function(){var i,t,a,r,n,o=this,l=o.filestack,s=l.length,d={},c=o.filestack.length>0||!e.isEmptyObject(o.uploadExtraData);o.formdata=new FormData,0!==s&&c&&!o._abort(d)&&(n=function(){e.each(l,function(e){o.updateStack(e,void 0)}),o._clearFileInput()},i=function(i){o.lock();var t=o._getOutData(i);o.showPreview&&o._getThumbs().each(function(){var i=e(this),t=i.find(".kv-file-upload"),a=i.find(".kv-file-remove");i.hasClass("file-preview-success")||(o._setThumbStatus(i,"Loading"),m(i,"file-uploading")),t.attr("disabled",!0),a.attr("disabled",!0)}),o._raise("filebatchpreupload",[t]),o._abort(t)&&(i.abort(),o._setProgressCancelled())},t=function(i,t,a){var r=o._getOutData(a,i),l=o._getThumbs(":not(.file-preview-error)"),s=0,d=w(i)||w(i.errorkeys)?[]:i.errorkeys;w(i)||w(i.error)?(o._raise("filebatchuploadsuccess",[r]),n(),o.showPreview?(l.each(function(){var i=e(this),t=i.find(".kv-file-upload");i.find(".kv-file-upload").hide(),o._setThumbStatus(i,"Success"),i.removeClass("file-uploading"),t.removeAttr("disabled")}),o._initUploadSuccess(i)):o.reset()):(o.showPreview&&(l.each(function(){var i=e(this),t=i.find(".kv-file-remove"),a=i.find(".kv-file-upload");return i.removeClass("file-uploading"),a.removeAttr("disabled"),t.removeAttr("disabled"),0===d.length?void o._setPreviewError(i):(-1!==e.inArray(s,d)?o._setPreviewError(i):(i.find(".kv-file-upload").hide(),o._setThumbStatus(i,"Success"),o.updateStack(s,void 0)),void s++)}),o._initUploadSuccess(i)),o._showUploadError(i.error,r,"filebatchuploaderror"))},r=function(){o._setProgress(101),o.unlock(),o._initSuccessThumbs(),o._clearFileInput(),o._raise("filebatchuploadcomplete",[o.filestack,o._getExtraData()])},a=function(i,t,a){var r=o._getOutData(i),n=o.ajaxOperations.uploadBatch,l=o._parseError(n,i,a);o._showUploadError(l,r,"filebatchuploaderror"),o.uploadFileCount=s-1,o.showPreview&&(o._getThumbs().each(function(){var i=e(this),t=i.attr("data-fileindex");i.removeClass("file-uploading"),void 0!==o.filestack[t]&&o._setPreviewError(i)}),o._getThumbs().removeClass("file-uploading"),o._getThumbs(" .kv-file-upload").removeAttr("disabled"),o._getThumbs(" .kv-file-delete").removeAttr("disabled"))},e.each(l,function(e,i){w(l[e])||o.formdata.append(o.uploadFileAttr,i,o.filenames[e])}),o._ajaxSubmit(i,t,r,a))},_uploadExtraOnly:function(){var e,i,t,a,r=this,n={};r.formdata=new FormData,r._abort(n)||(e=function(e){r.lock();var i=r._getOutData(e);r._raise("filebatchpreupload",[i]),r._setProgress(50),n.data=i,n.xhr=e,r._abort(n)&&(e.abort(),r._setProgressCancelled())},i=function(e,i,t){var a=r._getOutData(t,e);w(e)||w(e.error)?(r._raise("filebatchuploadsuccess",[a]),r._clearFileInput(),r._initUploadSuccess(e)):r._showUploadError(e.error,a,"filebatchuploaderror")},t=function(){r._setProgress(101),r.unlock(),r._clearFileInput(),r._raise("filebatchuploadcomplete",[r.filestack,r._getExtraData()])},a=function(e,i,t){var a=r._getOutData(e),o=r.ajaxOperations.uploadExtra,l=r._parseError(o,e,t);n.data=a,r._showUploadError(l,a,"filebatchuploaderror")},r._ajaxSubmit(e,i,t,a))},_initFileActions:function(){var i=this,t=i.$preview;i.showPreview&&(i._initZoomButton(),t.find(a+" .kv-file-remove").each(function(){var r,n,o,l,s=e(this),d=s.closest(a),p=d.attr("id"),u=d.attr("data-fileindex");c(s,"click",function(){return l=i._raise("filepreremove",[p,u]),l!==!1&&i._validateMinCount()?(r=d.hasClass("file-preview-error"),y(d),void d.fadeOut("slow",function(){S(t.find("#zoom-"+p)),i.updateStack(u,void 0),i._clearObjects(d),d.remove(),p&&r&&i.$errorContainer.find('li[data-file-id="'+p+'"]').fadeOut("fast",function(){e(this).remove(),i._errorsExist()||i._resetErrors()}),i._clearFileInput();var l=i.getFileStack(!0),s=i.previewCache.count(),c=l.length,f=i.showPreview&&t.find(a).length;0!==c||0!==s||f?(n=s+c,o=n>1?i._getMsgSelected(n):l[0]?i._getFileNames()[0]:"",i._setCaption(o)):i.reset(),i._raise("fileremoved",[p,u])})):!1})}),i.$preview.find(a+" .kv-file-upload").each(function(){var t=e(this);c(t,"click",function(){var e=t.closest(a),r=e.attr("data-fileindex");e.hasClass("file-preview-error")||i._uploadSingle(r,i.filestack,!1)})}))},_hideFileIcon:function(){this.overwriteInitial&&this.$captionContainer.find(".kv-caption-icon").hide()},_showFileIcon:function(){this.$captionContainer.find(".kv-caption-icon").show()},_getSize:function(i){var t,a,r,n=this,o=parseFloat(i),l=n.fileSizeGetter;return e.isNumeric(i)&&e.isNumeric(o)?("function"==typeof l?r=l(o):(t=Math.floor(Math.log(o)/Math.log(1024)),a=["B","KB","MB","GB","TB","PB","EB","ZB","YB"],r=1*(o/Math.pow(1024,t)).toFixed(2)+" "+a[t]),n._getLayoutTemplate("size").replace("{sizeText}",r)):""},_generatePreviewTemplate:function(e,i,t,a,n,o,l,s,d,c,p){var u,f=this,v=f.slug(t),g="",m=f.previewSettings[e],h=d||f._renderFileFooter(v,l,m.width,o),w=f._getPreviewIcon(t),_=w&&f.preferIconicPreview,b=w&&f.preferIconicZoomPreview,C=function(i,o,l,d){var u=l?"zoom-"+n:n,g=f._getPreviewTemplate(i),w=(s||"")+" "+d;return f.frameClass&&(w=f.frameClass+" "+w),l&&(w=w.replace(" "+r,"")),g=f._parseFilePreviewIcon(g,t),"text"===i&&(o=x(o)),g.replace(/\{previewId}/g,u).replace(/\{caption}/g,v).replace(/\{frameClass}/g,w).replace(/\{type}/g,a).replace(/\{fileindex}/g,c).replace(/\{width}/g,m.width).replace(/\{height}/g,m.height).replace(/\{footer}/g,h).replace(/\{data}/g,o).replace(/\{template}/g,p||e)};return c=c||n.slice(n.lastIndexOf("-")+1),f.fileActionSettings.showZoom&&(g=C(b?"other":e,i,!0,"kv-zoom-thumb")),g="\n"+f._getLayoutTemplate("zoomCache").replace("{zoomContent}",g),u=C(_?"other":e,i,!1,"kv-preview-thumb"),u+g},_previewDefault:function(i,t,a){var r=this,n=r.$preview;if(r.showPreview){var o,l=i?i.name:"",d=i?i.type:"",c=i.size,p=r.slug(l),u=a===!0&&!r.isUploadable,f=s.createObjectURL(i);r._clearDefaultPreview(),o=r._generatePreviewTemplate("other",f,l,d,t,u,c),n.append("\n"+o),r._setThumbAttr(t,p,c),a===!0&&r.isUploadable&&r._setThumbStatus(e("#"+t),"Error")}},_previewFile:function(e,i,t,a,r){if(this.showPreview){var n,o=this,l=o._parseFileType(i),s=i?i.name:"",d=o.slug(s),c=o.allowedPreviewTypes,p=o.allowedPreviewMimeTypes,u=o.$preview,f=c&&c.indexOf(l)>=0,v=i.size,g="text"===l||"html"===l||"image"===l?t.target.result:r,m=p&&-1!==p.indexOf(i.type);"html"===l&&o.purifyHtml&&window.DOMPurify&&(g=window.DOMPurify.sanitize(g)),f||m?(n=o._generatePreviewTemplate(l,g,s,i.type,a,!1,v),o._clearDefaultPreview(),u.append("\n"+n),o._validateImage(a,d,i.type)):o._previewDefault(i,a),o._setThumbAttr(a,d,v),o._initSortable()}},_setThumbAttr:function(i,t,a){var r=this,n=e("#"+i);n.length&&(a=a&&a>0?r._getSize(a):"",n.data({caption:t,size:a}))},_setInitThumbAttr:function(){var e,i,t,a,r=this,n=r.previewCache.data,o=r.previewCache.count(!0);if(0!==o)for(var l=0;o>l;l++)e=n.config[l],a=n.initId+"-init_"+l,i=b("caption",e,b("filename",e)),t=b("size",e),r._setThumbAttr(a,i,t)},_slugDefault:function(e){return w(e)?"":String(e).replace(/[\-\[\]\/\{}:;#%=\(\)\*\+\?\\\^\$\|<>&"']/g,"_")},_readFiles:function(i){this.reader=new FileReader;var t,a=this,r=a.$element,n=a.$preview,o=a.reader,l=a.$previewContainer,c=a.$previewStatus,p=a.msgLoading,f=a.msgProgress,v=a.previewInitId,g=i.length,m=a.fileTypeSettings,h=a.filestack.length,b=a.maxFilePreviewSize&&parseFloat(a.maxFilePreviewSize),C=n.length&&(!b||isNaN(b)),T=function(r,n,o,l){var s=e.extend(!0,{},a._getOutData({},{},i),{id:o,index:l}),d={id:o,index:l,file:n,files:i};return a._previewDefault(n,o,!0),a.isUploadable&&(a.addToStack(void 0),setTimeout(function(){t(l+1)},100)),a._initFileActions(),a.removeFromPreviewOnError&&e("#"+o).remove(),a.isUploadable?a._showUploadError(r,s):a._showError(r,d)};a.loadedImages=[],a.totalImagesCount=0,e.each(i,function(e,i){var t=a.fileTypeSettings.image;t&&t(i.type)&&a.totalImagesCount++}),t=function(e){if(w(r.attr("multiple"))&&(g=1),e>=g)return a.isUploadable&&a.filestack.length>0?a._raise("filebatchselected",[a.getFileStack()]):a._raise("filebatchselected",[i]),l.removeClass("file-thumb-loading"),void c.html("");var y,k,F,P,E,S,I,$,z,D,A=h+e,U=v+"-"+A,j=i[e],L=j.name?a.slug(j.name):"",Z=(j.size||0)/1e3,B="",O=s.createObjectURL(j),R=0,M=a.allowedFileTypes,N="",H=M?M.length:0,q=a.allowedFileExtensions,W=w(q)?"":q.join(", ");if(H>0)for(E=0;H>E;E++)z=M[E],D=a.msgFileTypes[z]||z,N+=0===E?D:", "+D;if(L===!1)return void t(e+1);if(0===L.length)return S=a.msgInvalidFileName.replace("{name}",x(j.name)),void(a.isError=T(S,j,U,e));if(w(q)||(B=new RegExp("\\.("+q.join("|")+")$","i")),F=Z.toFixed(2),a.maxFileSize>0&&Z>a.maxFileSize)return S=a.msgSizeTooLarge.replace("{name}",L).replace("{size}",F).replace("{maxSize}",a.maxFileSize),void(a.isError=T(S,j,U,e));if(null!==a.minFileSize&&Z<=u(a.minFileSize))return S=a.msgSizeTooSmall.replace("{name}",L).replace("{size}",F).replace("{minSize}",a.minFileSize),void(a.isError=T(S,j,U,e));if(!w(M)&&_(M)){for(E=0;E<M.length;E+=1)I=M[E],P=m[I],$=void 0!==P&&P(j.type,L),R+=w($)?0:$.length;if(0===R)return S=a.msgInvalidFileType.replace("{name}",L).replace("{types}",N),void(a.isError=T(S,j,U,e))}return 0!==R||w(q)||!_(q)||w(B)||($=d(L,B),R+=w($)?0:$.length,0!==R)?a.showPreview?!C&&Z>b?(a.addToStack(j),l.addClass("file-thumb-loading"),a._previewDefault(j,U),a._initFileActions(),a._updateFileDetails(g),void t(e+1)):(n.length&&void 0!==FileReader?(c.html(p.replace("{index}",e+1).replace("{files}",g)),l.addClass("file-thumb-loading"),o.onerror=function(e){a._errorHandler(e,L)},o.onload=function(i){a._previewFile(e,j,i,U,O),a._initFileActions()},o.onloadend=function(){S=f.replace("{index}",e+1).replace("{files}",g).replace("{percent}",50).replace("{name}",L),setTimeout(function(){c.html(S),a._updateFileDetails(g),t(e+1)},100),a._raise("fileloaded",[j,U,e,o])},o.onprogress=function(i){if(i.lengthComputable){var t=i.loaded/i.total*100,a=Math.ceil(t);S=f.replace("{index}",e+1).replace("{files}",g).replace("{percent}",a).replace("{name}",L),setTimeout(function(){c.html(S)},100)}},y=m.text,k=m.image,y(j.type,L)?o.readAsText(j,a.textEncoding):k(j.type,L)?o.readAsDataURL(j):o.readAsArrayBuffer(j)):(a._previewDefault(j,U),setTimeout(function(){t(e+1),a._updateFileDetails(g)},100),a._raise("fileloaded",[j,U,e,o])),void a.addToStack(j)):(a.addToStack(j),setTimeout(function(){t(e+1)},100),void a._raise("fileloaded",[j,U,e,o])):(S=a.msgInvalidFileExtension.replace("{name}",L).replace("{extensions}",W),void(a.isError=T(S,j,U,e)))},t(0),a._updateFileDetails(g,!1)},_updateFileDetails:function(e){var i=this,t=i.$element,a=i.getFileStack(),r=p(9)&&k(t.val())||t[0].files[0]&&t[0].files[0].name||a.length&&a[0].name||"",n=i.slug(r),o=i.isUploadable?a.length:e,l=i.previewCache.count()+o,s=o>1?i._getMsgSelected(l):n;i.isError?(i.$previewContainer.removeClass("file-thumb-loading"),i.$previewStatus.html(""),i.$captionContainer.find(".kv-caption-icon").hide()):i._showFileIcon(),i._setCaption(s,i.isError),i.$container.removeClass("file-input-new file-input-ajax-new"),1===arguments.length&&i._raise("fileselect",[e,n]),i.previewCache.count()&&i._initPreviewActions()},_setThumbStatus:function(e,i){var t=this;if(t.showPreview){var a="indicator"+i,r=a+"Title",n="file-preview-"+i.toLowerCase(),o=e.find(".file-upload-indicator"),l=t.fileActionSettings;e.removeClass("file-preview-success file-preview-error file-preview-loading"),"Error"===i&&e.find(".kv-file-upload").attr("disabled",!0),"Success"===i&&(e.find(".file-drag-handle").remove(),o.css("margin-left",0)),o.html(l[a]),o.attr("title",l[r]),e.addClass(n)}},_setProgressCancelled:function(){var e=this;e._setProgress(101,e.$progress,e.msgCancelled)},_setProgress:function(e,i,t){var a=this,r=Math.min(e,100),n=100>r?a.progressTemplate:t?a.progressErrorTemplate:100>=e?a.progressTemplate:a.progressCompleteTemplate,o=a.progressUploadThreshold;if(i=i||a.$progress,!w(n)){if(o&&r>o&&100>=e){var l=n.replace("{percent}",o).replace("{percent}",o).replace("{percent}%",a.msgUploadThreshold);i.html(l)}else i.html(n.replace(/\{percent}/g,r));t&&i.find('[role="progressbar"]').html(t)}},_setFileDropZoneTitle:function(){var e,i=this,t=i.$container.find(".file-drop-zone"),r=i.dropZoneTitle;i.isClickable&&(e=w(i.$element.attr("multiple"))?i.fileSingle:i.filePlural,r+=i.dropZoneClickTitle.replace("{files}",e)),t.find("."+i.dropZoneTitleClass).remove(),i.isUploadable&&i.showPreview&&0!==t.length&&!(i.getFileStack().length>0)&&i.dropZoneEnabled&&(0===t.find(a).length&&w(i.defaultPreviewContent)&&t.prepend('<div class="'+i.dropZoneTitleClass+'">'+r+"</div>"),i.$container.removeClass("file-input-new"),m(i.$container,"file-input-ajax-new"))},_setAsyncUploadStatus:function(i,t,a){var r=this,n=0;r._setProgress(t,e("#"+i).find(".file-thumb-progress")),r.uploadStatus[i]=t,e.each(r.uploadStatus,function(e,i){n+=i}),r._setProgress(Math.floor(n/a))},_validateMinCount:function(){var e=this,i=e.isUploadable?e.getFileStack().length:e.$element.get(0).files.length;return e.validateInitialCount&&e.minFileCount>0&&e._getFileCount(i-1)<e.minFileCount?(e._noFilesError({}),!1):!0},_getFileCount:function(e){var i=this,t=0;return i.validateInitialCount&&!i.overwriteInitial&&(t=i.previewCache.count(),e+=t),e},_getFileName:function(e){return e&&e.name?this.slug(e.name):void 0},_getFileNames:function(e){var i=this;return i.filenames.filter(function(i){return e?void 0!==i:void 0!==i&&null!==i})},_setPreviewError:function(e,i,t){var a=this;void 0!==i&&a.updateStack(i,t),a.removeFromPreviewOnError?e.remove():a._setThumbStatus(e,"Error")},_checkDimensions:function(e,i,t,a,r,n,o){var l,s,d,c,p=this,u="Small"===i?"min":"max",f=p[u+"Image"+n];!w(f)&&t.length&&(d=t[0],s="Width"===n?d.naturalWidth||d.width:d.naturalHeight||d.height,c="Small"===i?s>=f:f>=s,c||(l=p["msgImage"+n+i].replace("{name}",r).replace("{size}",f),p._showUploadError(l,o),p._setPreviewError(a,e,null)))},_validateImage:function(e,i,t){var a,r,n,o=this,l=o.$preview,s=l.find("#"+e),d=s.attr("data-fileindex"),p=s.find("img");i=i||"Untitled",p.length&&c(p,"load",function(){r=s.width(),n=l.width(),r>n&&(p.css("width","100%"),s.css("width","97%")),a={ind:d,id:e},o._checkDimensions(d,"Small",p,s,i,"Width",a),o._checkDimensions(d,"Small",p,s,i,"Height",a),o.resizeImage||(o._checkDimensions(d,"Large",p,s,i,"Width",a),o._checkDimensions(d,"Large",p,s,i,"Height",a)),o._raise("fileimageloaded",[e]),o.loadedImages.push({ind:d,img:p,thumb:s,pid:e,typ:t}),o._validateAllImages()})},_validateAllImages:function(){var e,i,t,a,r,n,o=this,l={val:0};if(o.loadedImages.length===o.totalImagesCount&&(o._raise("fileimagesloaded"),o.resizeImage))for(n=o.isUploadable?o._showUploadError:o._showError,e=0;e<o.loadedImages.length;e++)i=o.loadedImages[e],t=i.img,a=i.pid,r=i.ind,o._getResizedImage(t[0],i.typ,a,r,l,o.loadedImages.length)||(n(o.msgImageResizeError,{id:a,index:r},"fileimageresizeerror"),o._setPreviewError(i.thumb,r))},_getResizedImage:function(e,i,t,a,r,n){var o,l,s=this,d=e.naturalWidth,c=e.naturalHeight,p=1,u=s.maxImageWidth||d,f=s.maxImageHeight||c,v=!(!d||!c),g=s.imageCanvas,m=s.imageCanvasContext;if(!s.filestack[a]||!v||u>=d&&f>=c)return v&&s.filestack[a]&&s._raise("fileimageresized",[t,a]),r.val++,r.val===n&&s._raise("fileimagesresized"),v;i=i||s.resizeDefaultImageType,o=d>u,l=c>f,p="width"===s.resizePreference?o?u/d:l?f/c:1:l?f/c:o?u/d:1,s._resetCanvas(),d*=p,c*=p,g.width=d,g.height=c;try{return m.drawImage(e,0,0,d,c),g.toBlob(function(e){s.filestack[a]=e,s._raise("fileimageresized",[t,a]),r.val++,r.val===n&&s._raise("fileimagesresized",[void 0,void 0])},i,s.resizeQuality),!0}catch(h){return r.val++,r.val===n&&s._raise("fileimagesresized",[void 0,void 0]),!1}},_initBrowse:function(e){var i=this;i.showBrowse?(i.$btnFile=e.find(".btn-file"),i.$btnFile.append(i.$element)):i.$element.hide()},_initCaption:function(){var e=this,i=e.initialCaption||"";return e.overwriteInitial||w(i)?(e.$caption.html(""),!1):(e._setCaption(i),!0)},_setCaption:function(i,t){var a,r,n,o,l=this,s=l.getFileStack();if(l.$caption.length){if(t)a=e("<div>"+l.msgValidationError+"</div>").text(),n=s.length,o=n?1===n&&s[0]?l._getFileNames()[0]:l._getMsgSelected(n):l._getMsgSelected(l.msgNo),r='<span class="'+l.msgValidationErrorClass+'">'+l.msgValidationErrorIcon+(w(i)?o:i)+"</span>";else{if(w(i))return;a=e("<div>"+i+"</div>").text(),r=l._getLayoutTemplate("fileIcon")+a}l.$caption.html(r),l.$caption.attr("title",a),l.$captionContainer.find(".file-caption-ellipsis").attr("title",a)}},_createContainer:function(){var i=this,t=e(document.createElement("div")).attr({"class":"file-input file-input-new"}).html(i._renderMain());return i.$element.before(t),i._initBrowse(t),i.theme&&t.addClass("theme-"+i.theme),t},_refreshContainer:function(){var e=this,i=e.$container;i.before(e.$element),i.html(e._renderMain()),e._initBrowse(i)},_renderMain:function(){var e=this,i=e.isUploadable&&e.dropZoneEnabled?" file-drop-zone":"file-drop-disabled",t=e.showClose?e._getLayoutTemplate("close"):"",a=e.showPreview?e._getLayoutTemplate("preview").replace(/\{class}/g,e.previewClass).replace(/\{dropClass}/g,i):"",r=e.isDisabled?e.captionClass+" file-caption-disabled":e.captionClass,n=e.captionTemplate.replace(/\{class}/g,r+" kv-fileinput-caption");return e.mainTemplate.replace(/\{class}/g,e.mainClass+(!e.showBrowse&&e.showCaption?" no-browse":"")).replace(/\{preview}/g,a).replace(/\{close}/g,t).replace(/\{caption}/g,n).replace(/\{upload}/g,e._renderButton("upload")).replace(/\{remove}/g,e._renderButton("remove")).replace(/\{cancel}/g,e._renderButton("cancel")).replace(/\{browse}/g,e._renderButton("browse"))},_renderButton:function(e){var i=this,t=i._getLayoutTemplate("btnDefault"),a=i[e+"Class"],r=i[e+"Title"],n=i[e+"Icon"],o=i[e+"Label"],l=i.isDisabled?" disabled":"",s="button";switch(e){case"remove":if(!i.showRemove)return"";break;case"cancel":if(!i.showCancel)return"";a+=" hide";break;case"upload":if(!i.showUpload)return"";i.isUploadable&&!i.isDisabled?t=i._getLayoutTemplate("btnLink").replace("{href}",i.uploadUrl):s="submit";break;case"browse":if(!i.showBrowse)return"";t=i._getLayoutTemplate("btnBrowse");break;default:return""}return a+="browse"===e?" btn-file":" fileinput-"+e+" fileinput-"+e+"-button",w(o)||(o=' <span class="'+i.buttonLabelClass+'">'+o+"</span>"),t.replace("{type}",s).replace("{css}",a).replace("{title}",r).replace("{status}",l).replace("{icon}",n).replace("{label}",o)},_renderThumbProgress:function(){return'<div class="file-thumb-progress hide">'+this.progressTemplate.replace(/\{percent}/g,"0")+"</div>"},_renderFileFooter:function(e,i,t,a){var r,n=this,o=n.fileActionSettings,l=o.showRemove,s=o.showDrag,d=o.showUpload,c=o.showZoom,p=n._getLayoutTemplate("footer"),u=a?o.indicatorError:o.indicatorNew,f=a?o.indicatorErrorTitle:o.indicatorNewTitle;return i=n._getSize(i),r=n.isUploadable?p.replace(/\{actions}/g,n._renderFileActions(d,l,c,s,!1,!1,!1)).replace(/\{caption}/g,e).replace(/\{size}/g,i).replace(/\{width}/g,t).replace(/\{progress}/g,n._renderThumbProgress()).replace(/\{indicator}/g,u).replace(/\{indicatorTitle}/g,f):p.replace(/\{actions}/g,n._renderFileActions(!1,!1,c,s,!1,!1,!1)).replace(/\{caption}/g,e).replace(/\{size}/g,i).replace(/\{width}/g,t).replace(/\{progress}/g,"").replace(/\{indicator}/g,u).replace(/\{indicatorTitle}/g,f),r=T(r,n.previewThumbTags)},_renderFileActions:function(e,i,t,a,r,n,o,l){if(!(e||i||t||a))return"";var s,d=this,c=n===!1?"":' data-url="'+n+'"',p=o===!1?"":' data-key="'+o+'"',u="",f="",v="",g="",m=d._getLayoutTemplate("actions"),h=d.fileActionSettings,w=d.otherActionButtons.replace(/\{dataKey}/g,p),_=r?h.removeClass+" disabled":h.removeClass;return i&&(u=d._getLayoutTemplate("actionDelete").replace(/\{removeClass}/g,_).replace(/\{removeIcon}/g,h.removeIcon).replace(/\{removeTitle}/g,h.removeTitle).replace(/\{dataUrl}/g,c).replace(/\{dataKey}/g,p)),e&&(f=d._getLayoutTemplate("actionUpload").replace(/\{uploadClass}/g,h.uploadClass).replace(/\{uploadIcon}/g,h.uploadIcon).replace(/\{uploadTitle}/g,h.uploadTitle)),t&&(v=d._getLayoutTemplate("actionZoom").replace(/\{zoomClass}/g,h.zoomClass).replace(/\{zoomIcon}/g,h.zoomIcon).replace(/\{zoomTitle}/g,h.zoomTitle)),a&&l&&(s="drag-handle-init "+h.dragClass,g=d._getLayoutTemplate("actionDrag").replace(/\{dragClass}/g,s).replace(/\{dragTitle}/g,h.dragTitle).replace(/\{dragIcon}/g,h.dragIcon)),m.replace(/\{delete}/g,u).replace(/\{upload}/g,f).replace(/\{zoom}/g,v).replace(/\{drag}/g,g).replace(/\{other}/g,w)},_browse:function(e){var i=this;i._raise("filebrowse"),e&&e.isDefaultPrevented()||(i.isError&&!i.isUploadable&&i.clear(),i.$captionContainer.focus())},_change:function(i){var t=this,a=t.$element;if(!t.isUploadable&&w(a.val())&&t.fileInputCleared)return void(t.fileInputCleared=!1);t.fileInputCleared=!1;var r,n,o,l,s,d,c=arguments.length>1,p=t.isUploadable,u=0,f=c?i.originalEvent.dataTransfer.files:a.get(0).files,v=t.filestack.length,g=w(a.attr("multiple")),m=g&&v>0,h=0,_=function(i,a,r,n){var o=e.extend(!0,{},t._getOutData({},{},f),{id:r,index:n}),l={id:r,index:n,file:a,files:f};return t.isUploadable?t._showUploadError(i,o):t._showError(i,l)};if(t.reader=null,t._resetUpload(),t._hideFileIcon(),t.isUploadable&&t.$container.find(".file-drop-zone ."+t.dropZoneTitleClass).remove(),c)for(r=[];f[u];)l=f[u],l.type||l.size%4096!==0?r.push(l):h++,u++;else r=void 0===i.target.files?i.target&&i.target.value?[{name:i.target.value.replace(/^.+\\/,"")}]:[]:i.target.files;if(w(r)||0===r.length)return p||t.clear(),t._showFolderError(h),void t._raise("fileselectnone");if(t._resetErrors(),d=r.length,o=t._getFileCount(t.isUploadable?t.getFileStack().length+d:d),t.maxFileCount>0&&o>t.maxFileCount){if(!t.autoReplace||d>t.maxFileCount)return s=t.autoReplace&&d>t.maxFileCount?d:o,n=t.msgFilesTooMany.replace("{m}",t.maxFileCount).replace("{n}",s),t.isError=_(n,null,null,null),t.$captionContainer.find(".kv-caption-icon").hide(),t._setCaption("",!0),void t.$container.removeClass("file-input-new file-input-ajax-new");o>t.maxFileCount&&t._resetPreviewThumbs(p)}else!p||m?(t._resetPreviewThumbs(!1),m&&t.clearStack()):!p||0!==v||t.previewCache.count()&&!t.overwriteInitial||t._resetPreviewThumbs(!0);t.isPreviewable?t._readFiles(r):t._updateFileDetails(1),t._showFolderError(h)},_abort:function(i){var t,a=this;return a.ajaxAborted&&"object"==typeof a.ajaxAborted&&void 0!==a.ajaxAborted.message?(t=e.extend(!0,{},a._getOutData(),i),t.abortData=a.ajaxAborted.data||{},t.abortMessage=a.ajaxAborted.message,a.cancel(),a._setProgress(101,a.$progress,a.msgCancelled),a._showUploadError(a.ajaxAborted.message,t,"filecustomerror"),!0):!1},_resetFileStack:function(){var i=this,t=0,a=[],r=[];i._getThumbs().each(function(){var n=e(this),o=n.attr("data-fileindex"),l=i.filestack[o];-1!==o&&(void 0!==l?(a[t]=l,r[t]=i._getFileName(l),n.attr({
- id:i.previewInitId+"-"+t,"data-fileindex":t}),t++):n.attr({id:"uploaded-"+C(),"data-fileindex":"-1"}))}),i.filestack=a,i.filenames=r},clearStack:function(){var e=this;return e.filestack=[],e.filenames=[],e.$element},updateStack:function(e,i){var t=this;return t.filestack[e]=i,t.filenames[e]=t._getFileName(i),t.$element},addToStack:function(e){var i=this;return i.filestack.push(e),i.filenames.push(i._getFileName(e)),i.$element},getFileStack:function(e){var i=this;return i.filestack.filter(function(i){return e?void 0!==i:void 0!==i&&null!==i})},getFilesCount:function(){var e=this,i=e.isUploadable?e.getFileStack().length:e.$element.get(0).files.length;return e._getFileCount(i)},lock:function(){var e=this;return e._resetErrors(),e.disable(),e.showRemove&&m(e.$container.find(".fileinput-remove"),"hide"),e.showCancel&&e.$container.find(".fileinput-cancel").removeClass("hide"),e._raise("filelock",[e.filestack,e._getExtraData()]),e.$element},unlock:function(e){var i=this;return void 0===e&&(e=!0),i.enable(),i.showCancel&&m(i.$container.find(".fileinput-cancel"),"hide"),i.showRemove&&i.$container.find(".fileinput-remove").removeClass("hide"),e&&i._resetFileStack(),i._raise("fileunlock",[i.filestack,i._getExtraData()]),i.$element},cancel:function(){var i,t=this,a=t.ajaxRequests,r=a.length;if(r>0)for(i=0;r>i;i+=1)t.cancelling=!0,a[i].abort();return t._setProgressCancelled(),t._getThumbs().each(function(){var i=e(this),a=i.attr("data-fileindex");i.removeClass("file-uploading"),void 0!==t.filestack[a]&&(i.find(".kv-file-upload").removeClass("disabled").removeAttr("disabled"),i.find(".kv-file-remove").removeClass("disabled").removeAttr("disabled")),t.unlock()}),t.$element},clear:function(){var i,t=this;return t.$btnUpload.removeAttr("disabled"),t._getThumbs().find("video,audio,img").each(function(){y(e(this))}),t._resetUpload(),t.clearStack(),t._clearFileInput(),t._resetErrors(!0),t._raise("fileclear"),t._hasInitialPreview()?(t._showFileIcon(),t._resetPreview(),t._initPreviewActions(),t.$container.removeClass("file-input-new")):(t._getThumbs().each(function(){t._clearObjects(e(this))}),t.isUploadable&&(t.previewCache.data={}),t.$preview.html(""),i=!t.overwriteInitial&&t.initialCaption.length>0?t.initialCaption:"",t.$caption.html(i),t.$caption.attr("title",""),m(t.$container,"file-input-new"),t._validateDefaultPreview()),0===t.$container.find(a).length&&(t._initCaption()||t.$captionContainer.find(".kv-caption-icon").hide()),t._hideFileIcon(),t._raise("filecleared"),t.$captionContainer.focus(),t._setFileDropZoneTitle(),t.$element},reset:function(){var e=this;return e._resetPreview(),e.$container.find(".fileinput-filename").text(""),e._raise("filereset"),m(e.$container,"file-input-new"),(e.$preview.find(a).length||e.isUploadable&&e.dropZoneEnabled)&&e.$container.removeClass("file-input-new"),e._setFileDropZoneTitle(),e.clearStack(),e.formdata={},e.$element},disable:function(){var e=this;return e.isDisabled=!0,e._raise("filedisabled"),e.$element.attr("disabled","disabled"),e.$container.find(".kv-fileinput-caption").addClass("file-caption-disabled"),e.$container.find(".btn-file, .fileinput-remove, .fileinput-upload, .file-preview-frame button").attr("disabled",!0),e._initDragDrop(),e.$element},enable:function(){var e=this;return e.isDisabled=!1,e._raise("fileenabled"),e.$element.removeAttr("disabled"),e.$container.find(".kv-fileinput-caption").removeClass("file-caption-disabled"),e.$container.find(".btn-file, .fileinput-remove, .fileinput-upload, .file-preview-frame button").removeAttr("disabled"),e._initDragDrop(),e.$element},upload:function(){var i,t,a,n=this,o=n.getFileStack().length,l={},s=!e.isEmptyObject(n._getExtraData());if(n.isUploadable&&!n.isDisabled){if(n.minFileCount>0&&n._getFileCount(o)<n.minFileCount)return void n._noFilesError(l);if(0===o&&!s)return n._resetUpload(),void n._showUploadError(n.msgUploadEmpty);if(n._resetUpload(),n.$progress.removeClass("hide"),n.uploadCount=0,n.uploadStatus={},n.uploadLog=[],n.lock(),n._setProgress(2),0===o&&s)return void n._uploadExtraOnly();if(a=n.filestack.length,n.hasInitData=!1,!n.uploadAsync)return n._uploadBatch(),n.$element;for(t=n._getOutData(),n._raise("filebatchpreupload",[t]),n.fileBatchCompleted=!1,n.uploadCache={content:[],config:[],tags:[],append:!0},n.uploadAsyncCount=n.getFileStack().length,i=0;a>i;i++)n.uploadCache.content[i]=null,n.uploadCache.config[i]=null,n.uploadCache.tags[i]=null;for(n.$preview.find(".file-preview-initial").removeClass(r),n._initSortable(),n.cacheInitialPreview={content:n.initialPreview,config:n.initialPreviewConfig,tags:n.initialPreviewThumbTags},i=0;a>i;i++)void 0!==n.filestack[i]&&n._uploadSingle(i,n.filestack,!0)}},destroy:function(){var e=this,t=e.$container;return t.find(".file-drop-zone").off(),e.$element.insertBefore(t).off(i).removeData(),t.off().remove(),e.$element},refresh:function(i){var t=this,a=t.$element;return i=i?e.extend(!0,{},t.options,i):t.options,t.destroy(),a.fileinput(i),a.val()&&a.trigger("change.fileinput"),a}},e.fn.fileinput=function(i){if(f()||p(9)){var t=Array.apply(null,arguments),a=[];switch(t.shift(),this.each(function(){var r,n=e(this),o=n.data("fileinput"),l="object"==typeof i&&i,s=l.theme||n.data("theme"),d={},c={},p=l.language||n.data("language")||e.fn.fileinput.defaults.language||"en";o||(s&&(c=e.fn.fileinputThemes[s]||{}),"en"===p||w(e.fn.fileinputLocales[p])||(d=e.fn.fileinputLocales[p]||{}),r=e.extend(!0,{},e.fn.fileinput.defaults,c,e.fn.fileinputLocales.en,d,l,n.data()),o=new I(this,r),n.data("fileinput",o)),"string"==typeof i&&a.push(o[i].apply(o,t))}),a.length){case 0:return this;case 1:return a[0];default:return a}}},e.fn.fileinput.defaults={language:"en",showCaption:!0,showBrowse:!0,showPreview:!0,showRemove:!0,showUpload:!0,showCancel:!0,showClose:!0,showUploadedThumbs:!0,browseOnZoneClick:!1,autoReplace:!1,previewClass:"",captionClass:"",frameClass:"krajee-default",mainClass:"file-caption-main",mainTemplate:null,purifyHtml:!0,fileSizeGetter:null,initialCaption:"",initialPreview:[],initialPreviewDelimiter:"*$$*",initialPreviewAsData:!1,initialPreviewFileType:"image",initialPreviewConfig:[],initialPreviewThumbTags:[],previewThumbTags:{},initialPreviewShowDelete:!0,removeFromPreviewOnError:!1,deleteUrl:"",deleteExtraData:{},overwriteInitial:!0,previewZoomButtonIcons:{prev:'<i class="glyphicon glyphicon-triangle-left"></i>',next:'<i class="glyphicon glyphicon-triangle-right"></i>',toggleheader:'<i class="glyphicon glyphicon-resize-vertical"></i>',fullscreen:'<i class="glyphicon glyphicon-fullscreen"></i>',borderless:'<i class="glyphicon glyphicon-resize-full"></i>',close:'<i class="glyphicon glyphicon-remove"></i>'},previewZoomButtonClasses:{prev:"btn btn-navigate",next:"btn btn-navigate",toggleheader:"btn btn-default btn-header-toggle",fullscreen:"btn btn-default",borderless:"btn btn-default",close:"btn btn-default"},preferIconicPreview:!1,preferIconicZoomPreview:!1,allowedPreviewTypes:void 0,allowedPreviewMimeTypes:null,allowedFileTypes:null,allowedFileExtensions:null,defaultPreviewContent:null,customLayoutTags:{},customPreviewTags:{},previewFileIcon:'<i class="glyphicon glyphicon-file"></i>',previewFileIconClass:"file-other-icon",previewFileIconSettings:{},previewFileExtSettings:{},buttonLabelClass:"hidden-xs",browseIcon:'<i class="glyphicon glyphicon-folder-open"></i> ',browseClass:"btn btn-primary",removeIcon:'<i class="glyphicon glyphicon-trash"></i>',removeClass:"btn btn-default",cancelIcon:'<i class="glyphicon glyphicon-ban-circle"></i>',cancelClass:"btn btn-default",uploadIcon:'<i class="glyphicon glyphicon-upload"></i>',uploadClass:"btn btn-default",uploadUrl:null,uploadAsync:!0,uploadExtraData:{},zoomModalHeight:480,minImageWidth:null,minImageHeight:null,maxImageWidth:null,maxImageHeight:null,resizeImage:!1,resizePreference:"width",resizeQuality:.92,resizeDefaultImageType:"image/jpeg",minFileSize:0,maxFileSize:0,maxFilePreviewSize:25600,minFileCount:0,maxFileCount:0,validateInitialCount:!1,msgValidationErrorClass:"text-danger",msgValidationErrorIcon:'<i class="glyphicon glyphicon-exclamation-sign"></i> ',msgErrorClass:"file-error-message",progressThumbClass:"progress-bar progress-bar-success progress-bar-striped active",progressClass:"progress-bar progress-bar-success progress-bar-striped active",progressCompleteClass:"progress-bar progress-bar-success",progressErrorClass:"progress-bar progress-bar-danger",progressUploadThreshold:99,previewFileType:"image",elCaptionContainer:null,elCaptionText:null,elPreviewContainer:null,elPreviewImage:null,elPreviewStatus:null,elErrorContainer:null,errorCloseButton:'<span class="close kv-error-close">×</span>',slugCallback:null,dropZoneEnabled:!0,dropZoneTitleClass:"file-drop-zone-title",fileActionSettings:{},otherActionButtons:"",textEncoding:"UTF-8",ajaxSettings:{},ajaxDeleteSettings:{},showAjaxErrorDetails:!0},e.fn.fileinputLocales.en={fileSingle:"file",filePlural:"files",browseLabel:"Browse …",removeLabel:"Remove",removeTitle:"Clear selected files",cancelLabel:"Cancel",cancelTitle:"Abort ongoing upload",uploadLabel:"Upload",uploadTitle:"Upload selected files",msgNo:"No",msgNoFilesSelected:"No files selected",msgCancelled:"Cancelled",msgZoomModalHeading:"Detailed Preview",msgSizeTooSmall:'File "{name}" (<b>{size} KB</b>) is too small and must be larger than <b>{minSize} KB</b>.',msgSizeTooLarge:'File "{name}" (<b>{size} KB</b>) exceeds maximum allowed upload size of <b>{maxSize} KB</b>.',msgFilesTooLess:"You must select at least <b>{n}</b> {files} to upload.",msgFilesTooMany:"Number of files selected for upload <b>({n})</b> exceeds maximum allowed limit of <b>{m}</b>.",msgFileNotFound:'File "{name}" not found!',msgFileSecured:'Security restrictions prevent reading the file "{name}".',msgFileNotReadable:'File "{name}" is not readable.',msgFilePreviewAborted:'File preview aborted for "{name}".',msgFilePreviewError:'An error occurred while reading the file "{name}".',msgInvalidFileName:'Invalid or unsupported characters in file name "{name}".',msgInvalidFileType:'Invalid type for file "{name}". Only "{types}" files are supported.',msgInvalidFileExtension:'Invalid extension for file "{name}". Only "{extensions}" files are supported.',msgFileTypes:{image:"image",html:"HTML",text:"text",video:"video",audio:"audio",flash:"flash",pdf:"PDF",object:"object"},msgUploadAborted:"The file upload was aborted",msgUploadThreshold:"Processing...",msgUploadEmpty:"No valid data available for upload.",msgValidationError:"Validation Error",msgLoading:"Loading file {index} of {files} …",msgProgress:"Loading file {index} of {files} - {name} - {percent}% completed.",msgSelected:"{n} {files} selected",msgFoldersNotAllowed:"Drag & drop files only! {n} folder(s) dropped were skipped.",msgImageWidthSmall:'Width of image file "{name}" must be at least {size} px.',msgImageHeightSmall:'Height of image file "{name}" must be at least {size} px.',msgImageWidthLarge:'Width of image file "{name}" cannot exceed {size} px.',msgImageHeightLarge:'Height of image file "{name}" cannot exceed {size} px.',msgImageResizeError:"Could not get the image dimensions to resize.",msgImageResizeException:"Error while resizing the image.<pre>{errors}</pre>",msgAjaxError:"Something went wrong with the {operation} operation. Please try again later!",ajaxOperations:{deleteThumb:"file delete",uploadThumb:"single file upload",uploadBatch:"batch file upload",uploadExtra:"form data upload"},dropZoneTitle:"Drag & drop files here …",dropZoneClickTitle:"<br>(or click to select {files})",previewZoomButtonTitles:{prev:"View previous file",next:"View next file",toggleheader:"Toggle header",fullscreen:"Toggle full screen",borderless:"Toggle borderless mode",close:"Close detailed preview"}},e.fn.fileinput.Constructor=I,e(document).ready(function(){var i=e("input.file[type=file]");i.length&&i.fileinput()})});
|