fileinput.min.js 112 KB

12345678910
  1. /*!
  2. * bootstrap-fileinput v5.0.1
  3. * http://plugins.krajee.com/file-input
  4. *
  5. * Author: Kartik Visweswaran
  6. * Copyright: 2014 - 2019, 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(e){"use strict";"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof module&&module.exports?module.exports=e(require("jquery")):e(window.jQuery)}(function(q){"use strict";var W,u;q.fn.fileinputLocales={},q.fn.fileinputThemes={},String.prototype.setTokens=function(e){var t,i,a=this.toString();for(t in e)e.hasOwnProperty(t)&&(i=new RegExp("{"+t+"}","g"),a=a.replace(i,e[t]));return a},W={FRAMES:".kv-preview-thumb",SORT_CSS:"file-sortable",OBJECT_PARAMS:'<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',DEFAULT_PREVIEW:'<div class="file-preview-other">\n<span class="{previewFileIconClass}">{previewFileIcon}</span>\n</div>',MODAL_ID:"kvFileinputModal",MODAL_EVENTS:["show","shown","hide","hidden","loaded"],objUrl:window.URL||window.webkitURL,now:function(){return new Date},round:function(e){return e=parseFloat(e),isNaN(e)?0:Math.floor(Math.round(e))},getFileRelativePath:function(e){return String(e.relativePath||e.webkitRelativePath||W.getFileName(e)||null)},getFileId:function(e,t){var i=W.getFileRelativePath(e);return"function"==typeof t?t(e):e&&i?e.size+"_"+i.replace(/\s/gim,"_"):null},getElapsed:function(e){var t=e,i="",a={},r={year:31536e3,month:2592e3,week:604800,day:86400,hour:3600,minute:60,second:1};return Object.keys(r).forEach(function(e){a[e]=Math.floor(t/r[e]),t-=a[e]*r[e]}),q.each(a,function(e,t){0<t&&(i+=(i?" ":"")+t+e.substring(0,1))}),i},debounce:function(i,a){var r;return function(){var e=arguments,t=this;clearTimeout(r),r=setTimeout(function(){i.apply(t,e)},a)}},stopEvent:function(e){e.stopPropagation(),e.preventDefault()},getFileName:function(e){return e&&(e.fileName||e.name)||""},createObjectURL:function(e){return W.objUrl&&W.objUrl.createObjectURL&&e?W.objUrl.createObjectURL(e):""},revokeObjectURL:function(e){W.objUrl&&W.objUrl.revokeObjectURL&&e&&W.objUrl.revokeObjectURL(e)},compare:function(e,t,i){return void 0!==e&&(i?e===t:e.match(t))},isIE:function(e){var t,i;return"Microsoft Internet Explorer"===navigator.appName&&(10===e?new RegExp("msie\\s"+e,"i").test(navigator.userAgent):((t=document.createElement("div")).innerHTML="\x3c!--[if IE "+e+"]> <i></i> <![endif]--\x3e",i=t.getElementsByTagName("i").length,document.body.appendChild(t),t.parentNode.removeChild(t),i))},canAssignFilesToInput:function(){var e=document.createElement("input");try{return e.type="file",!(e.files=null)}catch(e){return!1}},getDragDropFolders:function(e){var t,i,a=e?e.length:0,r=0;if(0<a&&e[0].webkitGetAsEntry())for(t=0;t<a;t++)(i=e[t].webkitGetAsEntry())&&i.isDirectory&&r++;return r},initModal:function(e){var t=q("body");t.length&&e.appendTo(t)},isEmpty:function(e,t){return null==e||0===e.length||t&&""===q.trim(e)},isArray:function(e){return Array.isArray(e)||"[object Array]"===Object.prototype.toString.call(e)},ifSet:function(e,t,i){return i=i||"",t&&"object"==typeof t&&e in t?t[e]:i},cleanArray:function(e){return e instanceof Array||(e=[]),e.filter(function(e){return null!=e})},spliceArray:function(e,t,i){var a,r,n=0,o=[];if(!(e instanceof Array))return[];for(r=q.extend(!0,[],e),i&&r.reverse(),a=0;a<r.length;a++)a!==t&&(o[n]=r[a],n++);return i&&o.reverse(),o},getNum:function(e,t){return t=t||0,"number"==typeof e?e:("string"==typeof e&&(e=parseFloat(e)),isNaN(e)?t:e)},hasFileAPISupport:function(){return!(!window.File||!window.FileReader)},hasDragDropSupport:function(){var e=document.createElement("div");return!W.isIE(9)&&(void 0!==e.draggable||void 0!==e.ondragstart&&void 0!==e.ondrop)},hasFileUploadSupport:function(){return W.hasFileAPISupport()&&window.FormData},hasBlobSupport:function(){try{return!!window.Blob&&Boolean(new Blob)}catch(e){return!1}},hasArrayBufferViewSupport:function(){try{return 100===new Blob([new Uint8Array(100)]).size}catch(e){return!1}},hasResumableUploadSupport:function(){return W.hasFileUploadSupport()&&W.hasBlobSupport()&&W.hasArrayBufferViewSupport()&&(!!Blob.prototype.webkitSlice||!!Blob.prototype.mozSlice||!!Blob.prototype.slice||!1)},dataURI2Blob:function(e){var t,i,a,r,n,o,l=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||window.MSBlobBuilder,s=W.hasBlobSupport();if(!((s||l)&&window.atob&&window.ArrayBuffer&&window.Uint8Array))return null;for(t=0<=e.split(",")[0].indexOf("base64")?atob(e.split(",")[1]):decodeURIComponent(e.split(",")[1]),i=new ArrayBuffer(t.length),a=new Uint8Array(i),r=0;r<t.length;r+=1)a[r]=t.charCodeAt(r);return n=e.split(",")[0].split(":")[1].split(";")[0],s?new Blob([W.hasArrayBufferViewSupport()?a:i],{type:n}):((o=new l).append(i),o.getBlob(n))},arrayBuffer2String:function(e){if(window.TextDecoder)return new TextDecoder("utf-8").decode(e);var t,i,a,r,n=Array.prototype.slice.apply(new Uint8Array(e)),o="",l=0;for(t=n.length;l<t;)switch((i=n[l++])>>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:o+=String.fromCharCode(i);break;case 12:case 13:a=n[l++],o+=String.fromCharCode((31&i)<<6|63&a);break;case 14:a=n[l++],r=n[l++],o+=String.fromCharCode((15&i)<<12|(63&a)<<6|(63&r)<<0)}return o},isHtml:function(e){var t=document.createElement("div");t.innerHTML=e;for(var i=t.childNodes,a=i.length;a--;)if(1===i[a].nodeType)return!0;return!1},isSvg:function(e){return e.match(/^\s*<\?xml/i)&&(e.match(/<!DOCTYPE svg/i)||e.match(/<svg/i))},getMimeType:function(e,t,i){switch(e){case"ffd8ffe0":case"ffd8ffe1":case"ffd8ffe2":return"image/jpeg";case"89504E47":return"image/png";case"47494638":return"image/gif";case"49492a00":return"image/tiff";case"52494646":return"image/webp";case"66747970":return"video/3gp";case"4f676753":return"video/ogg";case"1a45dfa3":return"video/mkv";case"000001ba":case"000001b3":return"video/mpeg";case"3026b275":return"video/wmv";case"25504446":return"application/pdf";case"25215053":return"application/ps";case"504b0304":case"504b0506":case"504b0508":return"application/zip";case"377abcaf":return"application/7z";case"75737461":return"application/tar";case"7801730d":return"application/dmg";default:switch(e.substring(0,6)){case"435753":return"application/x-shockwave-flash";case"494433":return"audio/mp3";case"425a68":return"application/bzip";default:switch(e.substring(0,4)){case"424d":return"image/bmp";case"fffb":return"audio/mp3";case"4d5a":return"application/exe";case"1f9d":case"1fa0":return"application/zip";case"1f8b":return"application/gzip";default:return t&&!t.match(/[^\u0000-\u007f]/)?"application/text-plain":i}}}},addCss:function(e,t){e.removeClass(t).addClass(t)},getElement:function(e,t,i){return W.isEmpty(e)||W.isEmpty(e[t])?i:q(e[t])},uniqId:function(){return Math.round((new Date).getTime())+"_"+Math.round(100*Math.random())},htmlEncode:function(e,t){return void 0===e?t||null:e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;")},replaceTags:function(e,t){var i=e;return t&&q.each(t,function(e,t){"function"==typeof t&&(t=t()),i=i.split(e).join(t)}),i},cleanMemory:function(e){var t=e.is("img")?e.attr("src"):e.find("source").attr("src");W.revokeObjectURL(t)},findFileName:function(e){var t=e.lastIndexOf("/");return-1===t&&(t=e.lastIndexOf("\\")),e.split(e.substring(t,t+1)).pop()},checkFullScreen:function(){return document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement},toggleFullScreen:function(e){var t=document,i=t.documentElement;i&&e&&!W.checkFullScreen()?i.requestFullscreen?i.requestFullscreen():i.msRequestFullscreen?i.msRequestFullscreen():i.mozRequestFullScreen?i.mozRequestFullScreen():i.webkitRequestFullscreen&&i.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT):t.exitFullscreen?t.exitFullscreen():t.msExitFullscreen?t.msExitFullscreen():t.mozCancelFullScreen?t.mozCancelFullScreen():t.webkitExitFullscreen&&t.webkitExitFullscreen()},moveArray:function(e,t,i,a){var r=q.extend(!0,[],e);if(a&&r.reverse(),i>=r.length)for(var n=i-r.length;1+n--;)r.push(void 0);return r.splice(i,0,r.splice(t,1)[0]),a&&r.reverse(),r},cleanZoomCache:function(e){var t=e.closest(".kv-zoom-cache-theme");t.length||(t=e.closest(".kv-zoom-cache")),t.remove()},closeButton:function(e){return'<button type="button" class="'+(e=e?"close "+e:"close")+'" aria-label="Close">\n <span aria-hidden="true">&times;</span>\n</button>'},getRotation:function(e){switch(e){case 2:return"rotateY(180deg)";case 3:return"rotate(180deg)";case 4:return"rotate(180deg) rotateY(180deg)";case 5:return"rotate(270deg) rotateY(180deg)";case 6:return"rotate(90deg)";case 7:return"rotate(90deg) rotateY(180deg)";case 8:return"rotate(270deg)";default:return""}},setTransform:function(e,t){e&&(e.style.transform=t,e.style.webkitTransform=t,e.style["-moz-transform"]=t,e.style["-ms-transform"]=t,e.style["-o-transform"]=t)},setImageOrientation:function(d,c,u){if(d&&d.length){var e="load.fileinputimageorient";d.off(e).on(e,function(){var e=d.get(0),t=c&&c.length?c.get(0):null,i=e.offsetHeight,a=e.offsetWidth,r=W.getRotation(u);if(d.data("orientation",u),t&&c.data("orientation",u),u<5)return W.setTransform(e,r),void W.setTransform(t,r);var n=Math.atan(a/i),o=Math.sqrt(Math.pow(i,2)+Math.pow(a,2)),l=o?i/Math.cos(Math.PI/2+n)/o:1,s=" scale("+Math.abs(l)+")";W.setTransform(e,r+s),W.setTransform(t,r+s)})}}},(u=function(e,t){var i=this;i.$element=q(e),i.$parent=i.$element.parent(),i._validate()&&(i.isPreviewable=W.hasFileAPISupport(),i.isIE9=W.isIE(9),i.isIE10=W.isIE(10),(i.isPreviewable||i.isIE9)&&(i._init(t),i._listen()),i.$element.removeClass("file-loading"))}).prototype={constructor:u,_cleanup:function(){var e=this;e.reader=null,e.clearFileStack(),e.fileBatchCompleted=!0,e.isError=!1,e.cancelling=!1,e.paused=!1,e.lastProgress=0,e._initAjax()},_initAjax:function(){var e=this;e.ajaxQueue=[],e.ajaxRequests=[],e.ajaxQueueIntervalId=null,e.ajaxCurrentThreads=0,e.ajaxAborted=!1},_init:function(e,t){var i,a,r,n,o=this,l=o.$element;o.options=e,q.each(e,function(e,t){switch(e){case"minFileCount":case"maxFileCount":case"minFileSize":case"maxFileSize":case"maxFilePreviewSize":case"resizeImageQuality":case"resizeIfSizeMoreThan":case"progressUploadThreshold":case"initialPreviewCount":case"zoomModalHeight":case"minImageHeight":case"maxImageHeight":case"minImageWidth":case"maxImageWidth":o[e]=W.getNum(t);break;default:o[e]=t}}),o.rtl&&(n=o.previewZoomButtonIcons.prev,o.previewZoomButtonIcons.prev=o.previewZoomButtonIcons.next,o.previewZoomButtonIcons.next=n),!isNaN(o.maxAjaxThreads)&&o.maxAjaxThreads<o.resumableUploadOptions.maxThreads&&(o.resumableUploadOptions.maxThreads=o.maxAjaxThreads),o._initFileManager(),"function"==typeof o.autoOrientImage&&(o.autoOrientImage=o.autoOrientImage()),"function"==typeof o.autoOrientImageInitial&&(o.autoOrientImageInitial=o.autoOrientImageInitial()),t||o._cleanup(),o.$form=l.closest("form"),o._initTemplateDefaults(),o.uploadFileAttr=W.isEmpty(l.attr("name"))?"file_data":l.attr("name"),r=o._getLayoutTemplate("progress"),o.progressTemplate=r.replace("{class}",o.progressClass),o.progressInfoTemplate=r.replace("{class}",o.progressInfoClass),o.progressPauseTemplate=r.replace("{class}",o.progressPauseClass),o.progressCompleteTemplate=r.replace("{class}",o.progressCompleteClass),o.progressErrorTemplate=r.replace("{class}",o.progressErrorClass),o.isDisabled=l.attr("disabled")||l.attr("readonly"),o.isDisabled&&l.attr("disabled",!0),o.isClickable=o.browseOnZoneClick&&o.showPreview&&(o.dropZoneEnabled||!W.isEmpty(o.defaultPreviewContent)),o.isAjaxUpload=W.hasFileUploadSupport()&&!W.isEmpty(o.uploadUrl),o.dropZoneEnabled=W.hasDragDropSupport()&&o.dropZoneEnabled,o.isAjaxUpload||(o.dropZoneEnabled=o.dropZoneEnabled&&W.canAssignFilesToInput()),o.slug="function"==typeof e.slugCallback?e.slugCallback:o._slugDefault,o.mainTemplate=o.showCaption?o._getLayoutTemplate("main1"):o._getLayoutTemplate("main2"),o.captionTemplate=o._getLayoutTemplate("caption"),o.previewGenericTemplate=o._getPreviewTemplate("generic"),!o.imageCanvas&&o.resizeImage&&(o.maxImageWidth||o.maxImageHeight)&&(o.imageCanvas=document.createElement("canvas"),o.imageCanvasContext=o.imageCanvas.getContext("2d")),W.isEmpty(l.attr("id"))&&l.attr("id",W.uniqId()),o.namespace=".fileinput_"+l.attr("id").replace(/-/g,"_"),void 0===o.$container?o.$container=o._createContainer():o._refreshContainer(),a=o.$container,o.$dropZone=a.find(".file-drop-zone"),o.$progress=a.find(".kv-upload-progress"),o.$btnUpload=a.find(".fileinput-upload"),o.$captionContainer=W.getElement(e,"elCaptionContainer",a.find(".file-caption")),o.$caption=W.getElement(e,"elCaptionText",a.find(".file-caption-name")),W.isEmpty(o.msgPlaceholder)||(i=l.attr("multiple")?o.filePlural:o.fileSingle,o.$caption.attr("placeholder",o.msgPlaceholder.replace("{files}",i))),o.$captionIcon=o.$captionContainer.find(".file-caption-icon"),o.$previewContainer=W.getElement(e,"elPreviewContainer",a.find(".file-preview")),o.$preview=W.getElement(e,"elPreviewImage",a.find(".file-preview-thumbnails")),o.$previewStatus=W.getElement(e,"elPreviewStatus",a.find(".file-preview-status")),o.$errorContainer=W.getElement(e,"elErrorContainer",o.$previewContainer.find(".kv-fileinput-error")),o._validateDisabled(),W.isEmpty(o.msgErrorClass)||W.addCss(o.$errorContainer,o.msgErrorClass),t?o._errorsExist()||o.$errorContainer.hide():(o.$errorContainer.hide(),o.previewInitId="preview-"+W.uniqId(),o._initPreviewCache(),o._initPreview(!0),o._initPreviewActions(),o.$parent.hasClass("file-loading")&&(o.$container.insertBefore(o.$parent),o.$parent.remove())),o._setFileDropZoneTitle(),l.attr("disabled")&&o.disable(),o._initZoom(),o.hideThumbnailContent&&W.addCss(o.$preview,"hide-content")},_initFileManager:function(){var s=this;s.fileManager={stack:{},processed:[],loadedImages:{},totalImages:0,totalFiles:null,totalSize:null,uploadedSize:0,stats:{},initStats:function(e){var t={started:W.now().getTime()};e?s.fileManager.stats[e]=t:s.fileManager.stats=t},getUploadStats:function(e,t,i){var a=s.fileManager,r=e&&a.stats[e]&&a.stats[e].started||null;r||(r=W.now().getTime());var n=(W.now().getTime()-r)/1e3,o=n?t/n:0,l={fileId:e,started:r,elapsed:n,loaded:t,total:i,bps:o,bitrate:s._getSize(o,["B/s","KB/s","MB/s","GB/s","TB/s","PB/s","EB/s","ZB/s","YB/s"]),pendingBytes:i-t};return e?a.stats[e]=l:a.stats=l,l},exists:function(e){return-1!==q.inArray(e,s.fileManager.getIdList())},count:function(){return s.fileManager.getIdList().length},total:function(){var e=s.fileManager;return e.totalFiles||(e.totalFiles=e.count()),e.totalFiles},getTotalSize:function(){var a=s.fileManager;return a.totalSize||(a.totalSize=0,q.each(s.fileManager.stack,function(e,t){var i=parseFloat(t.size);a.totalSize+=isNaN(i)?0:i})),a.totalSize},add:function(e,t){t||(t=s.fileManager.getId(e)),t&&(s.fileManager.stack[t]={file:e,name:W.getFileName(e),relativePath:W.getFileRelativePath(e),size:e.size,nameFmt:s._getFileName(e,""),sizeFmt:s._getSize(e.size)})},remove:function(e){var t=e.attr("data-fileid");t&&s.fileManager.removeFile(t)},removeFile:function(e){delete s.fileManager.stack[e],delete s.fileManager.loadedImages[e]},move:function(i,a){var r={},n=s.fileManager.stack;(i||a)&&i!==a&&(q.each(n,function(e,t){e!==i&&(r[e]=t),e===a&&(r[i]=n[i])}),s.fileManager.stack=r)},list:function(){var i=[];return q.each(s.fileManager.stack,function(e,t){t&&t.file&&i.push(t.file)}),i},isPending:function(e){return-1===q.inArray(e,s.fileManager.processed)&&s.fileManager.exists(e)},isProcessed:function(){var t=!0,i=s.fileManager;return q.each(i.stack,function(e){i.isPending(e)&&(t=!1)}),t},clear:function(){var e=s.fileManager;e.totalFiles=null,e.totalSize=null,e.uploadedSize=0,e.stack={},e.processed=[],e.stats={},e.clearImages()},clearImages:function(){s.fileManager.loadedImages={},s.fileManager.totalImages=0},addImage:function(e,t){s.fileManager.loadedImages[e]=t},removeImage:function(e){delete s.fileManager.loadedImages[e]},getImageIdList:function(){return Object.keys(s.fileManager.loadedImages)},getImageCount:function(){return s.fileManager.getImageIdList().length},getId:function(e){return s._getFileId(e)},getIndex:function(e){return s.fileManager.getIdList().indexOf(e)},getThumb:function(e){var t=null;return s._getThumbs().each(function(){q(this).attr("data-fileid")===e&&(t=q(this))}),t},getThumbIndex:function(e){var t=e.attr("data-fileid");return s.fileManager.getIndex(t)},getIdList:function(){return Object.keys(s.fileManager.stack)},getFile:function(e){return s.fileManager.stack[e]||null},getFileName:function(e,t){var i=s.fileManager.getFile(e);return i?t?i.nameFmt||"":i.name||"":""},getFirstFile:function(){var e=s.fileManager.getIdList(),t=e&&e.length?e[0]:null;return s.fileManager.getFile(t)},setFile:function(e,t){s.fileManager.getFile(e)?s.fileManager.stack[e].file=t:s.fileManager.add(t,e)},setProcessed:function(e){s.fileManager.processed.push(e)},getProgress:function(){var e=s.fileManager.total(),t=s.fileManager.processed.length;return e?Math.ceil(t/e*100):0},setProgress:function(e,t){var i=s.fileManager.getFile(e);!isNaN(t)&&i&&(i.progress=t)}}},_setUploadData:function(a,e){var r=this;q.each(e,function(e,t){var i=r.uploadParamNames[e]||e;W.isArray(t)?a.append(i,t[0],t[1]):a.append(i,t)})},_initResumableUpload:function(){var b=this,e=b.resumableUploadOptions;if(b.enableResumableUpload)if(!1!==e.fallback&&"function"!=typeof e.fallback&&(e.fallback=function(e){e._log("The browser does not support resumable or chunk uploads."),e.enableResumableUpload=!1}),W.hasResumableUploadSupport()||!1===e.fallback){if(!b.uploadUrl&&b.enableResumableUpload)return b._log('The "uploadUrl" is not set. Ajax uploads and resumable uploads have been disabled.'),void(b.enableResumableUpload=!1);if(e.chunkSize=parseFloat(e.chunkSize),e.chunkSize<=0||isNaN(e.chunkSize))return b._log('Invalid "uploadResumableSize" ('+e.chunkSize+"). Resumable uploads are disabled."),void(b.enableResumableUpload=!1);b.resumableManager={init:function(e,t,i){var a=b.resumableManager,r=b.fileManager;a.currThreads=0,a.logs=[],a.stack=[],a.error="",a.chunkIntervalId=null,a.id=e,a.file=t.file,a.fileName=t.name,a.fileIndex=i,a.completed=!1,a.testing=!1,a.lastProgress=0,b.showPreview&&(a.$thumb=r.getThumb(e)||null,a.$progress=a.$btnUpload=a.$btnDelete=null,a.$thumb&&a.$thumb.length&&(a.$progress=a.$thumb.find(".file-thumb-progress"),a.$btnUpload=a.$thumb.find(".kv-file-upload"),a.$btnDelete=a.$thumb.find(".kv-file-remove"))),a.chunkSize=1024*b.resumableUploadOptions.chunkSize,a.chunkCount=a.getTotalChunks()},logAjaxError:function(e,t,i){b.resumableUploadOptions.showErrorLog&&b._log(e.status+": "+i+". Error Details: "+e.responseText||"")},reset:function(){b.resumableManager.processed={}},setProcessed:function(e){var t,i=b.resumableManager,a=b.fileManager,r=i.id,n=i.$btnUpload,o=i.$thumb,l=i.$progress,s={id:o.attr("id"),index:a.getIndex(r),fileId:r};i.completed=!0,i.lastProgress=0,a.uploadedSize+=i.file.size,o.removeClass("file-uploading"),"success"===e?(b.showPreview&&(b._setProgress(101,l),b._setThumbStatus(o,"Success"),b._initUploadSuccess(i.processed[r].data,o),n.hide()),b.fileManager.removeFile(r),delete i.processed[r],b._raise("fileuploaded",[s.id,s.index,s.fileId]),a.isProcessed()&&b._setProgress(101)):(b.showPreview&&(b._setThumbStatus(o,"Error"),b._setPreviewError(o,!0),b.retryErrorUploads?n.removeAttr("disabled"):n.hide(),b._setProgress(101,l,b.msgUploadError),b._setProgress(101,b.$progress,b.msgUploadError),b.cancelling=!0),b.$errorContainer.find('li[data-file-id="'+s.fileId+'"]').length||(t=b.msgResumableUploadRetriesExceeded.setTokens({file:i.fileName,max:b.resumableUploadOptions.maxRetries,error:i.error}),b._showUploadError(t,s))),a.isProcessed()&&i.reset()},check:function(){var e=b.resumableManager,i=!0;q.each(e.logs,function(e,t){if(!t)return i=!1}),i&&(clearInterval(e.chunkIntervalId),e.setProcessed("success"))},processedResumables:function(){var e,t=b.resumableManager.logs,i=0;if(!t||!t.length)return 0;for(e=0;e<t.length;e++)!0===t[e]&&i++;return i},getUploadedSize:function(){var e=b.resumableManager,t=e.processedResumables()*e.chunkSize;return t>e.file.size?e.file.size:t},getTotalChunks:function(){var e=b.resumableManager,t=parseFloat(e.chunkSize);return!isNaN(t)&&0<t?Math.ceil(e.file.size/t):0},getProgress:function(){var e=b.resumableManager,t=e.processedResumables(),i=e.chunkCount;return 0===i?0:Math.ceil(t/i*100)},checkAborted:function(e){(b.paused||b.cancelling)&&(clearInterval(e),b.unlock())},uploadSingle:function(e){var t,i=b.resumableManager,a=b.fileManager,r="new";t=setInterval(function(){i.checkAborted(t),"new"===r&&(b.lock(),r="processing",a.stack[e]&&(i.init(e,a.stack[e]),i.uploadResumable())),(!a.isPending(e)&&i.completed||a.isProcessed())&&(clearInterval(t),b.unlock())},b.processDelay)},upload:function(){var i,a=b.resumableManager,r=b.fileManager,n=r.getIdList(),o="new";i=setInterval(function(){var e;if(a.checkAborted(i),"new"===o&&(b.lock(),o="processing",e=n.shift(),r.initStats(e),r.stack[e]&&(a.init(e,r.stack[e],r.getIndex(e)),a.testUpload(),a.uploadResumable())),!r.isPending(e)&&a.completed&&(o="new"),r.isProcessed()){var t=b.$preview.find(".file-preview-initial");t.length&&(W.addCss(t,W.SORT_CSS),b._initSortable()),clearInterval(i),b._clearFileInput(),b.unlock(),setTimeout(function(){var e=b.previewCache.data;e&&(b.initialPreview=e.content,b.initialPreviewConfig=e.config,b.initialPreviewThumbTags=e.tags),b._raise("filebatchuploadcomplete",[b.initialPreview,b.initialPreviewConfig,b.initialPreviewThumbTags,b._getExtraData()])},b.processDelay)}},b.processDelay)},uploadResumable:function(){var e,t=b.resumableManager,i=t.chunkCount;for(e=0;e<i;e++)t.logs[e]=!(!t.processed[t.id]||!t.processed[t.id][e]);for(e=0;e<i;e++)t.pushAjax(e,0);t.chunkIntervalId=setInterval(t.loopAjax,b.queueDelay)},testUpload:function(){var n,e,t,i,a,r,o,l=b.resumableManager,s=b.resumableUploadOptions,d=b.fileManager,c=l.id;s.testUrl?(l.testing=!0,n=new FormData,e=d.stack[c],b._setUploadData(n,{fileId:c,fileName:e.fileName,fileSize:e.size,fileRelativePath:e.relativePath,chunkSize:l.chunkSize,chunkCount:l.chunkCount}),t=function(e){o=b._getOutData(n,e),b._raise("filetestbeforesend",[c,d,l,o])},i=function(e,t,i){o=b._getOutData(n,i,e);var a=b.uploadParamNames.chunksUploaded||"chunksUploaded",r=[c,d,l,o];e[a]&&W.isArray(e[a])?(l.processed[c]||(l.processed[c]={}),q.each(e[a],function(e,t){l.logs[t]=!0,l.processed[c][t]=!0}),l.processed[c].data=e,b._raise("filetestsuccess",r)):b._raise("filetesterror",r),l.testing=!1},a=function(e,t,i){o=b._getOutData(n,e),b._raise("filetestajaxerror",[c,d,l,o]),l.logAjaxError(e,t,i),l.testing=!1},r=function(){b._raise("filetestcomplete",[c,d,l,b._getOutData(n)]),l.testing=!1},b._ajaxSubmit(t,i,r,a,n,c,l.fileIndex,s.testUrl)):l.testing=!1},pushAjax:function(e,t){b.resumableManager.stack.push([e,t])},sendAjax:function(o,l){var e,s=b.fileManager,d=b.resumableManager,t=b.resumableUploadOptions,i=d.chunkSize,c=d.id,a=d.file,r=d.$thumb,n=d.$btnUpload,u=d.$btnDelete;if(!d.processed[c]||!d.processed[c][o])if(d.currThreads++,l>t.maxRetries)d.setProcessed("error");else{var p,f,g,m,h,v,w=a[a.slice?"slice":a.mozSlice?"mozSlice":a.webkitSlice?"webkitSlice":"slice"](i*o,i*(o+1));p=new FormData,e=s.stack[c],b._setUploadData(p,{fileId:c,fileName:d.fileName,fileSize:a.size,fileRelativePath:e.relativePath,fileBlob:[w,d.fileName],chunkIndex:o,chunkSize:i,chunkSizeStart:i*o,chunkCount:d.chunkCount,retryCount:l}),d.$progress.show(),g=function(e){f=b._getOutData(p,e),b.showPreview&&(r.hasClass("file-preview-success")||(b._setThumbStatus(r,"Loading"),W.addCss(r,"file-uploading")),n.attr("disabled",!0),u.attr("disabled",!0)),b._raise("filechunkbeforesend",[c,o,l,s,d,f])},m=function(e,t,i){f=b._getOutData(p,i,e);var a=b.uploadParamNames.chunkIndex||"chunkIndex",r=b.resumableUploadOptions,n=[c,o,l,s,d,f];d.currThreads--,e.error?(r.showErrorLog&&b._log("Retry # "+l+"1 for "+d.fileName+" chunk # "+o),d.pushAjax(o,l+1),d.error=e.error,b._raise("filechunkerror",n)):(d.logs[e[a]]=!0,d.processed[c]||(d.processed[c]={}),d.processed[c][e[a]]=!0,d.processed[c].data=e,d.check(),b._raise("filechunksuccess",n))},h=function(e,t,i){f=b._getOutData(p,e),d.currThreads--,d.error=i,d.logAjaxError(e,t,i),b._raise("filechunkajaxerror",[c,o,l,s,d,f]),d.pushAjax(o,l+1)},v=function(){b._raise("filechunkcomplete",[c,o,l,s,d,b._getOutData(p)])},b._ajaxSubmit(g,m,v,h,p,c,d.fileIndex)}},loopAjax:function(){var e=b.resumableManager;if(e.currThreads<b.resumableUploadOptions.maxThreads&&!e.testing){var t,i=e.stack.shift();void 0!==i&&(t=i[0],e.processed[e.id]&&e.processed[e.id][t]?e.processedResumables()>=e.getTotalChunks()&&(e.setProcessed("success"),clearInterval(e.chunkIntervalId)):e.sendAjax(t,i[1]))}}},b.resumableManager.reset()}else e.fallback(b)},_initTemplateDefaults:function(){var e,t,i,a,r,n,o,l,s,d,c=this;e=W.closeButton("fileinput-remove"),t='<div id="'+W.MODAL_ID+'" class="file-zoom-dialog modal fade" tabindex="-1" aria-labelledby="'+W.MODAL_ID+'Label"></div>',i='<div class="file-preview-frame {frameClass}" id="{previewId}" data-fileindex="{fileindex}" data-fileid="{fileid}" data-template="{template}"',s=" {style}",a='<video class="kv-preview-data file-preview-video" controls'+s+'>\n<source src="{data}" type="{type}">\n'+W.DEFAULT_PREVIEW+"\n</video>\n",r='\x3c!--suppress ALL --\x3e<audio class="kv-preview-data file-preview-audio" controls'+s+'>\n<source src="{data}" type="{type}">\n'+W.DEFAULT_PREVIEW+"\n</audio>\n",o='<embed class="kv-preview-data file-preview-pdf" src="{data}" type="application/pdf"'+s+">\n",n='<object class="kv-preview-data file-preview-object file-object {typeCss}" data="{data}" type="{type}"'+s+'>\n<param name="movie" value="{caption}" />\n'+W.OBJECT_PARAMS+" "+W.DEFAULT_PREVIEW+"\n</object>\n",l='<div class="kv-preview-data file-preview-other-frame"'+s+">\n"+W.DEFAULT_PREVIEW+"\n</div>\n",d={width:"100%",height:"100%","min-height":"480px"},c._isPdfRendered()&&(o=c.pdfRendererTemplate.replace("{renderer}",c._encodeURI(c.pdfRendererUrl))),c.defaults={layoutTemplates:{main1:'{preview}\n<div class="kv-upload-progress kv-hidden"></div><div class="clearfix"></div>\n<div class="input-group {class}">\n {caption}\n<div class="input-group-btn input-group-append">\n {remove}\n {cancel}\n {pause}\n {upload}\n {browse}\n </div>\n</div>',main2:'{preview}\n<div class="kv-upload-progress kv-hidden"></div>\n<div class="clearfix"></div>\n{remove}\n{cancel}\n{upload}\n{browse}\n',preview:'<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>',close:e,fileIcon:'<i class="glyphicon glyphicon-file"></i>',caption:'<div class="file-caption form-control {class}" tabindex="500">\n <span class="file-caption-icon"></span>\n <input class="file-caption-name" onkeydown="return false;" onpaste="return false;">\n</div>',modalMain:t,modal:'<div class="modal-dialog modal-lg{rtl}" role="document">\n <div class="modal-content">\n <div class="modal-header">\n <h5 class="modal-title">{heading}</h5>\n <span class="kv-zoom-title"></span>\n <div class="kv-zoom-actions">{toggleheader}{fullscreen}{borderless}{close}</div>\n </div>\n <div class="modal-body">\n <div class="floating-buttons"></div>\n <div class="kv-zoom-body file-zoom-content {zoomFrameClass}"></div>\n{prev} {next}\n </div>\n </div>\n</div>\n',progress:'<div class="progress">\n <div class="{class}" role="progressbar" aria-valuenow="{percent}" aria-valuemin="0" aria-valuemax="100" style="width:{percent}%;">\n {status}\n </div>\n</div>{stats}',stats:'<div class="text-info file-upload-stats"><span class="pending-time">{pendingTime}</span> <span class="upload-speed">{uploadSpeed}</span></div>',size:" <samp>({sizeText})</samp>",footer:'<div class="file-thumbnail-footer">\n <div class="file-footer-caption" title="{caption}">\n <div class="file-caption-info">{caption}</div>\n <div class="file-size-info">{size}</div>\n </div>\n {progress}\n{indicator}\n{actions}\n</div>',indicator:'<div class="file-upload-indicator" title="{indicatorTitle}">{indicator}</div>',actions:'<div class="file-actions">\n <div class="file-footer-buttons">\n {download} {upload} {delete} {zoom} {other} </div>\n</div>\n{drag}\n<div class="clearfix"></div>',actionDelete:'<button type="button" class="kv-file-remove {removeClass}" title="{removeTitle}" {dataUrl}{dataKey}>{removeIcon}</button>\n',actionUpload:'<button type="button" class="kv-file-upload {uploadClass}" title="{uploadTitle}">{uploadIcon}</button>',actionDownload:'<a class="kv-file-download {downloadClass}" title="{downloadTitle}" href="{downloadUrl}" download="{caption}" target="_blank">{downloadIcon}</a>',actionZoom:'<button type="button" class="kv-file-zoom {zoomClass}" title="{zoomTitle}">{zoomIcon}</button>',actionDrag:'<span class="file-drag-handle {dragClass}" title="{dragTitle}">{dragIcon}</span>',btnDefault:'<button type="{type}" tabindex="500" title="{title}" class="{css}" {status}>{icon} {label}</button>',btnLink:'<a href="{href}" tabindex="500" title="{title}" class="{css}" {status}>{icon} {label}</a>',btnBrowse:'<div tabindex="500" class="{css}" {status}>{icon} {label}</div>',zoomCache:'<div class="kv-zoom-cache" style="display:none">{zoomContent}</div>'},previewMarkupTags:{tagBefore1:'<div class="file-preview-frame {frameClass}" id="{previewId}" data-fileindex="{fileindex}" data-fileid="{fileid}" data-template="{template}"><div class="kv-file-content">\n',tagBefore2:'<div class="file-preview-frame {frameClass}" id="{previewId}" data-fileindex="{fileindex}" data-fileid="{fileid}" data-template="{template}" title="{caption}"><div class="kv-file-content">\n',tagAfter:"</div>{footer}\n</div>\n"},previewContentTemplates:{generic:"{content}\n",html:'<div class="kv-preview-data file-preview-html" title="{caption}" {style}>{data}</div>\n',image:'<img src="{data}" class="file-preview-image kv-preview-data" title="{title}" alt="{alt}" {style}>\n',text:'<textarea class="kv-preview-data file-preview-text" title="{caption}" readonly {style}>{data}</textarea>\n',office:'<iframe class="kv-preview-data file-preview-office" src="https://view.officeapps.live.com/op/embed.aspx?src={data}" {style}></iframe>',gdocs:'<iframe class="kv-preview-data file-preview-gdocs" src="https://docs.google.com/gview?url={data}&embedded=true" {style}></iframe>',video:a,audio:r,flash:'<embed class="kv-preview-data file-preview-flash" src="{data}" type="application/x-shockwave-flash" {style}>\n',object:n,pdf:o,other:l},allowedPreviewTypes:["image","html","text","video","audio","flash","pdf","object"],previewTemplates:{},previewSettings:{image:{width:"auto",height:"auto","max-width":"100%","max-height":"100%"},html:{width:"213px",height:"160px"},text:{width:"213px",height:"160px"},office:{width:"213px",height:"160px"},gdocs:{width:"213px",height:"160px"},video:{width:"213px",height:"160px"},audio:{width:"100%",height:"30px"},flash:{width:"213px",height:"160px"},object:{width:"213px",height:"160px"},pdf:{width:"100%",height:"160px"},other:{width:"213px",height:"160px"}},previewSettingsSmall:{image:{width:"auto",height:"auto","max-width":"100%","max-height":"100%"},html:{width:"100%",height:"160px"},text:{width:"100%",height:"160px"},office:{width:"100%",height:"160px"},gdocs:{width:"100%",height:"160px"},video:{width:"100%",height:"auto"},audio:{width:"100%",height:"30px"},flash:{width:"100%",height:"auto"},object:{width:"100%",height:"auto"},pdf:{width:"100%",height:"160px"},other:{width:"100%",height:"160px"}},previewZoomSettings:{image:{width:"auto",height:"auto","max-width":"100%","max-height":"100%"},html:d,text:d,office:{width:"100%",height:"100%","max-width":"100%","min-height":"480px"},gdocs:{width:"100%",height:"100%","max-width":"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%","max-width":"100%","min-height":"480px"},pdf:d,other:{width:"auto",height:"100%","min-height":"480px"}},mimeTypeAliases:{"video/quicktime":"video/mp4"},fileTypeSettings:{image:function(e,t){return W.compare(e,"image.*")&&!W.compare(e,/(tiff?|wmf)$/i)||W.compare(t,/\.(gif|png|jpe?g)$/i)},html:function(e,t){return W.compare(e,"text/html")||W.compare(t,/\.(htm|html)$/i)},office:function(e,t){return W.compare(e,/(word|excel|powerpoint|office)$/i)||W.compare(t,/\.(docx?|xlsx?|pptx?|pps|potx?)$/i)},gdocs:function(e,t){return W.compare(e,/(word|excel|powerpoint|office|iwork-pages|tiff?)$/i)||W.compare(t,/\.(docx?|xlsx?|pptx?|pps|potx?|rtf|ods|odt|pages|ai|dxf|ttf|tiff?|wmf|e?ps)$/i)},text:function(e,t){return W.compare(e,"text.*")||W.compare(t,/\.(xml|javascript)$/i)||W.compare(t,/\.(txt|md|csv|nfo|ini|json|php|js|css)$/i)},video:function(e,t){return W.compare(e,"video.*")&&(W.compare(e,/(ogg|mp4|mp?g|mov|webm|3gp)$/i)||W.compare(t,/\.(og?|mp4|webm|mp?g|mov|3gp)$/i))},audio:function(e,t){return W.compare(e,"audio.*")&&(W.compare(t,/(ogg|mp3|mp?g|wav)$/i)||W.compare(t,/\.(og?|mp3|mp?g|wav)$/i))},flash:function(e,t){return W.compare(e,"application/x-shockwave-flash",!0)||W.compare(t,/\.(swf)$/i)},pdf:function(e,t){return W.compare(e,"application/pdf",!0)||W.compare(t,/\.(pdf)$/i)},object:function(){return!0},other:function(){return!0}},fileActionSettings:{showRemove:!0,showUpload:!0,showDownload:!0,showZoom:!0,showDrag:!0,removeIcon:'<i class="glyphicon glyphicon-trash"></i>',removeClass:"btn btn-sm btn-kv btn-default btn-outline-secondary",removeErrorClass:"btn btn-sm btn-kv btn-danger",removeTitle:"Remove file",uploadIcon:'<i class="glyphicon glyphicon-upload"></i>',uploadClass:"btn btn-sm btn-kv btn-default btn-outline-secondary",uploadTitle:"Upload file",uploadRetryIcon:'<i class="glyphicon glyphicon-repeat"></i>',uploadRetryTitle:"Retry upload",downloadIcon:'<i class="glyphicon glyphicon-download"></i>',downloadClass:"btn btn-sm btn-kv btn-default btn-outline-secondary",downloadTitle:"Download file",zoomIcon:'<i class="glyphicon glyphicon-zoom-in"></i>',zoomClass:"btn btn-sm btn-kv btn-default btn-outline-secondary",zoomTitle:"View Details",dragIcon:'<i class="glyphicon glyphicon-move"></i>',dragClass:"text-info",dragTitle:"Move / Rearrange",dragSettings:{},indicatorNew:'<i class="glyphicon glyphicon-plus-sign 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-hourglass text-muted"></i>',indicatorNewTitle:"Not uploaded yet",indicatorSuccessTitle:"Uploaded",indicatorErrorTitle:"Upload Error",indicatorLoadingTitle:"Uploading ..."}},q.each(c.defaults,function(e,t){"allowedPreviewTypes"!==e?c[e]=q.extend(!0,{},t,c[e]):void 0===c.allowedPreviewTypes&&(c.allowedPreviewTypes=t)}),c._initPreviewTemplates()},_initPreviewTemplates:function(){var i,a=this,r=a.previewMarkupTags,n=r.tagAfter;q.each(a.previewContentTemplates,function(e,t){W.isEmpty(a.previewTemplates[e])&&(i=r.tagBefore2,"generic"!==e&&"image"!==e&&"html"!==e&&"text"!==e||(i=r.tagBefore1),a._isPdfRendered()&&"pdf"===e&&(i=i.replace("kv-file-content","kv-file-content kv-pdf-rendered")),a.previewTemplates[e]=i+t+n)})},_initPreviewCache:function(){var x=this;x.previewCache={data:{},init:function(){var e=x.initialPreview;0<e.length&&!W.isArray(e)&&(e=e.split(x.initialPreviewDelimiter)),x.previewCache.data={content:e,config:x.initialPreviewConfig,tags:x.initialPreviewThumbTags}},count:function(e){return x.previewCache.data&&x.previewCache.data.content?e?x.previewCache.data.content.filter(function(e){return null!==e}).length:x.previewCache.data.content.length:0},get:function(e,t){var d,i,a,r,n,o,l,s,c="init_"+e,u=x.previewCache.data,p=u.config[e],f=u.content[e],g=x.previewInitId+"-"+c,m=W.ifSet("previewAsData",p,x.initialPreviewAsData),h=p?{title:p.title||null,alt:p.alt||null}:{title:null,alt:null},v=function(e,t,i,a,r,n,o,l,s){return l=" file-preview-initial "+W.SORT_CSS+(l?" "+l:""),d=p&&p.fileId||"file_"+r,x._generatePreviewTemplate(e,t,i,a,r,d,!1,null,l,n,o,s,h,p.zoomData||t)};return f&&f.length?(t=void 0===t||t,r=W.ifSet("type",p,x.initialPreviewFileType||"generic"),o=W.ifSet("filename",p,W.ifSet("caption",p)),l=W.ifSet("filetype",p,r),n=x.previewCache.footer(e,t,p&&p.size||null),s=W.ifSet("frameClass",p),i=m?v(r,f,o,l,g,n,c,s):v("generic",f,o,l,g,n,c,s,r).setTokens({content:u.content[e]}),u.tags.length&&u.tags[e]&&(i=W.replaceTags(i,u.tags[e])),W.isEmpty(p)||W.isEmpty(p.frameAttr)||((a=q(document.createElement("div")).html(i)).find(".file-preview-initial").attr(p.frameAttr),i=a.html(),a.remove()),i):""},clean:function(e){e.content=W.cleanArray(e.content),e.config=W.cleanArray(e.config),e.tags=W.cleanArray(e.tags),x.previewCache.data=e},add:function(e,t,i,a){var r=x.previewCache.data,n=e.length-1;return e&&e.length&&(W.isArray(e)||(e=e.split(x.initialPreviewDelimiter)),a?(n=r.content.push(e[0])-1,r.config[n]=t,r.tags[n]=i):(r.content=e,r.config=t,r.tags=i),x.previewCache.clean(r)),n},set:function(e,t,i,a){var r,n=x.previewCache.data;if(e&&e.length&&(W.isArray(e)||(e=e.split(x.initialPreviewDelimiter)),e.filter(function(e){return null!==e}).length)){if(void 0===n.content&&(n.content=[]),void 0===n.config&&(n.config=[]),void 0===n.tags&&(n.tags=[]),a){for(r=0;r<e.length;r++)e[r]&&n.content.push(e[r]);for(r=0;r<t.length;r++)t[r]&&n.config.push(t[r]);for(r=0;r<i.length;r++)i[r]&&n.tags.push(i[r])}else n.content=e,n.config=t,n.tags=i;x.previewCache.clean(n)}},unset:function(e){var t=x.previewCache.count(),i=x.reversePreviewOrder;if(t){if(1===t)return x.previewCache.data.content=[],x.previewCache.data.config=[],x.previewCache.data.tags=[],x.initialPreview=[],x.initialPreviewConfig=[],void(x.initialPreviewThumbTags=[]);x.previewCache.data.content=W.spliceArray(x.previewCache.data.content,e,i),x.previewCache.data.config=W.spliceArray(x.previewCache.data.config,e,i),x.previewCache.data.tags=W.spliceArray(x.previewCache.data.tags,e,i);var a=q.extend(!0,{},x.previewCache.data);x.previewCache.clean(a)}},out:function(){var e,t,i="",a=x.previewCache.count();if(0===a)return{content:"",caption:""};for(e=0;e<a;e++)t=x.previewCache.get(e),i=x.reversePreviewOrder?t+i:i+t;return{content:i,caption:x._getMsgSelected(a)}},footer:function(e,t,i){var a=x.previewCache.data||{};if(W.isEmpty(a.content))return"";(W.isEmpty(a.config)||W.isEmpty(a.config[e]))&&(a.config[e]={}),t=void 0===t||t;var r,n=a.config[e],o=W.ifSet("caption",n),l=W.ifSet("width",n,"auto"),s=W.ifSet("url",n,!1),d=W.ifSet("key",n,null),c=W.ifSet("fileId",n,null),u=x.fileActionSettings,p=x.initialPreviewShowDelete||!1,f=x.initialPreviewDownloadUrl?x.initialPreviewDownloadUrl+"?key="+d+(c?"&fileId="+c:""):"",g=n.downloadUrl||f,m=n.filename||n.caption||"",h=!!g,v=W.ifSet("showRemove",n,W.ifSet("showRemove",u,p)),w=W.ifSet("showDownload",n,W.ifSet("showDownload",u,h)),b=W.ifSet("showZoom",n,W.ifSet("showZoom",u,!0)),_=W.ifSet("showDrag",n,W.ifSet("showDrag",u,!0)),C=!1===s&&t;return w=w&&!1!==n.downloadUrl&&!!g,r=x._renderFileActions(n,!1,w,v,b,_,C,s,d,!0,g,m),x._getLayoutTemplate("footer").setTokens({progress:x._renderThumbProgress(),actions:r,caption:o,size:x._getSize(i),width:l,indicator:""})}},x.previewCache.init()},_isPdfRendered:function(){var e=this.usePdfRenderer;return("function"==typeof e?e():!!e)&&this.pdfRendererUrl},_handler:function(e,t,i){var a=this.namespace,r=t.split(" ").join(a+" ")+a;e&&e.length&&e.off(r).on(r,i)},_encodeURI:function(e){return this.encodeUrl?encodeURI(e):e},_log:function(e){var t=this.$element.attr("id");t&&(e='"'+t+'": '+e),e="bootstrap-fileinput: "+e,void 0!==window.console.log?window.console.log(e):window.alert(e)},_validate:function(){var e="file"===this.$element.attr("type");return e||this._log('The input "type" must be set to "file" for initializing the "bootstrap-fileinput" plugin.'),e},_errorsExist:function(){var e;return!!this.$errorContainer.find("li").length||((e=q(document.createElement("div")).html(this.$errorContainer.html())).find(".kv-error-close").remove(),e.find("ul").remove(),!!q.trim(e.text()).length)},_errorHandler:function(e,t){var i=this,a=e.target.error,r=function(e){i._showError(e.replace("{name}",t))};a.code===a.NOT_FOUND_ERR?r(i.msgFileNotFound):a.code===a.SECURITY_ERR?r(i.msgFileSecured):a.code===a.NOT_READABLE_ERR?r(i.msgFileNotReadable):a.code===a.ABORT_ERR?r(i.msgFilePreviewAborted):r(i.msgFilePreviewError)},_addError:function(e){var t=this,i=t.$errorContainer;e&&i.length&&(i.html(t.errorCloseButton+e),t._handler(i.find(".kv-error-close"),"click",function(){setTimeout(function(){t.showPreview&&!t.getFrames().length&&t.clear(),i.fadeOut("slow")},t.processDelay)}))},_setValidationError:function(e){e=(e?e+" ":"")+"has-error",this.$container.removeClass(e).addClass("has-error"),W.addCss(this.$captionContainer,"is-invalid")},_resetErrors:function(e){var t=this.$errorContainer;this.isError=!1,this.$container.removeClass("has-error"),this.$captionContainer.removeClass("is-invalid"),t.html(""),e?t.fadeOut("slow"):t.hide()},_showFolderError:function(e){var t,i=this,a=i.$errorContainer;e&&(i.isAjaxUpload||i._clearFileInput(),t=i.msgFoldersNotAllowed.replace("{n}",e),i._addError(t),i._setValidationError(),a.fadeIn(800),i._raise("filefoldererror",[e,t]))},_showUploadError:function(e,t,i){var a=this.$errorContainer,r=i||"fileuploaderror",n=t.fileId||"",o=t&&t.id?'<li data-thumb-id="'+t.id+'" data-file-id="'+n+'">'+e+"</li>":"<li>"+e+"</li>";return 0===a.find("ul").length?this._addError("<ul>"+o+"</ul>"):a.find("ul").append(o),a.fadeIn(800),this._raise(r,[t,e]),this._setValidationError("file-input-new"),!0},_showError:function(e,t,i){var a=this,r=a.$errorContainer,n=i||"fileerror";return(t=t||{}).reader=a.reader,a._addError(e),r.fadeIn(800),a._raise(n,[t,e]),a.isAjaxUpload||a._clearFileInput(),a._setValidationError("file-input-new"),a.$btnUpload.attr("disabled",!0),!0},_noFilesError:function(e){var t=this,i=1<t.minFileCount?t.filePlural:t.fileSingle,a=t.msgFilesTooLess.replace("{n}",t.minFileCount).replace("{files}",i),r=t.$errorContainer;t._addError(a),t.isError=!0,t._updateFileDetails(0),r.fadeIn(800),t._raise("fileerror",[e,a]),t._clearFileInput(),t._setValidationError()},_parseError:function(e,t,i,a){var r,n=this,o=q.trim(i+""),l=void 0!==t.responseJSON&&void 0!==t.responseJSON.error?t.responseJSON.error:t.responseText;return n.cancelling&&n.msgUploadAborted&&(o=n.msgUploadAborted),n.showAjaxErrorDetails&&l&&(r=(l=q.trim(l.replace(/\n\s*\n/g,"\n"))).length?"<pre>"+l+"</pre>":"",o+=o?r:l),o||(o=n.msgAjaxError.replace("{operation}",e)),n.cancelling=!1,a?"<b>"+a+": </b>"+o:o},_parseFileType:function(e,t){var i,a,r,n=this.allowedPreviewTypes||[];if("application/text-plain"===e)return"text";for(r=0;r<n.length;r++)if(a=n[r],i=(0,this.fileTypeSettings[a])(e,t)?a:"",!W.isEmpty(i))return i;return"other"},_getPreviewIcon:function(e){var i,a=this,r=null;return e&&-1<e.indexOf(".")&&(i=e.split(".").pop(),a.previewFileIconSettings&&(r=a.previewFileIconSettings[i]||a.previewFileIconSettings[i.toLowerCase()]||null),a.previewFileExtSettings&&q.each(a.previewFileExtSettings,function(e,t){a.previewFileIconSettings[e]&&t(i)&&(r=a.previewFileIconSettings[e])})),r},_parseFilePreviewIcon:function(e,t){var i=this._getPreviewIcon(t)||this.previewFileIcon,a=e;return-1<a.indexOf("{previewFileIcon}")&&(a=a.setTokens({previewFileIconClass:this.previewFileIconClass,previewFileIcon:i})),a},_raise:function(e,t){var i=q.Event(e);if(void 0!==t?this.$element.trigger(i,t):this.$element.trigger(i),i.isDefaultPrevented()||!1===i.result)return!1;switch(e){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:this.ajaxAborted||(this.ajaxAborted=i.result)}return!0},_listenFullScreen:function(e){var t,i,a=this.$modal;a&&a.length&&(t=a&&a.find(".btn-fullscreen"),i=a&&a.find(".btn-borderless"),t.length&&i.length&&(t.removeClass("active").attr("aria-pressed","false"),i.removeClass("active").attr("aria-pressed","false"),e?t.addClass("active").attr("aria-pressed","true"):i.addClass("active").attr("aria-pressed","true"),a.hasClass("file-zoom-fullscreen")?this._maximizeZoomDialog():e?this._maximizeZoomDialog():i.removeClass("active").attr("aria-pressed","false")))},_listen:function(){var e=this,t=e.$element,i=e.$form,a=e.$container;e._handler(t,"click",function(e){t.hasClass("file-no-browse")&&(t.data("zoneClicked")?t.data("zoneClicked",!1):e.preventDefault())}),e._handler(t,"change",q.proxy(e._change,e)),e.showBrowse&&e._handler(e.$btnFile,"click",q.proxy(e._browse,e)),e._handler(a.find(".fileinput-remove:not([disabled])"),"click",q.proxy(e.clear,e)),e._handler(a.find(".fileinput-cancel"),"click",q.proxy(e.cancel,e)),e._handler(a.find(".fileinput-pause"),"click",q.proxy(e.pause,e)),e._initDragDrop(),e._handler(i,"reset",q.proxy(e.clear,e)),e.isAjaxUpload||e._handler(i,"submit",q.proxy(e._submitForm,e)),e._handler(e.$container.find(".fileinput-upload"),"click",q.proxy(e._uploadClick,e)),e._handler(q(window),"resize",function(){e._listenFullScreen(screen.width===window.innerWidth&&screen.height===window.innerHeight)}),e._handler(q(document),"webkitfullscreenchange mozfullscreenchange fullscreenchange MSFullscreenChange",function(){e._listenFullScreen(W.checkFullScreen())}),e._autoFitContent(),e._initClickable(),e._refreshPreview()},_autoFitContent:function(){var i,e=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,a=this,t=e<400?a.previewSettingsSmall||a.defaults.previewSettingsSmall:a.previewSettings||a.defaults.previewSettings;q.each(t,function(e,t){i=".file-preview-frame .file-preview-"+e,a.$preview.find(i+".kv-preview-data,"+i+" .kv-preview-data").css(t)})},_scanDroppedItems:function(t,i,a){a=a||"";var r,e,n,o=this,l=function(e){o._log("Error scanning dropped files!"),o._log(e)};t.isFile?t.file(function(e){i.push(e)},l):t.isDirectory&&(e=t.createReader(),(n=function(){e.readEntries(function(e){if(e&&0<e.length){for(r=0;r<e.length;r++)o._scanDroppedItems(e[r],i,a+t.name+"/");n()}return null},l)})())},_initDragDrop:function(){var e=this,t=e.$dropZone;e.dropZoneEnabled&&e.showPreview&&(e._handler(t,"dragenter dragover",q.proxy(e._zoneDragEnter,e)),e._handler(t,"dragleave",q.proxy(e._zoneDragLeave,e)),e._handler(t,"drop",q.proxy(e._zoneDrop,e)),e._handler(q(document),"dragenter dragover drop",e._zoneDragDropInit))},_zoneDragDropInit:function(e){e.stopPropagation(),e.preventDefault()},_zoneDragEnter:function(e){var t=e.originalEvent.dataTransfer,i=-1<q.inArray("Files",t.types);if(this._zoneDragDropInit(e),this.isDisabled||!i)return e.originalEvent.dataTransfer.effectAllowed="none",void(e.originalEvent.dataTransfer.dropEffect="none");this._raise("fileDragEnter",{sourceEvent:e,files:t.types.Files})&&W.addCss(this.$dropZone,"file-highlighted")},_zoneDragLeave:function(e){this._zoneDragDropInit(e),this.isDisabled||this._raise("fileDragLeave",{sourceEvent:e})&&this.$dropZone.removeClass("file-highlighted")},_zoneDrop:function(e){var t,i=this,a=i.$element,r=e.originalEvent.dataTransfer,n=r.files,o=r.items,l=W.getDragDropFolders(o),s=function(){i.isAjaxUpload?i._change(e,n):(i.changeTriggered=!0,a.get(0).files=n,setTimeout(function(){i.changeTriggered=!1,a.trigger("change"+i.namespace)},i.processDelay)),i.$dropZone.removeClass("file-highlighted")};if(e.preventDefault(),!i.isDisabled&&!W.isEmpty(n)&&i._raise("fileDragDrop",{sourceEvent:e,files:n}))if(0<l){if(!i.isAjaxUpload)return void i._showFolderError(l);for(n=[],t=0;t<o.length;t++){var d=o[t].webkitGetAsEntry();d&&i._scanDroppedItems(d,n)}setTimeout(function(){s()},500)}else s()},_uploadClick:function(e){var t,i=this.$container.find(".fileinput-upload"),a=!i.hasClass("disabled")&&W.isEmpty(i.attr("disabled"));e&&e.isDefaultPrevented()||(this.isAjaxUpload?(e.preventDefault(),a&&this.upload()):a&&"submit"!==i.attr("type")&&((t=i.closest("form")).length&&t.trigger("submit"),e.preventDefault()))},_submitForm:function(){return this._isFileSelectionValid()&&!this._abort({})},_clearPreview:function(){var e=this,t=e.$preview;(e.showUploadedThumbs?e.getFrames(":not(.file-preview-success)"):e.getFrames()).each(function(){var e=q(this);e.remove(),W.cleanZoomCache(t.find("#zoom-"+e.attr("id")))}),e.getFrames().length&&e.showPreview||e._resetUpload(),e._validateDefaultPreview()},_initSortable:function(){var e,r=this,t=r.$preview,i="."+W.SORT_CSS,n=r.reversePreviewOrder;window.KvSortable&&0!==t.find(i).length&&(e={handle:".drag-handle-init",dataIdAttr:"data-preview-id",scroll:!1,draggable:i,onSort:function(e){var t=e.oldIndex,i=e.newIndex,a=0;r.initialPreview=W.moveArray(r.initialPreview,t,i,n),r.initialPreviewConfig=W.moveArray(r.initialPreviewConfig,t,i,n),r.previewCache.init(),r.getFrames(".file-preview-initial").each(function(){q(this).attr("data-fileindex","init_"+a),a++}),r._raise("filesorted",{previewId:q(e.item).attr("id"),oldIndex:t,newIndex:i,stack:r.initialPreviewConfig})}},t.data("kvsortable")&&t.kvsortable("destroy"),q.extend(!0,e,r.fileActionSettings.dragSettings),t.kvsortable(e))},_setPreviewContent:function(e){this.$preview.html(e),this._autoFitContent()},_initPreviewImageOrientations:function(){var n=this,o=0;n.autoOrientImageInitial&&n.getFrames(".file-preview-initial").each(function(){var e,t,i,a=q(this),r=n.initialPreviewConfig[o];r&&r.exif&&r.exif.Orientation&&(i=a.attr("id"),e=a.find(">.kv-file-content img"),t=n.$preview.find("#zoom-"+i+" >.kv-file-content img"),e&&e.length&&W.setImageOrientation(e,t,r.exif.Orientation)),o++})},_initPreview:function(e){var t,i=this,a=i.initialCaption||"";if(!i.previewCache.count(!0))return i._clearPreview(),void(e?i._setCaption(a):i._initCaption());t=i.previewCache.out(),a=e&&i.initialCaption?i.initialCaption:t.caption,i._setPreviewContent(t.content),i._setInitThumbAttr(),i._setCaption(a),i._initSortable(),W.isEmpty(t.content)||i.$container.removeClass("file-input-new"),i._initPreviewImageOrientations()},_getZoomButton:function(e){var t=this.previewZoomButtonIcons[e],i=this.previewZoomButtonClasses[e],a=' title="'+(this.previewZoomButtonTitles[e]||"")+'" '+("close"===e?' data-dismiss="modal" aria-hidden="true"':"");return"fullscreen"!==e&&"borderless"!==e&&"toggleheader"!==e||(a+=' data-toggle="button" aria-pressed="false" autocomplete="off"'),'<button type="button" class="'+i+" btn-"+e+'"'+a+">"+t+"</button>"},_getModalContent:function(){var e=this;return e._getLayoutTemplate("modal").setTokens({rtl:e.rtl?" kv-rtl":"",zoomFrameClass:e.frameClass,heading:e.msgZoomModalHeading,prev:e._getZoomButton("prev"),next:e._getZoomButton("next"),toggleheader:e._getZoomButton("toggleheader"),fullscreen:e._getZoomButton("fullscreen"),borderless:e._getZoomButton("borderless"),close:e._getZoomButton("close")})},_listenModalEvent:function(a){var r=this,n=r.$modal;n.on(a+".bs.modal",function(e){var t=n.find(".btn-fullscreen"),i=n.find(".btn-borderless");r._raise("filezoom"+a,{sourceEvent:e,previewId:n.data("previewId"),modal:n}),"shown"===a&&(i.removeClass("active").attr("aria-pressed","false"),t.removeClass("active").attr("aria-pressed","false"),n.hasClass("file-zoom-fullscreen")&&(r._maximizeZoomDialog(),W.checkFullScreen()?t.addClass("active").attr("aria-pressed","true"):i.addClass("active").attr("aria-pressed","true")))})},_initZoom:function(){var e,i=this,t=i._getLayoutTemplate("modalMain"),a="#"+W.MODAL_ID;i.showPreview&&(i.$modal=q(a),i.$modal&&i.$modal.length||(e=q(document.createElement("div")).html(t).insertAfter(i.$container),i.$modal=q(a).insertBefore(e),e.remove()),W.initModal(i.$modal),i.$modal.html(i._getModalContent()),q.each(W.MODAL_EVENTS,function(e,t){i._listenModalEvent(t)}))},_initZoomButtons:function(){var e,t,i=this.$modal.data("previewId")||"",a=this.getFrames().toArray(),r=a.length,n=this.$modal.find(".btn-prev"),o=this.$modal.find(".btn-next");if(a.length<2)return n.hide(),void o.hide();n.show(),o.show(),r&&(e=q(a[0]),t=q(a[r-1]),n.removeAttr("disabled"),o.removeAttr("disabled"),e.length&&e.attr("id")===i&&n.attr("disabled",!0),t.length&&t.attr("id")===i&&o.attr("disabled",!0))},_maximizeZoomDialog:function(){var e=this.$modal,t=e.find(".modal-header:visible"),i=e.find(".modal-footer:visible"),a=e.find(".modal-body"),r=q(window).height();e.addClass("file-zoom-fullscreen"),t&&t.length&&(r-=t.outerHeight(!0)),i&&i.length&&(r-=i.outerHeight(!0)),a&&a.length&&(r-=a.outerHeight(!0)-a.height()),e.find(".kv-zoom-body").height(r)},_resizeZoomDialog:function(e){var t=this,i=t.$modal,a=i.find(".btn-fullscreen"),r=i.find(".btn-borderless");if(i.hasClass("file-zoom-fullscreen"))W.toggleFullScreen(!1),e?a.hasClass("active")||(i.removeClass("file-zoom-fullscreen"),t._resizeZoomDialog(!0),r.hasClass("active")&&r.removeClass("active").attr("aria-pressed","false")):a.hasClass("active")?a.removeClass("active").attr("aria-pressed","false"):(i.removeClass("file-zoom-fullscreen"),t.$modal.find(".kv-zoom-body").css("height",t.zoomModalHeight));else{if(!e)return void t._maximizeZoomDialog();W.toggleFullScreen(!0)}i.focus()},_setZoomContent:function(e,t){var i,a,r,n,o,l,s,d,c=this,u=e.attr("id"),p=c.$preview.find("#zoom-"+u),f=c.$modal,g=f.find(".btn-fullscreen"),m=f.find(".btn-borderless"),h=f.find(".btn-toggleheader");a=p.attr("data-template")||"generic",r=(i=p.find(".kv-file-content")).length?i.html():"",n=(e.data("caption")||"")+" "+(e.data("size")||""),f.find(".kv-zoom-title").attr("title",q("<div/>").html(n).text()).html(n),o=f.find(".kv-zoom-body"),f.removeClass("kv-single-content"),t?(d=o.addClass("file-thumb-loading").clone().insertAfter(o),o.html(r).hide(),d.fadeOut("fast",function(){o.fadeIn("fast",function(){o.removeClass("file-thumb-loading")}),d.remove()})):o.html(r),(s=c.previewZoomSettings[a])&&(l=o.find(".kv-preview-data"),W.addCss(l,"file-zoom-detail"),q.each(s,function(e,t){l.css(e,t),(l.attr("width")&&"width"===e||l.attr("height")&&"height"===e)&&l.removeAttr(e)})),f.data("previewId",u),c._handler(f.find(".btn-prev"),"click",function(){c._zoomSlideShow("prev",u)}),c._handler(f.find(".btn-next"),"click",function(){c._zoomSlideShow("next",u)}),c._handler(g,"click",function(){c._resizeZoomDialog(!0)}),c._handler(m,"click",function(){c._resizeZoomDialog(!1)}),c._handler(h,"click",function(){var e,a=f.find(".modal-header"),t=f.find(".modal-body .floating-buttons"),i=a.find(".kv-zoom-actions"),r=function(e){var t=c.$modal.find(".kv-zoom-body"),i=c.zoomModalHeight;f.hasClass("file-zoom-fullscreen")&&(i=t.outerHeight(!0),e||(i-=a.outerHeight(!0))),t.css("height",e?i+e:i)};a.is(":visible")?(e=a.outerHeight(!0),a.slideUp("slow",function(){i.find(".btn").appendTo(t),r(e)})):(t.find(".btn").appendTo(i),a.slideDown("slow",function(){r()})),f.focus()}),c._handler(f,"keydown",function(e){var t=e.which||e.keyCode,i=q(this).find(".btn-prev"),a=q(this).find(".btn-next"),r=q(this).data("previewId"),n=c.rtl?39:37,o=c.rtl?37:39;t===n&&i.length&&!i.attr("disabled")&&c._zoomSlideShow("prev",r),t===o&&a.length&&!a.attr("disabled")&&c._zoomSlideShow("next",r)})},_zoomPreview:function(e){var t,i=this.$modal;if(!e.length)throw"Cannot zoom to detailed preview!";W.initModal(i),i.html(this._getModalContent()),t=e.closest(W.FRAMES),this._setZoomContent(t),i.modal("show"),this._initZoomButtons()},_zoomSlideShow:function(e,t){var i,a,r,n=this,o=n.$modal.find(".kv-zoom-actions .btn-"+e),l=n.getFrames().toArray(),s=l.length;if(!o.attr("disabled")){for(a=0;a<s;a++)if(q(l[a]).attr("id")===t){r="prev"===e?a-1:a+1;break}r<0||s<=r||!l[r]||((i=q(l[r])).length&&n._setZoomContent(i,!0),n._initZoomButtons(),n._raise("filezoom"+e,{previewId:t,modal:n.$modal}))}},_initZoomButton:function(){var t=this;t.$preview.find(".kv-file-zoom").each(function(){var e=q(this);t._handler(e,"click",function(){t._zoomPreview(e)})})},_inputFileCount:function(){return this.$element.get(0).files.length},_refreshPreview:function(){var e,t=this;(t._inputFileCount()||t.isAjaxUpload)&&t.showPreview&&t.isPreviewable&&(t.isAjaxUpload&&0<t.fileManager.count()?(e=t.fileManager.stack,t.fileManager.clear(),t._clearFileInput()):e=t.$element.get(0).files,e&&e.length&&(t.readFiles(e),t._setFileDropZoneTitle()))},_clearObjects:function(e){e.find("video audio").each(function(){this.pause(),q(this).remove()}),e.find("img object div").each(function(){q(this).remove()})},_clearFileInput:function(){var e,t,i,a=this.$element;this._inputFileCount()&&(e=a.closest("form"),t=q(document.createElement("form")),i=q(document.createElement("div")),a.before(i),e.length?e.after(t):i.after(t),t.append(a).trigger("reset"),i.before(a).remove(),t.remove())},_resetUpload:function(){var e=this;e.uploadCache={content:[],config:[],tags:[],append:!0},e.$btnUpload.removeAttr("disabled"),e._setProgress(0),e.$progress.hide(),e._resetErrors(!1),e._initAjax(),e.fileManager.clearImages(),e._resetCanvas(),e.cacheInitialPreview={},e.overwriteInitial&&(e.initialPreview=[],e.initialPreviewConfig=[],e.initialPreviewThumbTags=[],e.previewCache.data={content:[],config:[],tags:[]})},_resetCanvas:function(){var e=this;e.canvas&&e.imageCanvasContext&&e.imageCanvasContext.clearRect(0,0,e.canvas.width,e.canvas.height)},_hasInitialPreview:function(){return!this.overwriteInitial&&this.previewCache.count(!0)},_resetPreview:function(){var e,t,i=this;i.previewCache.count(!0)?(e=i.previewCache.out(),i._setPreviewContent(e.content),i._setInitThumbAttr(),t=i.initialCaption?i.initialCaption:e.caption,i._setCaption(t)):(i._clearPreview(),i._initCaption()),i.showPreview&&(i._initZoom(),i._initSortable())},_clearDefaultPreview:function(){this.$preview.find(".file-default-preview").remove()},_validateDefaultPreview:function(){var e=this;e.showPreview&&!W.isEmpty(e.defaultPreviewContent)&&(e._setPreviewContent('<div class="file-default-preview">'+e.defaultPreviewContent+"</div>"),e.$container.removeClass("file-input-new"),e._initClickable())},_resetPreviewThumbs:function(e){var t,i=this;if(e)return i._clearPreview(),void i.clearFileStack();i._hasInitialPreview()?(t=i.previewCache.out(),i._setPreviewContent(t.content),i._setInitThumbAttr(),i._setCaption(t.caption),i._initPreviewActions()):i._clearPreview()},_getLayoutTemplate:function(e){var t=this.layoutTemplates[e];return W.isEmpty(this.customLayoutTags)?t:W.replaceTags(t,this.customLayoutTags)},_getPreviewTemplate:function(e){var t=this.previewTemplates[e];return W.isEmpty(this.customPreviewTags)?t:W.replaceTags(t,this.customPreviewTags)},_getOutData:function(e,t,i,a){var r=this;return t=t||{},i=i||{},{formdata:e,files:a=a||r.fileManager.list(),filenames:r.filenames,filescount:r.getFilesCount(),extra:r._getExtraData(),response:i,reader:r.reader,jqXHR:t}},_getMsgSelected:function(e){var t=1===e?this.fileSingle:this.filePlural;return 0<e?this.msgSelected.replace("{n}",e).replace("{files}",t):this.msgNoFilesSelected},_getFrame:function(e){var t=q("#"+e);return t.length?t:(this._log('Invalid thumb frame with id: "'+e+'".'),null)},_getThumbs:function(e){return e=e||"",this.getFrames(":not(.file-preview-initial)"+e)},_getExtraData:function(e,t){var i=this.uploadExtraData;return"function"==typeof this.uploadExtraData&&(i=this.uploadExtraData(e,t)),i},_initXhr:function(e,n,o){var l=this,s=l.fileManager,t=function(e){var t=0,i=e.total,a=e.loaded||e.position,r=s.getUploadStats(n,a,i);e.lengthComputable&&!l.enableResumableUpload&&(t=W.round(a/i*100)),n?l._setFileUploadStats(n,t,o,r):l._setProgress(t,null,null,l._getStats(r)),l._raise("fileajaxprogress",[r])};return e.upload&&(l.progressDelay&&(t=W.debounce(t,l.progressDelay)),e.upload.addEventListener("progress",t,!1)),e},_initAjaxSettings:function(){this._ajaxSettings=q.extend(!0,{},this.ajaxSettings),this._ajaxDeleteSettings=q.extend(!0,{},this.ajaxDeleteSettings)},_mergeAjaxCallback:function(e,t,i){var a,r=this._ajaxSettings,n=this.mergeAjaxCallbacks;"delete"===i&&(r=this._ajaxDeleteSettings,n=this.mergeAjaxDeleteCallbacks),a=r[e],r[e]=n&&"function"==typeof a?"before"===n?function(){a.apply(this,arguments),t.apply(this,arguments)}:function(){t.apply(this,arguments),a.apply(this,arguments)}:t},_ajaxSubmit:function(e,t,i,a,r,n,o,l){var s,d,c,u,p=this;p._raise("filepreajax",[r,n,o])&&(r.append("initialPreview",JSON.stringify(p.initialPreview)),r.append("initialPreviewConfig",JSON.stringify(p.initialPreviewConfig)),r.append("initialPreviewThumbTags",JSON.stringify(p.initialPreviewThumbTags)),p._initAjaxSettings(),p._mergeAjaxCallback("beforeSend",e),p._mergeAjaxCallback("success",t),p._mergeAjaxCallback("complete",i),p._mergeAjaxCallback("error",a),"function"==typeof(l=l||p.uploadUrlThumb||p.uploadUrl)&&(l=l()),"object"==typeof(c=p._getExtraData(n,o)||{})&&q.each(c,function(e,t){r.append(e,t)}),d={xhr:function(){var e=q.ajaxSettings.xhr();return p._initXhr(e,n,p.fileManager.count())},url:p._encodeURI(l),type:"POST",dataType:"json",data:r,cache:!1,processData:!1,contentType:!1},s=q.extend(!0,{},d,p._ajaxSettings),p.ajaxQueue.push(s),u=function(){var e,t;p.ajaxCurrentThreads<p.maxAjaxThreads&&void 0!==(e=p.ajaxQueue.shift())&&(p.ajaxCurrentThreads++,t=q.ajax(e).done(function(){clearInterval(p.ajaxQueueIntervalId),p.ajaxCurrentThreads--}),p.ajaxRequests.push(t))},p.ajaxQueueIntervalId=setInterval(u,p.queueDelay))},_mergeArray:function(e,t){var i=W.cleanArray(this[e]),a=W.cleanArray(t);this[e]=i.concat(a)},_initUploadSuccess:function(e,t,i){var a,r,n,o,l,s,d,c,u,p=this;p.showPreview&&"object"==typeof e&&!q.isEmptyObject(e)&&void 0!==e.initialPreview&&0<e.initialPreview.length&&(p.hasInitData=!0,s=e.initialPreview||[],d=e.initialPreviewConfig||[],c=e.initialPreviewThumbTags||[],a=void 0===e.append||e.append,0<s.length&&!W.isArray(s)&&(s=s.split(p.initialPreviewDelimiter)),s.length&&(p._mergeArray("initialPreview",s),p._mergeArray("initialPreviewConfig",d),p._mergeArray("initialPreviewThumbTags",c)),void 0!==t?i?(u=t.attr("data-fileindex"),p.uploadCache.content[u]=s[0],p.uploadCache.config[u]=d[0]||[],p.uploadCache.tags[u]=c[0]||[],p.uploadCache.append=a):(n=p.previewCache.add(s[0],d[0],c[0],a),r=p.previewCache.get(n,!1),(l=(o=q(document.createElement("div")).html(r).hide().insertAfter(t)).find(".kv-zoom-cache"))&&l.length&&l.insertAfter(t),t.fadeOut("slow",function(){var e=o.find(".file-preview-frame");e&&e.length&&e.insertBefore(t).fadeIn("slow").css("display:inline-block"),p._initPreviewActions(),p._clearFileInput(),W.cleanZoomCache(p.$preview.find("#zoom-"+t.attr("id"))),p._initSortable()})):(p.previewCache.set(s,d,c,a),p._initPreview(),p._initPreviewActions()))},_initSuccessThumbs:function(){var r=this;r.showPreview&&r._getThumbs(W.FRAMES+".file-preview-success").each(function(){var i=q(this),a=r.$preview,e=i.find(".kv-file-remove");e.removeAttr("disabled"),r._handler(e,"click",function(){var e=i.attr("id"),t=r._raise("filesuccessremove",[e,i.attr("data-fileindex")]);W.cleanMemory(i),!1!==t&&i.fadeOut("slow",function(){W.cleanZoomCache(a.find("#zoom-"+e)),i.remove(),r.getFrames().length||r.reset()})})})},_updateInitialPreview:function(){var e,t,i=this,a=i.uploadCache,r=0,n=i.cacheInitialPreview;if(n&&n.content&&(r=n.content.length),i.showPreview){if(i.previewCache.set(a.content,a.config,a.tags,a.append),r){for(e=0;e<a.content.length;e++)t=e+r,n.content[t]=a.content[e],n.config.length&&(n.config[t]=a.config[e]),n.tags.length&&(n.tags[t]=a.tags[e]);i.initialPreview=W.cleanArray(n.content),i.initialPreviewConfig=W.cleanArray(n.config),i.initialPreviewThumbTags=W.cleanArray(n.tags)}else i.initialPreview=a.content,i.initialPreviewConfig=a.config,i.initialPreviewThumbTags=a.tags;i.cacheInitialPreview={},i.hasInitData&&(i._initPreview(),i._initPreviewActions())}},_uploadSingle:function(r,n,o){var l,s,e,d,t,c,u,i,a,p,f,g,m=this,h=m.fileManager,v=h.count(),w=new FormData,b=m.previewInitId+"-"+r,_=0<v||!q.isEmptyObject(m.uploadExtraData),C=h.getFile(n),x=m.resumableManager,y={id:b,index:r,fileId:n},T=m.fileManager.getFileName(n,!0);if(m.enableResumableUpload)return m.paused=!1,m.cancelling=!1,h.initStats(n),void x.uploadSingle(n);m.showPreview&&(s=m.fileManager.getThumb(n),u=s.find(".file-thumb-progress"),d=s.find(".kv-file-upload"),t=s.find(".kv-file-remove"),u.show()),0===v||!_||m.showPreview&&d&&d.hasClass("disabled")||m._abort(y)||(g=function(){c||m.fileManager.removeFile(n),m.fileManager.setProcessed(n),m.fileManager.isProcessed()&&(m.fileBatchCompleted=!0)},e=function(){var t;m.fileBatchCompleted&&setTimeout(function(){var e=0===m.fileManager.count();m._updateInitialPreview(),m.unlock(e),e&&m._clearFileInput(),t=m.$preview.find(".file-preview-initial"),m.uploadAsync&&t.length&&(W.addCss(t,W.SORT_CSS),m._initSortable()),m._raise("filebatchuploadcomplete",[m.fileManager.stack,m._getExtraData()]),m.fileManager.clear(),m._setProgress(101),m.ajaxAborted=!1},m.processDelay)},i=function(e){l=m._getOutData(w,e),h.initStats(n),m.fileBatchCompleted=!1,o||(m.ajaxAborted=!1),m.showPreview&&(s.hasClass("file-preview-success")||(m._setThumbStatus(s,"Loading"),W.addCss(s,"file-uploading")),d.attr("disabled",!0),t.attr("disabled",!0)),o||m.lock(),m._raise("filepreupload",[l,b,r]),q.extend(!0,y,l),m._abort(y)&&(e.abort(),o||(m._setThumbStatus(s,"New"),s.removeClass("file-uploading"),d.removeAttr("disabled"),t.removeAttr("disabled"),m.unlock()),m._setProgressCancelled())},a=function(e,t,i){var a=m.showPreview&&s.attr("id")?s.attr("id"):b;l=m._getOutData(w,i,e),q.extend(!0,y,l),setTimeout(function(){W.isEmpty(e)||W.isEmpty(e.error)?(m.showPreview&&(m._setThumbStatus(s,"Success"),d.hide(),m._initUploadSuccess(e,s,o),m._setProgress(101,u)),m._raise("fileuploaded",[l,a,r]),o?g():m.fileManager.remove(s)):(c=!0,m._showUploadError(e.error,y),m._setPreviewError(s,!0),m.retryErrorUploads||d.hide(),o&&g(),m._setProgress(101,q("#"+a).find(".file-thumb-progress"),m.msgUploadError))},m.processDelay)},p=function(){setTimeout(function(){m.showPreview&&(d.removeAttr("disabled"),t.removeAttr("disabled"),s.removeClass("file-uploading")),o?e():(m.unlock(!1),m._clearFileInput()),m._initSuccessThumbs()},m.processDelay)},f=function(e,t,i){var a=m.ajaxOperations.uploadThumb,r=m._parseError(a,e,i,m.fileManager.getFileName(n));c=!0,setTimeout(function(){o&&g(),m.fileManager.setProgress(n,100),m._setPreviewError(s,!0),m.retryErrorUploads||d.hide(),q.extend(!0,y,m._getOutData(w,e)),m._setProgress(101,u,m.msgAjaxProgressError.replace("{operation}",a)),m._setProgress(101,s.find(".file-thumb-progress"),m.msgUploadError),m._showUploadError(r,y)},m.processDelay)},w.append(m.uploadFileAttr,C.file,T),m._setUploadData(w,{fileId:n}),m._ajaxSubmit(i,a,p,f,w,n,r))},_uploadBatch:function(){var e,t,i,a,l,s=this,r=s.fileManager,o=r.total(),n=0<o||!q.isEmptyObject(s.uploadExtraData),d=new FormData;if(0!==o&&n&&!s._abort({})){l=function(){s.fileManager.clear(),s._clearFileInput()},e=function(e){s.lock(),r.initStats();var t=s._getOutData(d,e);s.ajaxAborted=!1,s.showPreview&&s._getThumbs().each(function(){var e=q(this),t=e.find(".kv-file-upload"),i=e.find(".kv-file-remove");e.hasClass("file-preview-success")||(s._setThumbStatus(e,"Loading"),W.addCss(e,"file-uploading")),t.attr("disabled",!0),i.attr("disabled",!0)}),s._raise("filebatchpreupload",[t]),s._abort(t)&&(e.abort(),s._getThumbs().each(function(){var e=q(this),t=e.find(".kv-file-upload"),i=e.find(".kv-file-remove");e.hasClass("file-preview-loading")&&(s._setThumbStatus(e,"New"),e.removeClass("file-uploading")),t.removeAttr("disabled"),i.removeAttr("disabled")}),s._setProgressCancelled())},t=function(e,t,i){var a=s._getOutData(d,i,e),r=0,n=s._getThumbs(":not(.file-preview-success)"),o=W.isEmpty(e)||W.isEmpty(e.errorkeys)?[]:e.errorkeys;W.isEmpty(e)||W.isEmpty(e.error)?(s._raise("filebatchuploadsuccess",[a]),l(),s.showPreview?(n.each(function(){var e=q(this);s._setThumbStatus(e,"Success"),e.removeClass("file-uploading"),e.find(".kv-file-upload").hide().removeAttr("disabled")}),s._initUploadSuccess(e)):s.reset(),s._setProgress(101)):(s.showPreview&&(n.each(function(){var e=q(this);e.removeClass("file-uploading"),e.find(".kv-file-upload").removeAttr("disabled"),e.find(".kv-file-remove").removeAttr("disabled"),0===o.length||-1!==q.inArray(r,o)?(s._setPreviewError(e,!0),s.retryErrorUploads||(e.find(".kv-file-upload").hide(),s.fileManager.remove(e))):(e.find(".kv-file-upload").hide(),s._setThumbStatus(e,"Success"),s.fileManager.remove(e)),e.hasClass("file-preview-error")&&!s.retryErrorUploads||r++}),s._initUploadSuccess(e)),s._showUploadError(e.error,a,"filebatchuploaderror"),s._setProgress(101,s.$progress,s.msgUploadError))},a=function(){s.unlock(),s._initSuccessThumbs(),s._clearFileInput(),s._raise("filebatchuploadcomplete",[s.fileManager.stack,s._getExtraData()])},i=function(e,t,i){var a=s._getOutData(d,e),r=s.ajaxOperations.uploadBatch,n=s._parseError(r,e,i);s._showUploadError(n,a,"filebatchuploaderror"),s.uploadFileCount=o-1,s.showPreview&&(s._getThumbs().each(function(){var e=q(this);e.removeClass("file-uploading"),s.fileManager.getFile(e.attr("data-fileid"))&&s._setPreviewError(e)}),s._getThumbs().removeClass("file-uploading"),s._getThumbs(" .kv-file-upload").removeAttr("disabled"),s._getThumbs(" .kv-file-delete").removeAttr("disabled"),s._setProgress(101,s.$progress,s.msgAjaxProgressError.replace("{operation}",r)))};var c=0;q.each(s.fileManager.stack,function(e,t){W.isEmpty(t.file)||d.append(s.uploadFileAttr,t.file,t.nameFmt||"untitled_"+c),c++}),s._ajaxSubmit(e,t,a,i,d)}},_uploadExtraOnly:function(){var e,t,i,a,o=this,l={},s=new FormData;o._abort(l)||(e=function(e){o.lock();var t=o._getOutData(s,e);o._raise("filebatchpreupload",[t]),o._setProgress(50),l.data=t,l.xhr=e,o._abort(l)&&(e.abort(),o._setProgressCancelled())},t=function(e,t,i){var a=o._getOutData(s,i,e);W.isEmpty(e)||W.isEmpty(e.error)?(o._raise("filebatchuploadsuccess",[a]),o._clearFileInput(),o._initUploadSuccess(e),o._setProgress(101)):o._showUploadError(e.error,a,"filebatchuploaderror")},i=function(){o.unlock(),o._clearFileInput(),o._raise("filebatchuploadcomplete",[o.fileManager.stack,o._getExtraData()])},a=function(e,t,i){var a=o._getOutData(s,e),r=o.ajaxOperations.uploadExtra,n=o._parseError(r,e,i);l.data=a,o._showUploadError(n,a,"filebatchuploaderror"),o._setProgress(101,o.$progress,o.msgAjaxProgressError.replace("{operation}",r))},o._ajaxSubmit(e,t,i,a,s))},_deleteFileIndex:function(e){var t=this,i=e.attr("data-fileindex"),a=t.reversePreviewOrder;"init_"===i.substring(0,5)&&(i=parseInt(i.replace("init_","")),t.initialPreview=W.spliceArray(t.initialPreview,i,a),t.initialPreviewConfig=W.spliceArray(t.initialPreviewConfig,i,a),t.initialPreviewThumbTags=W.spliceArray(t.initialPreviewThumbTags,i,a),t.getFrames().each(function(){var e=q(this),t=e.attr("data-fileindex");"init_"===t.substring(0,5)&&(t=parseInt(t.replace("init_","")),i<t&&(t--,e.attr("data-fileindex","init_"+t)))}),(t.uploadAsync||t.enableResumableUpload)&&(t.cacheInitialPreview=t.getPreview()))},_initFileActions:function(){var c=this,u=c.$preview;c.showPreview&&(c._initZoomButton(),c.getFrames(" .kv-file-remove").each(function(){var r,n,o,e=q(this),l=e.closest(W.FRAMES),s=l.attr("id"),d=l.attr("data-fileindex");c._handler(e,"click",function(){if(!1===c._raise("filepreremove",[s,d])||!c._validateMinCount())return!1;r=l.hasClass("file-preview-error"),W.cleanMemory(l),l.fadeOut("slow",function(){W.cleanZoomCache(u.find("#zoom-"+s)),c.fileManager.remove(l),c._clearObjects(l),l.remove(),s&&r&&c.$errorContainer.find('li[data-thumb-id="'+s+'"]').fadeOut("fast",function(){q(this).remove(),c._errorsExist()||c._resetErrors()}),c._clearFileInput();var e,t=c.previewCache.count(!0),i=c.fileManager.count(),a=c.showPreview&&c.getFrames().length;0!==i||0!==t||a?(o=1<(n=t+i)?c._getMsgSelected(n):(e=c.fileManager.getFirstFile())?e.nameFmt:"_",c._setCaption(o)):c.reset(),c._raise("fileremoved",[s,d])})})}),c.getFrames(" .kv-file-upload").each(function(){var i=q(this);c._handler(i,"click",function(){var e=i.closest(W.FRAMES),t=e.attr("data-fileid");c.$progress.hide(),e.hasClass("file-preview-error")&&!c.retryErrorUploads||c._uploadSingle(c.fileManager.getIndex(t),t,!1)})}))},_initPreviewActions:function(){var f=this,g=f.$preview,m=f.deleteExtraData||{},e=W.FRAMES+" .kv-file-remove",t=f.fileActionSettings,h=t.removeClass,v=t.removeErrorClass,w=function(){var e=f.isAjaxUpload?f.previewCache.count(!0):f._inputFileCount();f.getFrames().length||e||(f._setCaption(""),f.reset(),f.initialCaption="")};f._initZoomButton(),g.find(e).each(function(){var e,t,i,n=q(this),a=n.data("url")||f.deleteUrl,o=n.data("key");if(!W.isEmpty(a)&&void 0!==o){"function"==typeof a&&(a=a());var r,l,s,d,c=n.closest(W.FRAMES),u=f.previewCache.data,p=c.attr("data-fileindex");p=parseInt(p.replace("init_","")),s=W.isEmpty(u.config)&&W.isEmpty(u.config[p])?null:u.config[p],"function"==typeof(d=W.isEmpty(s)||W.isEmpty(s.extra)?m:s.extra)&&(d=d()),l={id:n.attr("id"),key:o,extra:d},e=function(e){f.ajaxAborted=!1,f._raise("filepredelete",[o,e,d]),f._abort()?e.abort():(n.removeClass(v),W.addCss(c,"file-uploading"),W.addCss(n,"disabled "+h))},t=function(e,t,i){var a,r;if(!W.isEmpty(e)&&!W.isEmpty(e.error))return l.jqXHR=i,l.response=e,f._showError(e.error,l,"filedeleteerror"),c.removeClass("file-uploading"),n.removeClass("disabled "+h).addClass(v),void w();c.removeClass("file-uploading").addClass("file-deleted"),c.fadeOut("slow",function(){p=parseInt(c.attr("data-fileindex").replace("init_","")),f.previewCache.unset(p),f._deleteFileIndex(c),a=f.previewCache.count(!0),r=0<a?f._getMsgSelected(a):"",f._setCaption(r),f._raise("filedeleted",[o,i,d]),W.cleanZoomCache(g.find("#zoom-"+c.attr("id"))),f._clearObjects(c),c.remove(),w()})},i=function(e,t,i){var a=f.ajaxOperations.deleteThumb,r=f._parseError(a,e,i);l.jqXHR=e,l.response={},f._showError(r,l,"filedeleteerror"),c.removeClass("file-uploading"),n.removeClass("disabled "+h).addClass(v),w()},f._initAjaxSettings(),f._mergeAjaxCallback("beforeSend",e,"delete"),f._mergeAjaxCallback("success",t,"delete"),f._mergeAjaxCallback("error",i,"delete"),r=q.extend(!0,{},{url:f._encodeURI(a),type:"POST",dataType:"json",data:q.extend(!0,{},{key:o},d)},f._ajaxDeleteSettings),f._handler(n,"click",function(){if(!f._validateMinCount())return!1;f.ajaxAborted=!1,f._raise("filebeforedelete",[o,d]),f.ajaxAborted instanceof Promise?f.ajaxAborted.then(function(e){e||q.ajax(r)}):f.ajaxAborted||q.ajax(r)})}})},_hideFileIcon:function(){this.overwriteInitial&&this.$captionContainer.removeClass("icon-visible")},_showFileIcon:function(){W.addCss(this.$captionContainer,"icon-visible")},_getSize:function(e,t){var i,a,r=parseFloat(e),n=this.fileSizeGetter;return q.isNumeric(e)&&q.isNumeric(r)?(a="function"==typeof n?n(r):0===r?"0.00 B":(i=Math.floor(Math.log(r)/Math.log(1024)),t||(t=["B","KB","MB","GB","TB","PB","EB","ZB","YB"]),1*(r/Math.pow(1024,i)).toFixed(2)+" "+t[i]),this._getLayoutTemplate("size").replace("{sizeText}",a)):""},_getFileType:function(e){return this.mimeTypeAliases[e]||e},_generatePreviewTemplate:function(l,e,s,d,c,u,t,i,p,a,f,g,m,r){var n,o,h=this,v=h.slug(s),w="",b="",_=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,C=h.preferIconicPreview?"other":l,x=v,y=v,T=a||h._renderFileFooter(l,v,i,"auto",t),I=h._getPreviewIcon(s),P="type-default",k=I&&h.preferIconicPreview,S=I&&h.preferIconicZoomPreview;return(n=_<400?h.previewSettingsSmall[C]||h.defaults.previewSettingsSmall[C]:h.previewSettings[C]||h.defaults.previewSettings[C])&&q.each(n,function(e,t){b+=e+":"+t+";"}),o=function(e,t,i,a){var r=i?"zoom-"+c:c,n=h._getPreviewTemplate(e),o=(p||"")+" "+a;return h.frameClass&&(o=h.frameClass+" "+o),i&&(o=o.replace(" "+W.SORT_CSS,"")),n=h._parseFilePreviewIcon(n,s),"text"===e&&(t=W.htmlEncode(t)),"object"!==l||d||q.each(h.defaults.fileTypeSettings,function(e,t){"object"!==e&&"other"!==e&&t(s,d)&&(P="type-"+e)}),W.isEmpty(m)||(void 0!==m.title&&null!==m.title&&(x=m.title),void 0!==m.alt&&null!==m.alt&&(x=m.alt)),n.setTokens({previewId:r,caption:v,title:x,alt:y,frameClass:o,type:h._getFileType(d),fileindex:f,fileid:u||"",typeCss:P,footer:T,data:t,template:g||l,style:b?'style="'+b+'"':""})},f=f||c.slice(c.lastIndexOf("-")+1),h.fileActionSettings.showZoom&&(w=o(S?"other":l,r||e,!0,"kv-zoom-thumb")),w="\n"+h._getLayoutTemplate("zoomCache").replace("{zoomContent}",w),"function"==typeof h.sanitizeZoomCache&&(w=h.sanitizeZoomCache(w)),o(k?"other":l,e,!1,"kv-preview-thumb")+w},_addToPreview:function(e,t){return this.reversePreviewOrder?e.prepend(t):e.append(t)},_previewDefault:function(e,t,i){var a=this,r=a.$preview;if(a.showPreview){var n,o=W.getFileName(e),l=e?e.type:"",s=e.size||0,d=a._getFileName(e,""),c=!0===i&&!a.isAjaxUpload,u=W.createObjectURL(e),p=a.fileManager.getId(e);a._clearDefaultPreview(),n=a._generatePreviewTemplate("other",u,o,l,t,p,c,s),a._addToPreview(r,n),a._setThumbAttr(t,d,s),!0===i&&a.isAjaxUpload&&a._setThumbStatus(q("#"+t),"Error")}},canPreview:function(e){var t=this;if(!(e&&t.showPreview&&t.$preview&&t.$preview.length))return!1;var i,a,r,n=e.name||"",o=e.type||"",l=(e.size||0)/1e3,s=t._parseFileType(o,n),d=t.allowedPreviewTypes,c=t.allowedPreviewMimeTypes,u=t.allowedPreviewExtensions||[],p=t.disabledPreviewTypes,f=t.disabledPreviewMimeTypes,g=t.disabledPreviewExtensions||[],m=t.maxFilePreviewSize&&parseFloat(t.maxFilePreviewSize)||0,h=new RegExp("\\.("+u.join("|")+")$","i"),v=new RegExp("\\.("+g.join("|")+")$","i");return i=!d||-1!==d.indexOf(s),a=!c||-1!==c.indexOf(o),r=!u.length||W.compare(n,h),!(p&&-1!==p.indexOf(s)||f&&-1!==f.indexOf(o)||g.length&&W.compare(n,v)||m&&!isNaN(m)&&m<l)&&(i||a||r)},_previewFile:function(e,t,i,a,r,n){if(this.showPreview){var o,l=this,s=W.getFileName(t),d=n.type,c=n.name,u=l._parseFileType(d,s),p=l.$preview,f=t.size||0,g="text"===u||"html"===u||"image"===u?i.target.result:r,m=l.fileManager.getId(t);"html"===u&&l.purifyHtml&&window.DOMPurify&&(g=window.DOMPurify.sanitize(g)),o=l._generatePreviewTemplate(u,g,s,d,a,m,!1,f),l._clearDefaultPreview(),l._addToPreview(p,o);var h=p.find("#"+a),v=h.find("img"),w=h.attr("data-fileid");l._validateImageOrientation(v,t,a,w,c,d,f,g),l._setThumbAttr(a,c,f),l._initSortable()}},_setThumbAttr:function(e,t,i){var a=q("#"+e);a.length&&(i=i&&0<i?this._getSize(i):"",a.data({caption:t,size:i}))},_setInitThumbAttr:function(){var e,t,i,a,r=this.previewCache.data,n=this.previewCache.count(!0);if(0!==n)for(var o=0;o<n;o++)e=r.config[o],a=this.previewInitId+"-init_"+o,t=W.ifSet("caption",e,W.ifSet("filename",e)),i=W.ifSet("size",e),this._setThumbAttr(a,t,i)},_slugDefault:function(e){return W.isEmpty(e)?"":String(e).replace(/[\[\]\/\{}:;#%=\(\)\*\+\?\\\^\$\|<>&"']/g,"_")},_updateFileDetails:function(e){var t,i,a,r,n=this,o=n.$element,l=W.isIE(9)&&W.findFileName(o.val())||o[0].files[0]&&o[0].files[0].name;t=!l&&0<n.fileManager.count()?n.fileManager.getFirstFile().nameFmt:l?n.slug(l):"_",i=n.isAjaxUpload?n.fileManager.count():e,r=n.previewCache.count(!0)+i,a=1===i?t:n._getMsgSelected(r),n.isError?(n.$previewContainer.removeClass("file-thumb-loading"),n.$previewStatus.html(""),n.$captionContainer.removeClass("icon-visible")):n._showFileIcon(),n._setCaption(a,n.isError),n.$container.removeClass("file-input-new file-input-ajax-new"),1===arguments.length&&n._raise("fileselect",[e,t]),n.previewCache.count(!0)&&n._initPreviewActions()},_setThumbStatus:function(e,t){if(this.showPreview){var i="indicator"+t,a=i+"Title",r="file-preview-"+t.toLowerCase(),n=e.find(".file-upload-indicator"),o=this.fileActionSettings;e.removeClass("file-preview-success file-preview-error file-preview-loading"),"Success"===t&&e.find(".file-drag-handle").remove(),n.html(o[i]),n.attr("title",o[a]),e.addClass(r),"Error"!==t||this.retryErrorUploads||e.find(".kv-file-upload").attr("disabled",!0)}},_setProgressCancelled:function(){this._setProgress(101,this.$progress,this.msgCancelled)},_setProgress:function(e,t,i,a){var r,n=this,o=Math.min(e,100),l=n.progressUploadThreshold,s=e<=100?n.progressTemplate:n.progressCompleteTemplate,d=o<100?n.progressTemplate:i?n.paused?n.progressPauseTemplate:n.progressErrorTemplate:s;t=t||n.$progress,100<=e&&(a=""),W.isEmpty(d)||(a=a||"",r=(r=l&&l<o&&e<=100?d.setTokens({percent:l,status:n.msgUploadThreshold}):d.setTokens({percent:o,status:100<e?n.msgUploadEnd:o+"%"})).setTokens({stats:a}),t.html(r),i&&t.find('[role="progressbar"]').html(i))},_setFileDropZoneTitle:function(){var e,t=this,i=t.$container.find(".file-drop-zone"),a=t.dropZoneTitle;t.isClickable&&(e=W.isEmpty(t.$element.attr("multiple"))?t.fileSingle:t.filePlural,a+=t.dropZoneClickTitle.replace("{files}",e)),i.find("."+t.dropZoneTitleClass).remove(),!t.showPreview||0===i.length||0<t.fileManager.count()||!t.dropZoneEnabled||!t.isAjaxUpload&&t.$element.files||(0===i.find(W.FRAMES).length&&W.isEmpty(t.defaultPreviewContent)&&i.prepend('<div class="'+t.dropZoneTitleClass+'">'+a+"</div>"),t.$container.removeClass("file-input-new"),W.addCss(t.$container,"file-input-ajax-new"))},_getStats:function(e){var t,i;return this.showUploadStats&&e&&e.bitrate?(i=this._getLayoutTemplate("stats"),t=e.elapsed&&e.bps?this.msgPendingTime.setTokens({time:W.getElapsed(Math.ceil(e.pendingBytes/e.bps))}):this.msgCalculatingTime,i.setTokens({uploadSpeed:e.bitrate,pendingTime:t})):""},_setResumableProgress:function(e,t,i){var a=this.resumableManager,r=i?a:this,n=i?i.find(".file-thumb-progress"):null;0===r.lastProgress&&(r.lastProgress=e),e<r.lastProgress&&(e=r.lastProgress),this._setProgress(e,n,null,this._getStats(t)),r.lastProgress=e},_setFileUploadStats:function(e,t,i,a){var r,n=this,o=n.fileManager,l=o.getThumb(e),s=n.resumableManager,d=0,c=o.getTotalSize(),u=q.extend(!0,{},a);if(n.enableResumableUpload){var p,f=a.loaded,g=s.getUploadedSize(),m=s.file.size;f+=g,p=o.uploadedSize+f,t=W.round(100*f/m),a.pendingBytes=m-g,n._setResumableProgress(t,a,l),r=Math.floor(100*p/c),u.pendingBytes=c-p,n._setResumableProgress(r,u)}else o.setProgress(e,t),n._setProgress(t,l.find(".file-thumb-progress"),null,n._getStats(a)),q.each(o.stats,function(e,t){d+=t.loaded}),u.pendingBytes=c-d,r=W.round(d/c*100),n._setProgress(r,null,null,n._getStats(u))},_validateMinCount:function(){var e=this,t=e.isAjaxUpload?e.fileManager.count():e._inputFileCount();return!(e.validateInitialCount&&0<e.minFileCount&&e._getFileCount(t-1)<e.minFileCount)||(e._noFilesError({}),!1)},_getFileCount:function(e){return this.validateInitialCount&&!this.overwriteInitial&&(e+=this.previewCache.count(!0)),e},_getFileId:function(e){return W.getFileId(e,this.generateFileId)},_getFileName:function(e,t){var i=W.getFileName(e);return i?this.slug(i):t},_getFileNames:function(t){return this.filenames.filter(function(e){return t?void 0!==e:null!=e})},_setPreviewError:function(e,t){var i=this,a=i.removeFromPreviewOnError&&!i.retryErrorUploads;t&&!a||i.fileManager.remove(e),i.showPreview&&(a?e.remove():(i._setThumbStatus(e,"Error"),i._refreshUploadButton(e)))},_refreshUploadButton:function(e){var t=e.find(".kv-file-upload"),i=this.fileActionSettings,a=i.uploadIcon,r=i.uploadTitle;t.length&&(this.retryErrorUploads&&(a=i.uploadRetryIcon,r=i.uploadRetryTitle),t.attr("title",r).html(a))},_checkDimensions:function(e,t,i,a,r,n,o){var l,s,d,c=this[("Small"===t?"min":"max")+"Image"+n];!W.isEmpty(c)&&i.length&&(d=i[0],s="Width"===n?d.naturalWidth||d.width:d.naturalHeight||d.height,("Small"===t?c<=s:s<=c)||(l=this["msgImage"+n+t].setTokens({name:r,size:c}),this._showUploadError(l,o),this._setPreviewError(a)))},_getExifObj:function(e){var t=this,i=null;if("data:image/jpeg;base64,"===e.slice(0,23)||"data:image/jpg;base64,"===e.slice(0,22)){try{i=window.piexif?window.piexif.load(e):null}catch(e){i=null,t._log(e)}return i||t._log("Error loading the piexif.js library."),i}i=null},_validateImageOrientation:function(e,t,i,a,r,n,o,l){var s,d,c=this,u=c.autoOrientImage;(d=(s=e.length&&u?c._getExifObj(l):null)?s["0th"][piexif.ImageIFD.Orientation]:null)&&(W.setImageOrientation(e,c.$preview.find("#zoom-"+i+" img"),d),c._raise("fileimageoriented",{$img:e,file:t})),c._validateImage(i,a,r,n,o,l,s)},_validateImage:function(e,t,i,a,r,n,o){var l,s,d=this,c=d.$preview,u=c.find("#"+e),p=u.attr("data-fileindex"),f=u.find("img");i=i||"Untitled",f.one("load",function(){s=u.width(),c.width()<s&&f.css("width","100%"),l={ind:p,id:e,fileId:t},d._checkDimensions(p,"Small",f,u,i,"Width",l),d._checkDimensions(p,"Small",f,u,i,"Height",l),d.resizeImage||(d._checkDimensions(p,"Large",f,u,i,"Width",l),d._checkDimensions(p,"Large",f,u,i,"Height",l)),d._raise("fileimageloaded",[e]),d.fileManager.addImage(t,{ind:p,img:f,thumb:u,pid:e,typ:a,siz:r,validated:!1,imgData:n,exifObj:o}),u.data("exif",o),d._validateAllImages()}).one("error",function(){d._raise("fileimageloaderror",[e])}).each(function(){this.complete?q(this).trigger("load"):this.error&&q(this).trigger("error")})},_validateAllImages:function(){var i,a=this,r={val:0},n=a.fileManager.getImageCount(),o=a.resizeIfSizeMoreThan;n===a.fileManager.totalImages&&(a._raise("fileimagesloaded"),a.resizeImage&&q.each(a.fileManager.loadedImages,function(e,t){t.validated||((i=t.siz)&&1e3*o<i&&a._getResizedImage(e,t,r,n),t.validated=!0)}))},_getResizedImage:function(e,t,i,a){var r,n,o,l,s,d,c,u,p,f=this,g=q(t.img)[0],m=g.naturalWidth,h=g.naturalHeight,v=1,w=f.maxImageWidth||m,b=f.maxImageHeight||h,_=!(!m||!h),C=f.imageCanvas,x=f.imageCanvasContext,y=t.typ,T=t.pid,I=t.ind,P=t.thumb,k=t.exifObj;if(s=function(e,t,i){f.isAjaxUpload?f._showUploadError(e,t,i):f._showError(e,t,i),f._setPreviewError(P)},u={id:T,index:I,fileId:e},p=[e,T,I],(c=f.getFile(e))&&_&&!(m<=w&&h<=b)||(_&&c&&f._raise("fileimageresized",p),i.val++,i.val===a&&f._raise("fileimagesresized"),_)){y=y||f.resizeDefaultImageType,n=w<m,o=b<h,v="width"===f.resizePreference?n?w/m:o?b/h:1:o?b/h:n?w/m:1,f._resetCanvas(),m*=v,h*=v,C.width=m,C.height=h;try{x.drawImage(g,0,0,m,h),l=C.toDataURL(y,f.resizeQuality),k&&(d=window.piexif.dump(k),l=window.piexif.insert(d,l)),r=W.dataURI2Blob(l),f.fileManager.setFile(e,r),f._raise("fileimageresized",p),i.val++,i.val===a&&f._raise("fileimagesresized",[void 0,void 0]),r instanceof Blob||s(f.msgImageResizeError,u,"fileimageresizeerror")}catch(e){i.val++,i.val===a&&f._raise("fileimagesresized",[void 0,void 0]),s(f.msgImageResizeException.replace("{errors}",e.message),u,"fileimageresizeexception")}}else s(f.msgImageResizeError,u,"fileimageresizeerror")},_initBrowse:function(e){var t=this.$element;this.showBrowse?this.$btnFile=e.find(".btn-file").append(t):(t.appendTo(e).attr("tabindex",-1),W.addCss(t,"file-no-browse"))},_initClickable:function(){var i,e,a=this;a.isClickable&&(i=a.$dropZone,a.isAjaxUpload||(e=a.$preview.find(".file-default-preview")).length&&(i=e),W.addCss(i,"clickable"),i.attr("tabindex",-1),a._handler(i,"click",function(e){var t=q(e.target);q(a.elErrorContainer+":visible").length||t.parents(".file-preview-thumbnails").length&&!t.parents(".file-default-preview").length||(a.$element.data("zoneClicked",!0).trigger("click"),i.blur())}))},_initCaption:function(){var e=this.initialCaption||"";return this.overwriteInitial||W.isEmpty(e)?(this.$caption.val(""),!1):(this._setCaption(e),!0)},_setCaption:function(e,t){var i,a,r,n,o,l,s=this;if(s.$caption.length){if(s.$captionContainer.removeClass("icon-visible"),t)i=q("<div>"+s.msgValidationError+"</div>").text(),o=(n=s.fileManager.count())?(l=s.fileManager.getFirstFile(),1===n&&l?l.nameFmt:s._getMsgSelected(n)):s._getMsgSelected(s.msgNo),a=W.isEmpty(e)?o:e,r='<span class="'+s.msgValidationErrorClass+'">'+s.msgValidationErrorIcon+"</span>";else{if(W.isEmpty(e))return;a=i=q("<div>"+e+"</div>").text(),r=s._getLayoutTemplate("fileIcon")}s.$captionContainer.addClass("icon-visible"),s.$caption.attr("title",i).val(a),s.$captionIcon.html(r)}},_createContainer:function(){var e=this,t={class:"file-input file-input-new"+(e.rtl?" kv-rtl":"")},i=q(document.createElement("div")).attr(t).html(e._renderMain());return i.insertBefore(e.$element),e._initBrowse(i),e.theme&&i.addClass("theme-"+e.theme),i},_refreshContainer:function(){var e=this,t=e.$container;e.$element.insertAfter(t),t.html(e._renderMain()),e._initBrowse(t),e._validateDisabled()},_validateDisabled:function(){this.$caption.attr({readonly:this.isDisabled})},_renderMain:function(){var e=this,t=e.dropZoneEnabled?" file-drop-zone":"file-drop-disabled",i=e.showClose?e._getLayoutTemplate("close"):"",a=e.showPreview?e._getLayoutTemplate("preview").setTokens({class:e.previewClass,dropClass:t}):"",r=e.isDisabled?e.captionClass+" file-caption-disabled":e.captionClass,n=e.captionTemplate.setTokens({class:r+" kv-fileinput-caption"});return e.mainTemplate.setTokens({class:e.mainClass+(!e.showBrowse&&e.showCaption?" no-browse":""),preview:a,close:i,caption:n,upload:e._renderButton("upload"),remove:e._renderButton("remove"),cancel:e._renderButton("cancel"),pause:e._renderButton("pause"),browse:e._renderButton("browse")})},_renderButton:function(e){var t=this,i=t._getLayoutTemplate("btnDefault"),a=t[e+"Class"],r=t[e+"Title"],n=t[e+"Icon"],o=t[e+"Label"],l=t.isDisabled?" disabled":"",s="button";switch(e){case"remove":if(!t.showRemove)return"";break;case"cancel":if(!t.showCancel)return"";a+=" kv-hidden";break;case"pause":if(!t.showPause)return"";a+=" kv-hidden";break;case"upload":if(!t.showUpload)return"";t.isAjaxUpload&&!t.isDisabled?i=t._getLayoutTemplate("btnLink").replace("{href}",t.uploadUrl):s="submit";break;case"browse":if(!t.showBrowse)return"";i=t._getLayoutTemplate("btnBrowse");break;default:return""}return a+="browse"===e?" btn-file":" fileinput-"+e+" fileinput-"+e+"-button",W.isEmpty(o)||(o=' <span class="'+t.buttonLabelClass+'">'+o+"</span>"),i.setTokens({type:s,css:a,title:r,status:l,icon:n,label:o})},_renderThumbProgress:function(){return'<div class="file-thumb-progress kv-hidden">'+this.progressInfoTemplate.setTokens({percent:101,status:this.msgUploadBegin,stats:""})+"</div>"},_renderFileFooter:function(e,t,i,a,r){var n,o,l=this,s=l.fileActionSettings,d=s.showRemove,c=s.showDrag,u=s.showUpload,p=s.showZoom,f=l._getLayoutTemplate("footer"),g=l._getLayoutTemplate("indicator"),m=r?s.indicatorError:s.indicatorNew,h=r?s.indicatorErrorTitle:s.indicatorNewTitle,v=g.setTokens({indicator:m,indicatorTitle:h});return o={type:e,caption:t,size:i=l._getSize(i),width:a,progress:"",indicator:v},l.isAjaxUpload?(o.progress=l._renderThumbProgress(),o.actions=l._renderFileActions(o,u,!1,d,p,c,!1,!1,!1)):o.actions=l._renderFileActions(o,!1,!1,!1,p,c,!1,!1,!1),n=f.setTokens(o),n=W.replaceTags(n,l.previewThumbTags)},_renderFileActions:function(e,t,i,a,r,n,o,l,s,d,c,u){if(!e.type&&d&&(e.type="image"),"function"==typeof t&&(t=t(e)),"function"==typeof i&&(i=i(e)),"function"==typeof a&&(i=i(e)),"function"==typeof r&&(r=r(e)),"function"==typeof n&&(n=n(e)),!(t||i||i||r||n))return"";var p,f=this,g=!1===l?"":' data-url="'+l+'"',m=!1===s?"":' data-key="'+s+'"',h="",v="",w="",b="",_="",C=f._getLayoutTemplate("actions"),x=f.fileActionSettings,y=f.otherActionButtons.setTokens({dataKey:m,key:s}),T=o?x.removeClass+" disabled":x.removeClass;return a&&(h=f._getLayoutTemplate("actionDelete").setTokens({removeClass:T,removeIcon:x.removeIcon,removeTitle:x.removeTitle,dataUrl:g,dataKey:m,key:s})),t&&(v=f._getLayoutTemplate("actionUpload").setTokens({uploadClass:x.uploadClass,uploadIcon:x.uploadIcon,uploadTitle:x.uploadTitle})),i&&(w=(w=f._getLayoutTemplate("actionDownload").setTokens({downloadClass:x.downloadClass,downloadIcon:x.downloadIcon,downloadTitle:x.downloadTitle,downloadUrl:c||f.initialPreviewDownloadUrl})).setTokens({filename:u,key:s})),r&&(b=f._getLayoutTemplate("actionZoom").setTokens({zoomClass:x.zoomClass,zoomIcon:x.zoomIcon,zoomTitle:x.zoomTitle})),n&&d&&(p="drag-handle-init "+x.dragClass,_=f._getLayoutTemplate("actionDrag").setTokens({dragClass:p,dragTitle:x.dragTitle,dragIcon:x.dragIcon})),C.setTokens({delete:h,upload:v,download:w,zoom:b,drag:_,other:y})},_browse:function(e){var t=this;e&&e.isDefaultPrevented()||!t._raise("filebrowse")||(t.isError&&!t.isAjaxUpload&&t.clear(),t.$captionContainer.focus())},_change:function(e){var t=this;if(!t.changeTriggered){var i,a,r,n,o,l,s,d,c,u,p,f,g=t.$element,m=1<arguments.length,h=t.isAjaxUpload,v=m?arguments[1]:g.get(0).files,w=!h&&W.isEmpty(g.attr("multiple"))?1:t.maxFileCount,b=t.fileManager.count(),_=W.isEmpty(g.attr("multiple"))&&0<b;if(t.reader=null,t._resetUpload(),t._hideFileIcon(),t.dropZoneEnabled&&t.$container.find(".file-drop-zone ."+t.dropZoneTitleClass).remove(),h||(v=e.target&&void 0===e.target.files?e.target.value?[{name:e.target.value.replace(/^.+\\/,"")}]:[]:e.target.files||{}),i=v,W.isEmpty(i)||0===i.length)return h||t.clear(),void t._raise("fileselectnone");if(t._resetErrors(),r=i.length,a=t._getFileCount(h?t.fileManager.count()+r:r),0<w&&w<a){if(!t.autoReplace||w<r)return n=t.autoReplace&&w<r?r:a,o=w,f=t.msgFilesTooMany.replace("{m}",o).replace("{n}",n),t.isError=(l=f,c=d=s=null,u=q.extend(!0,{},t._getOutData(null,{},{},v),{id:d,index:c}),p={id:d,index:c,file:s,files:v},h?t._showUploadError(l,u):t._showError(l,p)),t.$captionContainer.removeClass("icon-visible"),t._setCaption("",!0),void t.$container.removeClass("file-input-new file-input-ajax-new");w<a&&t._resetPreviewThumbs(h)}else!h||_?(t._resetPreviewThumbs(!1),_&&t.clearFileStack()):!h||0!==b||t.previewCache.count(!0)&&!t.overwriteInitial||t._resetPreviewThumbs(!0);t.readFiles(i)}},_abort:function(e){var t,i=this;return i.ajaxAborted&&"object"==typeof i.ajaxAborted&&void 0!==i.ajaxAborted.message?((t=q.extend(!0,{},i._getOutData(null),e)).abortData=i.ajaxAborted.data||{},t.abortMessage=i.ajaxAborted.message,i._setProgress(101,i.$progress,i.msgCancelled),i._showUploadError(i.ajaxAborted.message,t,"filecustomerror"),i.cancel(),!0):!!i.ajaxAborted},_resetFileStack:function(){var a=this,r=0;a._getThumbs().each(function(){var e=q(this),t=e.attr("data-fileindex"),i=e.attr("id");"-1"!==t&&-1!==t&&(a.fileManager.getFile(e.attr("data-fileid"))?e.attr({id:"uploaded-"+W.uniqId(),"data-fileindex":"-1"}):(e.attr({id:a.previewInitId+"-"+r,"data-fileindex":r}),r++),a.$preview.find("#zoom-"+i).attr({id:"zoom-"+e.attr("id"),"data-fileindex":e.attr("data-fileindex")}))})},_isFileSelectionValid:function(e){var t=this;return e=e||0,t.required&&!t.getFilesCount()?(t.$errorContainer.html(""),t._showUploadError(t.msgFileRequired),!1):!(0<t.minFileCount&&t._getFileCount(e)<t.minFileCount)||(t._noFilesError({}),!1)},clearFileStack:function(){var e=this;return e.fileManager.clear(),e._initResumableUpload(),e.enableResumableUpload?(null===e.showPause&&(e.showPause=!0),null===e.showCancel&&(e.showCancel=!1)):(e.showPause=!1,null===e.showCancel&&(e.showCancel=!0)),e.$element},getFileStack:function(){return this.files.stack},getFileList:function(){return this.files.list()},getFilesCount:function(){var e=this.isAjaxUpload?this.fileManager.count():this._inputFileCount();return this._getFileCount(e)},readFiles:function(k){this.reader=new FileReader;var S,E=this,F=E.$element,A=E.reader,z=E.$previewContainer,D=E.$previewStatus,M=E.msgLoading,U=E.msgProgress,$=E.previewInitId,j=k.length,R=E.fileTypeSettings,O=E.fileManager.count(),B=E.allowedFileTypes,L=B?B.length:0,Z=E.allowedFileExtensions,N=W.isEmpty(Z)?"":Z.join(", "),H=function(e,t,i,a,r){var n=q.extend(!0,{},E._getOutData(null,{},{},k),{id:i,index:a,fileId:r}),o=q("#"+i),l={id:i,index:a,fileId:r,file:t,files:k};E._previewDefault(t,i,!0),E.isAjaxUpload?setTimeout(function(){S(a+1)},E.processDelay):j=0,E._initFileActions(),o.remove(),E.isError=E.isAjaxUpload?E._showUploadError(e,n):E._showError(e,l),E._updateFileDetails(j)};E.fileManager.clearImages(),q.each(k,function(e,t){var i=E.fileTypeSettings.image;i&&i(t.type)&&E.fileManager.totalImages++}),(S=function(c){if(W.isEmpty(F.attr("multiple"))&&(j=1),j<=c)return E.isAjaxUpload&&0<E.fileManager.count()?E._raise("filebatchselected",[E.fileManager.stack]):E._raise("filebatchselected",[k]),z.removeClass("file-thumb-loading"),void D.html("");var e,u,a,t,i,r,n,o,l,p,f,g,m,h=$+"-"+(O+c),v=k[c],w=R.text,b=R.image,_=R.html,C=E._getFileName(v,""),s=(v&&v.size||0)/1e3,d="",x=W.createObjectURL(v),y=0,T="",I=0,P=function(){var e=U.setTokens({index:c+1,files:j,percent:50,name:C});setTimeout(function(){D.html(e),E._updateFileDetails(j),S(c+1)},E.processDelay),E._raise("fileloaded",[v,h,c,A])};if(v){if(o=E.fileManager.getId(v),0<L)for(u=0;u<L;u++)r=B[u],n=E.msgFileTypes[r]||r,T+=0===u?n:", "+n;if(!1!==C){if(0===C.length)return a=E.msgInvalidFileName.replace("{name}",W.htmlEncode(W.getFileName(v),"[unknown]")),void H(a,v,h,c,o);if(W.isEmpty(Z)||(d=new RegExp("\\.("+Z.join("|")+")$","i")),e=s.toFixed(2),0<E.maxFileSize&&s>E.maxFileSize)return a=E.msgSizeTooLarge.setTokens({name:C,size:e,maxSize:E.maxFileSize}),void H(a,v,h,c,o);if(null!==E.minFileSize&&s<=W.getNum(E.minFileSize))return a=E.msgSizeTooSmall.setTokens({name:C,size:e,minSize:E.minFileSize}),void H(a,v,h,c,o);if(!W.isEmpty(B)&&W.isArray(B)){for(u=0;u<B.length;u+=1)t=B[u],y+=(l=R[t])&&"function"==typeof l&&l(v.type,W.getFileName(v))?1:0;if(0===y)return a=E.msgInvalidFileType.setTokens({name:C,types:T}),void H(a,v,h,c,o)}if(0===y&&!W.isEmpty(Z)&&W.isArray(Z)&&!W.isEmpty(d)&&(i=W.compare(C,d),0===(y+=W.isEmpty(i)?0:i.length)))return a=E.msgInvalidFileExtension.setTokens({name:C,extensions:N}),void H(a,v,h,c,o);if(E.isAjaxUpload&&E.fileManager.exists(o))return a=E.msgDuplicateFile.setTokens({name:C,size:e}),void H(a,v,h,c,o);if(!E.canPreview(v))return E.isAjaxUpload&&E.fileManager.add(v),E.showPreview&&(z.addClass("file-thumb-loading"),E._previewDefault(v,h),E._initFileActions()),void setTimeout(function(){E._updateFileDetails(j),S(c+1),E._raise("fileloaded",[v,h,c])},10);p=w(v.type,C),f=_(v.type,C),g=b(v.type,C),D.html(M.replace("{index}",c+1).replace("{files}",j)),z.addClass("file-thumb-loading"),A.onerror=function(e){E._errorHandler(e,C)},A.onload=function(e){var t,i,a,r,n,o,l,s,d=[];if(i={name:C,type:v.type},q.each(R,function(e,t){"object"!==e&&"other"!==e&&"function"==typeof t&&t(v.type,C)&&I++}),0===I){for(a=new Uint8Array(e.target.result),u=0;u<a.length;u++)r=a[u].toString(16),d.push(r);if(t=d.join("").toLowerCase().substring(0,8),o=W.getMimeType(t,"",""),W.isEmpty(o)&&(n=W.arrayBuffer2String(A.result),o=W.isSvg(n)?"image/svg+xml":W.getMimeType(t,n,v.type)),i={name:C,type:o},p=w(o,""),f=_(o,""),g=b(o,""),(m=p||f)||g)return l=m,(s=new FileReader).onerror=function(e){E._errorHandler(e,C)},s.onload=function(e){E._previewFile(c,v,e,h,x,i),E._initFileActions(),P()},void(l?s.readAsText(v,E.textEncoding):s.readAsDataURL(v))}E._previewFile(c,v,e,h,x,i),E._initFileActions(),P()},A.onprogress=function(e){if(e.lengthComputable){var t=e.loaded/e.total*100,i=Math.ceil(t);a=U.setTokens({index:c+1,files:j,percent:i,name:C}),setTimeout(function(){D.html(a)},E.processDelay)}},p||f?A.readAsText(v,E.textEncoding):g?A.readAsDataURL(v):A.readAsArrayBuffer(v),E.fileManager.add(v)}else S(c+1)}})(0),E._updateFileDetails(j,!1)},lock:function(){var e=this,t=e.$container;return e._resetErrors(),e.disable(),t.addClass("is-locked"),e.showCancel&&t.find(".fileinput-cancel").show(),e.showPause&&t.find(".fileinput-pause").show(),e._raise("filelock",[e.fileManager.stack,e._getExtraData()]),e.$element},unlock:function(e){var t=this,i=t.$container;return void 0===e&&(e=!0),t.enable(),i.removeClass("is-locked"),t.showCancel&&i.find(".fileinput-cancel").hide(),t.showPause&&i.find(".fileinput-pause").hide(),e&&t._resetFileStack(),t._raise("fileunlock",[t.fileManager.stack,t._getExtraData()]),t.$element},pause:function(){var e,i=this,t=i.resumableManager,a=i.ajaxRequests,r=a.length;if(i.enableResumableUpload){if(t.chunkIntervalId&&clearInterval(t.chunkIntervalId),i.ajaxQueueIntervalId&&clearInterval(i.ajaxQueueIntervalId),i._raise("fileuploadpaused",[i.fileManager,t]),0<r)for(e=0;e<r;e+=1)i.paused=!0,a[e].abort();return i.showPreview&&(t.$btnUpload.removeAttr("disabled"),i._getThumbs().each(function(){var e=q(this),t=e.attr("data-fileid");e.removeClass("file-uploading"),i.fileManager.getFile(t)||(e.find(".kv-file-upload").removeClass("disabled").removeAttr("disabled"),e.find(".kv-file-remove").removeClass("disabled").removeAttr("disabled"))})),i._setProgress(101,i.$progress,i.msgPaused),i.$element}},cancel:function(){var e,a=this,t=a.ajaxRequests,i=a.resumableManager,r=t.length;if(a.enableResumableUpload&&i.chunkIntervalId?(clearInterval(i.chunkIntervalId),i.reset(),a._raise("fileuploadcancelled",[a.fileManager,i])):a._raise("fileuploadcancelled",[a.fileManager]),a.ajaxQueueIntervalId&&clearInterval(a.ajaxQueueIntervalId),a._initAjax(),0<r)for(e=0;e<r;e+=1)a.cancelling=!0,t[e].abort();return a._getThumbs().each(function(){var e=q(this),t=e.attr("data-fileid"),i=e.find(".file-thumb-progress");e.removeClass("file-uploading"),a._setProgress(0,i),i.hide(),a.fileManager.getFile(t)||(e.find(".kv-file-upload").removeClass("disabled").removeAttr("disabled"),e.find(".kv-file-remove").removeClass("disabled").removeAttr("disabled")),a.unlock()}),setTimeout(function(){a._setProgressCancelled()},a.processDelay),a.$element},clear:function(){var e,t=this;if(t._raise("fileclear"))return t.$btnUpload.removeAttr("disabled"),t._getThumbs().find("video,audio,img").each(function(){W.cleanMemory(q(this))}),t._clearFileInput(),t._resetUpload(),t.clearFileStack(),t._resetErrors(!0),t._hasInitialPreview()?(t._showFileIcon(),t._resetPreview(),t._initPreviewActions(),t.$container.removeClass("file-input-new")):(t._getThumbs().each(function(){t._clearObjects(q(this))}),t.isAjaxUpload&&(t.previewCache.data={}),t.$preview.html(""),e=!t.overwriteInitial&&0<t.initialCaption.length?t.initialCaption:"",t.$caption.attr("title","").val(e),W.addCss(t.$container,"file-input-new"),t._validateDefaultPreview()),0===t.$container.find(W.FRAMES).length&&(t._initCaption()||t.$captionContainer.removeClass("icon-visible")),t._hideFileIcon(),t.$captionContainer.focus(),t._setFileDropZoneTitle(),t._raise("filecleared"),t.$element},reset:function(){var e=this;if(e._raise("filereset"))return e.lastProgress=0,e._resetPreview(),e.$container.find(".fileinput-filename").text(""),W.addCss(e.$container,"file-input-new"),(e.getFrames().length||e.dropZoneEnabled)&&e.$container.removeClass("file-input-new"),e.clearFileStack(),e._setFileDropZoneTitle(),e.$element},disable:function(){var e=this;return e.isDisabled=!0,e._raise("filedisabled"),e.$element.attr("disabled","disabled"),e.$container.find(".kv-fileinput-caption").addClass("file-caption-disabled"),e.$container.find(".fileinput-remove, .fileinput-upload, .file-preview-frame button").attr("disabled",!0),W.addCss(e.$container.find(".btn-file"),"disabled"),e._initDragDrop(),e.$element},enable:function(){var e=this;return e.isDisabled=!1,e._raise("fileenabled"),e.$element.removeAttr("disabled"),e.$container.find(".kv-fileinput-caption").removeClass("file-caption-disabled"),e.$container.find(".fileinput-remove, .fileinput-upload, .file-preview-frame button").removeAttr("disabled"),e.$container.find(".btn-file").removeClass("disabled"),e._initDragDrop(),e.$element},upload:function(){var t,e,i,a=this,r=a.fileManager,n=r.count(),o=a.resumableManager,l=!q.isEmptyObject(a._getExtraData()),s=a.$progress;if(a.isAjaxUpload&&!a.isDisabled&&a._isFileSelectionValid(n)){if(a.lastProgress=0,a._resetUpload(),0!==n||l){if(a.cancelling=!1,a.$progress.show(),a.lock(),i=r.count(),0===n&&l)return a._setProgress(2),void a._uploadExtraOnly();if(a.uploadAsync||a.enableResumableUpload){for(e=a._getOutData(null),a._raise("filebatchpreupload",[e]),a.fileBatchCompleted=!1,a.uploadCache={content:[],config:[],tags:[],append:!0},t=0;t<i;t++)a.uploadCache.content[t]=null,a.uploadCache.config[t]=null,a.uploadCache.tags[t]=null;a.$preview.find(".file-preview-initial").removeClass(W.SORT_CSS),a._initSortable(),a.cacheInitialPreview=a.getPreview()}if(a.enableResumableUpload){var d=!1;return a.paused?s.html(a.progressPauseTemplate.setTokens({percent:101,status:a.msgUploadResume,stats:""})):d=!0,a.paused=!1,d&&s.html(a.progressInfoTemplate.setTokens({percent:101,status:a.msgUploadBegin,stats:""})),setTimeout(function(){o.upload()},a.processDelay),a.$element}return a._setProgress(2),a.hasInitData=!1,a.uploadAsync?(t=0,void q.each(r.stack,function(e){a._uploadSingle(t,e,!0),t++})):(a._uploadBatch(),a.$element)}a._showUploadError(a.msgUploadEmpty)}},destroy:function(){var e=this,t=e.$form,i=e.$container,a=e.$element,r=e.namespace;return q(document).off(r),q(window).off(r),t&&t.length&&t.off(r),e.isAjaxUpload&&e._clearFileInput(),e._cleanup(),e._initPreviewCache(),a.insertBefore(i).off(r).removeData(),i.off().remove(),a},refresh:function(e){var t=this,i=t.$element;return e="object"!=typeof e||W.isEmpty(e)?t.options:q.extend(!0,{},t.options,e),t._init(e,!0),t._listen(),i},zoom:function(e){var t=this,i=t._getFrame(e),a=t.$modal;i&&(W.initModal(a),a.html(t._getModalContent()),t._setZoomContent(i),a.modal("show"),t._initZoomButtons())},getExif:function(e){var t=this._getFrame(e);return t&&t.data("exif")||null},getFrames:function(e){var t;return e=e||"",t=this.$preview.find(W.FRAMES+e),this.reversePreviewOrder&&(t=q(t.get().reverse())),t},getPreview:function(){return{content:this.initialPreview,config:this.initialPreviewConfig,tags:this.initialPreviewThumbTags}}},q.fn.fileinput=function(s){if(W.hasFileAPISupport()||W.isIE(9)){var d=Array.apply(null,arguments),c=[];switch(d.shift(),this.each(function(){var e,t=q(this),i=t.data("fileinput"),a="object"==typeof s&&s,r=a.theme||t.data("theme"),n={},o={},l=a.language||t.data("language")||q.fn.fileinput.defaults.language||"en";i||(r&&(o=q.fn.fileinputThemes[r]||{}),"en"===l||W.isEmpty(q.fn.fileinputLocales[l])||(n=q.fn.fileinputLocales[l]||{}),e=q.extend(!0,{},q.fn.fileinput.defaults,o,q.fn.fileinputLocales.en,n,a,t.data()),i=new u(this,e),t.data("fileinput",i)),"string"==typeof s&&c.push(i[s].apply(i,d))}),c.length){case 0:return this;case 1:return c[0];default:return c}}},q.fn.fileinput.defaults={language:"en",showCaption:!0,showBrowse:!0,showPreview:!0,showRemove:!0,showUpload:!0,showUploadStats:!0,showCancel:null,showPause:null,showClose:!0,showUploadedThumbs:!0,browseOnZoneClick:!1,autoReplace:!1,autoOrientImage:function(){var e=window.navigator.userAgent,t=!!e.match(/WebKit/i);return!(!!e.match(/iP(od|ad|hone)/i)&&t&&!e.match(/CriOS/i))},autoOrientImageInitial:!0,required:!1,rtl:!1,hideThumbnailContent:!1,encodeUrl:!0,generateFileId:null,previewClass:"",captionClass:"",frameClass:"krajee-default",mainClass:"file-caption-main",mainTemplate:null,purifyHtml:!0,fileSizeGetter:null,initialCaption:"",initialPreview:[],initialPreviewDelimiter:"*$$*",initialPreviewAsData:!1,initialPreviewFileType:"image",initialPreviewConfig:[],initialPreviewThumbTags:[],previewThumbTags:{},initialPreviewShowDelete:!0,initialPreviewDownloadUrl:"",removeFromPreviewOnError:!1,deleteUrl:"",deleteExtraData:{},overwriteInitial:!0,sanitizeZoomCache:function(e){var t=q(document.createElement("div")).append(e);return t.find("input,select,.file-thumbnail-footer").remove(),t.html()},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-sm btn-kv btn-default btn-outline-secondary",fullscreen:"btn btn-sm btn-kv btn-default btn-outline-secondary",borderless:"btn btn-sm btn-kv btn-default btn-outline-secondary",close:"btn btn-sm btn-kv btn-default btn-outline-secondary"},previewTemplates:{},previewContentTemplates:{},preferIconicPreview:!1,preferIconicZoomPreview:!1,allowedFileTypes:null,allowedFileExtensions:null,allowedPreviewTypes:void 0,allowedPreviewMimeTypes:null,allowedPreviewExtensions:null,disabledPreviewTypes:void 0,disabledPreviewExtensions:["msi","exe","com","zip","rar","app","vb","scr"],disabledPreviewMimeTypes:null,defaultPreviewContent:null,customLayoutTags:{},customPreviewTags:{},previewFileIcon:'<i class="glyphicon glyphicon-file"></i>',previewFileIconClass:"file-other-icon",previewFileIconSettings:{},previewFileExtSettings:{},buttonLabelClass:"hidden-xs",browseIcon:'<i class="glyphicon glyphicon-folder-open"></i>&nbsp;',browseClass:"btn btn-primary",removeIcon:'<i class="glyphicon glyphicon-trash"></i>',removeClass:"btn btn-default btn-secondary",cancelIcon:'<i class="glyphicon glyphicon-ban-circle"></i>',cancelClass:"btn btn-default btn-secondary",pauseIcon:'<i class="glyphicon glyphicon-pause"></i>',pauseClass:"btn btn-default btn-secondary",uploadIcon:'<i class="glyphicon glyphicon-upload"></i>',uploadClass:"btn btn-default btn-secondary",uploadUrl:null,uploadUrlThumb:null,uploadAsync:!0,uploadParamNames:{chunkIndex:"chunkIndex",chunkCount:"chunkCount",chunkSize:"chunkSize",chunkSizeStart:"chunkSizeStart",chunksUploaded:"chunksUploaded",retryCount:"retryCount",fileId:"fileId",fileRelativePath:"fileRelativePath",fileSize:"fileSize",fileName:"fileName"},maxAjaxThreads:5,processDelay:100,queueDelay:10,progressDelay:0,enableResumableUpload:!1,resumableUploadOptions:{fallback:null,testUrl:null,chunkSize:2048,maxThreads:4,maxRetries:3,showErrorLog:!0},uploadExtraData:{},zoomModalHeight:480,minImageWidth:null,minImageHeight:null,maxImageWidth:null,maxImageHeight:null,resizeImage:!1,resizePreference:"width",resizeQuality:.92,resizeDefaultImageType:"image/jpeg",resizeIfSizeMoreThan:0,minFileSize:0,maxFileSize:0,maxFilePreviewSize:25600,minFileCount:0,maxFileCount:0,validateInitialCount:!1,msgValidationErrorClass:"text-danger",msgValidationErrorIcon:'<i class="glyphicon glyphicon-exclamation-sign"></i> ',msgErrorClass:"file-error-message",progressThumbClass:"progress-bar progress-bar-striped active",progressClass:"progress-bar bg-success progress-bar-success progress-bar-striped active",progressInfoClass:"progress-bar bg-info progress-bar-info progress-bar-striped active",progressCompleteClass:"progress-bar bg-success progress-bar-success",progressPauseClass:"progress-bar bg-primary progress-bar-primary progress-bar-striped active",progressErrorClass:"progress-bar bg-danger progress-bar-danger",progressUploadThreshold:99,previewFileType:"image",elCaptionContainer:null,elCaptionText:null,elPreviewContainer:null,elPreviewImage:null,elPreviewStatus:null,elErrorContainer:null,errorCloseButton:W.closeButton("kv-error-close"),slugCallback:null,dropZoneEnabled:!0,dropZoneTitleClass:"file-drop-zone-title",fileActionSettings:{},otherActionButtons:"",textEncoding:"UTF-8",ajaxSettings:{},ajaxDeleteSettings:{},showAjaxErrorDetails:!0,mergeAjaxCallbacks:!1,mergeAjaxDeleteCallbacks:!1,retryErrorUploads:!0,reversePreviewOrder:!1,usePdfRenderer:function(){var e=!!window.MSInputMethodContext&&!!document.documentMode;return!!navigator.userAgent.match(/(iPod|iPhone|iPad|Android)/i)||e},pdfRendererUrl:"",pdfRendererTemplate:'<iframe class="kv-preview-data file-preview-pdf" src="{renderer}?file={data}" {style}></iframe>'},q.fn.fileinputLocales.en={fileSingle:"file",filePlural:"files",browseLabel:"Browse &hellip;",removeLabel:"Remove",removeTitle:"Clear all unprocessed files",cancelLabel:"Cancel",cancelTitle:"Abort ongoing upload",pauseLabel:"Pause",pauseTitle:"Pause ongoing upload",uploadLabel:"Upload",uploadTitle:"Upload selected files",msgNo:"No",msgNoFilesSelected:"No files selected",msgCancelled:"Cancelled",msgPaused:"Paused",msgPlaceholder:"Select {files}...",msgZoomModalHeading:"Detailed Preview",msgFileRequired:"You must select a file to upload.",msgSizeTooSmall:'File "{name}" (<b>{size} KB</b>) is too small and must be larger than <b>{minSize} KB</b>.',msgSizeTooLarge:'File "{name}" (<b>{size} KB</b>) exceeds maximum allowed upload size of <b>{maxSize} KB</b>.',msgFilesTooLess:"You must select at least <b>{n}</b> {files} to upload.",msgFilesTooMany:"Number of files selected for upload <b>({n})</b> exceeds maximum allowed limit of <b>{m}</b>.",msgFileNotFound:'File "{name}" not found!',msgFileSecured:'Security restrictions prevent reading the file "{name}".',msgFileNotReadable:'File "{name}" is not readable.',msgFilePreviewAborted:'File preview aborted for "{name}".',msgFilePreviewError:'An error occurred while reading the file "{name}".',msgInvalidFileName:'Invalid or unsupported characters in file name "{name}".',msgInvalidFileType:'Invalid type for file "{name}". Only "{types}" files are supported.',msgInvalidFileExtension:'Invalid extension for file "{name}". Only "{extensions}" files are supported.',msgFileTypes:{image:"image",html:"HTML",text:"text",video:"video",audio:"audio",flash:"flash",pdf:"PDF",object:"object"},msgUploadAborted:"The file upload was aborted",msgUploadThreshold:"Processing...",msgUploadBegin:"Initializing...",msgUploadEnd:"Done",msgUploadResume:"Resuming upload...",msgUploadEmpty:"No valid data available for upload.",msgUploadError:"Error",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>",msgAjaxError:"Something went wrong with the {operation} operation. Please try again later!",msgAjaxProgressError:"{operation} failed",msgDuplicateFile:'File "{name}" of same size "{size} KB" has already been selected earlier. Skipping duplicate selection.',msgResumableUploadRetriesExceeded:"Upload aborted beyond <b>{max}</b> retries for file <b>{file}</b>! Error Details: <pre>{error}</pre>",msgPendingTime:"{time} remaining",msgCalculatingTime:"calculating time remaining",ajaxOperations:{deleteThumb:"file delete",uploadThumb:"file upload",uploadBatch:"batch file upload",uploadExtra:"form data upload"},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"}},q.fn.fileinput.Constructor=u,q(document).ready(function(){var e=q("input.file[type=file]");e.length&&e.fileinput()})});