12 lines
82 KiB
JavaScript
12 lines
82 KiB
JavaScript
|
|
/*!
|
||
|
|
* bootstrap-fileinput v4.4.2
|
||
|
|
* http://plugins.krajee.com/file-input
|
||
|
|
*
|
||
|
|
* Author: Kartik Visweswaran
|
||
|
|
* Copyright: 2014 - 2017, Kartik Visweswaran, Krajee.com
|
||
|
|
*
|
||
|
|
* Licensed under the BSD 3-Clause
|
||
|
|
* https://github.com/kartik-v/bootstrap-fileinput/blob/master/LICENSE.md
|
||
|
|
*/!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof module&&module.exports?module.exports=e(require("jquery")):e(window.jQuery)}(function(e){"use strict";e.fn.fileinputLocales={},e.fn.fileinputThemes={},String.prototype.setTokens=function(e){var i,t,a=this.toString();for(i in e)e.hasOwnProperty(i)&&(t=new RegExp("{"+i+"}","g"),a=a.replace(t,e[i]));return a};var i,t;i={FRAMES:".kv-preview-thumb",SORT_CSS:"file-sortable",STYLE_SETTING:'style="width:{width};height:{height};"',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,compare:function(e,i,t){return void 0!==e&&(t?e===i:e.match(i))},isIE:function(e){if("Microsoft Internet Explorer"!==navigator.appName)return!1;if(10===e)return new RegExp("msie\\s"+e,"i").test(navigator.userAgent);var i,t=document.createElement("div");return t.innerHTML="<!--[if IE "+e+"]> <i></i> <![endif]-->",i=t.getElementsByTagName("i").length,document.body.appendChild(t),t.parentNode.removeChild(t),i},initModal:function(i){var t=e("body");t.length&&i.appendTo(t)},isEmpty:function(i,t){return void 0===i||null===i||0===i.length||t&&""===e.trim(i)},isArray:function(e){return Array.isArray(e)||"[object Array]"===Object.prototype.toString.call(e)},ifSet:function(e,i,t){return t=t||"",i&&"object"==typeof i&&e in i?i[e]:t},cleanArray:function(e){return e instanceof Array||(e=[]),e.filter(function(e){return void 0!==e&&null!==e})},spliceArray:function(e,i){var t,a=0,n=[];if(!(e instanceof Array))return[];for(t=0;t<e.length;t++)t!==i&&(n[a]=e[t],a++);return n},getNum:function(e,i){return i=i||0,"number"==typeof e?e:("string"==typeof e&&(e=parseFloat(e)),isNaN(e)?i:e)},hasFileAPISupport:function(){return!(!window.File||!window.FileReader)},hasDragDropSupport:function(){var e=document.createElement("div");return!i.isIE(9)&&(void 0!==e.draggable||void 0!==e.ondragstart&&void 0!==e.ondrop)},hasFileUploadSupport:function(){return i.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}},dataURI2Blob:function(e){var t,a,n,r,o,l,s=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||window.MSBlobBuilder,d=i.hasBlobSupport(),c=(d||s)&&window.atob&&window.ArrayBuffer&&window.Uint8Array;if(!c)return null;for(t=e.split(",")[0].indexOf("base64")>=0?atob(e.split(",")[1]):decodeURIComponent(e.split(",")[1]),a=new ArrayBuffer(t.length),n=new Uint8Array(a),r=0;r<t.length;r+=1)n[r]=t.charCodeAt(r);return o=e.split(",")[0].split(":")[1].split(";")[0],d?new Blob([i.hasArrayBufferViewSupport()?n:a],{type:o}):(l=new s,l.append(a),l.getBlob(o))},addCss:function(e,i){e.removeClass(i).addClass(i)},getElement:function(t,a,n){return i.isEmpty(t)||i.isEmpty(t[a])?n:e(t[a])},uniqId:function(){return Math.round((new Date).getTime()+100*Math.random())},htmlEncode:function(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")},replaceTags:function(i,t){var a=i;return t?(e.each(t,function(e,i){"function"==typeof i&&(i=i()),a=a.split(e).join(i)}),a):a},cleanMemory:function(e){var t=e.is("img")?e.attr("src"):e.find("source").attr("src");i.objUrl.revokeObjectURL(t)},findFileName:function(e){var i=e.lastIndexOf("/");return-1===i&&(i=e.lastIndexOf("\\")),e.split(e.substring(i,i+1)).pop()},checkFullScreen:function(){return document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement},toggleFullScreen:function
|
||
|
|
if(a.hasClass("file-zoom-fullscreen"))i.toggleFullScreen(!1),e?n.hasClass("active")||(a.removeClass("file-zoom-fullscreen"),t._resizeZoomDialog(!0),r.hasClass("active")&&r.removeClass("active").attr("aria-pressed","false")):n.hasClass("active")?n.removeClass("active").attr("aria-pressed","false"):(a.removeClass("file-zoom-fullscreen"),t.$modal.find(".kv-zoom-body").css("height",t.zoomModalHeight));else{if(!e)return void t._maximizeZoomDialog();i.toggleFullScreen(!0)}a.focus()},_setZoomContent:function(t,a){var n,r,o,l,s,d,c,u,p,f,m=this,v=t.attr("id"),h=m.$modal,g=h.find(".btn-prev"),w=h.find(".btn-next"),_=h.find(".btn-fullscreen"),b=h.find(".btn-borderless"),C=h.find(".btn-toggleheader"),y=m.$preview.find("#zoom-"+v);r=y.attr("data-template")||"generic",n=y.find(".kv-file-content"),o=n.length?n.html():"",p=t.data("caption")||"",f=t.data("size")||"",l=p+" "+f,h.find(".kv-zoom-title").html(l),s=h.find(".kv-zoom-body"),h.removeClass("kv-single-content"),a?(u=s.addClass("file-thumb-loading").clone().insertAfter(s),s.html(o).hide(),u.fadeOut("fast",function(){s.fadeIn("fast",function(){s.removeClass("file-thumb-loading")}),u.remove()})):s.html(o),c=m.previewZoomSettings[r],c&&(d=s.find(".kv-preview-data"),i.addCss(d,"file-zoom-detail"),e.each(c,function(e,i){d.css(e,i),(d.attr("width")&&"width"===e||d.attr("height")&&"height"===e)&&d.removeAttr(e)})),h.data("previewId",v);var T=s.find("img");T.length&&i.adjustOrientedImage(T,!0),m._handler(g,"click",function(){m._zoomSlideShow("prev",v)}),m._handler(w,"click",function(){m._zoomSlideShow("next",v)}),m._handler(_,"click",function(){m._resizeZoomDialog(!0)}),m._handler(b,"click",function(){m._resizeZoomDialog(!1)}),m._handler(C,"click",function(){var e,i=h.find(".modal-header"),t=h.find(".modal-body .floating-buttons"),a=i.find(".kv-zoom-actions"),n=function(e){var t=m.$modal.find(".kv-zoom-body"),a=m.zoomModalHeight;h.hasClass("file-zoom-fullscreen")&&(a=t.outerHeight(!0),e||(a-=i.outerHeight(!0))),t.css("height",e?a+e:a)};i.is(":visible")?(e=i.outerHeight(!0),i.slideUp("slow",function(){a.find(".btn").appendTo(t),n(e)})):(t.find(".btn").appendTo(a),i.slideDown("slow",function(){n()})),h.focus()}),m._handler(h,"keydown",function(e){var i=e.which||e.keyCode;37!==i||g.attr("disabled")||m._zoomSlideShow("prev",v),39!==i||w.attr("disabled")||m._zoomSlideShow("next",v)})},_zoomPreview:function(e){var t,a=this,n=a.$modal;if(!e.length)throw"Cannot zoom to detailed preview!";i.initModal(n),n.html(a._getModalContent()),t=e.closest(i.FRAMES),a._setZoomContent(t),n.modal("show"),a._initZoomButtons()},_zoomSlideShow:function(i,t){var a,n,r,o=this,l=o.$modal.find(".kv-zoom-actions .btn-"+i),s=o.getFrames().toArray(),d=s.length;if(!l.attr("disabled")){for(n=0;d>n;n++)if(e(s[n]).attr("id")===t){r="prev"===i?n-1:n+1;break}0>r||r>=d||!s[r]||(a=e(s[r]),a.length&&o._setZoomContent(a,!0),o._initZoomButtons(),o._raise("filezoom"+i,{previewId:t,modal:o.$modal}))}},_initZoomButton:function(){var i=this;i.$preview.find(".kv-file-zoom").each(function(){var t=e(this);i._handler(t,"click",function(){i._zoomPreview(t)})})},_clearObjects:function(i){i.find("video audio").each(function(){this.pause(),e(this).remove()}),i.find("img object div").each(function(){e(this).remove()})},_clearFileInput:function(){var t,a,n,r=this,o=r.$element;r.fileInputCleared=!0,i.isEmpty(o.val())||(r.isIE9||r.isIE10?(t=o.closest("form"),a=e(document.createElement("form")),n=e(document.createElement("div")),o.before(n),t.length?t.after(a):n.after(a),a.append(o).trigger("reset"),n.before(o).remove(),a.remove()):o.val(""))},_resetUpload:function(){var e=this;e.uploadCache={content:[],config:[],tags:[],append:!0},e.uploadCount=0,e.uploadStatus={},e.uploadLog=[],e.uploadAsyncCount=0,e.loadedImages=[],e.totalImagesCount=0,e.$btnUpload.removeAttr("disabled"),e._setProgress(0),i.addCss(e.$progress,"hide"),e._resetErrors(!1),e.ajaxAborted=!1,e.ajaxRequests=[],e._resetCanvas(),e.cacheInitialPreview={},e.overwriteInitial&&(e.initialPreview=[],e.initialPreviewConfig=[],e.initialPreviewThumbTags=[],e.previewCache.data={content:[],conf
|
||
|
|
o=d.length,l=o?1===o&&d[0]?s._getFileNames()[0]:s._getMsgSelected(o):s._getMsgSelected(s.msgNo),r='<span class="'+s.msgValidationErrorClass+'">'+s.msgValidationErrorIcon+(i.isEmpty(t)?l:t)+"</span>";else{if(i.isEmpty(t))return;n=e("<div>"+t+"</div>").text(),r=s._getLayoutTemplate("fileIcon")+n}s.$caption.html(r),s.$caption.attr("title",n),s.$captionContainer.find(".file-caption-ellipsis").attr("title",n)}},_createContainer:function(){var i=this,t={"class":"file-input file-input-new"+(i.rtl?" kv-rtl":"")},a=e(document.createElement("div")).attr(t).html(i._renderMain());return i.$element.before(a),i._initBrowse(a),i.theme&&a.addClass("theme-"+i.theme),a},_refreshContainer:function(){var e=this,i=e.$container;i.before(e.$element),i.html(e._renderMain()),e._initBrowse(i)},_renderMain:function(){var e=this,i=e.isUploadable&&e.dropZoneEnabled?" file-drop-zone":"file-drop-disabled",t=e.showClose?e._getLayoutTemplate("close"):"",a=e.showPreview?e._getLayoutTemplate("preview").setTokens({"class":e.previewClass,dropClass:i}):"",n=e.isDisabled?e.captionClass+" file-caption-disabled":e.captionClass,r=e.captionTemplate.setTokens({"class":n+" kv-fileinput-caption"});return e.mainTemplate.setTokens({"class":e.mainClass+(!e.showBrowse&&e.showCaption?" no-browse":""),preview:a,close:t,caption:r,upload:e._renderButton("upload"),remove:e._renderButton("remove"),cancel:e._renderButton("cancel"),browse:e._renderButton("browse")})},_renderButton:function(e){var t=this,a=t._getLayoutTemplate("btnDefault"),n=t[e+"Class"],r=t[e+"Title"],o=t[e+"Icon"],l=t[e+"Label"],s=t.isDisabled?" disabled":"",d="button";switch(e){case"remove":if(!t.showRemove)return"";break;case"cancel":if(!t.showCancel)return"";n+=" hide";break;case"upload":if(!t.showUpload)return"";t.isUploadable&&!t.isDisabled?a=t._getLayoutTemplate("btnLink").replace("{href}",t.uploadUrl):d="submit";break;case"browse":if(!t.showBrowse)return"";a=t._getLayoutTemplate("btnBrowse");break;default:return""}return n+="browse"===e?" btn-file":" fileinput-"+e+" fileinput-"+e+"-button",i.isEmpty(l)||(l=' <span class="'+t.buttonLabelClass+'">'+l+"</span>"),a.setTokens({type:d,css:n,title:r,status:s,icon:o,label:l})},_renderThumbProgress:function(){var e=this;return'<div class="file-thumb-progress hide">'+e.progressTemplate.setTokens({percent:"0",status:e.msgUploadBegin})+"</div>"},_renderFileFooter:function(e,t,a,n){var r,o=this,l=o.fileActionSettings,s=l.showRemove,d=l.showDrag,c=l.showUpload,u=l.showZoom,p=o._getLayoutTemplate("footer"),f=n?l.indicatorError:l.indicatorNew,m=o._getLayoutTemplate("indicator"),v=n?l.indicatorErrorTitle:l.indicatorNewTitle,h=m.setTokens({indicator:f,indicatorTitle:v});return t=o._getSize(t),r=o.isUploadable?p.setTokens({actions:o._renderFileActions(c,s,u,d,!1,!1,!1),caption:e,size:t,width:a,progress:o._renderThumbProgress(),indicator:h}):p.setTokens({actions:o._renderFileActions(!1,!1,u,d,!1,!1,!1),caption:e,size:t,width:a,progress:"",indicator:h}),r=i.replaceTags(r,o.previewThumbTags)},_renderFileActions:function(e,i,t,a,n,r,o,l){if(!(e||i||t||a))return"";var s,d=this,c=r===!1?"":' data-url="'+r+'"',u=o===!1?"":' data-key="'+o+'"',p="",f="",m="",v="",h=d._getLayoutTemplate("actions"),g=d.fileActionSettings,w=d.otherActionButtons.setTokens({dataKey:u}),_=n?g.removeClass+" disabled":g.removeClass;return i&&(p=d._getLayoutTemplate("actionDelete").setTokens({removeClass:_,removeIcon:g.removeIcon,removeTitle:g.removeTitle,dataUrl:c,dataKey:u})),e&&(f=d._getLayoutTemplate("actionUpload").setTokens({uploadClass:g.uploadClass,uploadIcon:g.uploadIcon,uploadTitle:g.uploadTitle})),t&&(m=d._getLayoutTemplate("actionZoom").setTokens({zoomClass:g.zoomClass,zoomIcon:g.zoomIcon,zoomTitle:g.zoomTitle})),a&&l&&(s="drag-handle-init "+g.dragClass,v=d._getLayoutTemplate("actionDrag").setTokens({dragClass:s,dragTitle:g.dragTitle,dragIcon:g.dragIcon})),h.setTokens({"delete":p,upload:f,zoom:m,drag:v,other:w})},_browse:function(e){var i=this;i._raise("filebrowse"),e&&e.isDefaultPrevented()||(i.isError&&!i.isUploadable&&i.clear(),i.$captionContainer.focus())},_filterDuplicate:function(e,
|