/*! * @copyright Copyright © Kartik Visweswaran, Krajee.com, 2015 * @package bootstrap-fileinput * @version 4.1.7 * * File input styling for Bootstrap 3.0 * Built for Yii Framework 2.0 * Author: Kartik Visweswaran * Year: 2015 * For more Yii related demos visit http://demos.krajee.com */!function(e){"use strict";String.prototype.replaceAll=function(e,i){return this.split(e).join(i)};var i=function(e){var i,t=document.createElement("div");return t.innerHTML="",document.body.appendChild(t),i=1===t.getElementsByTagName("i").length,t.parentNode.removeChild(t),i},t=function(){return window.File&&window.FileReader},l=function(){var e=document.createElement("div");return!i(9)&&(void 0!==e.draggable||void 0!==e.ondragstart&&void 0!==e.ondrop)},a=function(){return t&&window.FormData},n=function(e,i){e.removeClass(i).addClass(i)},r='style="width:{width};height:{height};"',o=' \n \n \n \n \n \n',s='
\n \n
',d={removeIcon:'',removeClass:"btn btn-xs btn-default",removeTitle:"Remove file",uploadIcon:'',uploadClass:"btn btn-xs btn-default",uploadTitle:"Upload file",indicatorNew:'',indicatorSuccess:'',indicatorError:'',indicatorLoading:'',indicatorNewTitle:"Not uploaded yet",indicatorSuccessTitle:"Uploaded",indicatorErrorTitle:"Upload Error",indicatorLoadingTitle:"Uploading ..."},c='{preview}\n
\n
\n {caption}\n
\n {remove}\n {cancel}\n {upload}\n {browse}\n
\n
',p='{preview}\n
\n{remove}\n{cancel}\n{upload}\n{browse}\n',f='
\n
×
\n
\n
\n
\n
\n
\n
\n
',u='',v='
\n \n
\n
',h='',m='
\n
\n {percent}%\n
\n
',g='',w='
\n \n
{indicator}
\n
\n
',b='\n',C='\n',x='
\n {content}\n {footer}\n
\n',y='
\n \n '+s+"\n \n {footer}\n
",A='
\n {caption}\n {footer}\n
\n",$='
\n
\n {data}\n
\n {footer}\n
",k='
\n \n {footer}\n
\n",T='
\n \n {footer}\n
",E='
\n \n'+o+" "+s+"\n \n {footer}\n
\n",F='
\n \n \n'+o+" "+s+"\n \n {footer}\n
",P='
\n "+s+"\n {footer}\n
",I={main1:c,main2:p,preview:f,icon:u,caption:v,modal:h,progress:m,footer:g,actions:w,actionDelete:b,actionUpload:C},D={generic:x,html:y,image:A,text:$,video:k,audio:T,flash:E,object:F,other:P},S=["image","html","text","video","audio","flash","object"],U={image:{width:"auto",height:"160px"},html:{width:"213px",height:"160px"},text:{width:"160px",height:"160px"},video:{width:"213px",height:"160px"},audio:{width:"213px",height:"80px"},flash:{width:"213px",height:"160px"},object:{width:"160px",height:"160px"},other:{width:"160px",height:"160px"}},j={image:function(e,i){return void 0!==e?e.match("image.*"):i.match(/\.(gif|png|jpe?g)$/i)},html:function(e,i){return void 0!==e?"text/html"===e:i.match(/\.(htm|html)$/i)},text:function(e,i){return void 0!==e&&e.match("text.*")||i.match(/\.(txt|md|csv|nfo|php|ini)$/i)},video:function(e,i){return void 0!==e&&e.match(/\.video\/(ogg|mp4|webm)$/i)||i.match(/\.(og?|mp4|webm)$/i)},audio:function(e,i){return void 0!==e&&e.match(/\.audio\/(ogg|mp3|wav)$/i)||i.match(/\.(ogg|mp3|wav)$/i)},flash:function(e,i){return void 0!==e&&"application/x-shockwave-flash"===e||i.match(/\.(swf)$/i)},object:function(){return!0},other:function(){return!0}},L=function(i,t){return null===i||void 0===i||0===i.length||t&&""===e.trim(i)},R=function(e){return Array.isArray(e)||"[object Array]"===Object.prototype.toString.call(e)},O=function(e,i){return"object"==typeof i&&e in i},z=function(i,t,l){return L(i)||L(i[t])?l:e(i[t])},M=function(){return Math.round((new Date).getTime()+100*Math.random())},Z=function(e){return String(e).replaceAll("&","&").replaceAll('"',""").replaceAll("'","'").replaceAll("<","<").replaceAll(">",">")},B=function(i,t){var l=i;return e.each(t,function(e,i){"function"==typeof i&&(i=i()),l=l.replaceAll(e,i)}),l},N=window.URL||window.webkitURL,_=function(l,a){this.$element=e(l),t()||i(9)?(this.init(a),this.listen()):this.$element.removeClass("file-loading")};_.prototype={constructor:_,init:function(t){var r,o=this,s=o.$element;o.locked=!1,e.each(t,function(e,i){o[e]=i}),L(o.allowedPreviewTypes)&&(o.allowedPreviewTypes=S),o.uploadFileAttr=L(s.attr("name"))?"file_data":s.attr("name"),o.reader=null,o.formdata={},o.isIE9=i(9),o.isIE10=i(10),o.filestack=[],o.ajaxRequests=[],o.isError=!1,o.dropZoneEnabled=l()&&o.dropZoneEnabled,o.isDisabled=o.$element.attr("disabled")||o.$element.attr("readonly"),o.isUploadable=a&&!L(o.uploadUrl),o.slug="function"==typeof t.slugCallback?t.slugCallback:o.slugDefault,o.mainTemplate=o.getLayoutTemplate(o.showCaption?"main1":"main2"),o.captionTemplate=o.getLayoutTemplate("caption"),o.previewGenericTemplate=o.getPreviewTemplate("generic"),L(o.$element.attr("id"))&&o.$element.attr("id",M()),void 0===o.$container?o.$container=o.createContainer():o.refreshContainer(),o.$progress=o.$container.find(".kv-upload-progress"),o.$btnUpload=o.$container.find(".kv-fileinput-upload"),o.$captionContainer=z(t,"elCaptionContainer",o.$container.find(".file-caption")),o.$caption=z(t,"elCaptionText",o.$container.find(".file-caption-name")),o.$previewContainer=z(t,"elPreviewContainer",o.$container.find(".file-preview")),o.$preview=z(t,"elPreviewImage",o.$container.find(".file-preview-thumbnails")),o.$previewStatus=z(t,"elPreviewStatus",o.$container.find(".file-preview-status")),o.$errorContainer=z(t,"elErrorContainer",o.$previewContainer.find(".kv-fileinput-error")),L(o.msgErrorClass)||n(o.$errorContainer,o.msgErrorClass),o.$errorContainer.hide(),o.initialPreviewContent="",r=o.initialPreview,o.initialPreviewCount=R(r)?r.length:r.length>0?r.split(o.initialPreviewDelimiter).length:0,o.fileActionSettings=e.extend(d,t.fileActionSettings),o.previewInitId="preview-"+M(),o.initPreview(),o.initPreviewDeletes(),o.original={preview:o.$preview.html(),caption:o.$caption.html()},o.options=t,o.setFileDropZoneTitle(),o.uploadCount=0,o.uploadPercent=0,o.$element.removeClass("file-loading"),o.setEllipsis()},raise:function(e,i){var t=this;void 0!==i?t.$element.trigger(e,i):t.$element.trigger(e)},getLayoutTemplate:function(e){var i=this,t=O(e,i.layoutTemplates)?i.layoutTemplates[e]:I[e];return L(i.customLayoutTags)?t:B(t,i.customLayoutTags)},getPreviewTemplate:function(e){var i=this,t=O(e,i.previewTemplates)?i.previewTemplates[e]:D[e];return L(i.customPreviewTags)?t:B(t,i.customPreviewTags)},getOutData:function(e,i,t){var l=this;return e=e||{},i=i||{},t=t||l.filestack,{form:l.formdata,files:t,extra:l.getExtraData(),response:i,reader:l.reader,jqXHR:e}},setEllipsis:function(){var e=this,i=e.$captionContainer,t=e.$caption,l=t.clone().css("height","auto").hide();i.parent().before(l),i.removeClass("kv-has-ellipsis"),l.outerWidth()>t.outerWidth()&&i.addClass("kv-has-ellipsis"),l.remove()},listen:function(){var i=this,t=i.$element,l=i.$captionContainer,a=i.$btnFile;t.on("change",e.proxy(i.change,i)),e(window).on("resize",function(){i.setEllipsis()}),a.off("click").on("click",function(){i.raise("filebrowse"),i.isError&&!i.isUploadable&&i.clear(!0),l.focus()}),t.closest("form").off("reset").on("reset",e.proxy(i.reset,i)),i.$container.off("click").on("click",".fileinput-remove:not([disabled])",e.proxy(i.clear,i)).on("click",".fileinput-cancel",e.proxy(i.cancel,i)),i.isUploadable&&i.dropZoneEnabled&&i.showPreview&&i.initDragDrop(),i.isUploadable&&i.$container.find(".kv-fileinput-upload").off("click").on("click",function(t){i.isUploadable&&(t.preventDefault(),!e(this).hasClass("disabled")&&L(e(this).attr("disabled"))&&i.upload())})},setProgress:function(e){var i=this,t=i.getLayoutTemplate("progress"),l=Math.min(e,100);i.$progress.html(t.replaceAll("{percent}",l))},upload:function(){var i,t,l,a=this,n=a.getFileStack().length;if(a.isUploadable&&!a.isDisabled&&0!==n){if(a.resetUpload(),a.$progress.removeClass("hide"),a.uploadCount=0,a.uploadPercent=0,a.lock(),a.setProgress(0),l=a.filestack.length,(a.uploadAsync||1===n)&&a.showPreview){for(t=a.getOutData(),a.raise("filebatchpreupload",[t]),i=0;l>i;i+=1)void 0!==a.filestack[i]&&a.uploadSingle(i,a.filestack,!0);return void setTimeout(function(){e(document).off(".kvfileinput").on("ajaxStop.kvfileinput",function(){a.locked&&(a.setProgress(100),a.$preview.find("file-preview-frame").removeClass("file-loading"),a.unlock(),a.clearFileInput(),a.raise("filebatchuploadcomplete",[a.filestack,a.getExtraData()]))})},100)}a.uploadBatch()}},lock:function(){var e=this;e.resetErrors(),e.disable(),e.showRemove&&n(e.$container.find(".fileinput-remove"),"hide"),e.showCancel&&e.$container.find(".fileinput-cancel").removeClass("hide"),e.locked=!0,e.raise("filelock",[e.filestack,e.getExtraData()])},unlock:function(){var e=this;e.enable(),e.showCancel&&n(e.$container.find(".fileinput-cancel"),"hide"),e.showRemove&&e.$container.find(".fileinput-remove").removeClass("hide"),e.resetFileStack(),e.locked=!1,e.raise("fileunlock",[e.filestack,e.getExtraData()])},resetFileStack:function(){var i=this,t=0,l=[];i.$preview.find(".file-preview-frame").each(function(){var a=e(this),n=a.attr("data-fileindex"),r=i.filestack[n];void 0!==r?(l[t]=r,a.attr({id:i.previewInitId+"-"+t,"data-fileindex":t}),t+=1):a.attr({id:a.attr("id")+"-1","data-fileindex":"-1"})}),i.filestack=l},refresh:function(i){var t,l=this,a=l.$element,n=arguments.length?e.extend(l.options,i):l.options;a.off(),l.init(n),t=l.$container.find(".file-drop-zone"),t.off("dragenter dragover drop"),e(document).off("dragenter dragover drop"),l.listen(),l.setFileDropZoneTitle()},initDragDrop:function(){var i=this,t=i.$container.find(".file-drop-zone");t.off("dragenter dragover drop"),e(document).off("dragenter dragover drop"),t.on("dragenter dragover",function(t){t.stopPropagation(),t.preventDefault(),i.isDisabled||n(e(this),"highlighted")}),t.on("dragleave",function(t){t.stopPropagation(),t.preventDefault(),i.isDisabled||e(this).removeClass("highlighted")}),t.on("drop",function(t){t.preventDefault(),i.isDisabled||(i.change(t,"dragdrop"),e(this).removeClass("highlighted"))}),e(document).on("dragenter dragover drop",function(e){e.stopPropagation(),e.preventDefault()})},setFileDropZoneTitle:function(){var e=this,i=e.$container.find(".file-drop-zone");i.find("."+e.dropZoneTitleClass).remove(),e.isUploadable&&e.showPreview&&0!==i.length&&!(e.getFileStack().length>0)&&e.dropZoneEnabled&&(0===i.find(".file-preview-frame").length&&i.prepend('
'+e.dropZoneTitle+"
"),e.$container.removeClass("file-input-new"),n(e.$container,"file-input-ajax-new"))},initFileActions:function(){var i=this;i.$preview.find(".kv-file-remove").each(function(){var t,l,a=e(this),n=a.closest(".file-preview-frame"),r=n.attr("data-fileindex");a.off("click").on("click",function(){n.fadeOut("slow",function(){i.filestack[r]=void 0,i.clearObjects(n),n.remove();var e=i.getFileStack(),a=e.length,o=i.$container.find(".file-preview-initial").length;0===a&&0===o?(i.original.preview="",i.reset()):(t=i.initialPreviewCount+a,l=t>1?i.msgSelected.replaceAll("{n}",t):e[0].name,i.setCaption(l))})})}),i.$preview.find(".kv-file-upload").each(function(){var t=e(this);t.off("click").on("click",function(){var e=t.closest(".file-preview-frame"),l=e.attr("data-fileindex");i.uploadSingle(l,i.filestack)})})},renderInitFileFooter:function(e){if(0===this.initialPreviewConfig.length||L(this.initialPreviewConfig[e]))return"";var i=this,t=i.getLayoutTemplate("footer"),l=i.initialPreviewConfig[e],a=O("caption",l)?l.caption:"",n=O("width",l)?l.width:"auto",r=O("url",l)?l.url:!1,o=O("key",l)?l.key:null,s=r===!1,d=i.initialPreviewShowDelete?i.renderFileActions(!1,!0,s,r,o):"",c=t.replaceAll("{actions}",d);return c.replaceAll("{caption}",a).replaceAll("{width}",n).replaceAll("{indicator}","").replaceAll("{indicatorTitle}","")},renderFileFooter:function(e,i){var t,l=this,a=l.fileActionSettings,n=l.getLayoutTemplate("footer");return l.isUploadable?(t=n.replaceAll("{actions}",l.renderFileActions(!0,!0,!1,!1,!1)),t.replaceAll("{caption}",e).replaceAll("{width}",i).replaceAll("{indicator}",a.indicatorNew).replaceAll("{indicatorTitle}",a.indicatorNewTitle)):n.replaceAll("{actions}","").replaceAll("{caption}",e).replaceAll("{width}",i).replaceAll("{indicator}","").replaceAll("{indicatorTitle}","")},renderFileActions:function(e,i,t,l,a){if(!e&&!i)return"";var n=this,r=l===!1?"":' data-url="'+l+'"',o=a===!1?"":' data-key="'+a+'"',s=n.getLayoutTemplate("actionDelete"),d="",c=n.getLayoutTemplate("actions"),p=n.otherActionButtons.replaceAll("{dataKey}",o),f=n.fileActionSettings,u=t?f.removeClass+" disabled":f.removeClass;return s=s.replaceAll("{removeClass}",u).replaceAll("{removeIcon}",f.removeIcon).replaceAll("{removeTitle}",f.removeTitle).replaceAll("{dataUrl}",r).replaceAll("{dataKey}",o),e&&(d=n.getLayoutTemplate("actionUpload").replaceAll("{uploadClass}",f.uploadClass).replaceAll("{uploadIcon}",f.uploadIcon).replaceAll("{uploadTitle}",f.uploadTitle)),c.replaceAll("{delete}",s).replaceAll("{upload}",d).replaceAll("{other}",p)},getInitialPreview:function(e,i,t){var l=this,a="init_"+t,n=l.previewInitId+"-"+a,r=l.renderInitFileFooter(t,!1);return e.replaceAll("{previewId}",n).replaceAll("{frameClass}"," file-preview-initial").replaceAll("{fileindex}",a).replaceAll("{content}",i).replaceAll("{footer}",r)},initPreview:function(){var e,i,t=this,l="",a=t.initialPreview,n=t.initialPreviewCount,r=t.initialCaption.length,o=r>0?t.initialCaption:t.msgSelected.replaceAll("{n}",n);if(R(a)&&n>0){for(e=0;n>e;e+=1)l+=t.getInitialPreview(t.previewGenericTemplate,a[e],e);n>1&&0===r&&(o=t.msgSelected.replaceAll("{n}",n))}else{if(!(n>0))return void(r>0&&t.setCaption(o));for(i=a.split(t.initialPreviewDelimiter),e=0;n>e;e+=1)l+=t.getInitialPreview(t.previewGenericTemplate,i[e],e);n>1&&0===r&&(o=t.msgSelected.replaceAll("{n}",n))}t.initialPreviewContent=l,t.$preview.html(l),t.setCaption(o),t.$container.removeClass("file-input-new")},initPreviewDeletes:function(){var i=this,t=function(){0===i.$preview.find(".kv-file-remove").length&&i.reset()};i.$preview.find(".kv-file-remove").each(function(){var l,a=e(this),r=a.closest(".file-preview-frame"),o=a.attr("data-url"),s=a.attr("data-key");void 0!==o&&void 0!==s&&a.off("click").on("click",function(){e.ajax({url:o,type:"POST",dataType:"json",data:{key:s},beforeSend:function(e){n(r,"file-uploading"),n(a,"disabled"),i.raise("filepredelete",[s,e])},success:function(n,o,d){void 0===n.error?i.raise("filedeleted",[s,d]):(i.showError(n.error,null,a.attr("id"),s,"filedeleteerror",d),t()),r.removeClass("file-uploading").addClass("file-deleted"),r.fadeOut("slow",function(){i.clearObjects(r),r.remove(),l=e(document.createElement("div")).html(i.original.preview),l.find(".file-preview-frame").each(function(){var i=e(this);i.find(".kv-file-remove").attr("data-key")==s&&i.remove()}),i.initialPreviewContent=l.html(),i.initialPreviewCount>0&&(i.initialPreviewCount-=1);var a=i.initialCaption;0===i.initialCaption.length&&(a=i.msgSelected.replaceAll("{n}",i.initialPreviewCount)),i.original.preview=l.html(),i.setCaption(a),i.original.caption=i.$caption.html(),l.remove(),t()})},error:function(e,l,n){i.showError(n,null,a.attr("id"),s,"filedeleteerror",e),r.removeClass("file-uploading"),t()}})})})},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,l,a=this,n=a.$element;L(n.val())||(a.isIE9||a.isIE10?(i=n.closest("form"),t=e(document.createElement("form")),l=e(document.createElement("div")),n.before(l),i.length?i.after(t):l.after(t),t.append(n).trigger("reset"),l.before(n).remove(),t.remove()):n.val(""))},resetUpload:function(){var e=this;e.uploadCount=0,e.uploadPercent=0,e.$btnUpload.removeAttr("disabled"),e.setProgress(0),n(e.$progress,"hide"),e.resetErrors(!1),e.ajaxRequests=[]},cancel:function(){var i,t=this,l=t.ajaxRequests,a=l.length;if(a>0)for(i=0;a>i;i+=1)l[i].abort();t.$preview.find(".file-preview-frame").each(function(){var i=e(this),l=i.attr("data-fileindex");i.removeClass("file-uploading"),void 0!==t.filestack[l]&&(i.find(".kv-file-upload").removeClass("disabled").removeAttr("disabled"),i.find(".kv-file-remove").removeClass("disabled").removeAttr("disabled")),t.unlock()}),t.locked=!1},clear:function(i){var t,l=this;!l.isIE9&&l.reader instanceof FileReader&&l.reader.abort(),l.$btnUpload.removeAttr("disabled"),l.resetUpload(),l.filestack=[],l.clearFileInput(),l.resetErrors(!0),i!==!0&&(l.raise("change"),l.raise("fileclear")),l.overwriteInitial&&(l.initialPreviewCount=0,l.initialPreviewContent=""),!l.overwriteInitial&&l.initialPreviewContent.length>0?(l.showFileIcon(),l.$preview.html(l.original.preview),l.$caption.html(l.original.caption),l.setEllipsis(),l.initPreviewDeletes(),l.$container.removeClass("file-input-new")):(l.$preview.find(".file-preview-frame").each(function(){l.clearObjects(e(this))}),l.$preview.html(""),t=!l.overwriteInitial&&l.initialCaption.length>0?l.original.caption:"",l.$caption.html(t),l.setEllipsis(),l.$caption.attr("title",""),n(l.$container,"file-input-new")),0===l.$container.find(".file-preview-frame").length&&(l.initialCaption="",l.original.caption="",l.$caption.html(""),l.setEllipsis(),l.$captionContainer.find(".kv-caption-icon").hide()),l.hideFileIcon(),l.raise("filecleared"),l.$captionContainer.focus(),l.setFileDropZoneTitle()},reset:function(){var e=this;e.clear(!0),e.$preview.html(e.original.preview),e.$caption.html(e.original.caption),e.setEllipsis(),e.$container.find(".fileinput-filename").text(""),e.raise("filereset"),e.initialPreview.length>0&&e.$container.removeClass("file-input-new"),e.setFileDropZoneTitle(),e.isUploadable&&e.resetUpload(),e.filestack=[],e.formdata={}},disable:function(){var e=this;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, .kv-fileinput-upload").attr("disabled",!0),e.initDragDrop()},enable:function(){var e=this;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, .kv-fileinput-upload").removeAttr("disabled"),e.initDragDrop()},getExtraData:function(){var e=this,i=e.uploadExtraData;return"function"==typeof e.uploadExtraData&&(i=e.uploadExtraData()),i},uploadExtra:function(){var i=this,t=i.getExtraData();0!==t.length&&e.each(t,function(e,t){i.formdata.append(e,t)})},initXhr:function(e,i){var t=this;return e.upload&&e.upload.addEventListener("progress",function(e){var l=0,a=e.loaded||e.position,n=e.total;e.lengthComputable&&(l=Math.ceil(a/n*i)),t.uploadPercent=Math.max(l,t.uploadPercent),t.setProgress(t.uploadPercent)},!1),e},ajaxSubmit:function(i,t,l,a){var n=this;n.uploadExtra(),n.ajaxRequests.push(e.ajax({xhr:function(){var i=e.ajaxSettings.xhr();return n.initXhr(i,98)},url:n.uploadUrl,type:"POST",dataType:"json",data:n.formdata,cache:!1,processData:!1,contentType:!1,beforeSend:i,success:t,complete:l,error:a}))},uploadSingle:function(i,t,l){var a,r,o,s,d,c,p,f,u,v,h=this,m=h.getFileStack().length,g=new FormData,w=h.previewInitId+"-"+i,b=e("#"+w),C=b.find(".kv-file-upload"),x=b.find(".kv-file-remove"),y=b.find(".file-upload-indicator"),A=h.fileActionSettings,$=h.filestack.length>0||!e.isEmptyObject(h.uploadExtraData);h.formdata=g,0!==m&&$&&!C.hasClass("disabled")&&(l=l||!1,s=function(e,i){y.html(A[e]),y.attr("title",A[i])},d=function(){!l||0===m||h.uploadPercent>=100||(h.uploadCount+=1,o=80+Math.ceil(20*h.uploadCount/m),h.uploadPercent=Math.max(o,h.uploadPercent),h.setProgress(h.uploadPercent),h.initPreviewDeletes())},c=function(){C.removeAttr("disabled"),x.removeAttr("disabled"),b.removeClass("file-uploading")},p=function(e){a=h.getOutData(e),s("indicatorLoading","indicatorLoadingTitle"),n(b,"file-uploading"),C.attr("disabled",!0),x.attr("disabled",!0),l||h.lock(),h.raise("filepreupload",[a,w,i])},f=function(e,t,l){a=h.getOutData(l,e),setTimeout(function(){void 0===e.error?(s("indicatorSuccess","indicatorSuccessTitle"),C.hide(),x.hide(),h.filestack[i]=void 0,h.raise("fileuploaded",[a,w,i])):(s("indicatorError","indicatorErrorTitle"),h.showUploadError(e.error,a,w,i))},100)},u=function(){setTimeout(function(){d(),c()},100),l||h.unlock()},v=function(e,n,o){s("indicatorError","indicatorErrorTitle"),a=h.getOutData(e),l?(r=t[i].name,h.showUploadError(""+r+": "+o,a,w,i)):h.showUploadError(o,a,w,i)},g.append(h.uploadFileAttr,t[i]),g.append("file_id",i),h.ajaxSubmit(p,f,u,v))},uploadBatch:function(){var i,t,l,a,r,o,s,d,c=this,p=c.filestack,f=p.length,u=c.filestack.length>0||!e.isEmptyObject(c.uploadExtraData);c.formdata=new FormData,0!==f&&u&&(i=c.fileActionSettings,t=function(t,l,a){var n=e("#"+c.previewInitId+"-"+t).find(".file-upload-indicator");n.html(i[l]),n.attr("title",i[a])},a=function(i){var t=e("#"+c.previewInitId+"-"+i),l=t.find(".kv-file-upload"),a=t.find(".kv-file-delete");t.removeClass("file-uploading"),l.removeAttr("disabled"),a.removeAttr("disabled")},l=function(){e.each(p,function(e){c.filestack[e]=void 0}),c.clearFileInput()},r=function(i){c.lock();var t=c.getOutData(i);c.showPreview&&(c.$preview.find(".file-preview-frame").each(function(){var i=e(this),t=i.find(".kv-file-upload"),l=i.find(".kv-file-remove");n(i,"file-uploading"),t.attr("disabled",!0),l.attr("disabled",!0)}),c.raise("filebatchpreupload",[t]))},o=function(i,n,r){var o=c.getOutData(r,i),s=L(i.errorkeys)?[]:i.errorkeys;void 0===i.error||L(i.error)?(c.raise("filebatchuploadsuccess",[o]),l(),c.showPreview?(c.$preview.find(".kv-file-upload").hide(),c.$preview.find(".kv-file-remove").hide(),c.$preview.find(".file-preview-frame").each(function(){var i=e(this),l=i.attr("data-fileindex");t(l,"indicatorSuccess","indicatorSuccessTitle"),a(l)})):c.reset()):(c.$preview.find(".file-preview-frame").each(function(){var i=e(this),l=parseInt(i.attr("data-fileindex"),10);return a(l),0===s.length?void t(l,"indicatorError","indicatorErrorTitle"):void(-1!==e.inArray(l,s)?t(l,"indicatorError","indicatorErrorTitle"):(i.find(".kv-file-upload").hide(),i.find(".kv-file-remove").hide(),t(l,"indicatorSuccess","indicatorSuccessTitle"),c.filestack[l]=void 0))}),c.showUploadError(i.error,o,null,null,"filebatchuploaderror"))},s=function(){c.setProgress(100),c.unlock(),c.raise("filebatchuploadcomplete",[c.filestack,c.getExtraData()]),c.clearFileInput()},d=function(i,l,a){var n=c.getOutData(i);c.showUploadError(a,n,null,null,"filebatchuploaderror"),c.uploadFileCount=f-1,c.$preview.find(".file-preview-frame").each(function(){var i=e(this),l=i.attr("data-fileindex");i.removeClass("file-uploading"),void 0!==c.filestack[l]&&t(l,"indicatorError","indicatorErrorTitle")}),c.$preview.find(".file-preview-frame").removeClass("file-uploading"),c.$preview.find(".file-preview-frame kv-file-upload").removeAttr("disabled"),c.$preview.find(".file-preview-frame kv-file-delete").removeAttr("disabled")},e.each(p,function(e,i){L(p[e])||c.formdata.append(c.uploadFileAttr,i)}),c.ajaxSubmit(r,o,s,d))},hideFileIcon:function(){this.overwriteInitial&&this.$captionContainer.find(".kv-caption-icon").hide()},showFileIcon:function(){this.$captionContainer.find(".kv-caption-icon").show()},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()},showUploadError:function(e,i,t,l,a){var r=this,o=r.$errorContainer;return a=a||"fileuploaderror",0===o.find("ul").length?o.html('"):o.find("ul").append("
  • "+e+"
  • "),o.fadeIn(800),r.raise(a,[i,t,l,r.reader]),n(r.$container,"has-error"),!0},showError:function(e,i,t,l,a,r){var o=this,s=o.$errorContainer;return a=a||"fileerror",r=r||{},s.html(e),s.fadeIn(800),o.raise(a,[i,t,l,o.reader,r]),o.isUploadable||o.clearFileInput(),n(o.$container,"has-error"),o.$btnUpload.attr("disabled",!0),!0},errorHandler:function(e,i){var t=this,l=e.target.error;switch(l.code){case l.NOT_FOUND_ERR:t.addError(t.msgFileNotFound.replaceAll("{name}",i));break;case l.SECURITY_ERR:t.addError(t.msgFileSecured.replaceAll("{name}",i));break;case l.NOT_READABLE_ERR:t.addError(t.msgFileNotReadable.replaceAll("{name}",i));break;case l.ABORT_ERR:t.addError(t.msgFilePreviewAborted.replaceAll("{name}",i));break;default:t.addError(t.msgFilePreviewError.replaceAll("{name}",i))}},parseFileType:function(e){var i,t,l,a,n=this;for(a=0;a=0,w=L(f)||!L(f)&&O(e.type,f),b=s.renderFileFooter(c,v.width),C="",x=t.slice(t.lastIndexOf("-")+1);g&&w?("text"===d?(n=Z(i.target.result),N.revokeObjectURL(l),n.length>h&&(r="text-"+M(),o=.75*window.innerHeight,C=s.getLayoutTemplate("modal").replaceAll("{id}",r).replaceAll("{title}",c).replaceAll("{height}",o).replaceAll("{body}",n),m=m.replaceAll("{title}",c).replaceAll("{dialog}","$('#"+r+"').modal('show')"),n=n.substring(0,h-1)+m),a=u.replaceAll("{previewId}",t).replaceAll("{caption}",c).replaceAll("{frameClass}","").replaceAll("{type}",e.type).replaceAll("{width}",v.width).replaceAll("{height}",v.height).replaceAll("{data}",n).replaceAll("{footer}",b).replaceAll("{fileindex}",x)+C):a=u.replaceAll("{previewId}",t).replaceAll("{caption}",c).replaceAll("{frameClass}","").replaceAll("{type}",e.type).replaceAll("{data}",l).replaceAll("{width}",v.width).replaceAll("{height}",v.height).replaceAll("{footer}",b).replaceAll("{fileindex}",x),s.$preview.append("\n"+a),s.autoSizeImage(t)):s.previewDefault(e,t)}},slugDefault:function(e){return L(e)?"":e.split(/(\\|\/)/g).pop().replace(/[^\w\-.\\\/ ]+/g,"")},getFileStack:function(){var e=this;return e.filestack.filter(function(e){return void 0!==e})},readFiles:function(e){function i(h){if(L(l.attr("multiple"))&&(p=1),h>=p)return r.removeClass("loading"),void o.html("");var m,g,w,b,C,x,y=u+h,A=c+"-"+y,$=e[h],k=t.slug($.name),T=($.size||0)/1e3,E="",F=N.createObjectURL($),P=0,I=t.allowedFileTypes,D=L(I)?"":I.join(", "),S=t.allowedFileExtensions,U=L(S)?"":S.join(", ");if(L(S)||(E=new RegExp("\\.("+S.join("|")+")$","i")),T=T.toFixed(2),t.maxFileSize>0&&T>t.maxFileSize)return b=t.msgSizeTooLarge.replaceAll("{name}",k).replaceAll("{size}",T).replaceAll("{maxSize}",t.maxFileSize),void(t.isError=v(b,$,A,h));if(!L(I)&&R(I)){for(w=0;w0&&void 0!==FileReader?(o.html(s.replaceAll("{index}",h+1).replaceAll("{files}",p)),r.addClass("loading"),n.onerror=function(e){t.errorHandler(e,k)},n.onload=function(e){t.previewFile($,e,A,F),t.initFileActions()},n.onloadend=function(){b=d.replaceAll("{index}",h+1).replaceAll("{files}",p).replaceAll("{percent}",50).replaceAll("{name}",k),setTimeout(function(){o.html(b),N.revokeObjectURL(F) },100),setTimeout(function(){i(h+1),t.updateFileDetails(p)},100),t.raise("fileloaded",[$,A,h,n])},n.onprogress=function(e){if(e.lengthComputable){var i=e.loaded/e.total*100,t=Math.ceil(i);b=d.replaceAll("{index}",h+1).replaceAll("{files}",p).replaceAll("{percent}",t).replaceAll("{name}",k),setTimeout(function(){o.html(b)},100)}},m=O("text",f)?f.text:j.text,m($.type,k)?n.readAsText($,t.textEncoding):n.readAsArrayBuffer($)):(t.previewDefault($,A),setTimeout(function(){i(h+1),t.updateFileDetails(p)},100),t.raise("fileloaded",[$,A,h,n])),void t.filestack.push($)):(t.filestack.push($),setTimeout(i(h+1),100),void t.raise("fileloaded",[$,A,h,n])):(b=t.msgInvalidFileExtension.replaceAll("{name}",k).replaceAll("{extensions}",U),void(t.isError=v(b,$,A,h)))}this.reader=new FileReader;var t=this,l=t.$element,a=t.$preview,n=t.reader,r=t.$previewContainer,o=t.$previewStatus,s=t.msgLoading,d=t.msgProgress,c=t.previewInitId,p=e.length,f=t.fileTypeSettings,u=t.filestack.length,v=function(i,l,a,n){t.previewDefault(l,a,!0);var r=t.getOutData({},{},e);return t.isUploadable?t.showUploadError(i,r,a,n):t.showError(i,l,a,n)};i(0),t.updateFileDetails(p,!1)},updateFileDetails:function(e){var i=this,t=i.msgSelected,l=i.$element,a=i.getFileStack(),n=l.val()||a.length&&a[0].name||"",r=i.slug(n),o=i.isUploadable?a.length:e,s=i.initialPreviewCount+o,d=o>1?t.replaceAll("{n}",s):r;i.isError?(i.$previewContainer.removeClass("loading"),i.$previewStatus.html(""),i.$captionContainer.find(".kv-caption-icon").hide(),d=i.msgValidationError):i.showFileIcon(),i.setCaption(d),i.$container.removeClass("file-input-new file-input-ajax-new"),1===arguments.length&&i.raise("fileselect",[e,r])},change:function(e){var i,t,l,a=this,n=a.$element,r=a.$preview,o=arguments.length>1,s=o?e.originalEvent.dataTransfer.files:n.get(0).files,d=L(n.attr("multiple")),c=a.filestack.length,p=a.isUploadable&&0!==c,f=function(e,i,t,l){var n=a.getOutData({},{},s);return a.isUploadable?a.showUploadError(e,n,t,l):a.showError(e,i,t,l)};return a.resetUpload(),a.hideFileIcon(),a.$container.find(".file-drop-zone ."+a.dropZoneTitleClass).remove(),i=o?s:void 0===e.target.files?e.target&&e.target.value?[{name:e.target.value.replace(/^.+\\/,"")}]:[]:e.target.files,L(i)||0===i.length?(p||a.clear(!0),void a.raise("fileselectnone")):(a.resetErrors(),(!p||d&&c>0)&&(r.html(a.overwriteInitial?"":a.initialPreviewContent),d&&c>0&&(a.filestack=[])),l=a.isUploadable?a.getFileStack().length+i.length:i.length,a.maxFileCount>0&&l>a.maxFileCount?(t=a.msgFilesTooMany.replaceAll("{m}",a.maxFileCount).replaceAll("{n}",l),a.isError=f(t,null,null,null),a.$captionContainer.find(".kv-caption-icon").hide(),a.$caption.html(a.msgValidationError),a.setEllipsis(),void a.$container.removeClass("file-input-new file-input-ajax-new")):(a.isIE9?a.updateFileDetails(1):a.readFiles(s),p?a.raise("filebatchselected",[a.getFileStack()]):a.raise("filebatchselected",[i]),void(a.reader=null)))},autoSizeImage:function(e){var i,t,l,a=this,n=a.$preview,r=n.find("#"+e),o=r.find("img");o.length&&o.on("load",function(){i=r.width(),t=n.width(),i>t&&(o.css("width","100%"),r.css("width","97%")),l=o.closest(".file-preview-frame").find(".file-caption-name"),l.length&&(l.width(o.width()),l.attr("title",l.text())),a.raise("fileimageloaded",e)})},setCaption:function(i){var t=this,l=e("
    "+i+"
    ").text(),a=t.getLayoutTemplate("icon"),n=a+l;0!==t.$caption.length&&(t.$caption.html(n),t.$caption.attr("title",l),t.$captionContainer.find(".file-caption-ellipsis").attr("title",l),t.setEllipsis())},initBrowse:function(e){var i=this;i.$btnFile=e.find(".btn-file"),i.$btnFile.append(i.$element)},createContainer:function(){var i=this,t=e(document.createElement("span")).attr({"class":"file-input file-input-new"}).html(i.renderMain());return i.$element.before(t),i.initBrowse(t),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":"",t=e.showPreview?e.getLayoutTemplate("preview").replaceAll("{class}",e.previewClass).replaceAll("{dropClass}",i):"",l=e.isDisabled?e.captionClass+" file-caption-disabled":e.captionClass,a=e.captionTemplate.replaceAll("{class}",l+" kv-fileinput-caption");return e.mainTemplate.replaceAll("{class}",e.mainClass).replaceAll("{preview}",t).replaceAll("{caption}",a).replaceAll("{upload}",e.renderUpload()).replaceAll("{remove}",e.renderRemove()).replaceAll("{cancel}",e.renderCancel()).replaceAll("{browse}",e.renderBrowse())},renderBrowse:function(){var e=this,i=e.browseClass+" btn-file",t="";return e.isDisabled&&(t=" disabled "),'
    "+e.browseIcon+e.browseLabel+"
    "},renderRemove:function(){var e=this,i=e.removeClass+" fileinput-remove fileinput-remove-button",t="";return e.showRemove?(e.isDisabled&&(t=" disabled "),'"):""},renderCancel:function(){var e=this,i=e.cancelClass+" fileinput-cancel fileinput-cancel-button";return e.showCancel?"":'"},renderUpload:function(){var e=this,i=e.uploadClass+" kv-fileinput-upload fileinput-upload-button",t="",l="";return e.showUpload?(e.isDisabled&&(l=" disabled "),t=!e.isUploadable||e.isDisabled?'":'"+e.uploadIcon+e.uploadLabel+""):""}},e.fn.fileinput=function(l){if(t()||i(9)){var a=Array.apply(null,arguments);return a.shift(),this.each(function(){var i=e(this),t=i.data("fileinput"),n="object"==typeof l&&l;t||(t=new _(this,e.extend({},e.fn.fileinput.defaults,n,e(this).data())),i.data("fileinput",t)),"string"==typeof l&&t[l].apply(t,a)})}},e.fn.fileinput.defaults={showCaption:!0,showPreview:!0,showRemove:!0,showUpload:!0,showCancel:!0,mainClass:"",previewClass:"",captionClass:"",mainTemplate:null,initialCaption:"",initialPreview:"",initialPreviewCount:0,initialPreviewDelimiter:"*$$*",initialPreviewConfig:[],initialPreviewShowDelete:!0,overwriteInitial:!0,layoutTemplates:I,previewTemplates:D,allowedPreviewTypes:S,allowedPreviewMimeTypes:null,allowedFileTypes:null,allowedFileExtensions:null,customLayoutTags:{},customPreviewTags:{},previewSettings:U,fileTypeSettings:j,browseLabel:"Browse …",browseIcon:'  ',browseClass:"btn btn-primary",removeLabel:"Remove",removeTitle:"Clear selected files",removeIcon:' ',removeClass:"btn btn-default",cancelLabel:"Cancel",cancelTitle:"Abort ongoing upload",cancelIcon:' ',cancelClass:"btn btn-default",uploadLabel:"Upload",uploadTitle:"Upload selected files",uploadIcon:' ',uploadClass:"btn btn-default",uploadUrl:null,uploadExtraData:[],uploadAsync:!0,maxFileSize:0,maxFileCount:0,msgSizeTooLarge:'File "{name}" ({size} KB) exceeds maximum allowed upload size of {maxSize} KB. Please retry your upload!',msgFilesTooMany:"Number of files selected for upload ({n}) exceeds maximum allowed limit of {m}. Please retry your upload!",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.',msgValidationError:' File Upload Error',msgErrorClass:"file-error-message",msgLoading:"Loading file {index} of {files} …",msgProgress:"Loading file {index} of {files} - {name} - {percent}% completed.",msgSelected:"{n} files selected",previewFileType:"image",wrapTextLength:250,wrapIndicator:' […]',elCaptionContainer:null,elCaptionText:null,elPreviewContainer:null,elPreviewImage:null,elPreviewStatus:null,elErrorContainer:null,slugCallback:null,dropZoneEnabled:!0,dropZoneTitle:"Drag & drop files here …",dropZoneTitleClass:"file-drop-zone-title",fileActionSettings:{},otherActionButtons:"",textEncoding:"UTF-8"},e.fn.fileinput.Constructor=_,e(document).ready(function(){var i=e("input.file[type=file]"),t=i.attr("type")?i.length:0;t>0&&i.fileinput()})}(window.jQuery);