fileinput.min.js 70 KB

123456789101112
  1. /*!
  2. * bootstrap-fileinput v4.3.3
  3. * http://plugins.krajee.com/file-input
  4. *
  5. * Author: Kartik Visweswaran
  6. * Copyright: 2014 - 2016, Kartik Visweswaran, Krajee.com
  7. *
  8. * Licensed under the BSD 3-Clause
  9. * https://github.com/kartik-v/bootstrap-fileinput/blob/master/LICENSE.md
  10. */!function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(window.jQuery)}(function(a){"use strict";a.fn.fileinputLocales={},a.fn.fileinputThemes={};var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,_,aa,ba,ca,da,ea,fa,ga,ha,ia,ja,ka,la,ma,na,oa;b=".fileinput",c="kvFileinputModal",d='style="width:{width};height:{height};"',e='<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',f='<div class="file-preview-other">\n<span class="{previewFileIconClass}">{previewFileIcon}</span>\n</div>',g=window.URL||window.webkitURL,h=function(a,b,c){return void 0!==a&&(c?a===b:a.match(b))},i=function(a){if("Microsoft Internet Explorer"!==navigator.appName)return!1;if(10===a)return new RegExp("msie\\s"+a,"i").test(navigator.userAgent);var b,c=document.createElement("div");return c.innerHTML="<!--[if IE "+a+"]> <i></i> <![endif]-->",b=c.getElementsByTagName("i").length,document.body.appendChild(c),c.parentNode.removeChild(c),b},j=function(a,c,d,e){var f=e?c:c.split(" ").join(b+" ")+b;a.off(f).on(f,d)},k={data:{},init:function(a){var b=a.initialPreview,c=a.id;b.length>0&&!ea(b)&&(b=b.split(a.initialPreviewDelimiter)),k.data[c]={content:b,config:a.initialPreviewConfig,tags:a.initialPreviewThumbTags,delimiter:a.initialPreviewDelimiter,previewFileType:a.initialPreviewFileType,previewAsData:a.initialPreviewAsData,template:a.previewGenericTemplate,showZoom:a.fileActionSettings.showZoom,showDrag:a.fileActionSettings.showDrag,getSize:function(b){return a._getSize(b)},parseTemplate:function(b,c,d,e,f,g,h){var i=" file-preview-initial";return a._generatePreviewTemplate(b,c,d,e,f,!1,null,i,g,h)},msg:function(b){return a._getMsgSelected(b)},initId:a.previewInitId,footer:a._getLayoutTemplate("footer").replace(/\{progress}/g,a._renderThumbProgress()),isDelete:a.initialPreviewShowDelete,caption:a.initialCaption,actions:function(b,c,d,e,f,g,h){return a._renderFileActions(b,c,d,e,f,g,h,!0)}}},fetch:function(a){return k.data[a].content.filter(function(a){return null!==a})},count:function(a,b){return k.data[a]&&k.data[a].content?b?k.data[a].content.length:k.fetch(a).length:0},get:function(b,c,d){var e,f,g,h,i,j,l="init_"+c,m=k.data[b],n=m.config[c],o=m.content[c],p=m.initId+"-"+l,q=" file-preview-initial",r=fa("previewAsData",n,m.previewAsData);return d=void 0===d||d,o?(n&&n.frameClass&&(q+=" "+n.frameClass),r?(g=m.previewAsData?fa("type",n,m.previewFileType||"generic"):"generic",h=fa("caption",n),i=k.footer(b,c,d,n&&n.size||null),j=fa("filetype",n,g),e=m.parseTemplate(g,o,h,j,p,i,l,null)):e=m.template.replace(/\{previewId}/g,p).replace(/\{frameClass}/g,q).replace(/\{fileindex}/g,l).replace(/\{content}/g,m.content[c]).replace(/\{template}/g,fa("type",n,m.previewFileType)).replace(/\{footer}/g,k.footer(b,c,d,n&&n.size||null)),m.tags.length&&m.tags[c]&&(e=ia(e,m.tags[c])),da(n)||da(n.frameAttr)||(f=a(document.createElement("div")).html(e),f.find(".file-preview-initial").attr(n.frameAttr),e=f.html(),f.remove()),e):""},add:function(b,c,d,e,f){var g,h=a.extend(!0,{},k.data[b]);return ea(c)||(c=c.split(h.delimiter)),f?(g=h.content.push(c)-1,h.config[g]=d,h.tags[g]=e):(g=c.length-1,h.content=c,h.config=d,h.tags=e),k.data[b]=h,g},set:function(b,c,d,e,f){var g,h,i=a.extend(!0,{},k.data[b]);if(c&&c.length&&(ea(c)||(c=c.split(i.delimiter)),h=c.filter(function(a){return null!==a}),h.length)){if(void 0===i.content&&(i.content=[]),void 0===i.config&&(i.config=[]),void 0===i.tags&&(i.tags=[]),f){for(g=0;g<c.length;g++)c[g]&&i.content.push(c[g]);for(g=0;g<d.length;g++)d[g]&&i.config.push(d[g]);for(g=0;g<e.length;g++)e[g]&&i.tags.push(e[g])}else i.content=c,i.config=d,i.tags=e;k.data[b]=i}},unset:function(a,b){var c=k.count(a);if(c){if(1===c)return k.data[a].content=[],k.data[a].config=[],void(k.data[a].tags=[]);k.data[a].content[b]=null,k.data[a].config[b]=null,k.data[a].tags[b]=null}},out:function(a){var b,c="",d=k.data[a],e=k.count(a,!0);if(0===e)return{content:"",caption:""};for(var f=0;f<e;f++)c+=k.get(a,f);return b=d.msg(k.count(a)),{content:'<div class="file-initial-thumbs">'+c+"</div>",caption:b}},footer:function(a,b,c,d){var e=k.data[a];if(c=void 0===c||c,0===e.config.length||da(e.config[b]))return"";var f=e.config[b],g=fa("caption",f),h=fa("width",f,"auto"),i=fa("url",f,!1),j=fa("key",f,null),l=fa("showDelete",f,!0),m=fa("showZoom",f,e.showZoom),n=fa("showDrag",f,e.showDrag),o=i===!1&&c,p=e.isDelete?e.actions(!1,l,m,n,o,i,j):"",q=e.footer.replace(/\{actions}/g,p);return q.replace(/\{caption}/g,g).replace(/\{size}/g,e.getSize(d)).replace(/\{width}/g,h).replace(/\{indicator}/g,"").replace(/\{indicatorTitle}/g,"")}},l=function(a,b){return b=b||0,"number"==typeof a?a:("string"==typeof a&&(a=parseFloat(a)),isNaN(a)?b:a)},m=function(){return!(!window.File||!window.FileReader)},n=function(){var a=document.createElement("div");return!i(9)&&(void 0!==a.draggable||void 0!==a.ondragstart&&void 0!==a.ondrop)},o=function(){return m()&&window.FormData},p=function(a,b){a.removeClass(b).addClass(b)},X={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 ..."},q='{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>',r='{preview}\n<div class="kv-upload-progress hide"></div>\n{remove}\n{cancel}\n{upload}\n{browse}\n',s='<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>',u='<div class="close fileinput-remove">&times;</div>\n',t='<i class="glyphicon glyphicon-file kv-caption-icon"></i>',v='<div tabindex="500" class="form-control file-caption {class}">\n <div class="file-caption-name"></div>\n</div>\n',w='<button type="{type}" tabindex="500" title="{title}" class="{css}" {status}>{icon} {label}</button>',x='<a href="{href}" tabindex="500" title="{title}" class="{css}" {status}>{icon} {label}</a>',y='<div tabindex="500" class="{css}" {status}>{icon} {label}</div>',z='<div id="'+c+'" class="file-zoom-dialog modal fade" tabindex="-1" aria-labelledby="'+c+'Label"></div>',A='<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',B='<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>',C=" <br><samp>({sizeText})</samp>",D='<div class="file-thumbnail-footer">\n <div class="file-footer-caption" title="{caption}">{caption}{size}</div>\n {progress} {actions}\n</div>',E='<div class="file-actions">\n <div class="file-footer-buttons">\n {upload} {delete} {zoom} {other} </div>\n {drag}\n <div class="file-upload-indicator" title="{indicatorTitle}">{indicator}</div>\n <div class="clearfix"></div>\n</div>',F='<button type="button" class="kv-file-remove {removeClass}" title="{removeTitle}" {dataUrl}{dataKey}>{removeIcon}</button>\n',G='<button type="button" class="kv-file-upload {uploadClass}" title="{uploadTitle}">{uploadIcon}</button>',H='<button type="button" class="kv-file-zoom {zoomClass}" title="{zoomTitle}">{zoomIcon}</button>',I='<span class="file-drag-handle {dragClass}" title="{dragTitle}">{dragIcon}</span>',J='<div class="file-preview-frame{frameClass}" id="{previewId}" data-fileindex="{fileindex}" data-template="{template}"',K=J+'><div class="kv-file-content">\n',L=J+' title="{caption}" '+d+'><div class="kv-file-content">\n',M="</div>{footer}\n</div>\n",N="{content}\n",O='<div class="kv-preview-data file-preview-html" title="{caption}" '+d+">{data}</div>\n",P='<img src="{data}" class="kv-preview-data file-preview-image" title="{caption}" alt="{caption}" '+d+">\n",Q='<textarea class="kv-preview-data file-preview-text" title="{caption}" readonly '+d+">{data}</textarea>\n",R='<video class="kv-preview-data" width="{width}" height="{height}" controls>\n<source src="{data}" type="{type}">\n'+f+"\n</video>\n",S='<audio class="kv-preview-data" controls>\n<source src="{data}" type="{type}">\n'+f+"\n</audio>\n",T='<object class="kv-preview-data file-object" type="application/x-shockwave-flash" width="{width}" height="{height}" data="{data}">\n'+e+" "+f+"\n</object>\n",U='<object class="kv-preview-data file-object" data="{data}" type="{type}" width="{width}" height="{height}">\n<param name="movie" value="{caption}" />\n'+e+" "+f+"\n</object>\n",V='<embed class="kv-preview-data" src="{data}" width="{width}" height="{height}" type="application/pdf">\n',W='<div class="kv-preview-data file-preview-other-frame">\n'+f+"\n</div>\n",Y={main1:q,main2:r,preview:s,close:u,fileIcon:t,caption:v,modalMain:z,modal:A,progress:B,size:C,footer:D,actions:E,actionDelete:F,actionUpload:G,actionZoom:H,actionDrag:I,btnDefault:w,btnLink:x,btnBrowse:y},Z={generic:K+N+M,html:K+O+M,image:K+P+M,text:K+Q+M,video:L+R+M,audio:L+S+M,flash:L+T+M,object:L+U+M,pdf:L+V+M,other:L+W+M},_=["image","html","text","video","audio","flash","pdf","object"],ba={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"}},$={image:{width:"100%",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"}},ca={image:function(a,b){return h(a,"image.*")||h(b,/\.(gif|png|jpe?g)$/i)},html:function(a,b){return h(a,"text/html")||h(b,/\.(htm|html)$/i)},text:function(a,b){return h(a,"text.*")||h(b,/\.(xml|javascript)$/i)||h(b,/\.(txt|md|csv|nfo|ini|json|php|js|css)$/i)},video:function(a,b){return h(a,"video.*")&&(h(a,/(ogg|mp4|mp?g|webm|3gp)$/i)||h(b,/\.(og?|mp4|webm|mp?g|3gp)$/i))},audio:function(a,b){return h(a,"audio.*")&&(h(b,/(ogg|mp3|mp?g|wav)$/i)||h(b,/\.(og?|mp3|mp?g|wav)$/i))},flash:function(a,b){return h(a,"application/x-shockwave-flash",!0)||h(b,/\.(swf)$/i)},pdf:function(a,b){return h(a,"application/pdf",!0)||h(b,/\.(pdf)$/i)},object:function(){return!0},other:function(){return!0}},da=function(b,c){return void 0===b||null===b||0===b.length||c&&""===a.trim(b)},ea=function(a){return Array.isArray(a)||"[object Array]"===Object.prototype.toString.call(a)},fa=function(a,b,c){return c=c||"","object"==typeof b&&a in b?b[a]:c},aa=function(b,c,d){return da(b)||da(b[c])?d:a(b[c])},ga=function(){return Math.round((new Date).getTime()+100*Math.random())},ha=function(a){return a.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;")},ia=function(b,c){var d=b;return c?(a.each(c,function(a,b){"function"==typeof b&&(b=b()),d=d.split(a).join(b)}),d):d},ja=function(a){var b=a.is("img")?a.attr("src"):a.find("source").attr("src");g.revokeObjectURL(b)},ka=function(a){var b=a.lastIndexOf("/");return b===-1&&(b=a.lastIndexOf("\\")),a.split(a.substring(b,b+1)).pop()},la=function(){return document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement},ma=function(a){a&&!la()?document.documentElement.requestFullscreen?document.documentElement.requestFullscreen():document.documentElement.msRequestFullscreen?document.documentElement.msRequestFullscreen():document.documentElement.mozRequestFullScreen?document.documentElement.mozRequestFullScreen():document.documentElement.webkitRequestFullscreen&&document.documentElement.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT):document.exitFullscreen?document.exitFullscreen():document.msExitFullscreen?document.msExitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.webkitExitFullscreen&&document.webkitExitFullscreen()},na=function(a,b,c){if(c>=a.length)for(var d=c-a.length;d--+1;)a.push(void 0);return a.splice(c,0,a.splice(b,1)[0]),a},oa=function(b,c){var d=this;d.$element=a(b),d._validate()&&(d.isPreviewable=m(),d.isIE9=i(9),d.isIE10=i(10),d.isPreviewable||d.isIE9?(d._init(c),d._listen()):d.$element.removeClass("file-loading"))},oa.prototype={constructor:oa,_init:function(b){var c,d=this,e=d.$element;a.each(b,function(a,b){switch(a){case"minFileCount":case"maxFileCount":case"maxFileSize":d[a]=l(b);break;default:d[a]=b}}),da(d.allowedPreviewTypes)&&(d.allowedPreviewTypes=_),d.fileInputCleared=!1,d.fileBatchCompleted=!0,d.isPreviewable||(d.showPreview=!1),d.uploadFileAttr=da(e.attr("name"))?"file_data":e.attr("name"),d.reader=null,d.formdata={},d.clearStack(),d.uploadCount=0,d.uploadStatus={},d.uploadLog=[],d.uploadAsyncCount=0,d.loadedImages=[],d.totalImagesCount=0,d.ajaxRequests=[],d.isError=!1,d.ajaxAborted=!1,d.cancelling=!1,c=d._getLayoutTemplate("progress"),d.progressTemplate=c.replace("{class}",d.progressClass),d.progressCompleteTemplate=c.replace("{class}",d.progressCompleteClass),d.progressErrorTemplate=c.replace("{class}",d.progressErrorClass),d.dropZoneEnabled=n()&&d.dropZoneEnabled,d.isDisabled=d.$element.attr("disabled")||d.$element.attr("readonly"),d.isUploadable=o()&&!da(d.uploadUrl),d.isClickable=d.browseOnZoneClick&&d.showPreview&&(d.isUploadable&&d.dropZoneEnabled||!da(d.defaultPreviewContent)),d.slug="function"==typeof b.slugCallback?b.slugCallback:d._slugDefault,d.mainTemplate=d.showCaption?d._getLayoutTemplate("main1"):d._getLayoutTemplate("main2"),d.captionTemplate=d._getLayoutTemplate("caption"),d.previewGenericTemplate=d._getPreviewTemplate("generic"),d.resizeImage&&(d.maxImageWidth||d.maxImageHeight)&&(d.imageCanvas=document.createElement("canvas"),d.imageCanvasContext=d.imageCanvas.getContext("2d")),da(d.$element.attr("id"))&&d.$element.attr("id",ga()),void 0===d.$container?d.$container=d._createContainer():d._refreshContainer(),d.$dropZone=d.$container.find(".file-drop-zone"),d.$progress=d.$container.find(".kv-upload-progress"),d.$btnUpload=d.$container.find(".fileinput-upload"),d.$captionContainer=aa(b,"elCaptionContainer",d.$container.find(".file-caption")),d.$caption=aa(b,"elCaptionText",d.$container.find(".file-caption-name")),d.$previewContainer=aa(b,"elPreviewContainer",d.$container.find(".file-preview")),d.$preview=aa(b,"elPreviewImage",d.$container.find(".file-preview-thumbnails")),d.$previewStatus=aa(b,"elPreviewStatus",d.$container.find(".file-preview-status")),d.$errorContainer=aa(b,"elErrorContainer",d.$previewContainer.find(".kv-fileinput-error")),da(d.msgErrorClass)||p(d.$errorContainer,d.msgErrorClass),d.$errorContainer.hide(),d.fileActionSettings=a.extend(!0,X,b.fileActionSettings),d.previewInitId="preview-"+ga(),d.id=d.$element.attr("id"),k.init(d),d._initPreview(!0),d._initPreviewActions(),d.options=b,d._setFileDropZoneTitle(),d.$element.removeClass("file-loading"),d.$element.attr("disabled")&&d.disable(),d._initZoom()},_validate:function(){var a,b=this;return"file"===b.$element.attr("type")||(a='<div class="help-block alert alert-warning"><h4>Invalid Input Type</h4>You must set an input <code>type = file</code> for <b>bootstrap-fileinput</b> plugin to initialize.</div>',b.$element.after(a),!1)},_errorsExist:function(){var b,c=this;return!!c.$errorContainer.find("li").length||(b=a(document.createElement("div")).html(c.$errorContainer.html()),b.find("span.kv-error-close").remove(),b.find("ul").remove(),!!a.trim(b.text()).length)},_errorHandler:function(a,b){var c=this,d=a.target.error;d.code===d.NOT_FOUND_ERR?c._showError(c.msgFileNotFound.replace("{name}",b)):d.code===d.SECURITY_ERR?c._showError(c.msgFileSecured.replace("{name}",b)):d.code===d.NOT_READABLE_ERR?c._showError(c.msgFileNotReadable.replace("{name}",b)):d.code===d.ABORT_ERR?c._showError(c.msgFilePreviewAborted.replace("{name}",b)):c._showError(c.msgFilePreviewError.replace("{name}",b))},_addError:function(a){var b=this,c=b.$errorContainer;a&&c.length&&(c.html(b.errorCloseButton+a),j(c.find(".kv-error-close"),"click",function(){c.fadeOut("slow")}))},_resetErrors:function(a){var b=this,c=b.$errorContainer;b.isError=!1,b.$container.removeClass("has-error"),c.html(""),a?c.fadeOut("slow"):c.hide()},_showFolderError:function(a){var b,c=this,d=c.$errorContainer;a&&(b=c.msgFoldersNotAllowed.replace(/\{n}/g,a),c._addError(b),p(c.$container,"has-error"),d.fadeIn(800),c._raise("filefoldererror",[a,b]))},_showUploadError:function(a,b,c){var d=this,e=d.$errorContainer,f=c||"fileuploaderror",g=b&&b.id?'<li data-file-id="'+b.id+'">'+a+"</li>":"<li>"+a+"</li>";return 0===e.find("ul").length?d._addError("<ul>"+g+"</ul>"):e.find("ul").append(g),e.fadeIn(800),d._raise(f,[b,a]),d.$container.removeClass("file-input-new"),p(d.$container,"has-error"),!0},_showError:function(a,b,c){var d=this,e=d.$errorContainer,f=c||"fileerror";return b=b||{},b.reader=d.reader,d._addError(a),e.fadeIn(800),d._raise(f,[b,a]),d.isUploadable||d._clearFileInput(),d.$container.removeClass("file-input-new"),p(d.$container,"has-error"),d.$btnUpload.attr("disabled",!0),!0},_noFilesError:function(a){var b=this,c=b.minFileCount>1?b.filePlural:b.fileSingle,d=b.msgFilesTooLess.replace("{n}",b.minFileCount).replace("{files}",c),e=b.$errorContainer;b._addError(d),b.isError=!0,b._updateFileDetails(0),e.fadeIn(800),b._raise("fileerror",[a,d]),b._clearFileInput(),p(b.$container,"has-error")},_parseError:function(b,c,d){var e=this,f=a.trim(c+""),g="."===f.slice(-1)?"":".",h=void 0!==b.responseJSON&&void 0!==b.responseJSON.error?b.responseJSON.error:b.responseText;return e.cancelling&&e.msgUploadAborted&&(f=e.msgUploadAborted),e.showAjaxErrorDetails&&h?(h=a.trim(h.replace(/\n\s*\n/g,"\n")),h=h.length>0?"<pre>"+h+"</pre>":"",f+=g+h):f+=g,e.cancelling=!1,d?"<b>"+d+": </b>"+f:f},_parseFileType:function(a){var b,c,d,e,f=this;for(e=0;e<_.length;e+=1)if(d=_[e],b=fa(d,f.fileTypeSettings,ca[d]),c=b(a.type,a.name)?d:"",!da(c))return c;return"other"},_parseFilePreviewIcon:function(b,c){var d,e,f=this,g=f.previewFileIcon;return c&&c.indexOf(".")>-1&&(e=c.split(".").pop(),f.previewFileIconSettings&&f.previewFileIconSettings[e]&&(g=f.previewFileIconSettings[e]),f.previewFileExtSettings&&a.each(f.previewFileExtSettings,function(a,b){return f.previewFileIconSettings[a]&&b(e)?void(g=f.previewFileIconSettings[a]):void(d=!0)})),b.indexOf("{previewFileIcon}")>-1?b.replace(/\{previewFileIconClass}/g,f.previewFileIconClass).replace(/\{previewFileIcon}/g,g):b},_raise:function(b,c){var d=this,e=a.Event(b);if(void 0!==c?d.$element.trigger(e,c):d.$element.trigger(e),e.isDefaultPrevented())return!1;if(!e.result)return e.result;switch(b){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:d.ajaxAborted=e.result}return!0},_listenFullScreen:function(a){var b,c,d=this,e=d.$modal;e&&e.length&&(b=e&&e.find(".btn-fullscreen"),c=e&&e.find(".btn-borderless"),b.length&&c.length&&(b.removeClass("active").attr("aria-pressed","false"),c.removeClass("active").attr("aria-pressed","false"),a?b.addClass("active").attr("aria-pressed","true"):c.addClass("active").attr("aria-pressed","true"),e.hasClass("file-zoom-fullscreen")?d._maximizeZoomDialog():a?d._maximizeZoomDialog():c.removeClass("active").attr("aria-pressed","false")))},_listen:function(){var b=this,c=b.$element,d=c.closest("form"),e=b.$container;j(c,"change",a.proxy(b._change,b)),b.showBrowse&&j(b.$btnFile,"click",a.proxy(b._browse,b)),j(d,"reset",a.proxy(b.reset,b)),j(e.find(".fileinput-remove:not([disabled])"),"click",a.proxy(b.clear,b)),j(e.find(".fileinput-cancel"),"click",a.proxy(b.cancel,b)),b._initDragDrop(),b.isUploadable||j(d,"submit",a.proxy(b._submitForm,b)),j(b.$container.find(".fileinput-upload"),"click",a.proxy(b._uploadClick,b)),j(a(window),"resize",function(){b._listenFullScreen(screen.width===window.innerWidth&&screen.height===window.innerHeight)}),j(a(document),"webkitfullscreenchange mozfullscreenchange fullscreenchange MSFullscreenChange",function(){b._listenFullScreen(la())}),b._initClickable()},_initClickable:function(){var b,c=this;c.isClickable&&(b=c.isUploadable?c.$dropZone:c.$preview.find(".file-default-preview"),p(b,"clickable"),b.attr("tabindex",-1),j(b,"click",function(d){var e=a(d.target);e.parents(".file-preview-thumbnails").length&&!e.parents(".file-default-preview").length||(c.$element.trigger("click"),b.blur())}))},_initDragDrop:function(){var b=this,c=b.$dropZone;b.isUploadable&&b.dropZoneEnabled&&b.showPreview&&(j(c,"dragenter dragover",a.proxy(b._zoneDragEnter,b)),j(c,"dragleave",a.proxy(b._zoneDragLeave,b)),j(c,"drop",a.proxy(b._zoneDrop,b)),j(a(document),"dragenter dragover drop",b._zoneDragDropInit))},_zoneDragDropInit:function(a){a.stopPropagation(),a.preventDefault()},_zoneDragEnter:function(b){var c=this,d=a.inArray("Files",b.originalEvent.dataTransfer.types)>-1;return c._zoneDragDropInit(b),c.isDisabled||!d?(b.originalEvent.dataTransfer.effectAllowed="none",void(b.originalEvent.dataTransfer.dropEffect="none")):void p(c.$dropZone,"file-highlighted")},_zoneDragLeave:function(a){var b=this;b._zoneDragDropInit(a),b.isDisabled||b.$dropZone.removeClass("file-highlighted")},_zoneDrop:function(a){var b=this;a.preventDefault(),b.isDisabled||da(a.originalEvent.dataTransfer.files)||(b._change(a,"dragdrop"),b.$dropZone.removeClass("file-highlighted"))},_uploadClick:function(a){var b,c=this,d=c.$container.find(".fileinput-upload"),e=!d.hasClass("disabled")&&da(d.attr("disabled"));if(!a||!a.isDefaultPrevented()){if(!c.isUploadable)return void(e&&"submit"!==d.attr("type")&&(b=d.closest("form"),b.length&&b.trigger("submit"),a.preventDefault()));a.preventDefault(),e&&c.upload()}},_submitForm:function(){var a=this,b=a.$element,c=b.get(0).files;return c&&a.minFileCount>0&&a._getFileCount(c.length)<a.minFileCount?(a._noFilesError({}),!1):!a._abort({})},_clearPreview:function(){var a=this,b=a.showUploadedThumbs?a.$preview.find(".file-preview-frame:not(.file-preview-success)"):a.$preview.find(".file-preview-frame");b.remove(),a.$preview.find(".file-preview-frame").length&&a.showPreview||a._resetUpload(),a._validateDefaultPreview()},_initSortable:function(){var b,c,d=this,e=d.$preview;window.Sortable&&(b=e.find(".file-initial-thumbs"),c={handle:".drag-handle-init",dataIdAttr:"data-preview-id",draggable:".file-preview-initial",onSort:function(b){var c=b.oldIndex,e=b.newIndex;d.initialPreview=na(d.initialPreview,c,e),d.initialPreviewConfig=na(d.initialPreviewConfig,c,e),k.init(d),d._raise("filesorted",{previewId:a(b.item).attr("id"),oldIndex:c,newIndex:e,stack:d.initialPreviewConfig})}},b.data("sortable")&&b.sortable("destroy"),a.extend(!0,c,d.fileActionSettings.dragSettings),b.sortable(c))},_initPreview:function(a){var b,c=this,d=c.initialCaption||"";return k.count(c.id)?(b=k.out(c.id),d=a&&c.initialCaption?c.initialCaption:b.caption,c.$preview.html(b.content),c._setCaption(d),c._initSortable(),void(da(b.content)||c.$container.removeClass("file-input-new"))):(c._clearPreview(),void(a?c._setCaption(d):c._initCaption()))},_getZoomButton:function(a){var b=this,c=b.previewZoomButtonIcons[a],d=b.previewZoomButtonClasses[a],e=' title="'+(b.previewZoomButtonTitles[a]||"")+'" ',f=e+("close"===a?' data-dismiss="modal" aria-hidden="true"':"");return"fullscreen"!==a&&"borderless"!==a&&"toggleheader"!==a||(f+=' data-toggle="button" aria-pressed="false" autocomplete="off"'),'<button type="button" class="'+d+" btn-"+a+'"'+f+">"+c+"</button>"},_getModalContent:function(){var a=this;return a._getLayoutTemplate("modal").replace(/\{heading}/g,a.msgZoomModalHeading).replace(/\{prev}/g,a._getZoomButton("prev")).replace(/\{next}/g,a._getZoomButton("next")).replace(/\{toggleheader}/g,a._getZoomButton("toggleheader")).replace(/\{fullscreen}/g,a._getZoomButton("fullscreen")).replace(/\{borderless}/g,a._getZoomButton("borderless")).replace(/\{close}/g,a._getZoomButton("close"))},_listenModalEvent:function(a){var b=this,c=b.$modal,d=function(a){return{sourceEvent:a,previewId:c.data("previewId"),modal:c}};c.on(a+".bs.modal",function(e){var f=c.find(".btn-fullscreen"),g=c.find(".btn-borderless");b._raise("filezoom"+a,d(e)),"shown"===a&&(g.removeClass("active").attr("aria-pressed","false"),f.removeClass("active").attr("aria-pressed","false"),c.hasClass("file-zoom-fullscreen")&&(b._maximizeZoomDialog(),la()?f.addClass("active").attr("aria-pressed","true"):g.addClass("active").attr("aria-pressed","true")))})},_initZoom:function(){var b,d=this,e=d._getLayoutTemplate("modalMain"),f="#"+c;d.$modal=a(f),d.$modal&&d.$modal.length||(b=a(document.createElement("div")).html(e).insertAfter(d.$container),d.$modal=a("#"+c).insertBefore(b),b.remove()),d.$modal.html(d._getModalContent()),d._listenModalEvent("show"),d._listenModalEvent("shown"),d._listenModalEvent("hide"),d._listenModalEvent("hidden"),d._listenModalEvent("loaded")},_initZoomButtons:function(){var b,c,d=this,e=d.$modal.data("previewId")||"",f=d.$preview.find(".file-preview-frame").toArray(),g=f.length,h=d.$modal.find(".btn-prev"),i=d.$modal.find(".btn-next");g&&(b=a(f[0]),c=a(f[g-1]),h.removeAttr("disabled"),i.removeAttr("disabled"),b.length&&b.attr("id")===e&&h.attr("disabled",!0),c.length&&c.attr("id")===e&&i.attr("disabled",!0))},_maximizeZoomDialog:function(){var b=this,c=b.$modal,d=c.find(".modal-header:visible"),e=c.find(".modal-footer:visible"),f=c.find(".modal-body"),g=a(window).height(),h=0;c.addClass("file-zoom-fullscreen"),d&&d.length&&(g-=d.outerHeight(!0)),e&&e.length&&(g-=e.outerHeight(!0)),f&&f.length&&(h=f.outerHeight(!0)-f.height(),g-=h),c.find(".kv-zoom-body").height(g)},_resizeZoomDialog:function(a){var b=this,c=b.$modal,d=c.find(".btn-fullscreen"),e=c.find(".btn-borderless");if(c.hasClass("file-zoom-fullscreen"))ma(!1),a?d.hasClass("active")||(c.removeClass("file-zoom-fullscreen"),b._resizeZoomDialog(!0),e.hasClass("active")&&e.removeClass("active").attr("aria-pressed","false")):d.hasClass("active")?d.removeClass("active").attr("aria-pressed","false"):(c.removeClass("file-zoom-fullscreen"),b.$modal.find(".kv-zoom-body").css("height",b.zoomModalHeight));else{if(!a)return void b._maximizeZoomDialog();ma(!0)}c.focus()},_setZoomContent:function(b,c){var d,e,f,g,h,i,k,l,m=this,n=b.attr("id"),o=m.$modal,q=o.find(".btn-prev"),r=o.find(".btn-next"),s=o.find(".btn-fullscreen"),t=o.find(".btn-borderless"),u=o.find(".btn-toggleheader");e=b.data("template")||"generic",d=b.find(".kv-file-content"),f=d.length?d.html():"",g=b.find(".file-footer-caption").text()||"",o.find(".kv-zoom-title").html(g),h=o.find(".kv-zoom-body"),c?(l=h.clone().insertAfter(h),h.html(f).hide(),l.fadeOut("fast",function(){h.fadeIn("fast"),l.remove()})):h.html(f),k=m.previewZoomSettings[e],k&&(i=h.find(".kv-preview-data"),p(i,"file-zoom-detail"),a.each(k,function(a,b){i.css(a,b),(i.attr("width")&&"width"===a||i.attr("height")&&"height"===a)&&i.removeAttr(a)})),o.data("previewId",n),j(q,"click",function(){m._zoomSlideShow("prev",n)}),j(r,"click",function(){m._zoomSlideShow("next",n)}),j(s,"click",function(){m._resizeZoomDialog(!0)}),j(t,"click",function(){m._resizeZoomDialog(!1)}),j(u,"click",function(){var a,b=o.find(".modal-header"),c=o.find(".modal-body .floating-buttons"),d=b.find(".kv-zoom-actions"),e=function(a){var c=m.$modal.find(".kv-zoom-body"),d=m.zoomModalHeight;o.hasClass("file-zoom-fullscreen")&&(d=c.outerHeight(!0),a||(d-=b.outerHeight(!0))),c.css("height",a?d+a:d)};b.is(":visible")?(a=b.outerHeight(!0),b.slideUp("slow",function(){d.find(".btn").appendTo(c),e(a)})):(c.find(".btn").appendTo(d),b.slideDown("slow",function(){e()})),o.focus()}),j(o,"keydown",function(a){var b=a.which||a.keyCode;37!==b||q.attr("disabled")||m._zoomSlideShow("prev",n),39!==b||r.attr("disabled")||m._zoomSlideShow("next",n)})},_zoomPreview:function(a){var b,c=this;if(!a.length)throw"Cannot zoom to detailed preview!";c.$modal.html(c._getModalContent()),b=a.closest(".file-preview-frame"),c._setZoomContent(b),c.$modal.modal("show"),c._initZoomButtons()},_zoomSlideShow:function(b,c){var d,e,f,g=this,h=g.$modal.find(".kv-zoom-actions .btn-"+b),i=g.$preview.find(".file-preview-frame").toArray(),j=i.length;if(!h.attr("disabled")){for(e=0;e<j;e++)if(a(i[e]).attr("id")===c){f="prev"===b?e-1:e+1;break}f<0||f>=j||!i[f]||(d=a(i[f]),d.length&&g._setZoomContent(d,!0),g._initZoomButtons(),g._raise("filezoom"+b,{previewId:c,modal:g.$modal}))}},_initZoomButton:function(){var b=this;b.$preview.find(".kv-file-zoom").each(function(){var c=a(this);j(c,"click",function(){b._zoomPreview(c)})})},_initPreviewActions:function(){var b=this,c=b.deleteExtraData||{},d=function(){var a=b.isUploadable?k.count(b.id):b.$element.get(0).files.length;0!==b.$preview.find(".kv-file-remove").length||a||(b.reset(),b.initialCaption="")};b._initZoomButton(),b.$preview.find(".kv-file-remove").each(function(){var e=a(this),f=e.data("url")||b.deleteUrl,g=e.data("key");if(!da(f)&&void 0!==g){var h,i,l,m,n=e.closest(".file-preview-frame"),o=k.data[b.id],q=n.data("fileindex");q=parseInt(q.replace("init_","")),l=da(o.config)&&da(o.config[q])?null:o.config[q],m=da(l)||da(l.extra)?c:l.extra,"function"==typeof m&&(m=m()),i={id:e.attr("id"),key:g,extra:m},h=a.extend(!0,{},{url:f,type:"POST",dataType:"json",data:a.extend(!0,{},{key:g},m),beforeSend:function(a){b.ajaxAborted=!1,b._raise("filepredelete",[g,a,m]),b.ajaxAborted?a.abort():(p(n,"file-uploading"),p(e,"disabled"))},success:function(a,c,f){var h,j;return da(a)||da(a.error)?(k.unset(b.id,q),h=k.count(b.id),j=h>0?b._getMsgSelected(h):"",b._raise("filedeleted",[g,f,m]),b._setCaption(j),n.removeClass("file-uploading").addClass("file-deleted"),void n.fadeOut("slow",function(){b._clearObjects(n),n.remove(),d(),h||0!==b.getFileStack().length||(b._setCaption(""),b.reset())})):(i.jqXHR=f,i.response=a,b._showError(a.error,i,"filedeleteerror"),n.removeClass("file-uploading"),e.removeClass("disabled"),void d())},
  11. error:function(a,c,e){var f=b._parseError(a,e);i.jqXHR=a,i.response={},b._showError(f,i,"filedeleteerror"),n.removeClass("file-uploading"),d()}},b.ajaxDeleteSettings),j(e,"click",function(){return!!b._validateMinCount()&&void a.ajax(h)})}})},_clearObjects:function(b){b.find("video audio").each(function(){this.pause(),a(this).remove()}),b.find("img object div").each(function(){a(this).remove()})},_clearFileInput:function(){var b,c,d,e=this,f=e.$element;da(f.val())||(e.isIE9||e.isIE10?(b=f.closest("form"),c=a(document.createElement("form")),d=a(document.createElement("div")),f.before(d),b.length?b.after(c):d.after(c),c.append(f).trigger("reset"),d.before(f).remove(),c.remove()):f.val(""),e.fileInputCleared=!0)},_resetUpload:function(){var a=this;a.uploadCache={content:[],config:[],tags:[],append:!0},a.uploadCount=0,a.uploadStatus={},a.uploadLog=[],a.uploadAsyncCount=0,a.loadedImages=[],a.totalImagesCount=0,a.$btnUpload.removeAttr("disabled"),a._setProgress(0),p(a.$progress,"hide"),a._resetErrors(!1),a.ajaxAborted=!1,a.ajaxRequests=[],a._resetCanvas()},_resetCanvas:function(){var a=this;a.canvas&&a.imageCanvasContext&&a.imageCanvasContext.clearRect(0,0,a.canvas.width,a.canvas.height)},_hasInitialPreview:function(){var a=this;return!a.overwriteInitial&&k.count(a.id)},_resetPreview:function(){var a,b,c=this;k.count(c.id)?(a=k.out(c.id),c.$preview.html(a.content),b=c.initialCaption?c.initialCaption:a.caption,c._setCaption(b)):(c._clearPreview(),c._initCaption()),c.showPreview&&(c._initZoom(),c._initSortable())},_clearDefaultPreview:function(){var a=this;a.$preview.find(".file-default-preview").remove()},_validateDefaultPreview:function(){var a=this;a.showPreview&&!da(a.defaultPreviewContent)&&(a.$preview.html('<div class="file-default-preview">'+a.defaultPreviewContent+"</div>"),a.$container.removeClass("file-input-new"),a._initClickable())},_resetPreviewThumbs:function(a){var b,c=this;return a?(c._clearPreview(),void c.clearStack()):void(c._hasInitialPreview()?(b=k.out(c.id),c.$preview.html(b.content),c._setCaption(b.caption),c._initPreviewActions()):c._clearPreview())},_getLayoutTemplate:function(a){var b=this,c=fa(a,b.layoutTemplates,Y[a]);return da(b.customLayoutTags)?c:ia(c,b.customLayoutTags)},_getPreviewTemplate:function(a){var b=this,c=fa(a,b.previewTemplates,Z[a]);return da(b.customPreviewTags)?c:ia(c,b.customPreviewTags)},_getOutData:function(a,b,c){var d=this;return a=a||{},b=b||{},c=c||d.filestack.slice(0)||{},{form:d.formdata,files:c,filenames:d.filenames,extra:d._getExtraData(),response:b,reader:d.reader,jqXHR:a}},_getMsgSelected:function(a){var b=this,c=1===a?b.fileSingle:b.filePlural;return a>0?b.msgSelected.replace("{n}",a).replace("{files}",c):b.msgNoFilesSelected},_getThumbs:function(a){return a=a||"",this.$preview.find(".file-preview-frame:not(.file-preview-initial)"+a)},_getExtraData:function(a,b){var c=this,d=c.uploadExtraData;return"function"==typeof c.uploadExtraData&&(d=c.uploadExtraData(a,b)),d},_initXhr:function(a,b,c){var d=this;return a.upload&&a.upload.addEventListener("progress",function(a){var e=0,f=a.loaded||a.position,g=a.total;a.lengthComputable&&(e=Math.ceil(f/g*100)),b?d._setAsyncUploadStatus(b,e,c):d._setProgress(Math.ceil(e))},!1),a},_ajaxSubmit:function(b,c,d,e,f,g){var h,i=this;i._raise("filepreajax",[f,g]),i._uploadExtra(f,g),h=a.extend(!0,{},{xhr:function(){var b=a.ajaxSettings.xhr();return i._initXhr(b,f,i.getFileStack().length)},url:i.uploadUrl,type:"POST",dataType:"json",data:i.formdata,cache:!1,processData:!1,contentType:!1,beforeSend:b,success:c,complete:d,error:e},i.ajaxSettings),i.ajaxRequests.push(a.ajax(h))},_initUploadSuccess:function(b,c,d){var e,f,g,h,i,j,l,m,n=this;n.showPreview&&"object"==typeof b&&!a.isEmptyObject(b)&&void 0!==b.initialPreview&&b.initialPreview.length>0&&(n.hasInitData=!0,i=b.initialPreview||[],j=b.initialPreviewConfig||[],l=b.initialPreviewThumbTags||[],e=!(void 0!==b.append&&!b.append),i.length>0&&!ea(i)&&(i=i.split(n.initialPreviewDelimiter)),n.overwriteInitial=!1,n.initialPreview.concat(i),n.initialPreviewThumbTags.concat(l),n.initialPreviewConfig.concat(j),void 0!==c?d?(m=c.attr("data-fileindex"),n.uploadCache.content[m]=i[0],n.uploadCache.config[m]=j[0],n.uploadCache.tags[m]=l[0],n.uploadCache.append=e):(g=k.add(n.id,i,j[0],l[0],e),f=k.get(n.id,g,!1),h=a(f).hide(),c.after(h).fadeOut("slow",function(){h.fadeIn("slow").css("display:inline-block"),n._initPreviewActions(),n._clearFileInput(),c.remove()})):(k.set(n.id,i,j,l,e),n._initPreview(),n._initPreviewActions()))},_initSuccessThumbs:function(){var b=this;b.showPreview&&b._getThumbs(".file-preview-success").each(function(){var c=a(this),d=c.find(".kv-file-remove");d.removeAttr("disabled"),j(d,"click",function(){var a=b._raise("filesuccessremove",[c.attr("id"),c.data("fileindex")]);ja(c),a!==!1&&c.fadeOut("slow",function(){c.remove(),b.$preview.find(".file-preview-frame").length||b.reset()})})})},_checkAsyncComplete:function(){var b,c,d=this;for(c=0;c<d.filestack.length;c++)if(d.filestack[c]&&(b=d.previewInitId+"-"+c,a.inArray(b,d.uploadLog)===-1))return!1;return d.uploadAsyncCount===d.uploadLog.length},_uploadExtra:function(b,c){var d=this,e=d._getExtraData(b,c);0!==e.length&&a.each(e,function(a,b){d.formdata.append(a,b)})},_uploadSingle:function(b,c,d){var e,f,g,h,i,j,l,m,n,o,q=this,r=q.getFileStack().length,s=new FormData,t=q.previewInitId+"-"+b,u=q.filestack.length>0||!a.isEmptyObject(q.uploadExtraData),v={id:t,index:b};q.formdata=s,q.showPreview&&(f=a("#"+t+":not(.file-preview-initial)"),h=f.find(".kv-file-upload"),i=f.find(".kv-file-remove"),a("#"+t).find(".file-thumb-progress").removeClass("hide")),0===r||!u||h&&h.hasClass("disabled")||q._abort(v)||(o=function(a,b){q.updateStack(a,void 0),q.uploadLog.push(b),q._checkAsyncComplete()&&(q.fileBatchCompleted=!0)},g=function(){var a=q.uploadCache;q.fileBatchCompleted&&setTimeout(function(){q.showPreview&&(k.set(q.id,a.content,a.config,a.tags,a.append),q.hasInitData&&(q._initPreview(),q._initPreviewActions())),q.unlock(),q._clearFileInput(),q._raise("filebatchuploadcomplete",[q.filestack,q._getExtraData()]),q.uploadCount=0,q.uploadStatus={},q.uploadLog=[],q._setProgress(100)},100)},j=function(c){e=q._getOutData(c),q.fileBatchCompleted=!1,q.showPreview&&(f.hasClass("file-preview-success")||(q._setThumbStatus(f,"Loading"),p(f,"file-uploading")),h.attr("disabled",!0),i.attr("disabled",!0)),d||q.lock(),q._raise("filepreupload",[e,t,b]),a.extend(!0,v,e),q._abort(v)&&(c.abort(),q._setProgressCancelled())},l=function(c,g,i){e=q._getOutData(i,c),a.extend(!0,v,e),setTimeout(function(){da(c)||da(c.error)?(q.showPreview&&(q._setThumbStatus(f,"Success"),h.hide(),q._initUploadSuccess(c,f,d)),q._raise("fileuploaded",[e,t,b]),d?o(b,t):q.updateStack(b,void 0)):(q._showUploadError(c.error,v),q._setPreviewError(f,b),d&&o(b,t))},100)},m=function(){setTimeout(function(){q.showPreview&&(h.removeAttr("disabled"),i.removeAttr("disabled"),f.removeClass("file-uploading")),d?g():(q.unlock(!1),q._clearFileInput()),q._initSuccessThumbs()},100)},n=function(e,g,h){var i=q._parseError(e,h,d?c[b].name:null);setTimeout(function(){d&&o(b,t),q.uploadStatus[t]=100,q._setPreviewError(f,b),a.extend(!0,v,q._getOutData(e)),q._showUploadError(i,v)},100)},s.append(q.uploadFileAttr,c[b],q.filenames[b]),s.append("file_id",b),q._ajaxSubmit(j,l,m,n,t,b))},_uploadBatch:function(){var b,c,d,e,f,g=this,h=g.filestack,i=h.length,j={},k=g.filestack.length>0||!a.isEmptyObject(g.uploadExtraData);g.formdata=new FormData,0!==i&&k&&!g._abort(j)&&(f=function(){a.each(h,function(a){g.updateStack(a,void 0)}),g._clearFileInput()},b=function(b){g.lock();var c=g._getOutData(b);g.showPreview&&g._getThumbs().each(function(){var b=a(this),c=b.find(".kv-file-upload"),d=b.find(".kv-file-remove");b.hasClass("file-preview-success")||(g._setThumbStatus(b,"Loading"),p(b,"file-uploading")),c.attr("disabled",!0),d.attr("disabled",!0)}),g._raise("filebatchpreupload",[c]),g._abort(c)&&(b.abort(),g._setProgressCancelled())},c=function(b,c,d){var e=g._getOutData(d,b),h=g._getThumbs(),i=0,j=da(b)||da(b.errorkeys)?[]:b.errorkeys;da(b)||da(b.error)?(g._raise("filebatchuploadsuccess",[e]),f(),g.showPreview?(h.each(function(){var b=a(this),c=b.find(".kv-file-upload");b.find(".kv-file-upload").hide(),g._setThumbStatus(b,"Success"),b.removeClass("file-uploading"),c.removeAttr("disabled")}),g._initUploadSuccess(b)):g.reset()):(g.showPreview&&(h.each(function(){var b=a(this),c=b.find(".kv-file-remove"),d=b.find(".kv-file-upload");return b.removeClass("file-uploading"),d.removeAttr("disabled"),c.removeAttr("disabled"),0===j.length?void g._setPreviewError(b):(a.inArray(i,j)!==-1?g._setPreviewError(b):(b.find(".kv-file-upload").hide(),g._setThumbStatus(b,"Success"),g.updateStack(i,void 0)),void i++)}),g._initUploadSuccess(b)),g._showUploadError(b.error,e,"filebatchuploaderror"))},e=function(){g._setProgress(100),g.unlock(),g._initSuccessThumbs(),g._clearFileInput(),g._raise("filebatchuploadcomplete",[g.filestack,g._getExtraData()])},d=function(b,c,d){var e=g._getOutData(b),f=g._parseError(b,d);g._showUploadError(f,e,"filebatchuploaderror"),g.uploadFileCount=i-1,g.showPreview&&(g._getThumbs().each(function(){var b=a(this),c=b.attr("data-fileindex");b.removeClass("file-uploading"),void 0!==g.filestack[c]&&g._setPreviewError(b)}),g._getThumbs().removeClass("file-uploading"),g._getThumbs(" .kv-file-upload").removeAttr("disabled"),g._getThumbs(" .kv-file-delete").removeAttr("disabled"))},a.each(h,function(a,b){da(h[a])||g.formdata.append(g.uploadFileAttr,b,g.filenames[a])}),g._ajaxSubmit(b,c,e,d))},_uploadExtraOnly:function(){var a,b,c,d,e=this,f={};e.formdata=new FormData,e._abort(f)||(a=function(a){e.lock();var b=e._getOutData(a);e._raise("filebatchpreupload",[b]),e._setProgress(50),f.data=b,f.xhr=a,e._abort(f)&&(a.abort(),e._setProgressCancelled())},b=function(a,b,c){var d=e._getOutData(c,a);da(a)||da(a.error)?(e._raise("filebatchuploadsuccess",[d]),e._clearFileInput(),e._initUploadSuccess(a)):e._showUploadError(a.error,d,"filebatchuploaderror")},c=function(){e._setProgress(100),e.unlock(),e._clearFileInput(),e._raise("filebatchuploadcomplete",[e.filestack,e._getExtraData()])},d=function(a,b,c){var d=e._getOutData(a),g=e._parseError(a,c);f.data=d,e._showUploadError(g,d,"filebatchuploaderror")},e._ajaxSubmit(a,b,c,d))},_initFileActions:function(){var b=this;b.showPreview&&(b._initZoomButton(),b.$preview.find(".kv-file-remove").each(function(){var c,d,e,f,g=a(this),h=g.closest(".file-preview-frame"),i=h.attr("id"),l=h.attr("data-fileindex");j(g,"click",function(){return f=b._raise("filepreremove",[i,l]),!(f===!1||!b._validateMinCount())&&(c=h.hasClass("file-preview-error"),ja(h),void h.fadeOut("slow",function(){b.updateStack(l,void 0),b._clearObjects(h),h.remove(),i&&c&&b.$errorContainer.find('li[data-file-id="'+i+'"]').fadeOut("fast",function(){a(this).remove(),b._errorsExist()||b._resetErrors()}),b._clearFileInput();var f=b.getFileStack(!0),g=k.count(b.id),j=f.length,m=b.showPreview&&b.$preview.find(".file-preview-frame").length;0!==j||0!==g||m?(d=g+j,e=d>1?b._getMsgSelected(d):f[0]?b._getFileNames()[0]:"",b._setCaption(e)):b.reset(),b._raise("fileremoved",[i,l])}))})}),b.$preview.find(".kv-file-upload").each(function(){var c=a(this);j(c,"click",function(){var a=c.closest(".file-preview-frame"),d=a.attr("data-fileindex");a.hasClass("file-preview-error")||b._uploadSingle(d,b.filestack,!1)})}))},_hideFileIcon:function(){this.overwriteInitial&&this.$captionContainer.find(".kv-caption-icon").hide()},_showFileIcon:function(){this.$captionContainer.find(".kv-caption-icon").show()},_getSize:function(a){var b=parseFloat(a);if(null===a||isNaN(b))return"";var c,d,e,f=this,g=f.fileSizeGetter;return"function"==typeof g?e=g(a):(c=Math.floor(Math.log(b)/Math.log(1024)),d=["B","KB","MB","GB","TB","PB","EB","ZB","YB"],e=1*(b/Math.pow(1024,c)).toFixed(2)+" "+d[c]),f._getLayoutTemplate("size").replace("{sizeText}",e)},_generatePreviewTemplate:function(a,b,c,d,e,f,g,h,i,j){var k,l,m=this,n=m._getPreviewTemplate(a),o=h||"",p=fa(a,m.previewSettings,ba[a]),q=m.slug(c),r=i||m._renderFileFooter(q,g,p.width,f);return j=j||e.slice(e.lastIndexOf("-")+1),n=m._parseFilePreviewIcon(n,c),"text"===a||"html"===a?(l="text"===a?ha(b):b,k=n.replace(/\{previewId}/g,e).replace(/\{caption}/g,q).replace(/\{width}/g,p.width).replace(/\{height}/g,p.height).replace(/\{frameClass}/g,o).replace(/\{cat}/g,d).replace(/\{footer}/g,r).replace(/\{fileindex}/g,j).replace(/\{data}/g,l).replace(/\{template}/g,a)):k=n.replace(/\{previewId}/g,e).replace(/\{caption}/g,q).replace(/\{frameClass}/g,o).replace(/\{type}/g,d).replace(/\{fileindex}/g,j).replace(/\{width}/g,p.width).replace(/\{height}/g,p.height).replace(/\{footer}/g,r).replace(/\{data}/g,b).replace(/\{template}/g,a),k},_previewDefault:function(b,c,d){var e=this,f=e.$preview,h=f.find(".file-live-thumbs");if(e.showPreview){var i,j=b?b.name:"",k=b?b.type:"",l=d===!0&&!e.isUploadable,m=g.createObjectURL(b);e._clearDefaultPreview(),i=e._generatePreviewTemplate("other",m,j,k,c,l,b.size),h.length||(h=a(document.createElement("div")).addClass("file-live-thumbs").appendTo(f)),h.append("\n"+i),d===!0&&e.isUploadable&&e._setThumbStatus(a("#"+c),"Error")}},_previewFile:function(b,c,d,e,f){if(this.showPreview){var g,h=this,i=h._parseFileType(c),j=c?c.name:"",k=h.slug(j),l=h.allowedPreviewTypes,m=h.allowedPreviewMimeTypes,n=h.$preview,o=l&&l.indexOf(i)>=0,p=n.find(".file-live-thumbs"),q="text"===i||"html"===i||"image"===i?d.target.result:f,r=m&&m.indexOf(c.type)!==-1;p.length||(p=a(document.createElement("div")).addClass("file-live-thumbs").appendTo(n)),"html"===i&&h.purifyHtml&&window.DOMPurify&&(q=window.DOMPurify.sanitize(q)),o||r?(g=h._generatePreviewTemplate(i,q,j,c.type,e,!1,c.size),h._clearDefaultPreview(),p.append("\n"+g),h._validateImage(b,e,k,c.type)):h._previewDefault(c,e),h._initSortable()}},_slugDefault:function(a){return da(a)?"":String(a).replace(/[\-\[\]\/\{}:;#%=\(\)\*\+\?\\\^\$\|<>&"']/g,"_")},_readFiles:function(b){this.reader=new FileReader;var c,d=this,e=d.$element,f=d.$preview,i=d.reader,j=d.$previewContainer,k=d.$previewStatus,l=d.msgLoading,m=d.msgProgress,n=d.previewInitId,o=b.length,p=d.fileTypeSettings,q=d.filestack.length,r=d.maxFilePreviewSize&&parseFloat(d.maxFilePreviewSize),s=f.length&&(!r||isNaN(r)),t=function(e,f,g,h){var i=a.extend(!0,{},d._getOutData({},{},b),{id:g,index:h}),j={id:g,index:h,file:f,files:b};return d._previewDefault(f,g,!0),d.isUploadable&&d.addToStack(void 0),setTimeout(function(){c(h+1)},100),d._initFileActions(),d.removeFromPreviewOnError&&a("#"+g).remove(),d.isUploadable?d._showUploadError(e,i):d._showError(e,j)};d.loadedImages=[],d.totalImagesCount=0,a.each(b,function(a,b){var c=d.fileTypeSettings.image||ca.image;c&&c(b.type)&&d.totalImagesCount++}),c=function(a){if(da(e.attr("multiple"))&&(o=1),a>=o)return d.isUploadable&&d.filestack.length>0?d._raise("filebatchselected",[d.getFileStack()]):d._raise("filebatchselected",[b]),j.removeClass("file-thumb-loading"),void k.html("");var u,v,w,x,y,z,A,B=q+a,C=n+"-"+B,D=b[a],E=d.slug(D.name),F=(D.size||0)/1e3,G="",H=g.createObjectURL(D),I=0,J=d.allowedFileTypes,K=da(J)?"":J.join(", "),L=d.allowedFileExtensions,M=da(L)?"":L.join(", ");if(da(L)||(G=new RegExp("\\.("+L.join("|")+")$","i")),F=F.toFixed(2),d.maxFileSize>0&&F>d.maxFileSize)return y=d.msgSizeTooLarge.replace("{name}",E).replace("{size}",F).replace("{maxSize}",d.maxFileSize),void(d.isError=t(y,D,C,a));if(!da(J)&&ea(J)){for(x=0;x<J.length;x+=1)z=J[x],w=p[z],A=void 0!==w&&w(D.type,E),I+=da(A)?0:A.length;if(0===I)return y=d.msgInvalidFileType.replace("{name}",E).replace("{types}",K),void(d.isError=t(y,D,C,a))}return 0!==I||da(L)||!ea(L)||da(G)||(A=h(E,G),I+=da(A)?0:A.length,0!==I)?d.showPreview?!s&&F>r?(j.addClass("file-thumb-loading"),d._previewDefault(D,C),d._initFileActions(),d._updateFileDetails(o),void c(a+1)):(f.length&&void 0!==FileReader?(k.html(l.replace("{index}",a+1).replace("{files}",o)),j.addClass("file-thumb-loading"),i.onerror=function(a){d._errorHandler(a,E)},i.onload=function(b){d._previewFile(a,D,b,C,H),d._initFileActions()},i.onloadend=function(){y=m.replace("{index}",a+1).replace("{files}",o).replace("{percent}",50).replace("{name}",E),setTimeout(function(){k.html(y),d._updateFileDetails(o),c(a+1)},100),d._raise("fileloaded",[D,C,a,i])},i.onprogress=function(b){if(b.lengthComputable){var c=b.loaded/b.total*100,d=Math.ceil(c);y=m.replace("{index}",a+1).replace("{files}",o).replace("{percent}",d).replace("{name}",E),setTimeout(function(){k.html(y)},100)}},u=fa("text",p,ca.text),v=fa("image",p,ca.image),u(D.type,E)?i.readAsText(D,d.textEncoding):v(D.type,E)?i.readAsDataURL(D):i.readAsArrayBuffer(D)):(d._previewDefault(D,C),setTimeout(function(){c(a+1),d._updateFileDetails(o)},100),d._raise("fileloaded",[D,C,a,i])),void d.addToStack(D)):(d.addToStack(D),setTimeout(function(){c(a+1)},100),void d._raise("fileloaded",[D,C,a,i])):(y=d.msgInvalidFileExtension.replace("{name}",E).replace("{extensions}",M),void(d.isError=t(y,D,C,a)))},c(0),d._updateFileDetails(o,!1)},_updateFileDetails:function(a){var b=this,c=b.$element,d=b.getFileStack(),e=i(9)&&ka(c.val())||c[0].files[0]&&c[0].files[0].name||d.length&&d[0].name||"",f=b.slug(e),g=b.isUploadable?d.length:a,h=k.count(b.id)+g,j=g>1?b._getMsgSelected(h):f;b.isError?(b.$previewContainer.removeClass("file-thumb-loading"),b.$previewStatus.html(""),b.$captionContainer.find(".kv-caption-icon").hide()):b._showFileIcon(),b._setCaption(j,b.isError),b.$container.removeClass("file-input-new file-input-ajax-new"),1===arguments.length&&b._raise("fileselect",[a,f]),k.count(b.id)&&b._initPreviewActions()},_setThumbStatus:function(a,b){var c=this;if(c.showPreview){var d="indicator"+b,e=d+"Title",f="file-preview-"+b.toLowerCase(),g=a.find(".file-upload-indicator"),h=c.fileActionSettings;a.removeClass("file-preview-success file-preview-error file-preview-loading"),"Error"===b&&a.find(".kv-file-upload").attr("disabled",!0),"Success"===b&&(a.find(".file-drag-handle").remove(),g.css("margin-left",0)),g.html(h[d]),g.attr("title",h[e]),a.addClass(f)}},_setProgressCancelled:function(){var a=this;a._setProgress(100,a.$progress,a.msgCancelled)},_setProgress:function(a,b,c){var d=this,e=Math.min(a,100),f=e<100?d.progressTemplate:c?d.progressErrorTemplate:d.progressCompleteTemplate;b=b||d.$progress,da(f)||(b.html(f.replace(/\{percent}/g,e)),c&&b.find('[role="progressbar"]').html(c))},_setFileDropZoneTitle:function(){var a,b=this,c=b.$container.find(".file-drop-zone"),d=b.dropZoneTitle;b.isClickable&&(a=da(b.$element.attr("multiple"))?b.fileSingle:b.filePlural,d+=b.dropZoneClickTitle.replace("{files}",a)),c.find("."+b.dropZoneTitleClass).remove(),b.isUploadable&&b.showPreview&&0!==c.length&&!(b.getFileStack().length>0)&&b.dropZoneEnabled&&(0===c.find(".file-preview-frame").length&&da(b.defaultPreviewContent)&&c.prepend('<div class="'+b.dropZoneTitleClass+'">'+d+"</div>"),b.$container.removeClass("file-input-new"),p(b.$container,"file-input-ajax-new"))},_setAsyncUploadStatus:function(b,c,d){var e=this,f=0;e._setProgress(c,a("#"+b).find(".file-thumb-progress")),e.uploadStatus[b]=c,a.each(e.uploadStatus,function(a,b){f+=b}),e._setProgress(Math.ceil(f/d))},_validateMinCount:function(){var a=this,b=a.isUploadable?a.getFileStack().length:a.$element.get(0).files.length;return!(a.validateInitialCount&&a.minFileCount>0&&a._getFileCount(b-1)<a.minFileCount)||(a._noFilesError({}),!1)},_getFileCount:function(a){var b=this,c=0;return b.validateInitialCount&&!b.overwriteInitial&&(c=k.count(b.id),a+=c),a},_getFileName:function(a){return a&&a.name?this.slug(a.name):void 0},_getFileNames:function(a){var b=this;return b.filenames.filter(function(b){return a?void 0!==b:void 0!==b&&null!==b})},_setPreviewError:function(a,b,c){var d=this;b&&d.updateStack(b,c),d.removeFromPreviewOnError?a.remove():d._setThumbStatus(a,"Error")},_checkDimensions:function(a,b,c,d,e,f,g){var h,i,j,k,l=this,m="Small"===b?"min":"max",n=l[m+"Image"+f];!da(n)&&c.length&&(j=c[0],i="Width"===f?j.naturalWidth||j.width:j.naturalHeight||j.height,k="Small"===b?i>=n:i<=n,k||(h=l["msgImage"+f+b].replace("{name}",e).replace("{size}",n),l._showUploadError(h,g),l._setPreviewError(d,a,null)))},_validateImage:function(a,b,c,d){var e,f,h,i=this,k=i.$preview,l=k.find("#"+b),m=l.find("img");c=c||"Untitled",m.length&&j(m,"load",function(){f=l.width(),h=k.width(),f>h&&(m.css("width","100%"),l.css("width","97%")),e={ind:a,id:b},i._checkDimensions(a,"Small",m,l,c,"Width",e),i._checkDimensions(a,"Small",m,l,c,"Height",e),i.resizeImage||(i._checkDimensions(a,"Large",m,l,c,"Width",e),i._checkDimensions(a,"Large",m,l,c,"Height",e)),i._raise("fileimageloaded",[b]),i.loadedImages.push({ind:a,img:m,thumb:l,pid:b,typ:d}),i._validateAllImages(),g.revokeObjectURL(m.attr("src"))})},_validateAllImages:function(){var a,b,c,d,e,f,g,h=this,i={};if(h.loadedImages.length===h.totalImagesCount&&(h._raise("fileimagesloaded"),h.resizeImage)){for(g=h.isUploadable?h._showUploadError:h._showError,a=0;a<h.loadedImages.length;a++)b=h.loadedImages[a],c=b.img,d=b.thumb,e=b.pid,f=b.ind,i={id:e,index:f},h._getResizedImage(c[0],b.typ,e,f)||(g(h.msgImageResizeError,i,"fileimageresizeerror"),h._setPreviewError(d,f));h._raise("fileimagesresized")}},_getResizedImage:function(a,b,c,d){var e,f,g=this,h=a.naturalWidth,i=a.naturalHeight,j=1,k=g.maxImageWidth||h,l=g.maxImageHeight||i,m=h&&i,n=g.imageCanvas,o=g.imageCanvasContext;if(!m)return!1;if(h===k&&i===l)return!0;b=b||g.resizeDefaultImageType,e=h>k,f=i>l,j="width"===g.resizePreference?e?k/h:f?l/i:1:f?l/i:e?k/h:1,g._resetCanvas(),h*=j,i*=j,n.width=h,n.height=i;try{return o.drawImage(a,0,0,h,i),n.toBlob(function(a){g._raise("fileimageresized",[c,d]),g.filestack[d]=a},b,g.resizeQuality),!0}catch(p){return!1}},_initBrowse:function(a){var b=this;b.showBrowse?(b.$btnFile=a.find(".btn-file"),b.$btnFile.append(b.$element)):b.$element.hide()},_initCaption:function(){var a=this,b=a.initialCaption||"";return a.overwriteInitial||da(b)?(a.$caption.html(""),!1):(a._setCaption(b),!0)},_setCaption:function(b,c){var d,e,f,g,h=this,i=h.getFileStack();if(h.$caption.length){if(c)d=a("<div>"+h.msgValidationError+"</div>").text(),f=i.length,g=f?1===f&&i[0]?h._getFileNames()[0]:h._getMsgSelected(f):h._getMsgSelected(h.msgNo),e='<span class="'+h.msgValidationErrorClass+'">'+h.msgValidationErrorIcon+(da(b)?g:b)+"</span>";else{if(da(b))return;d=a("<div>"+b+"</div>").text(),e=h._getLayoutTemplate("fileIcon")+d}h.$caption.html(e),h.$caption.attr("title",d),h.$captionContainer.find(".file-caption-ellipsis").attr("title",d)}},_createContainer:function(){var b=this,c=a(document.createElement("div")).attr({"class":"file-input file-input-new"}).html(b._renderMain());return b.$element.before(c),b._initBrowse(c),b.theme&&c.addClass("theme-"+b.theme),c},_refreshContainer:function(){var a=this,b=a.$container;b.before(a.$element),b.html(a._renderMain()),a._initBrowse(b)},_renderMain:function(){var a=this,b=a.isUploadable&&a.dropZoneEnabled?" file-drop-zone":"file-drop-disabled",c=a.showClose?a._getLayoutTemplate("close"):"",d=a.showPreview?a._getLayoutTemplate("preview").replace(/\{class}/g,a.previewClass).replace(/\{dropClass}/g,b):"",e=a.isDisabled?a.captionClass+" file-caption-disabled":a.captionClass,f=a.captionTemplate.replace(/\{class}/g,e+" kv-fileinput-caption");return a.mainTemplate.replace(/\{class}/g,a.mainClass+(!a.showBrowse&&a.showCaption?" no-browse":"")).replace(/\{preview}/g,d).replace(/\{close}/g,c).replace(/\{caption}/g,f).replace(/\{upload}/g,a._renderButton("upload")).replace(/\{remove}/g,a._renderButton("remove")).replace(/\{cancel}/g,a._renderButton("cancel")).replace(/\{browse}/g,a._renderButton("browse"))},_renderButton:function(a){var b=this,c=b._getLayoutTemplate("btnDefault"),d=b[a+"Class"],e=b[a+"Title"],f=b[a+"Icon"],g=b[a+"Label"],h=b.isDisabled?" disabled":"",i="button";switch(a){case"remove":if(!b.showRemove)return"";break;case"cancel":if(!b.showCancel)return"";d+=" hide";break;case"upload":if(!b.showUpload)return"";b.isUploadable&&!b.isDisabled?c=b._getLayoutTemplate("btnLink").replace("{href}",b.uploadUrl):i="submit";break;case"browse":if(!b.showBrowse)return"";c=b._getLayoutTemplate("btnBrowse");break;default:return""}return d+="browse"===a?" btn-file":" fileinput-"+a+" fileinput-"+a+"-button",da(g)||(g=' <span class="'+b.buttonLabelClass+'">'+g+"</span>"),c.replace("{type}",i).replace("{css}",d).replace("{title}",e).replace("{status}",h).replace("{icon}",f).replace("{label}",g)},_renderThumbProgress:function(){return'<div class="file-thumb-progress hide">'+this.progressTemplate.replace(/\{percent}/g,"0")+"</div>"},_renderFileFooter:function(a,b,c,d){var e,f=this,g=f.fileActionSettings,h=g.showRemove,i=g.showDrag,j=g.showUpload,k=g.showZoom,l=f._getLayoutTemplate("footer"),m=d?g.indicatorError:g.indicatorNew,n=d?g.indicatorErrorTitle:g.indicatorNewTitle;return b=f._getSize(b),e=f.isUploadable?l.replace(/\{actions}/g,f._renderFileActions(j,h,k,i,!1,!1,!1)).replace(/\{caption}/g,a).replace(/\{size}/g,b).replace(/\{width}/g,c).replace(/\{progress}/g,f._renderThumbProgress()).replace(/\{indicator}/g,m).replace(/\{indicatorTitle}/g,n):l.replace(/\{actions}/g,f._renderFileActions(!1,!1,k,i,!1,!1,!1)).replace(/\{caption}/g,a).replace(/\{size}/g,b).replace(/\{width}/g,c).replace(/\{progress}/g,"").replace(/\{indicator}/g,m).replace(/\{indicatorTitle}/g,n),e=ia(e,f.previewThumbTags)},_renderFileActions:function(a,b,c,d,e,f,g,h){if(!(a||b||c||d))return"";var i,j=this,k=f===!1?"":' data-url="'+f+'"',l=g===!1?"":' data-key="'+g+'"',m="",n="",o="",p="",q=j._getLayoutTemplate("actions"),r=j.fileActionSettings,s=j.otherActionButtons.replace(/\{dataKey}/g,l),t=e?r.removeClass+" disabled":r.removeClass;return b&&(m=j._getLayoutTemplate("actionDelete").replace(/\{removeClass}/g,t).replace(/\{removeIcon}/g,r.removeIcon).replace(/\{removeTitle}/g,r.removeTitle).replace(/\{dataUrl}/g,k).replace(/\{dataKey}/g,l)),a&&(n=j._getLayoutTemplate("actionUpload").replace(/\{uploadClass}/g,r.uploadClass).replace(/\{uploadIcon}/g,r.uploadIcon).replace(/\{uploadTitle}/g,r.uploadTitle)),c&&(o=j._getLayoutTemplate("actionZoom").replace(/\{zoomClass}/g,r.zoomClass).replace(/\{zoomIcon}/g,r.zoomIcon).replace(/\{zoomTitle}/g,r.zoomTitle)),d&&h&&(i="drag-handle-init "+r.dragClass,p=j._getLayoutTemplate("actionDrag").replace(/\{dragClass}/g,i).replace(/\{dragTitle}/g,r.dragTitle).replace(/\{dragIcon}/g,r.dragIcon)),q.replace(/\{delete}/g,m).replace(/\{upload}/g,n).replace(/\{zoom}/g,o).replace(/\{drag}/g,p).replace(/\{other}/g,s)},_browse:function(a){var b=this;b._raise("filebrowse"),a&&a.isDefaultPrevented()||(b.isError&&!b.isUploadable&&b.clear(),b.$captionContainer.focus())},_change:function(b){var c=this,d=c.$element;if(!c.isUploadable&&da(d.val())&&c.fileInputCleared)return void(c.fileInputCleared=!1);c.fileInputCleared=!1;var e,f,g,h,i,j,l=arguments.length>1,m=c.isUploadable,n=0,o=l?b.originalEvent.dataTransfer.files:d.get(0).files,p=c.filestack.length,q=da(d.attr("multiple")),r=q&&p>0,s=0,t=function(b,d,e,f){var g=a.extend(!0,{},c._getOutData({},{},o),{id:e,index:f}),h={id:e,index:f,file:d,files:o};return c.isUploadable?c._showUploadError(b,g):c._showError(b,h)};if(c.reader=null,c._resetUpload(),c._hideFileIcon(),c.isUploadable&&c.$container.find(".file-drop-zone ."+c.dropZoneTitleClass).remove(),l)for(e=[];o[n];)h=o[n],h.type||h.size%4096!==0?e.push(h):s++,n++;else e=void 0===b.target.files?b.target&&b.target.value?[{name:b.target.value.replace(/^.+\\/,"")}]:[]:b.target.files;if(da(e)||0===e.length)return m||c.clear(),c._showFolderError(s),void c._raise("fileselectnone");if(c._resetErrors(),j=e.length,g=c._getFileCount(c.isUploadable?c.getFileStack().length+j:j),c.maxFileCount>0&&g>c.maxFileCount){if(!c.autoReplace||j>c.maxFileCount)return i=c.autoReplace&&j>c.maxFileCount?j:g,f=c.msgFilesTooMany.replace("{m}",c.maxFileCount).replace("{n}",i),c.isError=t(f,null,null,null),c.$captionContainer.find(".kv-caption-icon").hide(),c._setCaption("",!0),void c.$container.removeClass("file-input-new file-input-ajax-new");g>c.maxFileCount&&c._resetPreviewThumbs(m)}else!m||r?(c._resetPreviewThumbs(!1),r&&c.clearStack()):!m||0!==p||k.count(c.id)&&!c.overwriteInitial||c._resetPreviewThumbs(!0);c.isPreviewable?c._readFiles(e):c._updateFileDetails(1),c._showFolderError(s)},_abort:function(b){var c,d=this;return!(!d.ajaxAborted||"object"!=typeof d.ajaxAborted||void 0===d.ajaxAborted.message)&&(c=a.extend(!0,{},d._getOutData(),b),c.abortData=d.ajaxAborted.data||{},c.abortMessage=d.ajaxAborted.message,d.cancel(),d._setProgress(100,d.$progress,d.msgCancelled),d._showUploadError(d.ajaxAborted.message,c,"filecustomerror"),!0)},_resetFileStack:function(){var b=this,c=0,d=[],e=[];b._getThumbs().each(function(){var f=a(this),g=f.attr("data-fileindex"),h=b.filestack[g];g!==-1&&(void 0!==h?(d[c]=h,e[c]=b._getFileName(h),f.attr({id:b.previewInitId+"-"+c,"data-fileindex":c}),c++):f.attr({id:"uploaded-"+ga(),"data-fileindex":"-1"}))}),b.filestack=d,b.filenames=e},clearStack:function(){var a=this;return a.filestack=[],a.filenames=[],a.$element},updateStack:function(a,b){var c=this;return c.filestack[a]=b,c.filenames[a]=c._getFileName(b),c.$element},addToStack:function(a){var b=this;return b.filestack.push(a),b.filenames.push(b._getFileName(a)),b.$element},getFileStack:function(a){var b=this;return b.filestack.filter(function(b){return a?void 0!==b:void 0!==b&&null!==b})},lock:function(){var a=this;return a._resetErrors(),a.disable(),a.showRemove&&p(a.$container.find(".fileinput-remove"),"hide"),a.showCancel&&a.$container.find(".fileinput-cancel").removeClass("hide"),a._raise("filelock",[a.filestack,a._getExtraData()]),a.$element},unlock:function(a){var b=this;return void 0===a&&(a=!0),b.enable(),b.showCancel&&p(b.$container.find(".fileinput-cancel"),"hide"),b.showRemove&&b.$container.find(".fileinput-remove").removeClass("hide"),a&&b._resetFileStack(),b._raise("fileunlock",[b.filestack,b._getExtraData()]),b.$element},cancel:function(){var b,c=this,d=c.ajaxRequests,e=d.length;if(e>0)for(b=0;b<e;b+=1)c.cancelling=!0,d[b].abort();return c._setProgressCancelled(),c._getThumbs().each(function(){var b=a(this),d=b.attr("data-fileindex");b.removeClass("file-uploading"),void 0!==c.filestack[d]&&(b.find(".kv-file-upload").removeClass("disabled").removeAttr("disabled"),b.find(".kv-file-remove").removeClass("disabled").removeAttr("disabled")),c.unlock()}),c.$element},clear:function(){var b,c=this;return c.$btnUpload.removeAttr("disabled"),c._getThumbs().find("video,audio,img").each(function(){ja(a(this))}),c._resetUpload(),c.clearStack(),c._clearFileInput(),c._resetErrors(!0),c._raise("fileclear"),c._hasInitialPreview()?(c._showFileIcon(),c._resetPreview(),c._initPreviewActions(),c.$container.removeClass("file-input-new")):(c._getThumbs().each(function(){c._clearObjects(a(this))}),c.isUploadable&&(k.data[c.id]={}),c.$preview.html(""),b=!c.overwriteInitial&&c.initialCaption.length>0?c.initialCaption:"",c._setCaption(b),c.$caption.attr("title",""),p(c.$container,"file-input-new"),c._validateDefaultPreview()),0===c.$container.find(".file-preview-frame").length&&(c._initCaption()||c.$captionContainer.find(".kv-caption-icon").hide()),c._hideFileIcon(),c._raise("filecleared"),c.$captionContainer.focus(),c._setFileDropZoneTitle(),c.$element},reset:function(){var a=this;return a._resetPreview(),a.$container.find(".fileinput-filename").text(""),a._raise("filereset"),p(a.$container,"file-input-new"),(a.$preview.find(".file-preview-frame").length||a.isUploadable&&a.dropZoneEnabled)&&a.$container.removeClass("file-input-new"),a._setFileDropZoneTitle(),a.clearStack(),a.formdata={},a.$element},disable:function(){var a=this;return a.isDisabled=!0,a._raise("filedisabled"),a.$element.attr("disabled","disabled"),a.$container.find(".kv-fileinput-caption").addClass("file-caption-disabled"),a.$container.find(".btn-file, .fileinput-remove, .fileinput-upload, .file-preview-frame button").attr("disabled",!0),a._initDragDrop(),a.$element},enable:function(){var a=this;return a.isDisabled=!1,
  12. a._raise("fileenabled"),a.$element.removeAttr("disabled"),a.$container.find(".kv-fileinput-caption").removeClass("file-caption-disabled"),a.$container.find(".btn-file, .fileinput-remove, .fileinput-upload, .file-preview-frame button").removeAttr("disabled"),a._initDragDrop(),a.$element},upload:function(){var b,c,d,e=this,f=e.getFileStack().length,g={},h=!a.isEmptyObject(e._getExtraData());if(e.minFileCount>0&&e._getFileCount(f)<e.minFileCount)return void e._noFilesError(g);if(e.isUploadable&&!e.isDisabled&&(0!==f||h)){if(e._resetUpload(),e.$progress.removeClass("hide"),e.uploadCount=0,e.uploadStatus={},e.uploadLog=[],e.lock(),e._setProgress(2),0===f&&h)return void e._uploadExtraOnly();if(d=e.filestack.length,e.hasInitData=!1,!e.uploadAsync)return e._uploadBatch(),e.$element;for(c=e._getOutData(),e._raise("filebatchpreupload",[c]),e.fileBatchCompleted=!1,e.uploadCache={content:[],config:[],tags:[],append:!0},e.uploadAsyncCount=e.getFileStack().length,b=0;b<d;b++)e.uploadCache.content[b]=null,e.uploadCache.config[b]=null,e.uploadCache.tags[b]=null;for(b=0;b<d;b++)void 0!==e.filestack[b]&&e._uploadSingle(b,e.filestack,!0)}},destroy:function(){var a=this,c=a.$container;return c.find(".file-drop-zone").off(),a.$element.insertBefore(c).off(b).removeData(),c.off().remove(),a.$element},refresh:function(b){var c=this,d=c.$element;return b=b?a.extend(!0,{},c.options,b):c.options,c.destroy(),d.fileinput(b),d.val()&&d.trigger("change.fileinput"),d}},a.fn.fileinput=function(b){if(m()||i(9)){var c=Array.apply(null,arguments),d=[];switch(c.shift(),this.each(function(){var e,f=a(this),g=f.data("fileinput"),h="object"==typeof b&&b,i=h.theme||f.data("theme"),j={},k={},l=h.language||f.data("language")||"en";g||(i&&(k=a.fn.fileinputThemes[i]||{}),"en"===l||da(a.fn.fileinputLocales[l])||(j=a.fn.fileinputLocales[l]||{}),e=a.extend(!0,{},a.fn.fileinput.defaults,k,a.fn.fileinputLocales.en,j,h,f.data()),g=new oa(this,e),f.data("fileinput",g)),"string"==typeof b&&d.push(g[b].apply(g,c))}),d.length){case 0:return this;case 1:return d[0];default:return d}}},a.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:"",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,layoutTemplates:Y,previewTemplates:Z,previewZoomSettings:$,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"},allowedPreviewTypes:null,allowedPreviewMimeTypes:null,allowedFileTypes:null,allowedFileExtensions:null,defaultPreviewContent:null,customLayoutTags:{},customPreviewTags:{},previewSettings:ba,fileTypeSettings:ca,previewFileIcon:'<i class="glyphicon glyphicon-file"></i>',previewFileIconClass:"file-other-icon",previewFileIconSettings:{},previewFileExtSettings:{},buttonLabelClass:"hidden-xs",browseIcon:'<i class="glyphicon glyphicon-folder-open"></i>&nbsp;',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",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",previewFileType:"image",elCaptionContainer:null,elCaptionText:null,elPreviewContainer:null,elPreviewImage:null,elPreviewStatus:null,elErrorContainer:null,errorCloseButton:'<span class="close kv-error-close">&times;</span>',slugCallback:null,dropZoneEnabled:!0,dropZoneTitleClass:"file-drop-zone-title",fileActionSettings:{},otherActionButtons:"",textEncoding:"UTF-8",ajaxSettings:{},ajaxDeleteSettings:{},showAjaxErrorDetails:!0},a.fn.fileinputLocales.en={fileSingle:"file",filePlural:"files",browseLabel:"Browse &hellip;",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",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}".',msgInvalidFileType:'Invalid type for file "{name}". Only "{types}" files are supported.',msgInvalidFileExtension:'Invalid extension for file "{name}". Only "{extensions}" files are supported.',msgUploadAborted:"The file upload was aborted",msgValidationError:"Validation Error",msgLoading:"Loading file {index} of {files} &hellip;",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>",dropZoneTitle:"Drag & drop files here &hellip;",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"}},a.fn.fileinput.Constructor=oa,a(document).ready(function(){var b=a("input.file[type=file]");b.length&&b.fileinput()})});