vendor: 86,927 bytes, lines 1-2
1/*! jQuery v3.3.1 | (c) JS Foundation and other contributors | jquery.org/license */ 2!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){"use strict";var n=[],r=e.document,i=Object.getPrototypeOf,o=n.slice,a=n.concat,s=n.push,u=n.indexOf,l={},c=l.toString,f=l.hasOwnProperty,p=f.toString,d=p.call(Object),h={},g=function e(t){return"function"==typeof t&&"number"!=typeof t.nodeType},y=function e(t){return null!=t&&t===t.window},v={type:!0,src:!0,noModule:!0};function m(e,t,n){var i,o=(t=t||r).createElement("script");if(o.text=e,n)for(i in v)n[i]&&(o[i]=n[i]);t.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[c.call(e)]||"object":typeof e}var b="3.3.1",w=function(e,t){return new w.fn.init(e,t)},T=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;w.fn=w.prototype={jquery:"3.3.1",constructor:w,length:0,toArray:function(){return o.call(this)},get:function(e){return null==e?o.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=w.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return w.each(this,e)},map:function(e){return this.pushStack(w.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(o.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:s,sort:n.sort,splice:n.splice},w.extend=w.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||g(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)n=a[t],a!==(r=e[t])&&(l&&r&&(w.isPlainObject(r)||(i=Array.isArray(r)))?(i?(i=!1,o=n&&Array.isArray(n)?n:[]):o=n&&w.isPlainObject(n)?n:{},a[t]=w.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},w.extend({expando:"jQuery"+("3.3.1"+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==c.call(e))&&(!(t=i(e))||"function"==typeof(n=f.call(t,"constructor")&&t.constructor)&&p.call(n)===d)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e){m(e)},each:function(e,t){var n,r=0;if(C(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(T,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(C(Object(e))?w.merge(n,"string"==typeof e?[e]:e):s.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:u.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r,i=[],o=0,a=e.length,s=!n;o<a;o++)(r=!t(e[o],o))!==s&&i.push(e[o]);return i},map:function(e,t,n){var r,i,o=0,s=[];if(C(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&s.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&s.push(i);return a.apply([],s)},guid:1,support:h}),"function"==typeof Symbol&&(w.fn[Symbol.iterator]=n[Symbol.iterator]),w.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){l["[object "+t+"]"]=t.toLowerCase()});function C(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!g(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}var E=function(e){var t,n,r,i,o,a,s,u,l,c,f,p,d,h,g,y,v,m,x,b="sizzle"+1*new Date,w=e.document,T=0,C=0,E=ae(),k=ae(),S=ae(),D=function(e,t){return e===t&&(f=!0),0},N={}.hasOwnProperty,A=[],j=A.pop,q=A.push,L=A.push,H=A.slice,O=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},P="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",I="\\["+M+"*("+R+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+R+"))|)"+M+"*\\]",W=":("+R+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+I+")*)|.*)\\)|)",$=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),F=new RegExp("^"+M+"*,"+M+"*"),_=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),z=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),X=new RegExp(W),U=new RegExp("^"+R+"$"),V={ID:new RegExp("^#("+R+")"),CLASS:new RegExp("^\\.("+R+")"),TAG:new RegExp("^("+R+"|[*])"),ATTR:new RegExp("^"+I),PSEUDO:new RegExp("^"+W),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+P+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},G=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Q=/^[^{]+\{\s*\[native \w/,J=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,K=/[+~]/,Z=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ee=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},te=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ne=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},re=function(){p()},ie=me(function(e){return!0===e.disabled&&("form"in e||"label"in e)},{dir:"parentNode",next:"legend"});try{L.apply(A=H.call(w.childNodes),w.childNodes),A[w.childNodes.length].nodeType}catch(e){L={apply:A.length?function(e,t){q.apply(e,H.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function oe(e,t,r,i){var o,s,l,c,f,h,v,m=t&&t.ownerDocument,T=t?t.nodeType:9;if(r=r||[],"string"!=typeof e||!e||1!==T&&9!==T&&11!==T)return r;if(!i&&((t?t.ownerDocument||t:w)!==d&&p(t),t=t||d,g)){if(11!==T&&(f=J.exec(e)))if(o=f[1]){if(9===T){if(!(l=t.getElementById(o)))return r;if(l.id===o)return r.push(l),r}else if(m&&(l=m.getElementById(o))&&x(t,l)&&l.id===o)return r.push(l),r}else{if(f[2])return L.apply(r,t.getElementsByTagName(e)),r;if((o=f[3])&&n.getElementsByClassName&&t.getElementsByClassName)return L.apply(r,t.getElementsByClassName(o)),r}if(n.qsa&&!S[e+" "]&&(!y||!y.test(e))){if(1!==T)m=t,v=e;else if("object"!==t.nodeName.toLowerCase()){(c=t.getAttribute("id"))?c=c.replace(te,ne):t.setAttribute("id",c=b),s=(h=a(e)).length;while(s--)h[s]="#"+c+" "+ve(h[s]);v=h.join(","),m=K.test(e)&&ge(t.parentNode)||t}if(v)try{return L.apply(r,m.querySelectorAll(v)),r}catch(e){}finally{c===b&&t.removeAttribute("id")}}}return u(e.replace(B,"$1"),t,r,i)}function ae(){var e=[];function t(n,i){return e.push(n+" ")>r.cacheLength&&delete t[e.shift()],t[n+" "]=i}return t}function se(e){return e[b]=!0,e}function ue(e){var t=d.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function le(e,t){var n=e.split("|"),i=n.length;while(i--)r.attrHandle[n[i]]=t}function ce(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function fe(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function pe(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function de(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&ie(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function he(e){return se(function(t){return t=+t,se(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function ge(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}n=oe.support={},o=oe.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},p=oe.setDocument=function(e){var t,i,a=e?e.ownerDocument||e:w;return a!==d&&9===a.nodeType&&a.documentElement?(d=a,h=d.documentElement,g=!o(d),w!==d&&(i=d.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener("unload",re,!1):i.attachEvent&&i.attachEvent("onunload",re)),n.attributes=ue(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=ue(function(e){return e.appendChild(d.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=Q.test(d.getElementsByClassName),n.getById=ue(function(e){return h.appendChild(e).id=b,!d.getElementsByName||!d.getElementsByName(b).length}),n.getById?(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){return e.getAttribute("id")===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n=t.getElementById(e);return n?[n]:[]}}):(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),r.find.TAG=n.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},r.find.CLASS=n.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&g)return t.getElementsByClassName(e)},v=[],y=[],(n.qsa=Q.test(d.querySelectorAll))&&(ue(function(e){h.appendChild(e).innerHTML="<a id='"+b+"'></a><select id='"+b+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+P+")"),e.querySelectorAll("[id~="+b+"-]").length||y.push("~="),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+b+"+*").length||y.push(".#.+[+~]")}),ue(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=d.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),h.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(n.matchesSelector=Q.test(m=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&ue(function(e){n.disconnectedMatch=m.call(e,"*"),m.call(e,"[s!='']:x"),v.push("!=",W)}),y=y.length&&new RegExp(y.join("|")),v=v.length&&new RegExp(v.join("|")),t=Q.test(h.compareDocumentPosition),x=t||Q.test(h.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return f=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e===d||e.ownerDocument===w&&x(w,e)?-1:t===d||t.ownerDocument===w&&x(w,t)?1:c?O(c,e)-O(c,t):0:4&r?-1:1)}:function(e,t){if(e===t)return f=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===d?-1:t===d?1:i?-1:o?1:c?O(c,e)-O(c,t):0;if(i===o)return ce(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?ce(a[r],s[r]):a[r]===w?-1:s[r]===w?1:0},d):d},oe.matches=function(e,t){return oe(e,null,null,t)},oe.matchesSelector=function(e,t){if((e.ownerDocument||e)!==d&&p(e),t=t.replace(z,"='$1']"),n.matchesSelector&&g&&!S[t+" "]&&(!v||!v.test(t))&&(!y||!y.test(t)))try{var r=m.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return oe(t,d,null,[e]).length>0},oe.contains=function(e,t){return(e.ownerDocument||e)!==d&&p(e),x(e,t)},oe.attr=function(e,t){(e.ownerDocument||e)!==d&&p(e);var i=r.attrHandle[t.toLowerCase()],o=i&&N.call(r.attrHandle,t.toLowerCase())?i(e,t,!g):void 0;return void 0!==o?o:n.attributes||!g?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},oe.escape=function(e){return(e+"").replace(te,ne)},oe.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},oe.uniqueSort=function(e){var t,r=[],i=0,o=0;if(f=!n.detectDuplicates,c=!n.sortStable&&e.slice(0),e.sort(D),f){while(t=e[o++])t===e[o]&&(i=r.push(o));while(i--)e.splice(r[i],1)}return c=null,e},i=oe.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(3===o||4===o)return e.nodeValue}else while(t=e[r++])n+=i(t);return n},(r=oe.selectors={cacheLength:50,createPseudo:se,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Z,ee),e[3]=(e[3]||e[4]||e[5]||"").replace(Z,ee),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||oe.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&oe.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return V.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=a(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(Z,ee).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=E[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&E(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=oe.attr(r,e);return null==i?"!="===t:!t||(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i.replace($," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,p,d,h,g=o!==a?"nextSibling":"previousSibling",y=t.parentNode,v=s&&t.nodeName.toLowerCase(),m=!u&&!s,x=!1;if(y){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===v:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?y.firstChild:y.lastChild],a&&m){x=(d=(l=(c=(f=(p=y)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1])&&l[2],p=d&&y.childNodes[d];while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if(1===p.nodeType&&++x&&p===t){c[e]=[T,d,x];break}}else if(m&&(x=d=(l=(c=(f=(p=t)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1]),!1===x)while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===v:1===p.nodeType)&&++x&&(m&&((c=(f=p[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]=[T,x]),p===t))break;return(x-=i)===r||x%r==0&&x/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||oe.error("unsupported pseudo: "+e);return i[b]?i(t):i.length>1?(n=[e,e,"",t],r.setFilters.hasOwnProperty(e.toLowerCase())?se(function(e,n){var r,o=i(e,t),a=o.length;while(a--)e[r=O(e,o[a])]=!(n[r]=o[a])}):function(e){return i(e,0,n)}):i}},pseudos:{not:se(function(e){var t=[],n=[],r=s(e.replace(B,"$1"));return r[b]?se(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}}),has:se(function(e){return function(t){return oe(e,t).length>0}}),contains:se(function(e){return e=e.replace(Z,ee),function(t){return(t.textContent||t.innerText||i(t)).indexOf(e)>-1}}),lang:se(function(e){return U.test(e||"")||oe.error("unsupported lang: "+e),e=e.replace(Z,ee).toLowerCase(),function(t){var n;do{if(n=g?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===h},focus:function(e){return e===d.activeElement&&(!d.hasFocus||d.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:de(!1),disabled:de(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return Y.test(e.nodeName)},input:function(e){return G.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:he(function(){return[0]}),last:he(function(e,t){return[t-1]}),eq:he(function(e,t,n){return[n<0?n+t:n]}),even:he(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:he(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:he(function(e,t,n){for(var r=n<0?n+t:n;--r>=0;)e.push(r);return e}),gt:he(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=r.pseudos.eq;for(t in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})r.pseudos[t]=fe(t);for(t in{submit:!0,reset:!0})r.pseudos[t]=pe(t);function ye(){}ye.prototype=r.filters=r.pseudos,r.setFilters=new ye,a=oe.tokenize=function(e,t){var n,i,o,a,s,u,l,c=k[e+" "];if(c)return t?0:c.slice(0);s=e,u=[],l=r.preFilter;while(s){n&&!(i=F.exec(s))||(i&&(s=s.slice(i[0].length)||s),u.push(o=[])),n=!1,(i=_.exec(s))&&(n=i.shift(),o.push({value:n,type:i[0].replace(B," ")}),s=s.slice(n.length));for(a in r.filter)!(i=V[a].exec(s))||l[a]&&!(i=l[a](i))||(n=i.shift(),o.push({value:n,type:a,matches:i}),s=s.slice(n.length));if(!n)break}return t?s.length:s?oe.error(e):k(e,u).slice(0)};function ve(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function me(e,t,n){var r=t.dir,i=t.next,o=i||r,a=n&&"parentNode"===o,s=C++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||a)return e(t,n,i);return!1}:function(t,n,u){var l,c,f,p=[T,s];if(u){while(t=t[r])if((1===t.nodeType||a)&&e(t,n,u))return!0}else while(t=t[r])if(1===t.nodeType||a)if(f=t[b]||(t[b]={}),c=f[t.uniqueID]||(f[t.uniqueID]={}),i&&i===t.nodeName.toLowerCase())t=t[r]||t;else{if((l=c[o])&&l[0]===T&&l[1]===s)return p[2]=l[2];if(c[o]=p,p[2]=e(t,n,u))return!0}return!1}}function xe(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function be(e,t,n){for(var r=0,i=t.length;r<i;r++)oe(e,t[r],n);return n}function we(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Te(e,t,n,r,i,o){return r&&!r[b]&&(r=Te(r)),i&&!i[b]&&(i=Te(i,o)),se(function(o,a,s,u){var l,c,f,p=[],d=[],h=a.length,g=o||be(t||"*",s.nodeType?[s]:s,[]),y=!e||!o&&t?g:we(g,p,e,s,u),v=n?i||(o?e:h||r)?[]:a:y;if(n&&n(y,v,s,u),r){l=we(v,d),r(l,[],s,u),c=l.length;while(c--)(f=l[c])&&(v[d[c]]=!(y[d[c]]=f))}if(o){if(i||e){if(i){l=[],c=v.length;while(c--)(f=v[c])&&l.push(y[c]=f);i(null,v=[],l,u)}c=v.length;while(c--)(f=v[c])&&(l=i?O(o,f):p[c])>-1&&(o[l]=!(a[l]=f))}}else v=we(v===a?v.splice(h,v.length):v),i?i(null,a,v,u):L.apply(a,v)})}function Ce(e){for(var t,n,i,o=e.length,a=r.relative[e[0].type],s=a||r.relative[" "],u=a?1:0,c=me(function(e){return e===t},s,!0),f=me(function(e){return O(t,e)>-1},s,!0),p=[function(e,n,r){var i=!a&&(r||n!==l)||((t=n).nodeType?c(e,n,r):f(e,n,r));return t=null,i}];u<o;u++)if(n=r.relative[e[u].type])p=[me(xe(p),n)];else{if((n=r.filter[e[u].type].apply(null,e[u].matches))[b]){for(i=++u;i<o;i++)if(r.relative[e[i].type])break;return Te(u>1&&xe(p),u>1&&ve(e.slice(0,u-1).concat({value:" "===e[u-2].type?"*":""})).replace(B,"$1"),n,u<i&&Ce(e.slice(u,i)),i<o&&Ce(e=e.slice(i)),i<o&&ve(e))}p.push(n)}return xe(p)}function Ee(e,t){var n=t.length>0,i=e.length>0,o=function(o,a,s,u,c){var f,h,y,v=0,m="0",x=o&&[],b=[],w=l,C=o||i&&r.find.TAG("*",c),E=T+=null==w?1:Math.random()||.1,k=C.length;for(c&&(l=a===d||a||c);m!==k&&null!=(f=C[m]);m++){if(i&&f){h=0,a||f.ownerDocument===d||(p(f),s=!g);while(y=e[h++])if(y(f,a||d,s)){u.push(f);break}c&&(T=E)}n&&((f=!y&&f)&&v--,o&&x.push(f))}if(v+=m,n&&m!==v){h=0;while(y=t[h++])y(x,b,a,s);if(o){if(v>0)while(m--)x[m]||b[m]||(b[m]=j.call(u));b=we(b)}L.apply(u,b),c&&!o&&b.length>0&&v+t.length>1&&oe.uniqueSort(u)}return c&&(T=E,l=w),x};return n?se(o):o}return s=oe.compile=function(e,t){var n,r=[],i=[],o=S[e+" "];if(!o){t||(t=a(e)),n=t.length;while(n--)(o=Ce(t[n]))[b]?r.push(o):i.push(o);(o=S(e,Ee(i,r))).selector=e}return o},u=oe.select=function(e,t,n,i){var o,u,l,c,f,p="function"==typeof e&&e,d=!i&&a(e=p.selector||e);if(n=n||[],1===d.length){if((u=d[0]=d[0].slice(0)).length>2&&"ID"===(l=u[0]).type&&9===t.nodeType&&g&&r.relative[u[1].type]){if(!(t=(r.find.ID(l.matches[0].replace(Z,ee),t)||[])[0]))return n;p&&(t=t.parentNode),e=e.slice(u.shift().value.length)}o=V.needsContext.test(e)?0:u.length;while(o--){if(l=u[o],r.relative[c=l.type])break;if((f=r.find[c])&&(i=f(l.matches[0].replace(Z,ee),K.test(u[0].type)&&ge(t.parentNode)||t))){if(u.splice(o,1),!(e=i.length&&ve(u)))return L.apply(n,i),n;break}}}return(p||s(e,d))(i,t,!g,n,!t||K.test(e)&&ge(t.parentNode)||t),n},n.sortStable=b.split("").sort(D).join("")===b,n.detectDuplicates=!!f,p(),n.sortDetached=ue(function(e){return 1&e.compareDocumentPosition(d.createElement("fieldset"))}),ue(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||le("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),n.attributes&&ue(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||le("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ue(function(e){return null==e.getAttribute("disabled")})||le(P,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),oe}(e);w.find=E,w.expr=E.selectors,w.expr[":"]=w.expr.pseudos,w.uniqueSort=w.unique=E.uniqueSort,w.text=E.getText,w.isXMLDoc=E.isXML,w.contains=E.contains,w.escapeSelector=E.escape;var k=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&w(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},D=w.expr.match.needsContext;function N(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var A=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,t,n){return g(t)?w.grep(e,function(e,r){return!!t.call(e,r,e)!==n}):t.nodeType?w.grep(e,function(e){return e===t!==n}):"string"!=typeof t?w.grep(e,function(e){return u.call(t,e)>-1!==n}):w.filter(t,e,n)}w.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?w.find.matchesSelector(r,e)?[r]:[]:w.find.matches(e,w.grep(t,function(e){return 1===e.nodeType}))},w.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(w(e).filter(function(){for(t=0;t<r;t++)if(w.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)w.find(e,i[t],n);return r>1?w.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&D.test(e)?w(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(w.fn.init=function(e,t,n){var i,o;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(i="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:L.exec(e))||!i[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(i[1]){if(t=t instanceof w?t[0]:t,w.merge(this,w.parseHTML(i[1],t&&t.nodeType?t.ownerDocument||t:r,!0)),A.test(i[1])&&w.isPlainObject(t))for(i in t)g(this[i])?this[i](t[i]):this.attr(i,t[i]);return this}return(o=r.getElementById(i[2]))&&(this[0]=o,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):g(e)?void 0!==n.ready?n.ready(e):e(w):w.makeArray(e,this)}).prototype=w.fn,q=w(r);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};w.fn.extend({has:function(e){var t=w(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(w.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&w(e);if(!D.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?a.index(n)>-1:1===n.nodeType&&w.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?w.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?u.call(w(e),this[0]):u.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(w.uniqueSort(w.merge(this.get(),w(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}w.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return k(e,"parentNode")},parentsUntil:function(e,t,n){return k(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return k(e,"nextSibling")},prevAll:function(e){return k(e,"previousSibling")},nextUntil:function(e,t,n){return k(e,"nextSibling",n)},prevUntil:function(e,t,n){return k(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return N(e,"iframe")?e.contentDocument:(N(e,"template")&&(e=e.content||e),w.merge([],e.childNodes))}},function(e,t){w.fn[e]=function(n,r){var i=w.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=w.filter(r,i)),this.length>1&&(O[e]||w.uniqueSort(i),H.test(e)&&i.reverse()),this.pushStack(i)}});var M=/[^\x20\t\r\n\f]+/g;function R(e){var t={};return w.each(e.match(M)||[],function(e,n){t[n]=!0}),t}w.Callbacks=function(e){e="string"==typeof e?R(e):w.extend({},e);var t,n,r,i,o=[],a=[],s=-1,u=function(){for(i=i||e.once,r=t=!0;a.length;s=-1){n=a.shift();while(++s<o.length)!1===o[s].apply(n[0],n[1])&&e.stopOnFalse&&(s=o.length,n=!1)}e.memory||(n=!1),t=!1,i&&(o=n?[]:"")},l={add:function(){return o&&(n&&!t&&(s=o.length-1,a.push(n)),function t(n){w.each(n,function(n,r){g(r)?e.unique&&l.has(r)||o.push(r):r&&r.length&&"string"!==x(r)&&t(r)})}(arguments),n&&!t&&u()),this},remove:function(){return w.each(arguments,function(e,t){var n;while((n=w.inArray(t,o,n))>-1)o.splice(n,1),n<=s&&s--}),this},has:function(e){return e?w.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=a=[],n||t||(o=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=[e,(n=n||[]).slice?n.slice():n],a.push(n),t||u()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l};function I(e){return e}function W(e){throw e}function $(e,t,n,r){var i;try{e&&g(i=e.promise)?i.call(e).done(t).fail(n):e&&g(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}w.extend({Deferred:function(t){var n=[["notify","progress",w.Callbacks("memory"),w.Callbacks("memory"),2],["resolve","done",w.Callbacks("once memory"),w.Callbacks("once memory"),0,"resolved"],["reject","fail",w.Callbacks("once memory"),w.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},"catch":function(e){return i.then(null,e)},pipe:function(){var e=arguments;return w.Deferred(function(t){w.each(n,function(n,r){var i=g(e[r[4]])&&e[r[4]];o[r[1]](function(){var e=i&&i.apply(this,arguments);e&&g(e.promise)?e.promise().progress(t.notify).done(t.resolve).fail(t.reject):t[r[0]+"With"](this,i?[e]:arguments)})}),e=null}).promise()},then:function(t,r,i){var o=0;function a(t,n,r,i){return function(){var s=this,u=arguments,l=function(){var e,l;if(!(t<o)){if((e=r.apply(s,u))===n.promise())throw new TypeError("Thenable self-resolution");l=e&&("object"==typeof e||"function"==typeof e)&&e.then,g(l)?i?l.call(e,a(o,n,I,i),a(o,n,W,i)):(o++,l.call(e,a(o,n,I,i),a(o,n,W,i),a(o,n,I,n.notifyWith))):(r!==I&&(s=void 0,u=[e]),(i||n.resolveWith)(s,u))}},c=i?l:function(){try{l()}catch(e){w.Deferred.exceptionHook&&w.Deferred.exceptionHook(e,c.stackTrace),t+1>=o&&(r!==W&&(s=void 0,u=[e]),n.rejectWith(s,u))}};t?c():(w.Deferred.getStackHook&&(c.stackTrace=w.Deferred.getStackHook()),e.setTimeout(c))}}return w.Deferred(function(e){n[0][3].add(a(0,e,g(i)?i:I,e.notifyWith)),n[1][3].add(a(0,e,g(t)?t:I)),n[2][3].add(a(0,e,g(r)?r:W))}).promise()},promise:function(e){return null!=e?w.extend(e,i):i}},o={};return w.each(n,function(e,t){var a=t[2],s=t[5];i[t[1]]=a.add,s&&a.add(function(){r=s},n[3-e][2].disable,n[3-e][3].disable,n[0][2].lock,n[0][3].lock),a.add(t[3].fire),o[t[0]]=function(){return o[t[0]+"With"](this===o?void 0:this,arguments),this},o[t[0]+"With"]=a.fireWith}),i.promise(o),t&&t.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=o.call(arguments),a=w.Deferred(),s=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?o.call(arguments):n,--t||a.resolveWith(r,i)}};if(t<=1&&($(e,a.done(s(n)).resolve,a.reject,!t),"pending"===a.state()||g(i[n]&&i[n].then)))return a.then();while(n--)$(i[n],s(n),a.reject);return a.promise()}});var B=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;w.Deferred.exceptionHook=function(t,n){e.console&&e.console.warn&&t&&B.test(t.name)&&e.console.warn("jQuery.Deferred exception: "+t.message,t.stack,n)},w.readyException=function(t){e.setTimeout(function(){throw t})};var F=w.Deferred();w.fn.ready=function(e){return F.then(e)["catch"](function(e){w.readyException(e)}),this},w.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--w.readyWait:w.isReady)||(w.isReady=!0,!0!==e&&--w.readyWait>0||F.resolveWith(r,[w]))}}),w.ready.then=F.then;function _(){r.removeEventListener("DOMContentLoaded",_),e.removeEventListener("load",_),w.ready()}"complete"===r.readyState||"loading"!==r.readyState&&!r.documentElement.doScroll?e.setTimeout(w.ready):(r.addEventListener("DOMContentLoaded",_),e.addEventListener("load",_));var z=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===x(n)){i=!0;for(s in n)z(e,t,s,n[s],!0,o,a)}else if(void 0!==r&&(i=!0,g(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(w(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},X=/^-ms-/,U=/-([a-z])/g;function V(e,t){return t.toUpperCase()}function G(e){return e.replace(X,"ms-").replace(U,V)}var Y=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Q(){this.expando=w.expando+Q.uid++}Q.uid=1,Q.prototype={cache:function(e){var t=e[this.expando];return t||(t={},Y(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[G(t)]=n;else for(r in t)i[G(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][G(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(G):(t=G(t))in r?[t]:t.match(M)||[]).length;while(n--)delete r[t[n]]}(void 0===t||w.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!w.isEmptyObject(t)}};var J=new Q,K=new Q,Z=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,ee=/[A-Z]/g;function te(e){return"true"===e||"false"!==e&&("null"===e?null:e===+e+""?+e:Z.test(e)?JSON.parse(e):e)}function ne(e,t,n){var r;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(ee,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n=te(n)}catch(e){}K.set(e,t,n)}else n=void 0;return n}w.extend({hasData:function(e){return K.hasData(e)||J.hasData(e)},data:function(e,t,n){return K.access(e,t,n)},removeData:function(e,t){K.remove(e,t)},_data:function(e,t,n){return J.access(e,t,n)},_removeData:function(e,t){J.remove(e,t)}}),w.fn.extend({data:function(e,t){var n,r,i,o=this[0],a=o&&o.attributes;if(void 0===e){if(this.length&&(i=K.get(o),1===o.nodeType&&!J.get(o,"hasDataAttrs"))){n=a.length;while(n--)a[n]&&0===(r=a[n].name).indexOf("data-")&&(r=G(r.slice(5)),ne(o,r,i[r]));J.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof e?this.each(function(){K.set(this,e)}):z(this,function(t){var n;if(o&&void 0===t){if(void 0!==(n=K.get(o,e)))return n;if(void 0!==(n=ne(o,e)))return n}else this.each(function(){K.set(this,e,t)})},null,t,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){K.remove(this,e)})}}),w.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=J.get(e,t),n&&(!r||Array.isArray(n)?r=J.access(e,t,w.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=w.queue(e,t),r=n.length,i=n.shift(),o=w._queueHooks(e,t),a=function(){w.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return J.get(e,n)||J.access(e,n,{empty:w.Callbacks("once memory").add(function(){J.remove(e,[t+"queue",n])})})}}),w.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length<n?w.queue(this[0],e):void 0===t?this:this.each(function(){var n=w.queue(this,e,t);w._queueHooks(this,e),"fx"===e&&"inprogress"!==n[0]&&w.dequeue(this,e)})},dequeue:function(e){return this.each(function(){w.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=w.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=J.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var re=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ie=new RegExp("^(?:([+-])=|)("+re+")([a-z%]*)$","i"),oe=["Top","Right","Bottom","Left"],ae=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&w.contains(e.ownerDocument,e)&&"none"===w.css(e,"display")},se=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i};function ue(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return w.css(e,t,"")},u=s(),l=n&&n[3]||(w.cssNumber[t]?"":"px"),c=(w.cssNumber[t]||"px"!==l&&+u)&&ie.exec(w.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)w.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,w.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var le={};function ce(e){var t,n=e.ownerDocument,r=e.nodeName,i=le[r];return i||(t=n.body.appendChild(n.createElement(r)),i=w.css(t,"display"),t.parentNode.removeChild(t),"none"===i&&(i="block"),le[r]=i,i)}function fe(e,t){for(var n,r,i=[],o=0,a=e.length;o<a;o++)(r=e[o]).style&&(n=r.style.display,t?("none"===n&&(i[o]=J.get(r,"display")||null,i[o]||(r.style.display="")),""===r.style.display&&ae(r)&&(i[o]=ce(r))):"none"!==n&&(i[o]="none",J.set(r,"display",n)));for(o=0;o<a;o++)null!=i[o]&&(e[o].style.display=i[o]);return e}w.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ae(this)?w(this).show():w(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&N(e,t)?w.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n<r;n++)J.set(e[n],"globalEval",!t||J.get(t[n],"globalEval"))}var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===x(o))w.merge(p,o.nodeType?[o]:o);else if(me.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+w.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;w.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&w.inArray(o,r)>-1)i&&i.push(o);else if(l=w.contains(o.ownerDocument,o),a=ye(f.appendChild(o),"script"),l&&ve(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}!function(){var e=r.createDocumentFragment().appendChild(r.createElement("div")),t=r.createElement("input");t.setAttribute("type","radio"),t.setAttribute("checked","checked"),t.setAttribute("name","t"),e.appendChild(t),h.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,e.innerHTML="<textarea>x</textarea>",h.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue}();var be=r.documentElement,we=/^key/,Te=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ce=/^([^.]*)(?:\.(.+)|)/;function Ee(){return!0}function ke(){return!1}function Se(){try{return r.activeElement}catch(e){}}function De(e,t,n,r,i,o){var a,s;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0);for(s in t)De(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=ke;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return w().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=w.guid++)),e.each(function(){w.event.add(this,t,i,r,n)})}w.event={global:{},add:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.get(e);if(y){n.handler&&(n=(o=n).handler,i=o.selector),i&&w.find.matchesSelector(be,i),n.guid||(n.guid=w.guid++),(u=y.events)||(u=y.events={}),(a=y.handle)||(a=y.handle=function(t){return"undefined"!=typeof w&&w.event.triggered!==t.type?w.event.dispatch.apply(e,arguments):void 0}),l=(t=(t||"").match(M)||[""]).length;while(l--)d=g=(s=Ce.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=w.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=w.event.special[d]||{},c=w.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&w.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(e,r,h,a)||e.addEventListener&&e.addEventListener(d,a)),f.add&&(f.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),w.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.hasData(e)&&J.get(e);if(y&&(u=y.events)){l=(t=(t||"").match(M)||[""]).length;while(l--)if(s=Ce.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){f=w.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,y.handle)||w.removeEvent(e,d,y.handle),delete u[d])}else for(d in u)w.event.remove(e,d+t[l],n,r,!0);w.isEmptyObject(u)&&J.remove(e,"handle events")}},dispatch:function(e){var t=w.event.fix(e),n,r,i,o,a,s,u=new Array(arguments.length),l=(J.get(this,"events")||{})[t.type]||[],c=w.event.special[t.type]||{};for(u[0]=t,n=1;n<arguments.length;n++)u[n]=arguments[n];if(t.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,t)){s=w.event.handlers.call(this,t,l),n=0;while((o=s[n++])&&!t.isPropagationStopped()){t.currentTarget=o.elem,r=0;while((a=o.handlers[r++])&&!t.isImmediatePropagationStopped())t.rnamespace&&!t.rnamespace.test(a.namespace)||(t.handleObj=a,t.data=a.data,void 0!==(i=((w.event.special[a.origType]||{}).handle||a.handler).apply(o.elem,u))&&!1===(t.result=i)&&(t.preventDefault(),t.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,t),t.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&e.button>=1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?w(i,this).index(l)>-1:w.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(e,t){Object.defineProperty(w.Event.prototype,e,{enumerable:!0,configurable:!0,get:g(t)?function(){if(this.originalEvent)return t(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[e]},set:function(t){Object.defineProperty(this,e,{enumerable:!0,configurable:!0,writable:!0,value:t})}})},fix:function(e){return e[w.expando]?e:new w.Event(e)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==Se()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===Se()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&N(this,"input"))return this.click(),!1},_default:function(e){return N(e.target,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},w.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},w.Event=function(e,t){if(!(this instanceof w.Event))return new w.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?Ee:ke,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&w.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[w.expando]=!0},w.Event.prototype={constructor:w.Event,isDefaultPrevented:ke,isPropagationStopped:ke,isImmediatePropagationStopped:ke,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=Ee,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=Ee,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=Ee,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},w.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&we.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Te.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},w.event.addProp),w.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,t){w.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return i&&(i===r||w.contains(r,i))||(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),w.fn.extend({on:function(e,t,n,r){return De(this,e,t,n,r)},one:function(e,t,n,r){return De(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,w(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=ke),this.each(function(){w.event.remove(this,e,n,t)})}});var Ne=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,Ae=/<script|<style|<link/i,je=/checked\s*(?:[^=]|=\s*.checked.)/i,qe=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Le(e,t){return N(e,"table")&&N(11!==t.nodeType?t:t.firstChild,"tr")?w(e).children("tbody")[0]||e:e}function He(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Oe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Pe(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(J.hasData(e)&&(o=J.access(e),a=J.set(t,o),l=o.events)){delete a.handle,a.events={};for(i in l)for(n=0,r=l[i].length;n<r;n++)w.event.add(t,i,l[i][n])}K.hasData(e)&&(s=K.access(e),u=w.extend({},s),K.set(t,u))}}function Me(e,t){var n=t.nodeName.toLowerCase();"input"===n&&pe.test(e.type)?t.checked=e.checked:"input"!==n&&"textarea"!==n||(t.defaultValue=e.defaultValue)}function Re(e,t,n,r){t=a.apply([],t);var i,o,s,u,l,c,f=0,p=e.length,d=p-1,y=t[0],v=g(y);if(v||p>1&&"string"==typeof y&&!h.checkClone&&je.test(y))return e.each(function(i){var o=e.eq(i);v&&(t[0]=y.call(this,i,o.html())),Re(o,t,n,r)});if(p&&(i=xe(t,e[0].ownerDocument,!1,e,r),o=i.firstChild,1===i.childNodes.length&&(i=o),o||r)){for(u=(s=w.map(ye(i,"script"),He)).length;f<p;f++)l=i,f!==d&&(l=w.clone(l,!0,!0),u&&w.merge(s,ye(l,"script"))),n.call(e[f],l,f);if(u)for(c=s[s.length-1].ownerDocument,w.map(s,Oe),f=0;f<u;f++)l=s[f],he.test(l.type||"")&&!J.access(l,"globalEval")&&w.contains(c,l)&&(l.src&&"module"!==(l.type||"").toLowerCase()?w._evalUrl&&w._evalUrl(l.src):m(l.textContent.replace(qe,""),c,l))}return e}function Ie(e,t,n){for(var r,i=t?w.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||w.cleanData(ye(r)),r.parentNode&&(n&&w.contains(r.ownerDocument,r)&&ve(ye(r,"script")),r.parentNode.removeChild(r));return e}w.extend({htmlPrefilter:function(e){return e.replace(Ne,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s=e.cloneNode(!0),u=w.contains(e.ownerDocument,e);if(!(h.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||w.isXMLDoc(e)))for(a=ye(s),r=0,i=(o=ye(e)).length;r<i;r++)Me(o[r],a[r]);if(t)if(n)for(o=o||ye(e),a=a||ye(s),r=0,i=o.length;r<i;r++)Pe(o[r],a[r]);else Pe(e,s);return(a=ye(s,"script")).length>0&&ve(a,!u&&ye(e,"script")),s},cleanData:function(e){for(var t,n,r,i=w.event.special,o=0;void 0!==(n=e[o]);o++)if(Y(n)){if(t=n[J.expando]){if(t.events)for(r in t.events)i[r]?w.event.remove(n,r):w.removeEvent(n,r,t.handle);n[J.expando]=void 0}n[K.expando]&&(n[K.expando]=void 0)}}}),w.fn.extend({detach:function(e){return Ie(this,e,!0)},remove:function(e){return Ie(this,e)},text:function(e){return z(this,function(e){return void 0===e?w.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Re(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Le(this,e).appendChild(e)})},prepend:function(){return Re(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Le(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(w.cleanData(ye(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return w.clone(this,e,t)})},html:function(e){return z(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Ae.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=w.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(w.cleanData(ye(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=[];return Re(this,arguments,function(t){var n=this.parentNode;w.inArray(this,e)<0&&(w.cleanData(ye(this)),n&&n.replaceChild(t,this))},e)}}),w.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){w.fn[e]=function(e){for(var n,r=[],i=w(e),o=i.length-1,a=0;a<=o;a++)n=a===o?this:this.clone(!0),w(i[a])[t](n),s.apply(r,n.get());return this.pushStack(r)}});var We=new RegExp("^("+re+")(?!px)[a-z%]+$","i"),$e=function(t){var n=t.ownerDocument.defaultView;return n&&n.opener||(n=e),n.getComputedStyle(t)},Be=new RegExp(oe.join("|"),"i");!function(){function t(){if(c){l.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",c.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",be.appendChild(l).appendChild(c);var t=e.getComputedStyle(c);i="1%"!==t.top,u=12===n(t.marginLeft),c.style.right="60%",s=36===n(t.right),o=36===n(t.width),c.style.position="absolute",a=36===c.offsetWidth||"absolute",be.removeChild(l),c=null}}function n(e){return Math.round(parseFloat(e))}var i,o,a,s,u,l=r.createElement("div"),c=r.createElement("div");c.style&&(c.style.backgroundClip="content-box",c.cloneNode(!0).style.backgroundClip="",h.clearCloneStyle="content-box"===c.style.backgroundClip,w.extend(h,{boxSizingReliable:function(){return t(),o},pixelBoxStyles:function(){return t(),s},pixelPosition:function(){return t(),i},reliableMarginLeft:function(){return t(),u},scrollboxSize:function(){return t(),a}}))}();function Fe(e,t,n){var r,i,o,a,s=e.style;return(n=n||$e(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||w.contains(e.ownerDocument,e)||(a=w.style(e,t)),!h.pixelBoxStyles()&&We.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function _e(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}var ze=/^(none|table(?!-c[ea]).+)/,Xe=/^--/,Ue={position:"absolute",visibility:"hidden",display:"block"},Ve={letterSpacing:"0",fontWeight:"400"},Ge=["Webkit","Moz","ms"],Ye=r.createElement("div").style;function Qe(e){if(e in Ye)return e;var t=e[0].toUpperCase()+e.slice(1),n=Ge.length;while(n--)if((e=Ge[n]+t)in Ye)return e}function Je(e){var t=w.cssProps[e];return t||(t=w.cssProps[e]=Qe(e)||e),t}function Ke(e,t,n){var r=ie.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function Ze(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=w.css(e,n+oe[a],!0,i)),r?("content"===n&&(u-=w.css(e,"padding"+oe[a],!0,i)),"margin"!==n&&(u-=w.css(e,"border"+oe[a]+"Width",!0,i))):(u+=w.css(e,"padding"+oe[a],!0,i),"padding"!==n?u+=w.css(e,"border"+oe[a]+"Width",!0,i):s+=w.css(e,"border"+oe[a]+"Width",!0,i));return!r&&o>=0&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))),u}function et(e,t,n){var r=$e(e),i=Fe(e,t,r),o="border-box"===w.css(e,"boxSizing",!1,r),a=o;if(We.test(i)){if(!n)return i;i="auto"}return a=a&&(h.boxSizingReliable()||i===e.style[t]),("auto"===i||!parseFloat(i)&&"inline"===w.css(e,"display",!1,r))&&(i=e["offset"+t[0].toUpperCase()+t.slice(1)],a=!0),(i=parseFloat(i)||0)+Ze(e,t,n||(o?"border":"content"),a,r,i)+"px"}w.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Fe(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=G(t),u=Xe.test(t),l=e.style;if(u||(t=Je(s)),a=w.cssHooks[t]||w.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"==(o=typeof n)&&(i=ie.exec(n))&&i[1]&&(n=ue(e,t,i),o="number"),null!=n&&n===n&&("number"===o&&(n+=i&&i[3]||(w.cssNumber[s]?"":"px")),h.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=G(t);return Xe.test(t)||(t=Je(s)),(a=w.cssHooks[t]||w.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Fe(e,t,r)),"normal"===i&&t in Ve&&(i=Ve[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),w.each(["height","width"],function(e,t){w.cssHooks[t]={get:function(e,n,r){if(n)return!ze.test(w.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?et(e,t,r):se(e,Ue,function(){return et(e,t,r)})},set:function(e,n,r){var i,o=$e(e),a="border-box"===w.css(e,"boxSizing",!1,o),s=r&&Ze(e,t,r,a,o);return a&&h.scrollboxSize()===o.position&&(s-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(o[t])-Ze(e,t,"border",!1,o)-.5)),s&&(i=ie.exec(n))&&"px"!==(i[3]||"px")&&(e.style[t]=n,n=w.css(e,t)),Ke(e,n,s)}}}),w.cssHooks.marginLeft=_e(h.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Fe(e,"marginLeft"))||e.getBoundingClientRect().left-se(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),w.each({margin:"",padding:"",border:"Width"},function(e,t){w.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+oe[r]+t]=o[r]||o[r-2]||o[0];return i}},"margin"!==e&&(w.cssHooks[e+t].set=Ke)}),w.fn.extend({css:function(e,t){return z(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=$e(e),i=t.length;a<i;a++)o[t[a]]=w.css(e,t[a],!1,r);return o}return void 0!==n?w.style(e,t,n):w.css(e,t)},e,t,arguments.length>1)}});function tt(e,t,n,r,i){return new tt.prototype.init(e,t,n,r,i)}w.Tween=tt,tt.prototype={constructor:tt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||w.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(w.cssNumber[n]?"":"px")},cur:function(){var e=tt.propHooks[this.prop];return e&&e.get?e.get(this):tt.propHooks._default.get(this)},run:function(e){var t,n=tt.propHooks[this.prop];return this.options.duration?this.pos=t=w.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):tt.propHooks._default.set(this),this}},tt.prototype.init.prototype=tt.prototype,tt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=w.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){w.fx.step[e.prop]?w.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[w.cssProps[e.prop]]&&!w.cssHooks[e.prop]?e.elem[e.prop]=e.now:w.style(e.elem,e.prop,e.now+e.unit)}}},tt.propHooks.scrollTop=tt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},w.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},w.fx=tt.prototype.init,w.fx.step={};var nt,rt,it=/^(?:toggle|show|hide)$/,ot=/queueHooks$/;function at(){rt&&(!1===r.hidden&&e.requestAnimationFrame?e.requestAnimationFrame(at):e.setTimeout(at,w.fx.interval),w.fx.tick())}function st(){return e.setTimeout(function(){nt=void 0}),nt=Date.now()}function ut(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=oe[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function lt(e,t,n){for(var r,i=(pt.tweeners[t]||[]).concat(pt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function ct(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&ae(e),y=J.get(e,"fxshow");n.queue||(null==(a=w._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,w.queue(e,"fx").length||a.empty.fire()})}));for(r in t)if(i=t[r],it.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!y||void 0===y[r])continue;g=!0}d[r]=y&&y[r]||w.style(e,r)}if((u=!w.isEmptyObject(t))||!w.isEmptyObject(d)){f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=y&&y.display)&&(l=J.get(e,"display")),"none"===(c=w.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=w.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===w.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1;for(r in d)u||(y?"hidden"in y&&(g=y.hidden):y=J.access(e,"fxshow",{display:l}),o&&(y.hidden=!g),g&&fe([e],!0),p.done(function(){g||fe([e]),J.remove(e,"fxshow");for(r in d)w.style(e,r,d[r])})),u=lt(g?y[r]:0,r,p),r in y||(y[r]=u.start,g&&(u.end=u.start,u.start=0))}}function ft(e,t){var n,r,i,o,a;for(n in e)if(r=G(n),i=t[r],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=w.cssHooks[r])&&"expand"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}function pt(e,t,n){var r,i,o=0,a=pt.prefilters.length,s=w.Deferred().always(function(){delete u.elem}),u=function(){if(i)return!1;for(var t=nt||st(),n=Math.max(0,l.startTime+l.duration-t),r=1-(n/l.duration||0),o=0,a=l.tweens.length;o<a;o++)l.tweens[o].run(r);return s.notifyWith(e,[l,r,n]),r<1&&a?n:(a||s.notifyWith(e,[l,1,0]),s.resolveWith(e,[l]),!1)},l=s.promise({elem:e,props:w.extend({},t),opts:w.extend(!0,{specialEasing:{},easing:w.easing._default},n),originalProperties:t,originalOptions:n,startTime:nt||st(),duration:n.duration,tweens:[],createTween:function(t,n){var r=w.Tween(e,l.opts,t,n,l.opts.specialEasing[t]||l.opts.easing);return l.tweens.push(r),r},stop:function(t){var n=0,r=t?l.tweens.length:0;if(i)return this;for(i=!0;n<r;n++)l.tweens[n].run(1);return t?(s.notifyWith(e,[l,1,0]),s.resolveWith(e,[l,t])):s.rejectWith(e,[l,t]),this}}),c=l.props;for(ft(c,l.opts.specialEasing);o<a;o++)if(r=pt.prefilters[o].call(l,e,c,l.opts))return g(r.stop)&&(w._queueHooks(l.elem,l.opts.queue).stop=r.stop.bind(r)),r;return w.map(c,lt,l),g(l.opts.start)&&l.opts.start.call(e,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),w.fx.timer(w.extend(u,{elem:e,anim:l,queue:l.opts.queue})),l}w.Animation=w.extend(pt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return ue(n.elem,e,ie.exec(t),n),n}]},tweener:function(e,t){g(e)?(t=e,e=["*"]):e=e.match(M);for(var n,r=0,i=e.length;r<i;r++)n=e[r],pt.tweeners[n]=pt.tweeners[n]||[],pt.tweeners[n].unshift(t)},prefilters:[ct],prefilter:function(e,t){t?pt.prefilters.unshift(e):pt.prefilters.push(e)}}),w.speed=function(e,t,n){var r=e&&"object"==typeof e?w.extend({},e):{complete:n||!n&&t||g(e)&&e,duration:e,easing:n&&t||t&&!g(t)&&t};return w.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in w.fx.speeds?r.duration=w.fx.speeds[r.duration]:r.duration=w.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){g(r.old)&&r.old.call(this),r.queue&&w.dequeue(this,r.queue)},r},w.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ae).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=w.isEmptyObject(e),o=w.speed(t,n,r),a=function(){var t=pt(this,w.extend({},e),o);(i||J.get(this,"finish"))&&t.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(e,t,n){var r=function(e){var t=e.stop;delete e.stop,t(n)};return"string"!=typeof e&&(n=t,t=e,e=void 0),t&&!1!==e&&this.queue(e||"fx",[]),this.each(function(){var t=!0,i=null!=e&&e+"queueHooks",o=w.timers,a=J.get(this);if(i)a[i]&&a[i].stop&&r(a[i]);else for(i in a)a[i]&&a[i].stop&&ot.test(i)&&r(a[i]);for(i=o.length;i--;)o[i].elem!==this||null!=e&&o[i].queue!==e||(o[i].anim.stop(n),t=!1,o.splice(i,1));!t&&n||w.dequeue(this,e)})},finish:function(e){return!1!==e&&(e=e||"fx"),this.each(function(){var t,n=J.get(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=w.timers,a=r?r.length:0;for(n.finish=!0,w.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;t<a;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}}),w.each(["toggle","show","hide"],function(e,t){var n=w.fn[t];w.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ut(t,!0),e,r,i)}}),w.each({slideDown:ut("show"),slideUp:ut("hide"),slideToggle:ut("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){w.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),w.timers=[],w.fx.tick=function(){var e,t=0,n=w.timers;for(nt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||w.fx.stop(),nt=void 0},w.fx.timer=function(e){w.timers.push(e),w.fx.start()},w.fx.interval=13,w.fx.start=function(){rt||(rt=!0,at())},w.fx.stop=function(){rt=null},w.fx.speeds={slow:600,fast:200,_default:400},w.fn.delay=function(t,n){return t=w.fx?w.fx.speeds[t]||t:t,n=n||"fx",this.queue(n,function(n,r){var i=e.setTimeout(n,t);r.stop=function(){e.clearTimeout(i)}})},function(){var e=r.createElement("input"),t=r.createElement("select").appendChild(r.createElement("option"));e.type="checkbox",h.checkOn=""!==e.value,h.optSelected=t.selected,(e=r.createElement("input")).value="t",e.type="radio",h.radioValue="t"===e.value}();var dt,ht=w.expr.attrHandle;w.fn.extend({attr:function(e,t){return z(this,w.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){w.removeAttr(this,e)})}}),w.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?w.prop(e,t,n):(1===o&&w.isXMLDoc(e)||(i=w.attrHooks[t.toLowerCase()]||(w.expr.match.bool.test(t)?dt:void 0)),void 0!==n?null===n?void w.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=w.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!h.radioValue&&"radio"===t&&N(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(M);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),dt={set:function(e,t,n){return!1===t?w.removeAttr(e,n):e.setAttribute(n,n),n}},w.each(w.expr.match.bool.source.match(/\w+/g),function(e,t){var n=ht[t]||w.find.attr;ht[t]=function(e,t,r){var i,o,a=t.toLowerCase();return r||(o=ht[a],ht[a]=i,i=null!=n(e,t,r)?a:null,ht[a]=o),i}});var gt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;w.fn.extend({prop:function(e,t){return z(this,w.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[w.propFix[e]||e]})}}),w.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&w.isXMLDoc(e)||(t=w.propFix[t]||t,i=w.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=w.find.attr(e,"tabindex");return t?parseInt(t,10):gt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),h.optSelected||(w.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),w.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){w.propFix[this.toLowerCase()]=this});function vt(e){return(e.match(M)||[]).join(" ")}function mt(e){return e.getAttribute&&e.getAttribute("class")||""}function xt(e){return Array.isArray(e)?e:"string"==typeof e?e.match(M)||[]:[]}w.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).addClass(e.call(this,t,mt(this)))});if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).removeClass(e.call(this,t,mt(this)))});if(!arguments.length)return this.attr("class","");if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])while(r.indexOf(" "+o+" ")>-1)r=r.replace(" "+o+" "," ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(e,t){var n=typeof e,r="string"===n||Array.isArray(e);return"boolean"==typeof t&&r?t?this.addClass(e):this.removeClass(e):g(e)?this.each(function(n){w(this).toggleClass(e.call(this,n,mt(this),t),t)}):this.each(function(){var t,i,o,a;if(r){i=0,o=w(this),a=xt(e);while(t=a[i++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else void 0!==e&&"boolean"!==n||((t=mt(this))&&J.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":J.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&(" "+vt(mt(n))+" ").indexOf(t)>-1)return!0;return!1}});var bt=/\r/g;w.fn.extend({val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=g(e),this.each(function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,w(this).val()):e)?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=w.map(i,function(e){return null==e?"":e+""})),(t=w.valHooks[this.type]||w.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))});if(i)return(t=w.valHooks[i.type]||w.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:"string"==typeof(n=i.value)?n.replace(bt,""):null==n?"":n}}}),w.extend({valHooks:{option:{get:function(e){var t=w.find.attr(e,"value");return null!=t?t:vt(w.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!N(n.parentNode,"optgroup"))){if(t=w(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=w.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=w.inArray(w.valHooks.option.get(r),o)>-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),w.each(["radio","checkbox"],function(){w.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=w.inArray(w(e).val(),t)>-1}},h.checkOn||(w.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),h.focusin="onfocusin"in e;var wt=/^(?:focusinfocus|focusoutblur)$/,Tt=function(e){e.stopPropagation()};w.extend(w.event,{trigger:function(t,n,i,o){var a,s,u,l,c,p,d,h,v=[i||r],m=f.call(t,"type")?t.type:t,x=f.call(t,"namespace")?t.namespace.split("."):[];if(s=h=u=i=i||r,3!==i.nodeType&&8!==i.nodeType&&!wt.test(m+w.event.triggered)&&(m.indexOf(".")>-1&&(m=(x=m.split(".")).shift(),x.sort()),c=m.indexOf(":")<0&&"on"+m,t=t[w.expando]?t:new w.Event(m,"object"==typeof t&&t),t.isTrigger=o?2:3,t.namespace=x.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+x.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=i),n=null==n?[t]:w.makeArray(n,[t]),d=w.event.special[m]||{},o||!d.trigger||!1!==d.trigger.apply(i,n))){if(!o&&!d.noBubble&&!y(i)){for(l=d.delegateType||m,wt.test(l+m)||(s=s.parentNode);s;s=s.parentNode)v.push(s),u=s;u===(i.ownerDocument||r)&&v.push(u.defaultView||u.parentWindow||e)}a=0;while((s=v[a++])&&!t.isPropagationStopped())h=s,t.type=a>1?l:d.bindType||m,(p=(J.get(s,"events")||{})[t.type]&&J.get(s,"handle"))&&p.apply(s,n),(p=c&&s[c])&&p.apply&&Y(s)&&(t.result=p.apply(s,n),!1===t.result&&t.preventDefault());return t.type=m,o||t.isDefaultPrevented()||d._default&&!1!==d._default.apply(v.pop(),n)||!Y(i)||c&&g(i[m])&&!y(i)&&((u=i[c])&&(i[c]=null),w.event.triggered=m,t.isPropagationStopped()&&h.addEventListener(m,Tt),i[m](),t.isPropagationStopped()&&h.removeEventListener(m,Tt),w.event.triggered=void 0,u&&(i[c]=u)),t.result}},simulate:function(e,t,n){var r=w.extend(new w.Event,n,{type:e,isSimulated:!0});w.event.trigger(r,null,t)}}),w.fn.extend({trigger:function(e,t){return this.each(function(){w.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return w.event.trigger(e,t,n,!0)}}),h.focusin||w.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){w.event.simulate(t,e.target,w.event.fix(e))};w.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=J.access(r,t);i||r.addEventListener(e,n,!0),J.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=J.access(r,t)-1;i?J.access(r,t,i):(r.removeEventListener(e,n,!0),J.remove(r,t))}}});var Ct=e.location,Et=Date.now(),kt=/\?/;w.parseXML=function(t){var n;if(!t||"string"!=typeof t)return null;try{n=(new e.DOMParser).parseFromString(t,"text/xml")}catch(e){n=void 0}return n&&!n.getElementsByTagName("parsererror").length||w.error("Invalid XML: "+t),n};var St=/\[\]$/,Dt=/\r?\n/g,Nt=/^(?:submit|button|image|reset|file)$/i,At=/^(?:input|select|textarea|keygen)/i;function jt(e,t,n,r){var i;if(Array.isArray(t))w.each(t,function(t,i){n||St.test(e)?r(e,i):jt(e+"["+("object"==typeof i&&null!=i?t:"")+"]",i,n,r)});else if(n||"object"!==x(t))r(e,t);else for(i in t)jt(e+"["+i+"]",t[i],n,r)}w.param=function(e,t){var n,r=[],i=function(e,t){var n=g(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(Array.isArray(e)||e.jquery&&!w.isPlainObject(e))w.each(e,function(){i(this.name,this.value)});else for(n in e)jt(n,e[n],t,i);return r.join("&")},w.fn.extend({serialize:function(){return w.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=w.prop(this,"elements");return e?w.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!w(this).is(":disabled")&&At.test(this.nodeName)&&!Nt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=w(this).val();return null==n?null:Array.isArray(n)?w.map(n,function(e){return{name:t.name,value:e.replace(Dt,"\r\n")}}):{name:t.name,value:n.replace(Dt,"\r\n")}}).get()}});var qt=/%20/g,Lt=/#.*$/,Ht=/([?&])_=[^&]*/,Ot=/^(.*?):[ \t]*([^\r\n]*)$/gm,Pt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Mt=/^(?:GET|HEAD)$/,Rt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Bt=r.createElement("a");Bt.href=Ct.href;function Ft(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(M)||[];if(g(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function _t(e,t,n,r){var i={},o=e===Wt;function a(s){var u;return i[s]=!0,w.each(e[s]||[],function(e,s){var l=s(t,n,r);return"string"!=typeof l||o||i[l]?o?!(u=l):void 0:(t.dataTypes.unshift(l),a(l),!1)}),u}return a(t.dataTypes[0])||!i["*"]&&a("*")}function zt(e,t){var n,r,i=w.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&w.extend(!0,e,r),e}function Xt(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}function Ut(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}w.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Ct.href,type:"GET",isLocal:Pt.test(Ct.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":w.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,w.ajaxSettings),t):zt(w.ajaxSettings,e)},ajaxPrefilter:Ft(It),ajaxTransport:Ft(Wt),ajax:function(t,n){"object"==typeof t&&(n=t,t=void 0),n=n||{};var i,o,a,s,u,l,c,f,p,d,h=w.ajaxSetup({},n),g=h.context||h,y=h.context&&(g.nodeType||g.jquery)?w(g):w.event,v=w.Deferred(),m=w.Callbacks("once memory"),x=h.statusCode||{},b={},T={},C="canceled",E={readyState:0,getResponseHeader:function(e){var t;if(c){if(!s){s={};while(t=Ot.exec(a))s[t[1].toLowerCase()]=t[2]}t=s[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return c?a:null},setRequestHeader:function(e,t){return null==c&&(e=T[e.toLowerCase()]=T[e.toLowerCase()]||e,b[e]=t),this},overrideMimeType:function(e){return null==c&&(h.mimeType=e),this},statusCode:function(e){var t;if(e)if(c)E.always(e[E.status]);else for(t in e)x[t]=[x[t],e[t]];return this},abort:function(e){var t=e||C;return i&&i.abort(t),k(0,t),this}};if(v.promise(E),h.url=((t||h.url||Ct.href)+"").replace(Rt,Ct.protocol+"//"),h.type=n.method||n.type||h.method||h.type,h.dataTypes=(h.dataType||"*").toLowerCase().match(M)||[""],null==h.crossDomain){l=r.createElement("a");try{l.href=h.url,l.href=l.href,h.crossDomain=Bt.protocol+"//"+Bt.host!=l.protocol+"//"+l.host}catch(e){h.crossDomain=!0}}if(h.data&&h.processData&&"string"!=typeof h.data&&(h.data=w.param(h.data,h.traditional)),_t(It,h,n,E),c)return E;(f=w.event&&h.global)&&0==w.active++&&w.event.trigger("ajaxStart"),h.type=h.type.toUpperCase(),h.hasContent=!Mt.test(h.type),o=h.url.replace(Lt,""),h.hasContent?h.data&&h.processData&&0===(h.contentType||"").indexOf("application/x-www-form-urlencoded")&&(h.data=h.data.replace(qt,"+")):(d=h.url.slice(o.length),h.data&&(h.processData||"string"==typeof h.data)&&(o+=(kt.test(o)?"&":"?")+h.data,delete h.data),!1===h.cache&&(o=o.replace(Ht,"$1"),d=(kt.test(o)?"&":"?")+"_="+Et+++d),h.url=o+d),h.ifModified&&(w.lastModified[o]&&E.setRequestHeader("If-Modified-Since",w.lastModified[o]),w.etag[o]&&E.setRequestHeader("If-None-Match",w.etag[o])),(h.data&&h.hasContent&&!1!==h.contentType||n.contentType)&&E.setRequestHeader("Content-Type",h.contentType),E.setRequestHeader("Accept",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+("*"!==h.dataTypes[0]?", "+$t+"; q=0.01":""):h.accepts["*"]);for(p in h.headers)E.setRequestHeader(p,h.headers[p]);if(h.beforeSend&&(!1===h.beforeSend.call(g,E,h)||c))return E.abort();if(C="abort",m.add(h.complete),E.done(h.success),E.fail(h.error),i=_t(Wt,h,n,E)){if(E.readyState=1,f&&y.trigger("ajaxSend",[E,h]),c)return E;h.async&&h.timeout>0&&(u=e.setTimeout(function(){E.abort("timeout")},h.timeout));try{c=!1,i.send(b,k)}catch(e){if(c)throw e;k(-1,e)}}else k(-1,"No Transport");function k(t,n,r,s){var l,p,d,b,T,C=n;c||(c=!0,u&&e.clearTimeout(u),i=void 0,a=s||"",E.readyState=t>0?4:0,l=t>=200&&t<300||304===t,r&&(b=Xt(h,E,r)),b=Ut(h,b,E,l),l?(h.ifModified&&((T=E.getResponseHeader("Last-Modified"))&&(w.lastModified[o]=T),(T=E.getResponseHeader("etag"))&&(w.etag[o]=T)),204===t||"HEAD"===h.type?C="nocontent":304===t?C="notmodified":(C=b.state,p=b.data,l=!(d=b.error))):(d=C,!t&&C||(C="error",t<0&&(t=0))),E.status=t,E.statusText=(n||C)+"",l?v.resolveWith(g,[p,C,E]):v.rejectWith(g,[E,C,d]),E.statusCode(x),x=void 0,f&&y.trigger(l?"ajaxSuccess":"ajaxError",[E,h,l?p:d]),m.fireWith(g,[E,C]),f&&(y.trigger("ajaxComplete",[E,h]),--w.active||w.event.trigger("ajaxStop")))}return E},getJSON:function(e,t,n){return w.get(e,t,n,"json")},getScript:function(e,t){return w.get(e,void 0,t,"script")}}),w.each(["get","post"],function(e,t){w[t]=function(e,n,r,i){return g(n)&&(i=i||r,r=n,n=void 0),w.ajax(w.extend({url:e,type:t,dataType:i,data:n,success:r},w.isPlainObject(e)&&e))}}),w._evalUrl=function(e){return w.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},w.fn.extend({wrapAll:function(e){var t;return this[0]&&(g(e)&&(e=e.call(this[0])),t=w(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(e){return g(e)?this.each(function(t){w(this).wrapInner(e.call(this,t))}):this.each(function(){var t=w(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=g(e);return this.each(function(n){w(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not("body").each(function(){w(this).replaceWith(this.childNodes)}),this}}),w.expr.pseudos.hidden=function(e){return!w.expr.pseudos.visible(e)},w.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},w.ajaxSettings.xhr=function(){try{return new e.XMLHttpRequest}catch(e){}};var Vt={0:200,1223:204},Gt=w.ajaxSettings.xhr();h.cors=!!Gt&&"withCredentials"in Gt,h.ajax=Gt=!!Gt,w.ajaxTransport(function(t){var n,r;if(h.cors||Gt&&!t.crossDomain)return{send:function(i,o){var a,s=t.xhr();if(s.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(a in t.xhrFields)s[a]=t.xhrFields[a];t.mimeType&&s.overrideMimeType&&s.overrideMimeType(t.mimeType),t.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");for(a in i)s.setRequestHeader(a,i[a]);n=function(e){return function(){n&&(n=r=s.onload=s.onerror=s.onabort=s.ontimeout=s.onreadystatechange=null,"abort"===e?s.abort():"error"===e?"number"!=typeof s.status?o(0,"error"):o(s.status,s.statusText):o(Vt[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=n(),r=s.onerror=s.ontimeout=n("error"),void 0!==s.onabort?s.onabort=r:s.onreadystatechange=function(){4===s.readyState&&e.setTimeout(function(){n&&r()})},n=n("abort");try{s.send(t.hasContent&&t.data||null)}catch(e){if(n)throw e}},abort:function(){n&&n()}}}),w.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),w.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return w.globalEval(e),e}}}),w.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),w.ajaxTransport("script",function(e){if(e.crossDomain){var t,n;return{send:function(i,o){t=w("<script>").prop({charset:e.scriptCharset,src:e.url}).on("load error",n=function(e){t.remove(),n=null,e&&o("error"===e.type?404:200,e.type)}),r.head.appendChild(t[0])},abort:function(){n&&n()}}}});var Yt=[],Qt=/(=)\?(?=&|$)|\?\?/;w.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Yt.pop()||w.expando+"_"+Et++;return this[e]=!0,e}}),w.ajaxPrefilter("json jsonp",function(t,n,r){var i,o,a,s=!1!==t.jsonp&&(Qt.test(t.url)?"url":"string"==typeof t.data&&0===(t.contentType||"").indexOf("application/x-www-form-urlencoded")&&Qt.test(t.data)&&"data");if(s||"jsonp"===t.dataTypes[0])return i=t.jsonpCallback=g(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,s?t[s]=t[s].replace(Qt,"$1"+i):!1!==t.jsonp&&(t.url+=(kt.test(t.url)?"&":"?")+t.jsonp+"="+i),t.converters["script json"]=function(){return a||w.error(i+" was not called"),a[0]},t.dataTypes[0]="json",o=e[i],e[i]=function(){a=arguments},r.always(function(){void 0===o?w(e).removeProp(i):e[i]=o,t[i]&&(t.jsonpCallback=n.jsonpCallback,Yt.push(i)),a&&g(o)&&o(a[0]),a=o=void 0}),"script"}),h.createHTMLDocument=function(){var e=r.implementation.createHTMLDocument("").body;return e.innerHTML="<form></form><form></form>",2===e.childNodes.length}(),w.parseHTML=function(e,t,n){if("string"!=typeof e)return[];"boolean"==typeof t&&(n=t,t=!1);var i,o,a;return t||(h.createHTMLDocument?((i=(t=r.implementation.createHTMLDocument("")).createElement("base")).href=r.location.href,t.head.appendChild(i)):t=r),o=A.exec(e),a=!n&&[],o?[t.createElement(o[1])]:(o=xe([e],t,a),a&&a.length&&w(a).remove(),w.merge([],o.childNodes))},w.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return s>-1&&(r=vt(e.slice(s)),e=e.slice(0,s)),g(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),a.length>0&&w.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?w("<div>").append(w.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},w.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){w.fn[t]=function(e){return this.on(t,e)}}),w.expr.pseudos.animated=function(e){return w.grep(w.timers,function(t){return e===t.elem}).length},w.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l,c=w.css(e,"position"),f=w(e),p={};"static"===c&&(e.style.position="relative"),s=f.offset(),o=w.css(e,"top"),u=w.css(e,"left"),(l=("absolute"===c||"fixed"===c)&&(o+u).indexOf("auto")>-1)?(a=(r=f.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),g(t)&&(t=t.call(e,n,w.extend({},s))),null!=t.top&&(p.top=t.top-s.top+a),null!=t.left&&(p.left=t.left-s.left+i),"using"in t?t.using.call(e,p):f.css(p)}},w.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){w.offset.setOffset(this,e,t)});var t,n,r=this[0];if(r)return r.getClientRects().length?(t=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:t.top+n.pageYOffset,left:t.left+n.pageXOffset}):{top:0,left:0}},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===w.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===w.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=w(e).offset()).top+=w.css(e,"borderTopWidth",!0),i.left+=w.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-w.css(r,"marginTop",!0),left:t.left-i.left-w.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===w.css(e,"position"))e=e.offsetParent;return e||be})}}),w.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){var n="pageYOffset"===t;w.fn[e]=function(r){return z(this,function(e,r,i){var o;if(y(e)?o=e:9===e.nodeType&&(o=e.defaultView),void 0===i)return o?o[t]:e[r];o?o.scrollTo(n?o.pageXOffset:i,n?i:o.pageYOffset):e[r]=i},e,r,arguments.length)}}),w.each(["top","left"],function(e,t){w.cssHooks[t]=_e(h.pixelPosition,function(e,n){if(n)return n=Fe(e,t),We.test(n)?w(e).position()[t]+"px":n})}),w.each({Height:"height",Width:"width"},function(e,t){w.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,r){w.fn[r]=function(i,o){var a=arguments.length&&(n||"boolean"!=typeof i),s=n||(!0===i||!0===o?"margin":"border");return z(this,function(t,n,i){var o;return y(t)?0===r.indexOf("outer")?t["inner"+e]:t.document.documentElement["client"+e]:9===t.nodeType?(o=t.documentElement,Math.max(t.body["scroll"+e],o["scroll"+e],t.body["offset"+e],o["offset"+e],o["client"+e])):void 0===i?w.css(t,n,s):w.style(t,n,i,s)},t,a?i:void 0,a)}})}),w.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,t){w.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),w.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),w.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),w.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),g(e))return r=o.call(arguments,2),i=function(){return e.apply(t||this,r.concat(o.call(arguments)))},i.guid=e.guid=e.guid||w.guid++,i},w.holdReady=function(e){e?w.readyWait++:w.ready(!0)},w.isArray=Array.isArray,w.parseJSON=JSON.parse,w.nodeName=N,w.isFunction=g,w.isWindow=y,w.camelCase=G,w.type=x,w.now=Date.now,w.isNumeric=function(e){var t=w.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return w});var Jt=e.jQuery,Kt=e.$;return w.noConflict=function(t){return e.$===w&&(e.$=Kt),t&&e.jQuery===w&&(e.jQuery=Jt),w},t||(e.jQuery=e.$=w),w});
3 4/*! 5 * Bootstrap v4.3.1 (https://getbootstrap.com/) 6 * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) 7 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 8 */ 9!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("jquery")):"function"==typeof define&&define.amd?define(["exports","jquery"],e):e((t=t||self).bootstrap={},t.jQuery)}(this,function(t,p){"use strict";function i(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function s(t,e,n){return e&&i(t.prototype,e),n&&i(t,n),t}function l(o){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},e=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(e=e.concat(Object.getOwnPropertySymbols(r).filter(function(t){return Object.getOwnPropertyDescriptor(r,t).enumerable}))),e.forEach(function(t){var e,n,i;e=o,i=r[n=t],n in e?Object.defineProperty(e,n,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[n]=i})}return o}p=p&&p.hasOwnProperty("default")?p.default:p;var e="transitionend";function n(t){var e=this,n=!1;return p(this).one(m.TRANSITION_END,function(){n=!0}),setTimeout(function(){n||m.triggerTransitionEnd(e)},t),this}var m={TRANSITION_END:"bsTransitionEnd",getUID:function(t){for(;t+=~~(1e6*Math.random()),document.getElementById(t););return t},getSelectorFromElement:function(t){var e=t.getAttribute("data-target");if(!e||"#"===e){var n=t.getAttribute("href");e=n&&"#"!==n?n.trim():""}try{return document.querySelector(e)?e:null}catch(t){return null}},getTransitionDurationFromElement:function(t){if(!t)return 0;var e=p(t).css("transition-duration"),n=p(t).css("transition-delay"),i=parseFloat(e),o=parseFloat(n);return i||o?(e=e.split(",")[0],n=n.split(",")[0],1e3*(parseFloat(e)+parseFloat(n))):0},reflow:function(t){return t.offsetHeight},triggerTransitionEnd:function(t){p(t).trigger(e)},supportsTransitionEnd:function(){return Boolean(e)},isElement:function(t){return(t[0]||t).nodeType},typeCheckConfig:function(t,e,n){for(var i in n)if(Object.prototype.hasOwnProperty.call(n,i)){var o=n[i],r=e[i],s=r&&m.isElement(r)?"element":(a=r,{}.toString.call(a).match(/\s([a-z]+)/i)[1].toLowerCase());if(!new RegExp(o).test(s))throw new Error(t.toUpperCase()+': Option "'+i+'" provided type "'+s+'" but expected type "'+o+'".')}var a},findShadowRoot:function(t){if(!document.documentElement.attachShadow)return null;if("function"!=typeof t.getRootNode)return t instanceof ShadowRoot?t:t.parentNode?m.findShadowRoot(t.parentNode):null;var e=t.getRootNode();return e instanceof ShadowRoot?e:null}};p.fn.emulateTransitionEnd=n,p.event.special[m.TRANSITION_END]={bindType:e,delegateType:e,handle:function(t){if(p(t.target).is(this))return t.handleObj.handler.apply(this,arguments)}};var o="alert",r="bs.alert",a="."+r,c=p.fn[o],h={CLOSE:"close"+a,CLOSED:"closed"+a,CLICK_DATA_API:"click"+a+".data-api"},u="alert",f="fade",d="show",g=function(){function i(t){this._element=t}var t=i.prototype;return t.close=function(t){var e=this._element;t&&(e=this._getRootElement(t)),this._triggerCloseEvent(e).isDefaultPrevented()||this._removeElement(e)},t.dispose=function(){p.removeData(this._element,r),this._element=null},t._getRootElement=function(t){var e=m.getSelectorFromElement(t),n=!1;return e&&(n=document.querySelector(e)),n||(n=p(t).closest("."+u)[0]),n},t._triggerCloseEvent=function(t){var e=p.Event(h.CLOSE);return p(t).trigger(e),e},t._removeElement=function(e){var n=this;if(p(e).removeClass(d),p(e).hasClass(f)){var t=m.getTransitionDurationFromElement(e);p(e).one(m.TRANSITION_END,function(t){return n._destroyElement(e,t)}).emulateTransitionEnd(t)}else this._destroyElement(e)},t._destroyElement=function(t){p(t).detach().trigger(h.CLOSED).remove()},i._jQueryInterface=function(n){return this.each(function(){var t=p(this),e=t.data(r);e||(e=new i(this),t.data(r,e)),"close"===n&&e[n](this)})},i._handleDismiss=function(e){return function(t){t&&t.preventDefault(),e.close(this)}},s(i,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),i}();p(document).on(h.CLICK_DATA_API,'[data-dismiss="alert"]',g._handleDismiss(new g)),p.fn[o]=g._jQueryInterface,p.fn[o].Constructor=g,p.fn[o].noConflict=function(){return p.fn[o]=c,g._jQueryInterface};var _="button",v="bs.button",y="."+v,E=".data-api",b=p.fn[_],w="active",C="btn",T="focus",S='[data-toggle^="button"]',D='[data-toggle="buttons"]',I='input
9:not([type="hidden"])',A=".active",O=".btn",N={CLICK_DATA_API:"click"+y+E,FOCUS_BLUR_DATA_API:"focus"+y+E+" blur"+y+E},k=function(){function n(t){this._element=t}var t=n.prototype;return t.toggle=function(){var t=!0,e=!0,n=p(this._element).closest(D)[0];if(n){var i=this._element.querySelector(I);if(i){if("radio"===i.type)if(i.checked&&this._element.classList.contains(w))t=!1;else{var o=n.querySelector(A);o&&p(o).removeClass(w)}if(t){if(i.hasAttribute("disabled")||n.hasAttribute("disabled")||i.classList.contains("disabled")||n.classList.contains("disabled"))return;i.checked=!this._element.classList.contains(w),p(i).trigger("change")}i.focus(),e=!1}}e&&this._element.setAttribute("aria-pressed",!this._element.classList.contains(w)),t&&p(this._element).toggleClass(w)},t.dispose=function(){p.removeData(this._element,v),this._element=null},n._jQueryInterface=function(e){return this.each(function(){var t=p(this).data(v);t||(t=new n(this),p(this).data(v,t)),"toggle"===e&&t[e]()})},s(n,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),n}();p(document).on(N.CLICK_DATA_API,S,function(t){t.preventDefault();var e=t.target;p(e).hasClass(C)||(e=p(e).closest(O)),k._jQueryInterface.call(p(e),"toggle")}).on(N.FOCUS_BLUR_DATA_API,S,function(t){var e=p(t.target).closest(O)[0];p(e).toggleClass(T,/^focus(in)?$/.test(t.type))}),p.fn[_]=k._jQueryInterface,p.fn[_].Constructor=k,p.fn[_].noConflict=function(){return p.fn[_]=b,k._jQueryInterface};var L="carousel",x="bs.carousel",P="."+x,H=".data-api",j=p.fn[L],R={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},F={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},M="next",W="prev",U="left",B="right",q={SLIDE:"slide"+P,SLID:"slid"+P,KEYDOWN:"keydown"+P,MOUSEENTER:"mouseenter"+P,MOUSELEAVE:"mouseleave"+P,TOUCHSTART:"touchstart"+P,TOUCHMOVE:"touchmove"+P,TOUCHEND:"touchend"+P,POINTERDOWN:"pointerdown"+P,POINTERUP:"pointerup"+P,DRAG_START:"dragstart"+P,LOAD_DATA_API:"load"+P+H,CLICK_DATA_API:"click"+P+H},K="carousel",Q="active",V="slide",Y="carousel-item-right",z="carousel-item-left",X="carousel-item-next",G="carousel-item-prev",$="pointer-event",J=".active",Z=".active.carousel-item",tt=".carousel-item",et=".carousel-item img",nt=".carousel-item-next, .carousel-item-prev",it=".carousel-indicators",ot="[data-slide], [data-slide-to]",rt='[data-ride="carousel"]',st={TOUCH:"touch",PEN:"pen"},at=function(){function r(t,e){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(e),this._element=t,this._indicatorsElement=this._element.querySelector(it),this._touchSupported="ontouchstart"in document.documentElement||0<navigator.maxTouchPoints,this._pointerEvent=Boolean(window.PointerEvent||window.MSPointerEvent),this._addEventListeners()}var t=r.prototype;return t.next=function(){this._isSliding||this._slide(M)},t.nextWhenVisible=function(){!document.hidden&&p(this._element).is(":visible")&&"hidden"!==p(this._element).css("visibility")&&this.next()},t.prev=function(){this._isSliding||this._slide(W)},t.pause=function(t){t||(this._isPaused=!0),this._element.querySelector(nt)&&(m.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},t.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},t.to=function(t){var e=this;this._activeElement=this._element.querySelector(Z);var n=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)p(this._element).one(q.SLID,function(){return e.to(t)});else{if(n===t)return this.pause(),void this.cycle();var i=n<t?M:W;this._slide(i,this._items[t])}},t.dispose=function(){p(this._element).off(P),p.removeData(this._element,x),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},t._getConfig=function(t){return t=l({},R,t),m.typeCheckConfig(L,t,F),t},t._handleSwipe=function(){var t=Math.abs(this.touchDeltaX);if(!(t<=40)){var e=t/this.touchDeltaX;0<e&&this.prev(),e<0&&this.next()}},t._addEventListeners=function(){var e=this;this._config.keyboard&&p(this._element).on(q.KEYDOWN,function(t){return e._keydown(t)}),"hover"===this._config.pause&&p(this._element).on(q.MOUSEENTER,function(t){return e.pause(t)}).on(q.MOUSELEAVE,function(t){return e.cycle(t)}),this._config.touch&&this._addTouchEventListeners()},t._addTouchEventListeners=function(){var n=this;if(this._touchSupported){var e=function(t){n._pointerEvent&&st[t.originalEvent.pointerType.toUpperCase()]?n.touchStartX=t.originalEvent.clientX:n._pointerEvent||(n.touchStartX=t.originalEvent.touches[0].clientX)},i=function(t){n._pointerEvent&&st[t.originalEvent.pointerType.toUpperCase()]&&(n.touchDeltaX=t.originalEvent.clientX-n.touchStartX),n._handleSwipe(),"hover"===n._config.pause&&(n.pause(),n.touchTimeout&&clearTimeout(n.touchTimeout),n.touchTimeout=setTimeout(function(t){return n.cycle(t)},500+n._config.interval))};p(this._element.querySelectorAll(et)).on(q.DRAG_START,function(t){return t.preventDefault()}),this._pointerEvent?(p(this._element).on(q.POINTERDOWN,function(t){return e(t)}),p(this._element).on(q.POINTERUP,function(t){return i(t)}),this._element.classList.add($)):(p(this._element).on(q.TOUCHSTART,function(t){return e(t)}),p(this._element).on(q.TOUCHMOVE,function(t){var e;(e=t).originalEvent.touches&&1<e.originalEvent.touches.length?n.touchDeltaX=0:n.touchDeltaX=e.originalEvent.touches[0].clientX-n.touchStartX}),p(this._element).on(q.TOUCHEND,function(t){return i(t)}))}},t._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.which){case 37:t.preventDefault(),this.prev();break;case 39:t.preventDefault(),this.next()}},t._getItemIndex=function(t){return this._items=t&&t.parentNode?[].slice.call(t.parentNode.querySelectorAll(tt)):[],this._items.indexOf(t)},t._getItemByDirection=function(t,e){var n=t===M,i=t===W,o=this._getItemIndex(e),r=this._items.length-1;if((i&&0===o||n&&o===r)&&!this._config.wrap)return e;var s=(o+(t===W?-1:1))%this._items.length;return-1===s?this._items[this._items.length-1]:this._items[s]},t._triggerSlideEvent=function(t,e){var n=this._getItemIndex(t),i=this._getItemIndex(this._element.querySelector(Z)),o=p.Event(q.SLIDE,{relatedTarget:t,direction:e,from:i,to:n});return p(this._element).trigger(o),o},t._setActiveIndicatorElement=function(t){if(this._indicatorsElement){var e=[].slice.call(this._indicatorsElement.querySelectorAll(J));p(e).removeClass(Q);var n=this._indicatorsElement.children[this._getItemIndex(t)];n&&p(n).addClass(Q)}},t._slide=function(t,e){var n,i,o,r=this,s=this._element.querySelector(Z),a=this._getItemIndex(s),l=e||s&&this._getItemByDirection(t,s),c=this._getItemIndex(l),h=Boolean(this._interval);if(o=t===M?(n=z,i=X,U):(n=Y,i=G,B),l&&p(l).hasClass(Q))this._isSliding=!1;else if(!this._triggerSlideEvent(l,o).isDefaultPrevented()&&s&&l){this._isSliding=!0,h&&this.pause(),this._setActiveIndicatorElement(l);var u=p.Event(q.SLID,{relatedTarget:l,direction:o,from:a,to:c});if(p(this._element).hasClass(V)){p(l).addClass(i),m.reflow(l),p(s).addClass(n),p(l).addClass(n);var f=parseInt(l.getAttribute("data-interval"),10);this._config.interval=f?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,f):this._config.defaultInterval||this._config.interval;var d=m.getTransitionDurationFromElement(s);p(s).one(m.TRANSITION_END,function(){p(l).removeClass(n+" "+i).addClass(Q),p(s).removeClass(Q+" "+i+" "+n),r._isSliding=!1,setTimeout(function(){return p(r._element).trigger(u)},0)}).emulateTransitionEnd(d)}else p(s).removeClass(Q),p(l).addClass(Q),this._isSliding=!1,p(this._element).trigger(u);h&&this.cycle()}},r._jQueryInterface=function(i){return this.each(function(){var t=p(this).data(x),e=l({},R,p(this).data());"object"==typeof i&&(e=l({},e,i));var n="string"==typeof i?i:e.slide;if(t||(t=new r(this,e),p(this).data(x,t)),"number"==typeof i)t.to(i);else if("string"==typeof n){if("undefined"==typeof t[n])throw new TypeError('No method n
9amed "'+n+'"');t[n]()}else e.interval&&e.ride&&(t.pause(),t.cycle())})},r._dataApiClickHandler=function(t){var e=m.getSelectorFromElement(this);if(e){var n=p(e)[0];if(n&&p(n).hasClass(K)){var i=l({},p(n).data(),p(this).data()),o=this.getAttribute("data-slide-to");o&&(i.interval=!1),r._jQueryInterface.call(p(n),i),o&&p(n).data(x).to(o),t.preventDefault()}}},s(r,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return R}}]),r}();p(document).on(q.CLICK_DATA_API,ot,at._dataApiClickHandler),p(window).on(q.LOAD_DATA_API,function(){for(var t=[].slice.call(document.querySelectorAll(rt)),e=0,n=t.length;e<n;e++){var i=p(t[e]);at._jQueryInterface.call(i,i.data())}}),p.fn[L]=at._jQueryInterface,p.fn[L].Constructor=at,p.fn[L].noConflict=function(){return p.fn[L]=j,at._jQueryInterface};var lt="collapse",ct="bs.collapse",ht="."+ct,ut=p.fn[lt],ft={toggle:!0,parent:""},dt={toggle:"boolean",parent:"(string|element)"},pt={SHOW:"show"+ht,SHOWN:"shown"+ht,HIDE:"hide"+ht,HIDDEN:"hidden"+ht,CLICK_DATA_API:"click"+ht+".data-api"},mt="show",gt="collapse",_t="collapsing",vt="collapsed",yt="width",Et="height",bt=".show, .collapsing",wt='[data-toggle="collapse"]',Ct=function(){function a(e,t){this._isTransitioning=!1,this._element=e,this._config=this._getConfig(t),this._triggerArray=[].slice.call(document.querySelectorAll('[data-toggle="collapse"][href="#'+e.id+'"],[data-toggle="collapse"][data-target="#'+e.id+'"]'));for(var n=[].slice.call(document.querySelectorAll(wt)),i=0,o=n.length;i<o;i++){var r=n[i],s=m.getSelectorFromElement(r),a=[].slice.call(document.querySelectorAll(s)).filter(function(t){return t===e});null!==s&&0<a.length&&(this._selector=s,this._triggerArray.push(r))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}var t=a.prototype;return t.toggle=function(){p(this._element).hasClass(mt)?this.hide():this.show()},t.show=function(){var t,e,n=this;if(!this._isTransitioning&&!p(this._element).hasClass(mt)&&(this._parent&&0===(t=[].slice.call(this._parent.querySelectorAll(bt)).filter(function(t){return"string"==typeof n._config.parent?t.getAttribute("data-parent")===n._config.parent:t.classList.contains(gt)})).length&&(t=null),!(t&&(e=p(t).not(this._selector).data(ct))&&e._isTransitioning))){var i=p.Event(pt.SHOW);if(p(this._element).trigger(i),!i.isDefaultPrevented()){t&&(a._jQueryInterface.call(p(t).not(this._selector),"hide"),e||p(t).data(ct,null));var o=this._getDimension();p(this._element).removeClass(gt).addClass(_t),this._element.style[o]=0,this._triggerArray.length&&p(this._triggerArray).removeClass(vt).attr("aria-expanded",!0),this.setTransitioning(!0);var r="scroll"+(o[0].toUpperCase()+o.slice(1)),s=m.getTransitionDurationFromElement(this._element);p(this._element).one(m.TRANSITION_END,function(){p(n._element).removeClass(_t).addClass(gt).addClass(mt),n._element.style[o]="",n.setTransitioning(!1),p(n._element).trigger(pt.SHOWN)}).emulateTransitionEnd(s),this._element.style[o]=this._element[r]+"px"}}},t.hide=function(){var t=this;if(!this._isTransitioning&&p(this._element).hasClass(mt)){var e=p.Event(pt.HIDE);if(p(this._element).trigger(e),!e.isDefaultPrevented()){var n=this._getDimension();this._element.style[n]=this._element.getBoundingClientRect()[n]+"px",m.reflow(this._element),p(this._element).addClass(_t).removeClass(gt).removeClass(mt);var i=this._triggerArray.length;if(0<i)for(var o=0;o<i;o++){var r=this._triggerArray[o],s=m.getSelectorFromElement(r);if(null!==s)p([].slice.call(document.querySelectorAll(s))).hasClass(mt)||p(r).addClass(vt).attr("aria-expanded",!1)}this.setTransitioning(!0);this._element.style[n]="";var a=m.getTransitionDurationFromElement(this._element);p(this._element).one(m.TRANSITION_END,function(){t.setTransitioning(!1),p(t._element).removeClass(_t).addClass(gt).trigger(pt.HIDDEN)}).emulateTransitionEnd(a)}}},t.setTransitioning=function(t){this._isTransitioning=t},t.dispose=function(){p.removeData(this._element,ct),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},t._getConfig=function(t){return(t=l({},ft,t)).toggle=Boolean(t.toggle),m.typeCheckConfig(lt,t,dt),t},t._getDimension=function(){return p(this._element).hasClass(yt)?yt:Et},t._getParent=function(){var t,n=this;m.isElement(this._config.parent)?(t=this._config.parent,"undefined"!=typeof this._config.parent.jquery&&(t=this._config.parent[0])):t=document.querySelector(this._config.parent);var e='[data-toggle="collapse"][data-parent="'+this._config.parent+'"]',i=[].slice.call(t.querySelectorAll(e));return p(i).each(function(t,e){n._addAriaAndCollapsedClass(a._getTargetFromElement(e),[e])}),t},t._addAriaAndCollapsedClass=function(t,e){var n=p(t).hasClass(mt);e.length&&p(e).toggleClass(vt,!n).attr("aria-expanded",n)},a._getTargetFromElement=function(t){var e=m.getSelectorFromElement(t);return e?document.querySelector(e):null},a._jQueryInterface=function(i){return this.each(function(){var t=p(this),e=t.data(ct),n=l({},ft,t.data(),"object"==typeof i&&i?i:{});if(!e&&n.toggle&&/show|hide/.test(i)&&(n.toggle=!1),e||(e=new a(this,n),t.data(ct,e)),"string"==typeof i){if("undefined"==typeof e[i])throw new TypeError('No method n
9amed "'+i+'"');e[i]()}})},s(a,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return ft}}]),a}();p(document).on(pt.CLICK_DATA_API,wt,function(t){"A"===t.currentTarget.tagName&&t.preventDefault();var n=p(this),e=m.getSelectorFromElement(this),i=[].slice.call(document.querySelectorAll(e));p(i).each(function(){var t=p(this),e=t.data(ct)?"toggle":n.data();Ct._jQueryInterface.call(t,e)})}),p.fn[lt]=Ct._jQueryInterface,p.fn[lt].Constructor=Ct,p.fn[lt].noConflict=function(){return p.fn[lt]=ut,Ct._jQueryInterface};for(var Tt="undefined"!=typeof window&&"undefined"!=typeof document,St=["Edge","Trident","Firefox"],Dt=0,It=0;It<St.length;It+=1)if(Tt&&0<=navigator.userAgent.indexOf(St[It])){Dt=1;break}var At=Tt&&window.Promise?function(t){var e=!1;return function(){e||(e=!0,window.Promise.resolve().then(function(){e=!1,t()}))}}:function(t){var e=!1;return function(){e||(e=!0,setTimeout(function(){e=!1,t()},Dt))}};function Ot(t){return t&&"[object Function]"==={}.toString.call(t)}function Nt(t,e){if(1!==t.nodeType)return[];var n=t.ownerDocument.defaultView.getComputedStyle(t,null);return e?n[e]:n}function kt(t){return"HTML"===t.nodeName?t:t.parentNode||t.host}function Lt(t){if(!t)return document.body;switch(t.nodeName){case"HTML":case"BODY":return t.ownerDocument.body;case"#document":return t.body}var e=Nt(t),n=e.overflow,i=e.overflowX,o=e.overflowY;return/(auto|scroll|overlay)/.test(n+o+i)?t:Lt(kt(t))}var xt=Tt&&!(!window.MSInputMethodContext||!document.documentMode),Pt=Tt&&/MSIE 10/.test(navigator.userAgent);function Ht(t){return 11===t?xt:10===t?Pt:xt||Pt}function jt(t){if(!t)return document.documentElement;for(var e=Ht(10)?document.body:null,n=t.offsetParent||null;n===e&&t.nextElementSibling;)n=(t=t.nextElementSibling).offsetParent;var i=n&&n.nodeName;return i&&"BODY"!==i&&"HTML"!==i?-1!==["TH","TD","TABLE"].indexOf(n.nodeName)&&"static"===Nt(n,"position")?jt(n):n:t?t.ownerDocument.documentElement:document.documentElement}function Rt(t){return null!==t.parentNode?Rt(t.parentNode):t}function Ft(t,e){if(!(t&&t.nodeType&&e&&e.nodeType))return document.documentElement;var n=t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_FOLLOWING,i=n?t:e,o=n?e:t,r=document.createRange();r.setStart(i,0),r.setEnd(o,0);var s,a,l=r.commonAncestorContainer;if(t!==l&&e!==l||i.contains(o))return"BODY"===(a=(s=l).nodeName)||"HTML"!==a&&jt(s.firstElementChild)!==s?jt(l):l;var c=Rt(t);return c.host?Ft(c.host,e):Ft(t,Rt(e).host)}function Mt(t){var e="top"===(1<arguments.length&&void 0!==arguments[1]?arguments[1]:"top")?"scrollTop":"scrollLeft",n=t.nodeName;if("BODY"!==n&&"HTML"!==n)return t[e];var i=t.ownerDocument.documentElement;return(t.ownerDocument.scrollingElement||i)[e]}function Wt(t,e){var n="x"===e?"Left":"Top",i="Left"===n?"Right":"Bottom";return parseFloat(t["border"+n+"Width"],10)+parseFloat(t["border"+i+"Width"],10)}function Ut(t,e,n,i){return Math.max(e["offset"+t],e["scroll"+t],n["client"+t],n["offset"+t],n["scroll"+t],Ht(10)?parseInt(n["offset"+t])+parseInt(i["margin"+("Height"===t?"Top":"Left")])+parseInt(i["margin"+("Height"===t?"Bottom":"Right")]):0)}function Bt(t){var e=t.body,n=t.documentElement,i=Ht(10)&&getComputedStyle(n);return{height:Ut("Height",e,n,i),width:Ut("Width",e,n,i)}}var qt=function(){function i(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(t,e,n){return e&&i(t.prototype,e),n&&i(t,n),t}}(),Kt=function(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t},Qt=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t};function Vt(t){return Qt({},t,{right:t.left+t.width,bottom:t.top+t.height})}function Yt(t){var e={};try{if(Ht(10)){e=t.getBoundingClientRect();var n=Mt(t,"top"),i=Mt(t,"left");e.top+=n,e.left+=i,e.bottom+=n,e.right+=i}else e=t.getBoundingClientRect()}catch(t){}var o={left:e.left,top:e.top,width:e.right-e.left,height:e.bottom-e.top},r="HTML"===t.nodeName?Bt(t.ownerDocument):{},s=r.width||t.clientWidth||o.right-o.left,a=r.height||t.clientHeight||o.bottom-o.top,l=t.offsetWidth-s,c=t.offsetHeight-a;if(l||c){var h=Nt(t);l-=Wt(h,"x"),c-=Wt(h,"y"),o.width-=l,o.height-=c}return Vt(o)}function zt(t,e){var n=2<arguments.length&&void 0!==arguments[2]&&arguments[2],i=Ht(10),o="HTML"===e.n
vendor: 17,549 bytes, line 9
9odeName,r=Yt(t),s=Yt(e),a=Lt(t),l=Nt(e),c=parseFloat(l.borderTopWidth,10),h=parseFloat(l.borderLeftWidth,10);n&&o&&(s.top=Math.max(s.top,0),s.left=Math.max(s.left,0));var u=Vt({top:r.top-s.top-c,left:r.left-s.left-h,width:r.width,height:r.height});if(u.marginTop=0,u.marginLeft=0,!i&&o){var f=parseFloat(l.marginTop,10),d=parseFloat(l.marginLeft,10);u.top-=c-f,u.bottom-=c-f,u.left-=h-d,u.right-=h-d,u.marginTop=f,u.marginLeft=d}return(i&&!n?e.contains(a):e===a&&"BODY"!==a.nodeName)&&(u=function(t,e){var n=2<arguments.length&&void 0!==arguments[2]&&arguments[2],i=Mt(e,"top"),o=Mt(e,"left"),r=n?-1:1;return t.top+=i*r,t.bottom+=i*r,t.left+=o*r,t.right+=o*r,t}(u,e)),u}function Xt(t){if(!t||!t.parentElement||Ht())return document.documentElement;for(var e=t.parentElement;e&&"none"===Nt(e,"transform");)e=e.parentElement;return e||document.documentElement}function Gt(t,e,n,i){var o=4<arguments.length&&void 0!==arguments[4]&&arguments[4],r={top:0,left:0},s=o?Xt(t):Ft(t,e);if("viewport"===i)r=function(t){var e=1<arguments.length&&void 0!==arguments[1]&&arguments[1],n=t.ownerDocument.documentElement,i=zt(t,n),o=Math.max(n.clientWidth,window.innerWidth||0),r=Math.max(n.clientHeight,window.innerHeight||0),s=e?0:Mt(n),a=e?0:Mt(n,"left");return Vt({top:s-i.top+i.marginTop,left:a-i.left+i.marginLeft,width:o,height:r})}(s,o);else{var a=void 0;"scrollParent"===i?"BODY"===(a=Lt(kt(e))).nodeName&&(a=t.ownerDocument.documentElement):a="window"===i?t.ownerDocument.documentElement:i;var l=zt(a,s,o);if("HTML"!==a.nodeName||function t(e){var n=e.nodeName;if("BODY"===n||"HTML"===n)return!1;if("fixed"===Nt(e,"position"))return!0;var i=kt(e);return!!i&&t(i)}(s))r=l;else{var c=Bt(t.ownerDocument),h=c.height,u=c.width;r.top+=l.top-l.marginTop,r.bottom=h+l.top,r.left+=l.left-l.marginLeft,r.right=u+l.left}}var f="number"==typeof(n=n||0);return r.left+=f?n:n.left||0,r.top+=f?n:n.top||0,r.right-=f?n:n.right||0,r.bottom-=f?n:n.bottom||0,r}function $t(t,e,i,n,o){var r=5<arguments.length&&void 0!==arguments[5]?arguments[5]:0;if(-1===t.indexOf("auto"))return t;var s=Gt(i,n,r,o),a={top:{width:s.width,height:e.top-s.top},right:{width:s.right-e.right,height:s.height},bottom:{width:s.width,height:s.bottom-e.bottom},left:{width:e.left-s.left,height:s.height}},l=Object.keys(a).map(function(t){return Qt({key:t},a[t],{area:(e=a[t],e.width*e.height)});var e}).sort(function(t,e){return e.area-t.area}),c=l.filter(function(t){var e=t.width,n=t.height;return e>=i.clientWidth&&n>=i.clientHeight}),h=0<c.length?c[0].key:l[0].key,u=t.split("-")[1];return h+(u?"-"+u:"")}function Jt(t,e,n){var i=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return zt(n,i?Xt(e):Ft(e,n),i)}function Zt(t){var e=t.ownerDocument.defaultView.getComputedStyle(t),n=parseFloat(e.marginTop||0)+parseFloat(e.marginBottom||0),i=parseFloat(e.marginLeft||0)+parseFloat(e.marginRight||0);return{width:t.offsetWidth+i,height:t.offsetHeight+n}}function te(t){var e={left:"right",right:"left",bottom:"top",top:"bottom"};return t.replace(/left|right|bottom|top/g,function(t){return e[t]})}function ee(t,e,n){n=n.split("-")[0];var i=Zt(t),o={width:i.width,height:i.height},r=-1!==["right","left"].indexOf(n),s=r?"top":"left",a=r?"left":"top",l=r?"height":"width",c=r?"width":"height";return o[s]=e[s]+e[l]/2-i[l]/2,o[a]=n===a?e[a]-i[c]:e[te(a)],o}function ne(t,e){return Array.prototype.find?t.find(e):t.filter(e)[0]}function ie(t,n,e){return(void 0===e?t:t.slice(0,function(t,e,n){if(Array.prototype.findIndex)return t.findIndex(function(t){return t[e]===n});var i=ne(t,function(t){return t[e]===n});return t.indexOf(i)}(t,"name",e))).forEach(function(t){t.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var e=t.function||t.fn;t.enabled&&Ot(e)&&(n.offsets.popper=Vt(n.offsets.popper),n.offsets.reference=Vt(n.offsets.reference),n=e(n,t))}),n}function oe(t,n){return t.some(function(t){var e=t.name;return t.enabled&&e===n})}function re(t){for(var e=[!1,"ms","Webkit","Moz","O"],n=t.charAt(0).toUpperCase()+t.slice(1),i=0;i<e.length;i++){var o=e[i],r=o?""+o+n:t;if("undefined"!=typeof document.body.style[r])return r}return null}function se(t){var e=t.ownerDocument;return e?e.defaultView:window}function ae(t,e,n,i){n.updateBound=i,se(t).addEventListener("resize",n.updateBound,{passive:!0});var o=Lt(t);return function t(e,n,i,o){var r="BODY"===e.nodeName,s=r?e.ownerDocument.defaultView:e;s.addEventListener(n,i,{passive:!0}),r||t(Lt(s.parentNode),n,i,o),o.push(s)}(o,"scroll",n.updateBound,n.scrollParents),n.scrollElement=o,n.eventsEnabled=!0,n}function le(){var t,e;this.state.eventsEnabled&&(cancelAnimationFrame(this.scheduleUpdate),this.state=(t=this.reference,e=this.state,se(t).removeEventListener("resize",e.updateBound),e.scrollParents.forEach(function(t){t.removeEventListener("scroll",e.updateBound)}),e.updateBound=null,e.scrollParents=[],e.scrollElement=null,e.eventsEnabled=!1,e))}function ce(t){return""!==t&&!isNaN(parseFloat(t))&&isFinite(t)}function he(n,i){Object.keys(i).forEach(function(t){var e="";-1!==["width","height","top","right","bottom","left"].indexOf(t)&&ce(i[t])&&(e="px"),n.style[t]=i[t]+e})}var ue=Tt&&/Firefox/i.test(navigator.userAgent);function fe(t,e,n){var i=ne(t,function(t){return t.name===e}),o=!!i&&t.some(function(t){return t.name===n&&t.enabled&&t.order<i.order});if(!o){var r="`"+e+"`",s="`"+n+"`";console.warn(s+" modifier is required by "+r+" modifier in order to work, be sure to include it before "+r+"!")}return o}var de=["auto-start","auto","auto-end","top-start","top","top-end","right-start","right","right-end","bottom-end","bottom","bottom-start","left-end","left","left-start"],pe=de.slice(3);function me(t){var e=1<arguments.length&&void 0!==arguments[1]&&arguments[1],n=pe.indexOf(t),i=pe.slice(n+1).concat(pe.slice(0,n));return e?i.reverse():i}var ge="flip",_e="clockwise",ve="counterclockwise";function ye(t,o,r,e){var s=[0,0],a=-1!==["right","left"].indexOf(e),n=t.split(/(\+|\-)/).map(function(t){return t.trim()}),i=n.indexOf(ne(n,function(t){return-1!==t.search(/,|\s/)}));n[i]&&-1===n[i].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var l=/\s*,\s*|\s+/,c=-1!==i?[n.slice(0,i).concat([n[i].split(l)[0]]),[n[i].split(l)[1]].concat(n.slice(i+1))]:[n];return(c=c.map(function(t,e){var n=(1===e?!a:a)?"height":"width",i=!1;return t.reduce(function(t,e){return""===t[t.length-1]&&-1!==["+","-"].indexOf(e)?(t[t.length-1]=e,i=!0,t):i?(t[t.length-1]+=e,i=!1,t):t.concat(e)},[]).map(function(t){return function(t,e,n,i){var o=t.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),r=+o[1],s=o[2];if(!r)return t;if(0!==s.indexOf("%"))return"vh"!==s&&"vw"!==s?r:("vh"===s?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*r;var a=void 0;switch(s){case"%p":a=n;break;case"%":case"%r":default:a=i}return Vt(a)[e]/100*r}(t,n,o,r)})})).forEach(function(n,i){n.forEach(function(t,e){ce(t)&&(s[i]+=t*("-"===n[e-1]?-1:1))})}),s}var Ee={placement:"bottom",positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(t){var e=t.placement,n=e.split("-")[0],i=e.split("-")[1];if(i){var o=t.offsets,r=o.reference,s=o.popper,a=-1!==["bottom","top"].indexOf(n),l=a?"left":"top",c=a?"width":"height",h={start:Kt({},l,r[l]),end:Kt({},l,r[l]+r[c]-s[c])};t.offsets.popper=Qt({},s,h[i])}return t}},offset:{order:200,enabled:!0,fn:function(t,e){var n=e.offset,i=t.placement,o=t.offsets,r=o.popper,s=o.reference,a=i.split("-")[0],l=void 0;return l=ce(+n)?[+n,0]:ye(n,r,s,a),"left"===a?(r.top+=l[0],r.left-=l[1]):"right"===a?(r.top+=l[0],r.left+=l[1]):"top"===a?(r.left+=l[0],r.top-=l[1]):"bottom"===a&&(r.left+=l[0],r.top+=l[1]),t.popper=r,t},offset:0},preventOverflow:{order:300,enabled:!0,fn:function(t,i){var e=i.boundariesElement||jt(t.instance.popper);t.instance.reference===e&&(e=jt(e));var n=re("transform"),o=t.instance.popper.style,r=o.top,s=o.left,a=o[n];o.top="",o.left="",o[n]="";var l=Gt(t.instance.popper,t.instance.reference,i.padding,e,t.positionFixed);o.top=r,o.left=s,o[n]=a,i.boundaries=l;var c=i.priority,h=t.offsets.popper,u={primary:function(t){var e=h[t];return h[t]<l[t]&&!i.escapeWithReference&&(e=Math.max(h[t],l[t])),Kt({},t,e)},secondary:function(t){var e="right"===t?"left":"top",n=h[e];return h[t]>l[t]&&!i.escapeWithReference&&(n=Math.min(h[e],l[t]-("right"===t?h.width:h.height))),Kt({},e,n)}};return c.forEach(function(t){var e=-1!==["left","top"].indexOf(t)?"primary":"secondary";h=Qt({},h,u[e](t))}),t.offsets.popper=h,t},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(t){var e=t.offsets,n=e.popper,i=e.reference,o=t.placement.split("-")[0],r=Math.floor,s=-1!==["top","bottom"].indexOf(o),a=s?"right":"bottom",l=s?"left":"top",c=s?"width":"height";return n[a]<r(i[l])&&(t.offsets.popper[l]=r(i[l])-n[c]),n[l]>r(i[a])&&(t.offsets.popper[l]=r(i[a])),t}},arrow:{order:500,enabled:!0,fn:function(t,e){var n;if(!fe(t.instance.modifiers,"arrow","keepTogether"))return t;var i=e.element;if("string"==typeof i){if(!(i=t.instance.popper.querySelector(i)))return t}else if(!t.instance.popper.contains(i))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),t;var o=t.placement.split("-")[0],r=t.offsets,s=r.popper,a=r.reference,l=-1!==["left","right"].indexOf(o),c=l?"height":"width",h=l?"Top":"Left",u=h.toLowerCase(),f=l?"left":"top",d=l?"bottom":"right",p=Zt(i)[c];a[d]-p<s[u]&&(t.offsets.popper[u]-=s[u]-(a[d]-p)),a[u]+p>s[d]&&(t.offsets.popper[u]+=a[u]+p-s[d]),t.offsets.popper=Vt(t.offsets.popper);var m=a[u]+a[c]/2-p/2,g=Nt(t.instance.popper),_=parseFloat(g["margin"+h],10),v=parseFloat(g["border"+h+"Width"],10),y=m-t.offsets.popper[u]-_-v;return y=Math.max(Math.min(s[c]-p,y),0),t.arrowElement=i,t.offsets.arrow=(Kt(n={},u,Math.round(y)),Kt(n,f,""),n),t},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(p,m){if(oe(p.instance.modifiers,"inner"))return p;if(p.flipped&&p.placement===p.originalPlacement)return p;var g=Gt(p.instance.popper,p.instance.reference,m.padding,m.boundariesElement,p.positionFixed),_=p.placement.split("-")[0],v=te(_),y=p.placement.split("-")[1]||"",E=[];switch(m.behavior){case ge:E=[_,v];break;case _e:E=me(_);break;case ve:E=me(_,!0);break;default:E=m.behavior}return E.forEach(function(t,e){if(_!==t||E.length===e+1)return p;_=p.placement.split("-")[0],v=te(_);var n,i=p.offsets.popper,o=p.offsets.reference,r=Math.floor,s="left"===_&&r(i.right)>r(o.left)||"right"===_&&r(i.left)<r(o.right)||"top"===_&&r(i.bottom)>r(o.top)||"bottom"===_&&r(i.top)<r(o.bottom),a=r(i.left)<r(g.left),l=r(i.right)>r(g.right),c=r(i.top)<r(g.top),h=r(i.bottom)>r(g.bottom),u="left"===_&&a||"right"===_&&l||"top"===_&&c||"bottom"===_&&h,f=-1!==["top","bottom"].indexOf(_),d=!!m.flipVariations&&(f&&"start"===y&&a||f&&"end"===y&&l||!f&&"start"===y&&c||!f&&"end"===y&&h);(s||u||d)&&(p.flipped=!0,(s||u)&&(_=E[e+1]),d&&(y="end"===(n=y)?"start":"start"===n?"end":n),p.placement=_+(y?"-"+y:""),p.offsets.popper=Qt({},p.offsets.popper,ee(p.instance.popper,p.offsets.reference,p.placement)),p=ie(p.instance.modifiers,p,"flip"))}),p},behavior:"flip",padding:5,boundariesElement:"viewport"},inner:{order:700,enabled:!1,fn:function(t){var e=t.placement,n=e.split("-")[0],i=t.offsets,o=i.popper,r=i.reference,s=-1!==["left","right"].indexOf(n),a=-1===["top","left"].indexOf(n);return o[s?"left":"top"]=r[n]-(a?o[s?"width":"height"]:0),t.placement=te(e),t.offsets.popper=Vt(o),t}},hide:{order:800,enabled:!0,fn:function(t){if(!fe(t.instance.modifiers,"hide","preventOverflow"))return t;var e=t.offsets.reference,n=ne(t.instance.modifiers,function(t){return"preventOverflow"===t.name}).boundaries;if(e.bottom<n.top||e.left>n.right||e.top>n.bottom||e.right<n.left){if(!0===t.hide)return t;t.hide=!0,t.attributes["x-out-of-boundaries"]=""}else{if(!1===t.hide)return t;t.hide=!1,t.attributes["x-out-of-boundaries"]=!1}return t}},computeStyle:{order:850,enabled:!0,fn:function(t,e){var n=e.x,i=e.y,o=t.offsets.popper,r=ne(t.instance.modifiers,function(t){return"applyStyle"===t.name}).gpuAcceleration;void 0!==r&&console.warn("WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!");var s,a,l,c,h,u,f,d,p,m,g,_,v,y,E=void 0!==r?r:e.gpuAcceleration,b=jt(t.instance.popper),w=Yt(b),C={position:o.position},T=(s=t,a=window.devicePixelRatio<2||!ue,l=s.offsets,c=l.popper,h=l.reference,u=Math.round,f=Math.floor,d=function(t){return t},p=u(h.width),m=u(c.width),g=-1!==["left","right"].indexOf(s.placement),_=-1!==s.placement.indexOf("-"),y=a?u:d,{left:(v=a?g||_||p%2==m%2?u:f:d)(p%2==1&&m%2==1&&!_&&a?c.left-1:c.left),top:y(c.top),bottom:y(c.bottom),right:v(c.right)}),S="bottom"===n?"top":"bottom",D="right"===i?"left":"right",I=re("transform"),A=void 0,O=void 0;if(O="bottom"===S?"HTML"===b.nodeName?-b.clientHeight+T.bottom:-w.height+T.bottom:T.top,A="right"===D?"HTML"===b.nodeName?-b.clientWidth+T.right:-w.width+T.right:T.left,E&&I)C[I]="translate3d("+A+"px, "+O+"px, 0)",C[S]=0,C[D]=0,C.willChange="transform";else{var N="bottom"===S?-1:1,k="right"===D?-1:1;C[S]=O*N,C[D]=A*k,C.willChange=S+", "+D}var L={"x-placement":t.placement};return t.attributes=Qt({},L,t.attributes),t.styles=Qt({},C,t.styles),t.arrowStyles=Qt({},t.offsets.arrow,t.arrowStyles),t},gpuAcceleration:!0,x:"bottom",y:"right"},applyStyle:{order:900,enabled:!0,fn:function(t){var e,n;return he(t.instance.popper,t.styles),e=t.instance.popper,n=t.attributes,Object.keys(n).forEach(function(t){!1!==n[t]?e.setAttribute(t,n[t]):e.removeAttribute(t)}),t.arrowElement&&Object.keys(t.arrowStyles).length&&he(t.arrowElement,t.arrowStyles),t},onLoad:function(t,e,n,i,o){var r=Jt(o,e,t,n.positionFixed),s=$t(n.placement,r,e,t,n.modifiers.flip.boundariesElement,n.modifiers.flip.padding);return e.setAttribute("x-placement",s),he(e,{position:n.positionFixed?"fixed":"absolute"}),n},gpuAcceleration:void 0}}},be=function(){function r(t,e){var n=this,i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{};!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,r),this.scheduleUpdate=function(){return requestAnimationFrame(n.update)},this.update=At(this.update.bind(this)),this.options=Qt({},r.Defaults,i),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=t&&t.jquery?t[0]:t,this.popper=e&&e.jquery?e[0]:e,this.options.modifiers={},Object.keys(Qt({},r.Defaults.modifiers,i.modifiers)).forEach(function(t){n.options.modifiers[t]=Qt({},r.Defaults.modifiers[t]||{},i.modifiers?i.modifiers[t]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(t){return Qt({name:t},n.options.modifiers[t])}).sort(function(t,e){return t.order-e.order}),this.modifiers.forEach(function(t){t.enabled&&Ot(t.onLoad)&&t.onLoad(n.reference,n.popper,n.options,t,n.state)}),this.update();var o=this.options.eventsEnabled;o&&this.enableEventListeners(),this.state.eventsEnabled=o}return qt(r,[{key:"update",value:function(){return function(){if(!this.state.isDestroyed){var t={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};t.offsets.reference=Jt(this.state,this.popper,this.reference,this.options.positionFixed),t.placement=$t(this.options.placement,t.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),t.originalPlacement=t.placement,t.positionFixed=this.options.positionFixed,t.offsets.popper=ee(this.popper,t.offsets.reference,t.placement),t.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",t=ie(this.modifiers,t),this.state.isCreated?this.options.onUpdate(t):(this.state.isCreated=!0,this.options.onCreate(t))}}.call(this)}},{key:"destroy",value:function(){return function(){return this.state.isDestroyed=!0,oe(this.modifiers,"applyStyle")&&(this.popper.removeAttribute("x-placement"),this.popper.style.position="",this.popper.style.top="",this.popper.style.left="",this.popper.style.right="",this.popper.style.bottom="",this.popper.style.willChange="",this.popper.style[re("transform")]=""),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}.call(this)}},{key:"enableEventListeners",value:function(){return function(){this.state.eventsEnabled||(this.state=ae(this.reference,this.options,this.state,this.scheduleUpdate))}.call(this)}},{key:"disableEventListeners",value:function(){return le.call(this)}}]),r}();be.Utils=("undefined"!=typeof window?window:global).PopperUtils,be.placements=de,be.Defaults=Ee;var we="dropdown",Ce="bs.dropdown",Te="."+Ce,Se=".data-api",De=p.fn[we],Ie=new RegExp("38|40|27"),Ae={HIDE:"hide"+Te,HIDDEN:"hidden"+Te,SHOW:"show"+Te,SHOWN:"shown"+Te,CLICK:"click"+Te,CLICK_DATA_API:"click"+Te+Se,KEYDOWN_DATA_API:"keydown"+Te+Se,KEYUP_DATA_API:"keyup"+Te+Se},Oe="disabled",Ne="show",ke="dropup",Le="dropright",xe="dropleft",Pe="dropdown-menu-right",He="position-static",je='[data-toggle="dropdown"]',Re=".dropdown form",Fe=".dropdown-menu",Me=".navbar-nav",We=".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",Ue="top-start",Be="top-end",qe="bottom-start",Ke="bottom-end",Qe="right-start",Ve="left-start",Ye={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic"},ze={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"str
9ing"},Xe=function(){function c(t,e){this._element=t,this._popper=null,this._config=this._getConfig(e),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners()}var t=c.prototype;return t.toggle=function(){if(!this._element.disabled&&!p(this._element).hasClass(Oe)){var t=c._getParentFromElement(this._element),e=p(this._menu).hasClass(Ne);if(c._clearMenus(),!e){var n={relatedTarget:this._element},i=p.Event(Ae.SHOW,n);if(p(t).trigger(i),!i.isDefaultPrevented()){if(!this._inNavbar){if("undefined"==typeof be)throw new TypeError("Bootstrap's dropdowns require Popper.js (https://popper.js.org/)");var o=this._element;"parent"===this._config.reference?o=t:m.isElement(this._config.reference)&&(o=this._config.reference,"undefined"!=typeof this._config.reference.jquery&&(o=this._config.reference[0])),"scrollParent"!==this._config.boundary&&p(t).addClass(He),this._popper=new be(o,this._menu,this._getPopperConfig())}"ontouchstart"in document.documentElement&&0===p(t).closest(Me).length&&p(document.body).children().on("mouseover",null,p.noop),this._element.focus(),this._element.setAttribute("aria-expanded",!0),p(this._menu).toggleClass(Ne),p(t).toggleClass(Ne).trigger(p.Event(Ae.SHOWN,n))}}}},t.show=function(){if(!(this._element.disabled||p(this._element).hasClass(Oe)||p(this._menu).hasClass(Ne))){var t={relatedTarget:this._element},e=p.Event(Ae.SHOW,t),n=c._getParentFromElement(this._element);p(n).trigger(e),e.isDefaultPrevented()||(p(this._menu).toggleClass(Ne),p(n).toggleClass(Ne).trigger(p.Event(Ae.SHOWN,t)))}},t.hide=function(){if(!this._element.disabled&&!p(this._element).hasClass(Oe)&&p(this._menu).hasClass(Ne)){var t={relatedTarget:this._element},e=p.Event(Ae.HIDE,t),n=c._getParentFromElement(this._element);p(n).trigger(e),e.isDefaultPrevented()||(p(this._menu).toggleClass(Ne),p(n).toggleClass(Ne).trigger(p.Event(Ae.HIDDEN,t)))}},t.dispose=function(){p.removeData(this._element,Ce),p(this._element).off(Te),this._element=null,(this._menu=null)!==this._popper&&(this._popper.destroy(),this._popper=null)},t.update=function(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()},t._addEventListeners=function(){var e=this;p(this._element).on(Ae.CLICK,function(t){t.preventDefault(),t.stopPropagation(),e.toggle()})},t._getConfig=function(t){return t=l({},this.constructor.Default,p(this._element).data(),t),m.typeCheckConfig(we,t,this.constructor.DefaultType),t},t._getMenuElement=function(){if(!this._menu){var t=c._getParentFromElement(this._element);t&&(this._menu=t.querySelector(Fe))}return this._menu},t._getPlacement=function(){var t=p(this._element.parentNode),e=qe;return t.hasClass(ke)?(e=Ue,p(this._menu).hasClass(Pe)&&(e=Be)):t.hasClass(Le)?e=Qe:t.hasClass(xe)?e=Ve:p(this._menu).hasClass(Pe)&&(e=Ke),e},t._detectNavbar=function(){return 0<p(this._element).closest(".navbar").length},t._getOffset=function(){var e=this,t={};return"function"==typeof this._config.offset?t.fn=function(t){return t.offsets=l({},t.offsets,e._config.offset(t.offsets,e._element)||{}),t}:t.offset=this._config.offset,t},t._getPopperConfig=function(){var t={placement:this._getPlacement(),modifiers:{offset:this._getOffset(),flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(t.modifiers.applyStyle={enabled:!1}),t},c._jQueryInterface=function(e){return this.each(function(){var t=p(this).data(Ce);if(t||(t=new c(this,"object"==typeof e?e:null),p(this).data(Ce,t)),"string"==typeof e){if("undefined"==typeof t[e])throw new TypeError('No method named "'+e+'"');t[e]()}})},c._clearMenus=function(t){if(!t||3!==t.which&&("keyup"!==t.type||9===t.which))for(var e=[].slice.call(document.querySelectorAll(je)),n=0,i=e.length;n<i;n++){var o=c._getParentFromElement(e[n]),r=p(e[n]).data(Ce),s={relatedTarget:e[n]};if(t&&"click"===t.type&&(s.clickEvent=t),r){var a=r._menu;if(p(o).hasClass(Ne)&&!(t&&("click"===t.type&&/input|textarea/i.test(t.target.tagName)||"keyup"===t.type&&9===t.which)&&p.contains(o,t.target))){var l=p.Event(Ae.HIDE,s);p(o).trigger(l),l.isDefaultPrevented()||("ontouchstart"in document.documentElement&&p(document.body).children().off("mouseover",null,p.noop),e[n].setAttribute("aria-expanded","fal
9se"),p(a).removeClass(Ne),p(o).removeClass(Ne).trigger(p.Event(Ae.HIDDEN,s)))}}}},c._getParentFromElement=function(t){var e,n=m.getSelectorFromElement(t);return n&&(e=document.querySelector(n)),e||t.parentNode},c._dataApiKeydownHandler=function(t){if((/input|textarea/i.test(t.target.tagName)?!(32===t.which||27!==t.which&&(40!==t.which&&38!==t.which||p(t.target).closest(Fe).length)):Ie.test(t.which))&&(t.preventDefault(),t.stopPropagation(),!this.disabled&&!p(this).hasClass(Oe))){var e=c._getParentFromElement(this),n=p(e).hasClass(Ne);if(n&&(!n||27!==t.which&&32!==t.which)){var i=[].slice.call(e.querySelectorAll(We));if(0!==i.length){var o=i.indexOf(t.target);38===t.which&&0<o&&o--,40===t.which&&o<i.length-1&&o++,o<0&&(o=0),i[o].focus()}}else{if(27===t.which){var r=e.querySelector(je);p(r).trigger("focus")}p(this).trigger("click")}}},s(c,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Ye}},{key:"DefaultType",get:function(){return ze}}]),c}();p(document).on(Ae.KEYDOWN_DATA_API,je,Xe._dataApiKeydownHandler).on(Ae.KEYDOWN_DATA_API,Fe,Xe._dataApiKeydownHandler).on(Ae.CLICK_DATA_API+" "+Ae.KEYUP_DATA_API,Xe._clearMenus).on(Ae.CLICK_DATA_API,je,function(t){t.preventDefault(),t.stopPropagation(),Xe._jQueryInterface.call(p(this),"toggle")}).on(Ae.CLICK_DATA_API,Re,function(t){t.stopPropagation()}),p.fn[we]=Xe._jQueryInterface,p.fn[we].Constructor=Xe,p.fn[we].noConflict=function(){return p.fn[we]=De,Xe._jQueryInterface};var Ge="modal",$e="bs.modal",Je="."+$e,Ze=p.fn[Ge],tn={backdrop:!0,keyboard:!0,focus:!0,show:!0},en={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},nn={HIDE:"hide"+Je,HIDDEN:"hidden"+Je,SHOW:"show"+Je,SHOWN:"shown"+Je,FOCUSIN:"focusin"+Je,RESIZE:"resize"+Je,CLICK_DISMISS:"click.dismiss"+Je,KEYDOWN_DISMISS:"keydown.dismiss"+Je,MOUSEUP_DISMISS:"mouseup.dismiss"+Je,MOUSEDOWN_DISMISS:"mousedown.dismiss"+Je,CLICK_DATA_API:"click"+Je+".data-api"},on="modal-dialog-scrollable",rn="modal-scrollbar-measure",sn="modal-backdrop",an="modal-open",ln="fade",cn="show",hn=".modal-dialog",un=".modal-body",fn='[data-toggle="modal"]',dn='[data-dismiss="modal"]',pn=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",mn=".sticky-top",gn=function(){function o(t,e){this._config=this._getConfig(e),this._element=t,this._dialog=t.querySelector(hn),this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollbarWidth=0}var t=o.prototype;return t.toggle=function(t){return this._isShown?this.hide():this.show(t)},t.show=function(t){var e=this;if(!this._isShown&&!this._isTransitioning){p(this._element).hasClass(ln)&&(this._isTransitioning=!0);var n=p.Event(nn.SHOW,{relatedTarget:t});p(this._element).trigger(n),this._isShown||n.isDefaultPrevented()||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),p(this._element).on(nn.CLICK_DISMISS,dn,function(t){return e.hide(t)}),p(this._dialog).on(nn.MOUSEDOWN_DISMISS,function(){p(e._element).one(nn.MOUSEUP_DISMISS,function(t){p(t.target).is(e._element)&&(e._ignoreBackdropClick=!0)})}),this._showBackdrop(function(){return e._showElement(t)}))}},t.hide=function(t){var e=this;if(t&&t.preventDefault(),this._isShown&&!this._isTransitioning){var n=p.Event(nn.HIDE);if(p(this._element).trigger(n),this._isShown&&!n.isDefaultPrevented()){this._isShown=!1;var i=p(this._element).hasClass(ln);if(i&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),p(document).off(nn.FOCUSIN),p(this._element).removeClass(cn),p(this._element).off(nn.CLICK_DISMISS),p(this._dialog).off(nn.MOUSEDOWN_DISMISS),i){var o=m.getTransitionDurationFromElement(this._element);p(this._element).one(m.TRANSITION_END,function(t){return e._hideModal(t)}).emulateTransitionEnd(o)}else this._hideModal()}}},t.dispose=function(){[window,this._element,this._dialog].forEach(function(t){return p(t).off(Je)}),p(document).off(nn.FOCUSIN),p.removeData(this._element,$e),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._isTransitioning=null,this._scrollbarWidth=null},t.handleUpdate=function(){this._adjustDialog()},t._getConfig=function(t){return t=l({},tn,t),m.typeCheckConfig(Ge,t,en),t},t._showElement=function(t){var e=this,n=p(this._element).hasClass(ln);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),p(this._dialog).hasClass(on)?this._dialog.querySelector(un).scrollTop=0:this._element.scrollTop=0,n&&m.reflow(this._element),p(this._element).addClass(cn),this._config.focus&&this._enforceFocus();var i=p.Event(nn.SHOWN,{relatedTarget:t}),o=function(){e._config.focus&&e._element.focus(),e._isTransitioning=!1,p(e._element).trigger(i)};if(n){var r=m.getTransitionDurationFromElement(this._dialog);p(this._dialog).one(m.TRANSITION_END,o).emulateTransitionEnd(r)}else o()},t._enforceFocus=function(){var e=this;p(document).off(nn.FOCUSIN).on(nn.FOCUSIN,function(t){document!==t.target&&e._element!==t.target&&0===p(e._element).has(t.target).length&&e._element.focus()})},t._setEscapeEvent=function(){var e=this;this._isShown&&this._config.keyboard?p(this._element).on(nn.KEYDOWN_DISMISS,function(t){27===t.which&&(t.preventDefault(),e.hide())}):this._isShown||p(this._element).off(nn.KEYDOWN_DISMISS)},t._setResizeEvent=function(){var e=this;this._isShown?p(window).on(nn.RESIZE,function(t){return e.handleUpdate(t)}):p(window).off(nn.RESIZE)},t._hideModal=function(){var t=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._isTransitioning=!1,this._showBackdrop(function(){p(document.body).removeClass(an),t._resetAdjustments(),t._resetScrollbar(),p(t._element).trigger(nn.HIDDEN)})},t._removeBackdrop=function(){this._backdrop&&(p(this._backdrop).remove(),this._backdrop=null)},t._showBackdrop=function(t){var e=this,n=p(this._element).hasClass(ln)?ln:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className=sn,n&&this._backdrop.classList.add(n),p(this._backdrop).appendTo(document.body),p(this._element).on(nn.CLICK_DISMISS,function(t){e._ignoreBackdropClick?e._ignoreBackdropClick=!1:t.target===t.currentTarget&&("static"===e._config.backdrop?e._element.focus():e.hide())}),n&&m.reflow(this._backdrop),p(this._backdrop).addClass(cn),!t)return;if(!n)return void t();var i=m.getTransitionDurationFromElement(this._backdrop);p(this._backdrop).one(m.TRANSITION_END,t).emulateTransitionEnd(i)}else if(!this._isShown&&this._backdrop){p(this._backdrop).removeClass(cn);var o=function(){e._removeBackdrop(),t&&t()};if(p(this._element).hasClass(ln)){var r=m.getTransitionDurationFromElement(this._backdrop);p(this._backdrop).one(m.TRANSITION_END,o).emulateTransitionEnd(r)}else o()}else t&&t()},t._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},t._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},t._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=t.left+t.right<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},t._setScrollbar=function(){var o=this;if(this._isBodyOverflowing){var t=[].slice.call(document.querySelectorAll(pn)),e=[].slice.call(document.querySelectorAll(mn));p(t).each(function(t,e){var n=e.style.paddingRight,i=p(e).css("padding-right");p(e).data("padding-right",n).css("padding-right",parseFloat(i)+o._scrollbarWidth+"px")}),p(e).each(function(t,e){var n=e.style.marginRight,i=p(e).css("margin-right");p(e).data("margin-right",n).css("margin-right",parseFloat(i)-o._scrollbarWidth+"px")});var n=document.body.style.paddingRight,i=p(document.body).css("padding-right");p(document.body).data("padding-right",n).css("padding-right",parseFloat(i)+this._scrollbarWidth+"px")}p(document.body).addClass(an)},t._resetScrollbar=function(){var t=[].slice.call(document.querySelectorAll(pn));p(t).each(function(t,e){var n=p(e).data("padding-right");p(e).removeData("padding-right"),e.style.paddingRight=n||""});var e=[].slice.call(document.querySelectorAll(""+mn));p(e).each(function(t,e){var n=p(e).data("margin-right");"undefined"!=typeof n&&p(e).css("margin-right",n).removeData("margin-right")});var n=p(document.body).data("padding-right");p(document.body).removeData("padding-right"),document.body.style.paddingRight=n||""},t._getScrollbarWidth=function(){var t=document.createElement("div");t.className=rn,document.body.appendChild(t);var e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e},o._jQueryInterface=function(n,i){return this.each(function(){var t=p(this).data($e),e=l({},tn,p(this).data(),"object"==typeof n&&n?n:{});if(t||(t=new o(this,e),p(this).data($e,t)),"string"==typeof n){if("undefined"==typeof t[n])throw new TypeError('No method n
9amed "'+n+'"');t[n](i)}else e.show&&t.show(i)})},s(o,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return tn}}]),o}();p(document).on(nn.CLICK_DATA_API,fn,function(t){var e,n=this,i=m.getSelectorFromElement(this);i&&(e=document.querySelector(i));var o=p(e).data($e)?"toggle":l({},p(e).data(),p(this).data());"A"!==this.tagName&&"AREA"!==this.tagName||t.preventDefault();var r=p(e).one(nn.SHOW,function(t){t.isDefaultPrevented()||r.one(nn.HIDDEN,function(){p(n).is(":visible")&&n.focus()})});gn._jQueryInterface.call(p(e),o,this)}),p.fn[Ge]=gn._jQueryInterface,p.fn[Ge].Constructor=gn,p.fn[Ge].noConflict=function(){return p.fn[Ge]=Ze,gn._jQueryInterface};var _n=["background","cite","href","itemtype","longdesc","poster","src","xlink:href"],vn={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},yn=/^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi,En=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i;function bn(t,s,e){if(0===t.length)return t;if(e&&"function"==typeof e)return e(t);for(var n=(new window.DOMParser).parseFromString(t,"text/html"),a=Object.keys(s),l=[].slice.call(n.body.querySelectorAll("*")),i=function(t,e){var n=l[t],i=n.nodeName.toLowerCase();if(-1===a.indexOf(n.nodeName.toLowerCase()))return n.parentNode.removeChild(n),"continue";var o=[].slice.call(n.attributes),r=[].concat(s["*"]||[],s[i]||[]);o.forEach(function(t){(function(t,e){var n=t.nodeName.toLowerCase();if(-1!==e.indexOf(n))return-1===_n.indexOf(n)||Boolean(t.nodeValue.match(yn)||t.nodeValue.match(En));for(var i=e.filter(function(t){return t instanceof RegExp}),o=0,r=i.length;o<r;o++)if(n.match(i[o]))return!0;return!1})(t,r)||n.removeAttribute(t.nodeName)})},o=0,r=l.length;o<r;o++)i(o);return n.body.innerHTML}var wn="tooltip",Cn="bs.tooltip",Tn="."+Cn,Sn=p.fn[wn],Dn="bs-tooltip",In=new RegExp("(^|\\s)"+Dn+"\\S+","g"),An=["sanitize","whiteList","sanitizeFn"],On={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string|function)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)",sanitize:"boolean",sanitizeFn:"(null|function)",whiteList:"object"},Nn={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"},kn={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",sanitize:!0,sanitizeFn:null,whiteList:vn},Ln="show",xn="out",Pn={HIDE:"hide"+Tn,HIDDEN:"hidden"+Tn,SHOW:"show"+Tn,SHOWN:"shown"+Tn,INSERTED:"inserted"+Tn,CLICK:"click"+Tn,FOCUSIN:"focusin"+Tn,FOCUSOUT:"focusout"+Tn,MOUSEENTER:"mouseenter"+Tn,MOUSELEAVE:"mouseleave"+Tn},Hn="fade",jn="show",Rn=".tooltip-inner",Fn=".arrow",Mn="hover",Wn="focus",Un="click",Bn="manual",qn=function(){function i(t,e){if("undefined"==typeof be)throw new TypeError("Bootstrap's tooltips require Popper.js (https://popper.js.org/)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var t=i.prototype;return t.enable=function(){this._isEnabled=!0},t.disable=function(){this._isEnabled=!1},t.toggleEnabled=function(){this._isEnabled=!this._isEnabled},t.toggle=function(t){if(this._isEnabled)if(t){var e=this.constructor.DATA_KEY,n=p(t.currentTarget).data(e);n||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),p(t.currentTarget).data(e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(p(this.getTipElement()).hasClass(jn))return void this._leave(null,this);this._enter(null,this)}},t.dispose=function(){clearTimeout(this._timeout),p.removeData(this.element,this.constructor.DATA_KEY),p(this.element).off(this.constructor.EVENT_KEY),p(this.element).closest(".modal").off("hide.bs.modal"),this.tip&&p(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,(this._activeTrigger=null)!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},t.show=function(){var e=this;if("none"===p(this.element).css("display"))throw new Error("Please use show on visible elements");var t=p.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){p(this.element).trigger(t);var n=m.findShadowRoot(this.element),i=p.contains(null!==n?n:this.element.ownerDocument.documentElement,this.element);if(t.isDefaultPrevented()||!i)return;var o=this.getTipElement(),r=m.getUID(this.constructor.NAME);o.setAttribute("id",r),this.element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&p(o).addClass(Hn);var s="function"==typeof this.config.placement?this.config.placement.call(this,o,this.element):this.config.placement,a=this._getAttachment(s);this.addAttachmentClass(a);var l=this._getContainer();p(o).data(this.constructor.DATA_KEY,this),p.contains(this.element.ownerDocument.documentElement,this.tip)||p(o).appendTo(l),p(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new be(this.element,o,{placement:a,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:Fn}
9,preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){return e._handlePopperPlacementChange(t)}}),p(o).addClass(jn),"ontouchstart"in document.documentElement&&p(document.body).children().on("mouseover",null,p.noop);var c=function(){e.config.animation&&e._fixTransition();var t=e._hoverState;e._hoverState=null,p(e.element).trigger(e.constructor.Event.SHOWN),t===xn&&e._leave(null,e)};if(p(this.tip).hasClass(Hn)){var h=m.getTransitionDurationFromElement(this.tip);p(this.tip).one(m.TRANSITION_END,c).emulateTransitionEnd(h)}else c()}},t.hide=function(t){var e=this,n=this.getTipElement(),i=p.Event(this.constructor.Event.HIDE),o=function(){e._hoverState!==Ln&&n.parentNode&&n.parentNode.removeChild(n),e._cleanTipClass(),e.element.removeAttribute("aria-describedby"),p(e.element).trigger(e.constructor.Event.HIDDEN),null!==e._popper&&e._popper.destroy(),t&&t()};if(p(this.element).trigger(i),!i.isDefaultPrevented()){if(p(n).removeClass(jn),"ontouchstart"in document.documentElement&&p(document.body).children().off("mouseover",null,p.noop),this._activeTrigger[Un]=!1,this._activeTrigger[Wn]=!1,this._activeTrigger[Mn]=!1,p(this.tip).hasClass(Hn)){var r=m.getTransitionDurationFromElement(n);p(n).one(m.TRANSITION_END,o).emulateTransitionEnd(r)}else o();this._hoverState=""}},t.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},t.isWithContent=function(){return Boolean(this.getTitle())},t.addAttachmentClass=function(t){p(this.getTipElement()).addClass(Dn+"-"+t)},t.getTipElement=function(){return this.tip=this.tip||p(this.config.template)[0],this.tip},t.setContent=function(){var t=this.getTipElement();this.setElementContent(p(t.querySelectorAll(Rn)),this.getTitle()),p(t).removeClass(Hn+" "+jn)},t.setElementContent=function(t,e){"object"!=typeof e||!e.nodeType&&!e.jquery?this.config.html?(this.config.sanitize&&(e=bn(e,this.config.whiteList,this.config.sanitizeFn)),t.html(e)):t.text(e):this.config.html?p(e).parent().is(t)||t.empty().append(e):t.text(p(e).text())},t.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},t._getOffset=function(){var e=this,t={};return"function"==typeof this.config.offset?t.fn=function(t){return t.offsets=l({},t.offsets,e.config.offset(t.offsets,e.element)||{}),t}:t.offset=this.config.offset,t},t._getContainer=function(){return!1===this.config.container?document.body:m.isElement(this.config.container)?p(this.config.container):p(document).find(this.config.container)},t._getAttachment=function(t){return Nn[t.toUpperCase()]},t._setListeners=function(){var i=this;this.config.trigger.split(" ").forEach(function(t){if("click"===t)p(i.element).on(i.constructor.Event.CLICK,i.config.selector,function(t){return i.toggle(t)});else if(t!==Bn){var e=t===Mn?i.constructor.Event.MOUSEENTER:i.constructor.Event.FOCUSIN,n=t===Mn?i.constructor.Event.MOUSELEAVE:i.constructor.Event.FOCUSOUT;p(i.element).on(e,i.config.selector,function(t){return i._enter(t)}).on(n,i.config.selector,function(t){return i._leave(t)})}}),p(this.element).closest(".modal").on("hide.bs.modal",function(){i.element&&i.hide()}),this.config.selector?this.config=l({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},t._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},t._enter=function(t,e){var n=this.constructor.DATA_KEY;(e=e||p(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),p(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusin"===t.type?Wn:Mn]=!0),p(e.getTipElement()).hasClass(jn)||e._hoverState===Ln?e._hoverState=Ln:(clearTimeout(e._timeout),e._hoverState=Ln,e.config.delay&&e.config.delay.show?e._timeout=setTimeout(function(){e._hoverState===Ln&&e.show()},e.config.delay.show):e.show())},t._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||p(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),p(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusout"===t.type?Wn:Mn]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=xn,e.config.delay&&e.config.delay.hide?e._timeout=setTimeout(function(){e._hoverState===xn&&e.hide()},e.config.delay.hide):e.hide())},t._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},t._getConfig=function(t){var e=p(this.element).data();return Object.keys(e).forEach(function(t){-1!==An.indexOf(t)&&delete e[t]}),"number"==typeof(t=l({},this.constructor.Default,e,"object"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),m.typeCheckConfig(wn,t,this.constructor.DefaultType),t.sanitize&&(t.template=bn(t.template,t.whiteList,t.sanitizeFn)),t},t._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},t._cleanTipClass=function(){var t=p(this.getTipElement()),e=t.attr("class").match(In);null!==e&&e.length&&t.removeClass(e.join(""))},t._handlePopperPlacementChange=function(t){var e=t.instance;this.tip=e.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},t._fixTransition=function(){var t=this.getTipElement(),e=this.config.animation;null===t.getAttribute("x-placement")&&(p(t).removeClass(Hn),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},i._jQueryInterface=function(n){return this.each(function(){var t=p(this).data(Cn),e="object"==typeof n&&n;if((t||!/dispose|hide/.test(n))&&(t||(t=new i(this,e),p(this).data(Cn,t)),"string"==typeof n)){if("undefined"==typeof t[n])throw new TypeError('No method n
9amed "'+n+'"');t[n]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return kn}},{key:"NAME",get:function(){return wn}},{key:"DATA_KEY",get:function(){return Cn}},{key:"Event",get:function(){return Pn}},{key:"EVENT_KEY",get:function(){return Tn}},{key:"DefaultType",get:function(){return On}}]),i}();p.fn[wn]=qn._jQueryInterface,p.fn[wn].Constructor=qn,p.fn[wn].noConflict=function(){return p.fn[wn]=Sn,qn._jQueryInterface};var Kn="popover",Qn="bs.popover",Vn="."+Qn,Yn=p.fn[Kn],zn="bs-popover",Xn=new RegExp("(^|\\s)"+zn+"\\S+","g"),Gn=l({},qn.Default,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'}),$n=l({},qn.DefaultType,{content:"(string|element|function)"}),Jn="fade",Zn="show",ti=".popover-header",ei=".popover-body",ni={HIDE:"hide"+Vn,HIDDEN:"hidden"+Vn,SHOW:"show"+Vn,SHOWN:"shown"+Vn,INSERTED:"inserted"+Vn,CLICK:"click"+Vn,FOCUSIN:"focusin"+Vn,FOCUSOUT:"focusout"+Vn,MOUSEENTER:"mouseenter"+Vn,MOUSELEAVE:"mouseleave"+Vn},ii=function(t){var e,n;function i(){return t.apply(this,arguments)||this}n=t,(e=i).prototype=Object.create(n.prototype),(e.prototype.constructor=e).__proto__=n;var o=i.prototype;return o.isWithContent=function(){return this.getTitle()||this._getContent()},o.addAttachmentClass=function(t){p(this.getTipElement()).addClass(zn+"-"+t)},o.getTipElement=function(){return this.tip=this.tip||p(this.config.template)[0],this.tip},o.setContent=function(){var t=p(this.getTipElement());this.setElementContent(t.find(ti),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(t.find(ei),e),t.removeClass(Jn+" "+Zn)},o._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},o._cleanTipClass=function(){var t=p(this.getTipElement()),e=t.attr("class").match(Xn);null!==e&&0<e.length&&t.removeClass(e.join(""))},i._jQueryInterface=function(n){return this.each(function(){var t=p(this).data(Qn),e="object"==typeof n?n:null;if((t||!/dispose|hide/.test(n))&&(t||(t=new i(this,e),p(this).data(Qn,t)),"string"==typeof n)){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Gn}},{key:"NAME",get:function(){return Kn}},{key:"DATA_KEY",get:function(){return Qn}},{key:"Event",get:function(){return ni}},{key:"EVENT_KEY",get:function(){return Vn}},{key:"DefaultType",get:function(){return $n}}]),i}(qn);p.fn[Kn]=ii._jQueryInterface,p.fn[Kn].Constructor=ii,p.fn[Kn].noConflict=function(){return p.fn[Kn]=Yn,ii._jQueryInterface};var oi="scrollspy",ri="bs.scrollspy",si="."+ri,ai=p.fn[oi],li={offset:10,method:"auto",target:""},ci={offset:"number",method:"string",target:"(string|element)"},hi={ACTIVATE:"activate"+si,SCROLL:"scroll"+si,LOAD_DATA_API:"load"+si+".data-api"},ui="dropdown-item",fi="active",di='[data-spy="scroll"]',pi=".nav, .list-group",mi=".nav-link",gi=".nav-item",_i=".list-group-item",vi=".dropdown",yi=".dropdown-item",Ei=".dropdown-toggle",bi="offset",wi="position",Ci=function(){function n(t,e){var n=this;this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(e),this._selector=this._config.target+" "+mi+","+this._config.target+" "+_i+","+this._config.target+" "+yi,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,p(this._scrollElement).on(hi.SCROLL,function(t){return n._process(t)}),this.refresh(),this._process()}var t=n.prototype;return t.refresh=function(){var e=this,t=this._scrollElement===this._scrollElement.window?bi:wi,o="auto"===this._config.method?t:this._config.method,r=o===wi?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),[].slice.call(document.querySelectorAll(this._selector)).map(function(t){var e,n=m.getSelectorFromElement(t);if(n&&(e=document.querySelector(n)),e){var i=e.getBoundingClientRect();if(i.width||i.height)return[p(e)[o]().top+r,n]}return null}).filter(function(t){return t}).sort(function(t,e){return t[0]-e[0]}
9).forEach(function(t){e._offsets.push(t[0]),e._targets.push(t[1])})},t.dispose=function(){p.removeData(this._element,ri),p(this._scrollElement).off(si),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},t._getConfig=function(t){if("string"!=typeof(t=l({},li,"object"==typeof t&&t?t:{})).target){var e=p(t.target).attr("id");e||(e=m.getUID(oi),p(t.target).attr("id",e)),t.target="#"+e}return m.typeCheckConfig(oi,t,ci),t},t._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},t._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},t._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},t._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),n<=t){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t<this._offsets[0]&&0<this._offsets[0])return this._activeTarget=null,void this._clear();for(var o=this._offsets.length;o--;){this._activeTarget!==this._targets[o]&&t>=this._offsets[o]&&("undefined"==typeof this._offsets[o+1]||t<this._offsets[o+1])&&this._activate(this._targets[o])}}},t._activate=function(e){this._activeTarget=e,this._clear();var t=this._selector.split(",").map(function(t){return t+'[data-target="'+e+'"],'+t+'[href="'+e+'"]'}),n=p([].slice.call(document.querySelectorAll(t.join(","))));n.hasClass(ui)?(n.closest(vi).find(Ei).addClass(fi),n.addClass(fi)):(n.addClass(fi),n.parents(pi).prev(mi+", "+_i).addClass(fi),n.parents(pi).prev(gi).children(mi).addClass(fi)),p(this._scrollElement).trigger(hi.ACTIVATE,{relatedTarget:e})},t._clear=function(){[].slice.call(document.querySelectorAll(this._selector)).filter(function(t){return t.classList.contains(fi)}).forEach(function(t){return t.classList.remove(fi)})},n._jQueryInterface=function(e){return this.each(function(){var t=p(this).data(ri);if(t||(t=new n(this,"object"==typeof e&&e),p(this).data(ri,t)),"string"==typeof e){if("undefined"==typeof t[e])throw new TypeError('No method named "'+e+'"');t[e]()}})},s(n,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return li}}]),n}();p(window).on(hi.LOAD_DATA_API,function(){for(var t=[].slice.call(document.querySelectorAll(di)),e=t.length;e--;){var n=p(t[e]);Ci._jQueryInterface.call(n,n.data())}}),p.fn[oi]=Ci._jQueryInterface,p.fn[oi].Constructor=Ci,p.fn[oi].noConflict=function(){return p.fn[oi]=ai,Ci._jQueryInterface};var Ti="bs.tab",Si="."+Ti,Di=p.fn.tab,Ii={HIDE:"hide"+Si,HIDDEN:"hidden"+Si,SHOW:"show"+Si,SHOWN:"shown"+Si,CLICK_DATA_API:"click"+Si+".data-api"},Ai="dropdown-menu",Oi="active",Ni="disabled",ki="fade",Li="show",xi=".dropdown",Pi=".nav, .list-group",Hi=".active",ji="> li > .active",Ri='[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',Fi=".dropdown-toggle",Mi="> .dropdown-menu .active",Wi=function(){function i(t){this._element=t}var t=i.prototype;return t.show=function(){var n=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&p(this._element).hasClass(Oi)||p(this._element).hasClass(Ni))){var t,i,e=p(this._element).closest(Pi)[0],o=m.getSelectorFromElement(this._element);if(e){var r="UL"===e.nodeName||"OL"===e.nodeName?ji:Hi;i=(i=p.makeArray(p(e).find(r)))[i.length-1]}var s=p.Event(Ii.HIDE,{relatedTarget:this._element}),a=p.Event(Ii.SHOW,{relatedTarget:i});if(i&&p(i).trigger(s),p(this._element).trigger(a),!a.isDefaultPrevented()&&!s.isDefaultPrevented()){o&&(t=document.querySelector(o)),this._activate(this._element,e);var l=function(){var t=p.Event(Ii.HIDDEN,{relatedTarget:n._element}),e=p.Event(Ii.SHOWN,{relatedTarget:i});p(i).trigger(t),p(n._element).trigger(e)};t?this._activate(t,t.parentNode,l):l()}}},t.dispose=function(){p.removeData(this._element,Ti),this._element=null},t._activate=function(t,e,n){var i=this,o=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?p(e).children(Hi):p(e).find(ji))[0],r=n&&o&&p(o).hasClass(ki),s=function(){return i._transitionComplete(t,o,n)};if(o&&r){var a=m.getTransitionDurationFromElement(o);p(o).removeClass(Li).one(m.TRANSITION_END,s).emulateTransitionEnd(a)}else s()},t._transitionComplete=function(t,e,n){if(e){p(e).removeClass(Oi);var i=p(e.parentNode).find(Mi)[0];i&&p(i).removeClass(Oi),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}if(p(t).addClass(Oi),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),m.reflow(t),t.classList.contains(ki)&&t.classList.add(Li),t.parentNode&&p(t.parentNode).hasClass(Ai)){var o=p(t).closest(xi)[0];if(o){var r=[].slice.call(o.querySelectorAll(Fi));p(r).addClass(Oi)}t.setAttribute("aria-expanded",!0)}n&&n()},i._jQueryInterface=function(n){return this.each(function(){var t=p(this),e=t.data(Ti);if(e||(e=new i(this),t.data(Ti,e)),"string"==typeof n){if("undefined"==typeof e[n])throw new TypeError('No method n
vendor: 27,439 bytes, lines 9-16
9amed "'+n+'"');e[n]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),i}();p(document).on(Ii.CLICK_DATA_API,Ri,function(t){t.preventDefault(),Wi._jQueryInterface.call(p(this),"show")}),p.fn.tab=Wi._jQueryInterface,p.fn.tab.Constructor=Wi,p.fn.tab.noConflict=function(){return p.fn.tab=Di,Wi._jQueryInterface};var Ui="toast",Bi="bs.toast",qi="."+Bi,Ki=p.fn[Ui],Qi={CLICK_DISMISS:"click.dismiss"+qi,HIDE:"hide"+qi,HIDDEN:"hidden"+qi,SHOW:"show"+qi,SHOWN:"shown"+qi},Vi="fade",Yi="hide",zi="show",Xi="showing",Gi={animation:"boolean",autohide:"boolean",delay:"number"},$i={animation:!0,autohide:!0,delay:500},Ji='[data-dismiss="toast"]',Zi=function(){function i(t,e){this._element=t,this._config=this._getConfig(e),this._timeout=null,this._setListeners()}var t=i.prototype;return t.show=function(){var t=this;p(this._element).trigger(Qi.SHOW),this._config.animation&&this._element.classList.add(Vi);var e=function(){t._element.classList.remove(Xi),t._element.classList.add(zi),p(t._element).trigger(Qi.SHOWN),t._config.autohide&&t.hide()};if(this._element.classList.remove(Yi),this._element.classList.add(Xi),this._config.animation){var n=m.getTransitionDurationFromElement(this._element);p(this._element).one(m.TRANSITION_END,e).emulateTransitionEnd(n)}else e()},t.hide=function(t){var e=this;this._element.classList.contains(zi)&&(p(this._element).trigger(Qi.HIDE),t?this._close():this._timeout=setTimeout(function(){e._close()},this._config.delay))},t.dispose=function(){clearTimeout(this._timeout),this._timeout=null,this._element.classList.contains(zi)&&this._element.classList.remove(zi),p(this._element).off(Qi.CLICK_DISMISS),p.removeData(this._element,Bi),this._element=null,this._config=null},t._getConfig=function(t){return t=l({},$i,p(this._element).data(),"object"==typeof t&&t?t:{}),m.typeCheckConfig(Ui,t,this.constructor.DefaultType),t},t._setListeners=function(){var t=this;p(this._element).on(Qi.CLICK_DISMISS,Ji,function(){return t.hide(!0)})},t._close=function(){var t=this,e=function(){t._element.classList.add(Yi),p(t._element).trigger(Qi.HIDDEN)};if(this._element.classList.remove(zi),this._config.animation){var n=m.getTransitionDurationFromElement(this._element);p(this._element).one(m.TRANSITION_END,e).emulateTransitionEnd(n)}else e()},i._jQueryInterface=function(n){return this.each(function(){var t=p(this),e=t.data(Bi);if(e||(e=new i(this,"object"==typeof n&&n),t.data(Bi,e)),"string"==typeof n){if("undefined"==typeof e[n])throw new TypeError('No method named "'+n+'"');e[n](this)}})},s(i,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"DefaultType",get:function(){return Gi}},{key:"Default",get:function(){return $i}}]),i}();p.fn[Ui]=Zi._jQueryInterface,p.fn[Ui].Constructor=Zi,p.fn[Ui].noConflict=function(){return p.fn[Ui]=Ki,Zi._jQueryInterface},function(){if("undefined"==typeof p)throw new TypeError("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.");var t=p.fn.jquery.split(" ")[0].split(".");if(t[0]<2&&t[1]<9||1===t[0]&&9===t[1]&&t[2]<1||4<=t[0])throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}(),t.Util=m,t.Alert=g,t.Button=k,t.Carousel=at,t.Collapse=Ct,t.Dropdown=Xe,t.Modal=gn,t.Popover=ii,t.Scrollspy=Ci,t.Tab=Wi,t.Toast=Zi,t.Tooltip=qn,Object.defineProperty(t,"__esModule",{value:!0})}); 10//# sourceMappingURL=bootstrap.bundle.min.js.map 11/** 12 * Owl Carousel v2.3.4 13 * Copyright 2013-2023 David Deutsch 14 * Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE 15 */ 16!function(a,b,c,d){function e(b,c){this.settings=null,this.options=a.extend({},e.Defaults,c),this.$element=a(b),this._handlers={},this._plugins={},this._supress={},this._current=null,this._speed=null,this._coordinates=[],this._breakpoint=null,this._width=null,this._items=[],this._clones=[],this._mergers=[],this._widths=[],this._invalidated={},this._pipe=[],this._drag={time:null,target:null,pointer:null,stage:{start:null,current:null},direction:null},this._states={current:{},tags:{initializing:["busy"],animating:["busy"],dragging:["interacting"]}},a.each(["onResize","onThrottledResize"],a.proxy(function(b,c){this._handlers[c]=a.proxy(this[c],this)},this)),a.each(e.Plugins,a.proxy(function(a,b){this._plugins[a.charAt(0).toLowerCase()+a.slice(1)]=new b(this)},this)),a.each(e.Workers,a.proxy(function(b,c){this._pipe.push({filter:c.filter,run:a.proxy(c.run,this)})},this)),this.setup(),this.initialize()}e.Defaults={items:3,loop:!1,center:!1,rewind:!1,checkVisibility:!0,mouseDrag:!0,touchDrag:!0,pullDrag:!0,freeDrag:!1,margin:0,stagePadding:0,merge:!1,mergeFit:!0,autoWidth:!1,startPosition:0,rtl:!1,smartSpeed:250,fluidSpeed:!1,dragEndSpeed:!1,responsive:{},responsiveRefreshRate:200,responsiveBaseElement:b,fallbackEasing:"swing",slideTransition:"",info:!1,nestedItemSelector:!1,itemElement:"div",stageElement:"div",refreshClass:"owl-refresh",loadedClass:"owl-loaded",loadingClass:"owl-loading",rtlClass:"owl-rtl",responsiveClass:"owl-responsive",dragClass:"owl-drag",itemClass:"owl-item",stageClass:"owl-stage",stageOuterClass:"owl-stage-outer",grabClass:"owl-grab"},e.Width={Default:"default",Inner:"inner",Outer:"outer"},e.Type={Event:"event",State:"state"},e.Plugins={},e.Workers=[{filter:["width","settings"],run:function(){this._width=this.$element.width()}},{filter:["width","items","settings"],run:function(a){a.current=this._items&&this._items[this.relative(this._current)]}},{filter:["items","settings"],run:function(){this.$stage.children(".cloned").remove()}},{filter:["width","items","settings"],run:function(a){var b=this.settings.margin||"",c=!this.settings.autoWidth,d=this.settings.rtl,e={width:"auto","margin-left":d?b:"","margin-right":d?"":b};!c&&this.$stage.children().css(e),a.css=e}},{filter:["width","items","settings"],run:function(a){var b=(this.width()/this.settings.items).toFixed(3)-this.settings.margin,c=null,d=this._items.length,e=!this.settings.autoWidth,f=[];for(a.items={merge:!1,width:b};d--;)c=this._mergers[d],c=this.settings.mergeFit&&Math.min(c,this.settings.items)||c,a.items.merge=c>1||a.items.merge,f[d]=e?b*c:this._items[d].width();this._widths=f}},{filter:["items","settings"],run:function(){var b=[],c=this._items,d=this.settings,e=Math.max(2*d.items,4),f=2*Math.ceil(c.length/2),g=d.loop&&c.length?d.rewind?e:Math.max(e,f):0;for(g/=2;g>0;)b.push(this.normalize(b.length/2,!0)),a(c[b[b.length-1]][0]).clone(!0).addClass("cloned").appendTo(this.$stage),b.push(this.normalize(c.length-1-(b.length-1)/2,!0)),a(c[b[b.length-1]][0]).clone(!0).addClass("cloned").prependTo(this.$stage),g-=1;this._clones=b}},{filter:["width","items","settings"],run:function(){for(var a=this.settings.rtl?1:-1,b=this._clones.length+this._items.length,c=-1,d=0,e=0,f=[];++c<b;)d=f[c-1]||0,e=this._widths[this.relative(c)]+this.settings.margin,f.push(d+e*a);this._coordinates=f}},{filter:["width","items","settings"],run:function(){var a=this.settings.stagePadding,b=this._coordinates,c={width:Math.ceil(Math.abs(b[b.length-1]))+2*a,"padding-left":a||"","padding-right":a||""};this.$stage.css(c)}},{filter:["width","items","settings"],run:function(a){var b=this._coordinates.length,c=!this.settings.autoWidth,d=this.$stage.children();if(c&&a.items.merge)for(;b--;)a.css.width=this._widths[this.relative(b)],d.eq(b).css(a.css);else c&&(a.css.width=a.items.width,d.css(a.css))}},{filter:["items"],run:function(){this._coordinates.length<1&&this.$stage.removeAttr("style")}},{filter:["width","items","settings"],run:function(a){a.current=a.current?this.$stage.children().index(a.current):0,a.current=Math.max(this.minimum(),Math.min(this.maximum(),a.current)),this.reset(a.current)}},{filter:["position"],run:function(){this.animate(this.coordinates(this._current))}},{filter:["width","position","items","settings"],run:function(){var a,b,c,d,e=this.settings.rtl?1:-1,f=2*this.settings.stagePadding,g=this.coordinates(this.current())+f,h=g+this.width()*e,i=[];for(c=0,d=this._coordinates.length;c<d;c++)a=this._coordinates[c-1]||0,b=Math.abs(this._coordinates[c])+f*e,(this.op(a,"<=",g)&&this.op(a,">",h)||this.op(b,"<",g)&&this.op(b,">",h))&&i.push(c);this.$stage.children(".active").removeClass("active"),this.$stage.children(":eq("+i.join("), :eq(")+")").addClass("active"),this.$stage.children(".center").removeClass("center"),this.settings.center&&this.$stage.children().eq(this.current()).addClass("center")}}],e.prototype.initializeStage=function(){this.$stage=this.$element.find("."+this.settings.stageClass),this.$stage.length||(this.$element.addClass(this.options.loadingClass),this.$stage=a("<"+this.settings.stageElement+">",{class:this.settings.stageClass}).wrap(a("<div/>",{class:this.settings.stageOuterClass})),this.$element.append(this.$stage.parent()))},e.prototype.initializeItems=function(){var b=this.$element.find(".owl-item");if(b.length)return this._items=b.get().map(function(b){return a(b)}),this._mergers=this._items.map(function(){return 1}),void this.refresh();this.replace(this.$element.children().not(this.$stage.parent())),this.isVisible()?this.refresh():this.invalidate("width"),this.$element.removeClass(this.options.loadingClass).addClass(this.options.loadedClass)},e.prototype.initialize=function(){if(this.enter("initializing"),this.trigger("initialize"),this.$element.toggleClass(this.settings.rtlClass,this.settings.rtl),this.settings.autoWidth&&!this.is("pre-loading")){var a,b,c;a=this.$element.find("img"),b=this.settings.nestedItemSelector?"."+this.settings.nestedItemSelector:d,c=this.$element.children(b).width(),a.length&&c<=0&&this.preloadAutoWidthImages(a)}this.initializeStage(),this.initializeItems(),this.registerEventHandlers(),this.leave("initializing"),this.trigger("initialized")},e.prototype.isVisible=function(){return!this.settings.checkVisibility||this.$element.is(":visible")},e.prototype.setup=function(){var b=this.viewport(),c=this.options.responsive,d=-1,e=null;c?(a.each(c,function(a){a<=b&&a>d&&(d=Number(a))}),e=a.extend({},this.options,c[d]),"function"==typeof e.stagePadding&&(e.stagePadding=e.stagePadding()),delete e.responsive,e.responsiveClass&&this.$element.attr("class",this.$element.attr("class").replace(new RegExp("("+this.options.responsiveClass+"-)\\S+\\s","g"),"$1"+d))):e=a.extend({},this.options),this.trigger("change",{property:{name:"settings",value:e}}),this._breakpoint=d,this.settings=e,this.invalidate("settings"),this.trigger("changed",{property:{name:"settings",value:this.settings}})},e.prototype.optionsLogic=function(){this.settings.autoWidth&&(this.settings.stagePadding=!1,this.settings.merge=!1)},e.prototype.prepare=function(b){var c=this.trigger("prepare",{content:b});return c.data||(c.data=a("<"+this.settings.itemElement+"/>").addClass(this.options.itemClass).append(b)),this.trigger("prepared",{content:c.data}),c.data},e.prototype.update=function(){for(var b=0,c=this._pipe.length,d=a.proxy(function(a){return this[a]},this._invalidated),e={};b<c;)(this._invalidated.all||a.grep(this._pipe[b].filter,d).length>0)&&this._pipe[b].run(e),b++;this._invalidated={},!this.is("valid")&&this.enter("valid")},e.prototype.width=function(a){switch(a=a||e.Width.Default){case e.Width.Inner:case e.Width.Outer:return this._width;default:return this._width-2*this.settings.stagePadding+this.settings.margin}},e.prototype.refresh=function(a){a=a||!1,this.enter("refreshing"),this.trigger("refresh"),this.setup(),this.optionsLogic(),this.$element.addClass(this.options.refreshClass),this.update(),a||this.onResize(),this.$element.removeClass(this.options.refreshClass),this.leave("refreshing"),this.trigger("refreshed")},e.prototype.onThrottledResize=function(){b.clearTimeout(this.resizeTimer),this.resizeTimer=b.setTimeout(this._handlers.onResize,this.settings.responsiveRefreshRate)},e.prototype.onResize=function(){return!!this._items.length&&this._width!==this.$element.width()&&!!this.isVisible()&&(this.enter("resizing"),this.trigger("resize").isDefaultPrevented()?(this.leave("resizing"),!1):(this.invalidate("width"),this.refresh(!0),this.leave("resizing"),void this.trigger("resized")))},e.prototype.registerEventHandlers=function(){a.support.transition&&this.$stage.on(a.support.transition.end+".owl.core",a.proxy(this.onTransitionEnd,this)),!1!==this.settings.responsive&&this.on(b,"resize",this._handlers.onThrottledResize),this.settings.mouseDrag&&(this.$element.addClass(this.options.dragClass),this.$stage.on("mousedown.owl.core",a.proxy(this.onDragStart,this)),this.$stage.on("dragstart.owl.core selectstart.owl.core",function(){return!1})),this.settings.touchDrag&&(this.$stage.on("touchstart.owl.core",a.proxy(this.onDragStart,this)),this.$stage.on("touchcancel.owl.core",a.proxy(this.onDragEnd,this)))},e.prototype.onDragStart=function(b){var d=null;3!==b.which&&(a.support.transform?(d=this.$stage.css("transform").replace(/.*\(|\)| /g,"").split(","),d={x:d[16===d.length?12:4],y:d[16===d.length?13:5]}):(d=this.$stage.position(),d={x:this.settings.rtl?d.left+this.$stage.width()-this.width()+this.settings.margin:d.left,y:d.top}),this.is("animating")&&(a.support.transform?this.animate(d.x):this.$stage.stop(),this.invalidate("position")),this.$element.toggleClass(this.options.grabClass,"mousedown"===b.type),this.speed(0),this._drag.time=(new Date).getTime(),this._drag.target=a(b.target),this._drag.stage.start=d,this._drag.stage.current=d,this._drag.pointer=this.pointer(b),a(c).on("mouseup.owl.core touchend.owl.core",a.proxy(this.onDragEnd,this)),a(c).one("mousemove.owl.core touchmove.owl.core",a.proxy(function(b){var d=this.difference(this._drag.pointer,this.pointer(b));a(c).on("mousemove.owl.core touchmove.owl.core",a.proxy(this.onDragMove,this)),Math.abs(d.x)<Math.abs(d.y)&&this.is("valid")||(b.preventDefault(),this.enter("dragging"),this.trigger("drag"))},this)))},e.prototype.onDragMove=function(a){var b=null,c=null,d=null,e=this.difference(this._drag.pointer,this.pointer(a)),f=this.difference(this._drag.stage.start,e);this.is("dragging")&&(a.preventDefault(),this.settings.loop?(b=this.coordinates(this.minimum()),c=this.coordinates(this.maximum()+1)-b,f.x=((f.x-b)%c+c)%c+b):(b=this.settings.rtl?this.coordinates(this.maximum()):this.coordinates(this.minimum()),c=this.settings.rtl?this.coordinates(this.minimum()):this.coordinates(this.maximum()),d=this.settings.pullDrag?-1*e.x/5:0,f.x=Math.max(Math.min(f.x,b+d),c+d)),this._drag.stage.current=f,this.animate(f.x))},e.prototype.onDragEnd=function(b){var d=this.difference(this._drag.pointer,this.pointer(b)),e=this._drag.stage.current,f=d.x>0^this.settings.rtl?"left":"right";a(c).off(".owl.core"),this.$element.removeClass(this.options.grabClass),(0!==d.x&&this.is("dragging")||!this.is("valid"))&&(this.speed(this.settings.dragEndSpeed||this.settings.smartSpeed),this.current(this.closest(e.x,0!==d.x?f:this._drag.direction)),this.invalidate("position"),this.update(),this._drag.direction=f,(Math.abs(d.x)>3||(new Date).getTime()-this._drag.time>300)&&this._drag.target.one("click.owl.core",function(){return!1})),this.is("dragging")&&(this.leave("dragging"),this.trigger("dragged"))},e.prototype.closest=function(b,c){var e=-1,f=30,g=this.width(),h=this.settings.items,i=Math.round(g/h),j=this.coordinates();return this.settings.freeDrag||a.each(j,a.proxy(function(a,h){return"left"===c&&b>h-f&&b<h+f?e=a:"right"===c&&b>h-i-f&&b<h-i+f?e=a+1:this.op(b,"<",h)&&this.op(b,">",j[a+1]!==d?j[a+1]:h-g)&&(e="left"===c?a+1:a),-1===e},this)),this.settings.loop||(this.op(b,">",j[this.minimum()])?e=b=this.minimum():this.op(b,"<",j[this.maximum()])&&(e=b=this.maximum())),e},e.prototype.animate=function(b){var c=this.speed()>0;this.is("animating")&&this.onTransitionEnd(),c&&(this.enter("animating"),this.trigger("translate")),a.support.transform3d&&a.support.transition?this.$stage.css({transform:"translate3d("+b+"px,0px,0px)",transition:this.speed()/1e3+"s"+(this.settings.slideTransition?" "+this.settings.slideTransition:"")}):c?this.$stage.animate({left:b+"px"},this.speed(),this.settings.fallbackEasing,a.proxy(this.onTransitionEnd,this)):this.$stage.css({left:b+"px"})},e.prototype.is=function(a){return this._states.current[a]&&this._states.current[a]>0},e.prototype.current=function(a){if(a===d)return this._current;if(0===this._items.length)return d;if(a=this.normalize(a),this._current!==a){var b=this.trigger("change",{property:{name:"position",value:a}});b.data!==d&&(a=this.normalize(b.data)),this._current=a,this.invalidate("position"),this.trigger("changed",{property:{name:"position",value:this._current}})}return this._current},e.prototype.invalidate=function(b){return"string"===a.type(b)&&(this._invalidated[b]=!0,this.is("valid")&&this.leave("valid")),a.map(this._invalidated,function(a,b){return b})},e.prototype.reset=function(a){(a=this.normalize(a))!==d&&(this._speed=0,this._current=a,this.suppress(["translate","translated"]),this.animate(this.coordinates(a)),this.release(["translate","translated"]))},e.prototype.normalize=function(a,b){var c=this._items.length,e=b?0:this._clones.length;return!this.isNumeric(a)||c<1?a=d:(a<0||a>=c+e)&&(a=((a-e/2)%c+c)%c+e/2),a},e.prototype.relative=function(a){return a-=this._clones.length/2,this.normalize(a,!0)},e.prototype.maximum=function(a){var b,c,d,e=this.settings,f=this._coordinates.length;if(e.loop)f=this._clones.length/2+this._items.length-1;else if(e.autoWidth||e.merge){if(b=this._items.length)for(c=this._items[--b].width(),d=this.$element.width();b--&&!((c+=this._items[b].width()+this.settings.margin)>d););f=b+1}else f=e.center?this._items.length-1:this._items.length-e.items;return a&&(f-=this._clones.length/2),Math.max(f,0)},e.prototype.minimum=function(a){return a?0:this._clones.length/2},e.prototype.items=function(a){return a===d?this._items.slice():(a=this.normalize(a,!0),this._items[a])},e.prototype.mergers=function(a){return a===d?this._mergers.slice():(a=this.normalize(a,!0),this._mergers[a])},e.prototype.clones=function(b){var c=this._clones.length/2,e=c+this._items.length,f=function(a){return a%2==0?e+a/2:c-(a+1)/2};return b===d?a.map(this._clones,function(a,b){return f(b)}):a.map(this._clones,function(a,c){return a===b?f(c):null})},e.prototype.speed=function(a){return a!==d&&(this._speed=a),this._speed},e.prototype.coordinates=function(b){var c,e=1,f=b-1;return b===d?a.map(this._coordinates,a.proxy(function(a,b){return this.coordinates(b)},this)):(this.settings.center?(this.settings.rtl&&(e=-1,f=b+1),c=this._coordinates[b],c+=(this.width()-c+(this._coordinates[f]||0))/2*e):c=this._coordinates[f]||0,c=Math.ceil(c))},e.prototype.duration=function(a,b,c){return 0===c?0:Math.min(Math.max(Math.abs(b-a),1),6)*Math.abs(c||this.settings.smartSpeed)},e.prototype.to=function(a,b){var c=this.current(),d=null,e=a-this.relative(c),f=(e>0)-(e<0),g=this._items.length,h=this.minimum(),i=this.maximum();this.settings.loop?(!this.settings.rewind&&Math.abs(e)>g/2&&(e+=-1*f*g),a=c+e,(d=((a-h)%g+g)%g+h)!==a&&d-e<=i&&d-e>0&&(c=d-e,a=d,this.reset(c))):this.settings.rewind?(i+=1,a=(a%i+i)%i):a=Math.max(h,Math.min(i,a)),this.speed(this.duration(c,a,b)),this.current(a),this.isVisible()&&this.update()},e.prototype.next=function(a){a=a||!1,this.to(this.relative(this.current())+1,a)},e.prototype.prev=function(a){a=a||!1,this.to(this.relative(this.current())-1,a)},e.prototype.onTransitionEnd=function(a){if(a!==d&&(a.stopPropagation(),(a.target||a.srcElement||a.originalTarget)!==this.$stage.get(0)))return!1;this.leave("animating"),this.trigger("translated")},e.prototype.viewport=function(){var d;return this.options.responsiveBaseElement!==b?d=a(this.options.responsiveBaseElement).width():b.innerWidth?d=b.innerWidth:c.documentElement&&c.documentElement.clientWidth?d=c.documentElement.clientWidth:console.warn("Can not detect viewport width."),d},e.prototype.replace=function(b){this.$stage.empty(),this._items=[],b&&(b=b instanceof jQuery?b:a(b)),this.settings.nestedItemSelector&&(b=b.find("."+this.settings.nestedItemSelector)),b.filter(function(){return 1===this.nodeType}).each(a.proxy(function(a,b){b=this.prepare(b),this.$stage.append(b),this._items.push(b),this._mergers.push(1*b.find("[data-merge]").addBack("[data-merge]").attr("data-merge")||1)},this)),this.reset(this.isNumeric(this.settings.startPosition)?this.settings.startPosition:0),this.invalidate("items")},e.prototype.add=function(b,c){var e=this.relative(this._current);c=c===d?this._items.length:this.normalize(c,!0),b=b instanceof jQuery?b:a(b),this.trigger("add",{content:b,position:c}),b=this.prepare(b),0===this._items.length||c===this._items.length?(0===this._items.length&&this.$stage.append(b),0!==this._items.length&&this._items[c-1].after(b),this._items.push(b),this._mergers.push(1*b.find("[data-merge]").addBack("[data-merge]").attr("data-merge")||1)):(this._items[c].before(b),this._items.splice(c,0,b),this._mergers.splice(c,0,1*b.find("[data-merge]").addBack("[data-merge]").attr("data-merge")||1)),this._items[e]&&this.reset(this._items[e].index()),this.invalidate("items"),this.trigger("added",{content:b,position:c})},e.prototype.remove=function(a){(a=this.normalize(a,!0))!==d&&(this.trigger("remove",{content:this._items[a],position:a}),this._items[a].remove(),this._items.splice(a,1),this._mergers.splice(a,1),this.invalidate("items"),this.trigger("removed",{content:null,position:a}))},e.prototype.preloadAutoWidthImages=function(c){c.each(a.proxy(function(c,d){this.enter("pre-loading"),d=a(d),a(new Image).one("load",a.proxy(function(a){d.attr("src",a.target.src),d.css("opacity",1),this.leave("pre-loading"),!this.is("pre-loading")&&!this.is("initializing")&&this.refresh()},this)).attr("src",b.devicePixelRatio>1?d.attr("data-src-retina"):d.attr("data-src")||d.attr("src"))},this))},e.prototype.destroy=function(){this.$element.off(".owl.core"),this.$stage.off(".owl.core"),a(c).off(".owl.core"),!1!==this.settings.responsive&&(b.clearTimeout(this.resizeTimer),this.off(b,"resize",this._handlers.onThrottledResize));for(var d in this._plugins)this._plugins[d].destroy();this.$stage.children(".cloned").remove(),this.$stage.unwrap(),this.$stage.children().contents().unwrap(),this.$stage.children().unwrap(),this.$stage.remove(),this.$element.removeClass(this.options.refreshClass).removeClass(this.options.loadingClass).removeClass(this.options.loadedClass).removeClass(this.options.rtlClass).removeClass(this.options.dragClass).removeClass(this.options.grabClass).attr("class",this.$element.attr("class").replace(new RegExp(this.options.responsiveClass+"-\\S+\\s","g"),"")).removeData("owl.carousel")},e.prototype.op=function(a,b,c){var d=this.settings.rtl;switch(b){case"<":return d?a>c:a<c;case">":return d?a<c:a>c;case">=":return d?a<=c:a>=c;case"<=":return d?a>=c:a<=c}},e.prototype.on=function(a,b,c,d){a.addEventListener?a.addEventListener(b,c,d):a.attachEvent&&a.attachEvent("on"+b,c)},e.prototype.off=function(a,b,c,d){a.removeEventListener?a.removeEventListener(b,c,d):a.detachEvent&&a.detachEvent("on"+b,c)},e.prototype.trigger=function(b,c,d,f,g){var h={item:{count:this._items.length,index:this.current()}},i=a.camelCase(a.grep(["on",b,d],function(a){return a}).join("-").toLowerCase()),j=a.Event([b,"owl",d||"carousel"].join(".").toLowerCase(),a.extend({relatedTarget:this},h,c));return this._supress[b]||(a.each(this._plugins,function(a,b){b.onTrigger&&b.onTrigger(j)}),this.register({type:e.Type.Event,name:b}),this.$element.trigger(j),this.settings&&"function"==typeof this.settings[i]&&this.settings[i].call(this,j)),j},e.prototype.enter=function(b){a.each([b].concat(this._states.tags[b]||[]),a.proxy(function(a,b){this._states.current[b]===d&&(this._states.current[b]=0),this._states.current[b]++},this))},e.prototype.leave=function(b){a.each([b].concat(this._states.tags[b]||[]),a.proxy(function(a,b){this._states.current[b]--},this))},e.prototype.register=function(b){if(b.type===e.Type.Event){if(a.event.special[b.name]||(a.event.special[b.name]={}),!a.event.special[b.name].owl){var c=a.event.special[b.name]._default;a.event.special[b.name]._default=function(a){return!c||!c.apply||a.namespace&&-1!==a.namespace.indexOf("owl")?a.namespace&&a.namespace.indexOf("owl")>-1:c.apply(this,arguments)},a.event.special[b.name].owl=!0}}else b.type===e.Type.State&&(this._states.tags[b.name]?this._states.tags[b.name]=this._states.tags[b.name].concat(b.tags):this._states.tags[b.name]=b.tags,this._states.tags[b.name]=a.grep(this._states.tags[b.name],a.proxy(function(c,d){return a.inArray(c,this._states.tags[b.name])===d},this)))},e.prototype.suppress=function(b){a.each(b,a.proxy(function(a,b){this._supress[b]=!0},this))},e.prototype.release=function(b){a.each(b,a.proxy(function(a,b){delete this._supress[b]},this))},e.prototype.pointer=function(a){var c={x:null,y:null};return a=a.originalEvent||a||b.event,a=a.touches&&a.touches.length?a.touches[0]:a.changedTouches&&a.changedTouches.length?a.changedTouches[0]:a,a.pageX?(c.x=a.pageX,c.y=a.pageY):(c.x=a.clientX,c.y=a.clientY),c},e.prototype.isNumeric=function(a){return!isNaN(parseFloat(a))},e.prototype.difference=function(a,b){return{x:a.x-b.x,y:a.y-b.y}},a.fn.owlCarousel=function(b){var c=Array.prototype.slice.call(arguments,1);return this.each(function(){var d=a(this),f=d.data("owl.carousel");f||(f=new e(this,"object"==typeof b&&b),d.data("owl.carousel",f),a.each(["next","prev","to","destroy","refresh","replace","add","remove"],function(b,c){f.register({type:e.Type.Event,name:c}),f.$element.on(c+".owl.carousel.core",a.proxy(function(a){a.namespace&&a.relatedTarget!==this&&(this.suppress([c]),f[c].apply(this,[].slice.call(arguments,1)),this.release([c]))},f))})),"string"==typeof b&&"_"!==b.charAt(0)&&f[b].apply(f,c)})},a.fn.owlCarousel.Constructor=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._interval=null,this._visible=null,this._handlers={"initialized.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoRefresh&&this.watch()},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers)};e.Defaults={autoRefresh:!0,autoRefreshInterval:500},e.prototype.watch=function(){this._interval||(this._visible=this._core.isVisible(),this._interval=b.setInterval(a.proxy(this.refresh,this),this._core.settings.autoRefreshInterval))},e.prototype.refresh=function(){this._core.isVisible()!==this._visible&&(this._visible=!this._visible,this._core.$element.toggleClass("owl-hidden",!this._visible),this._visible&&this._core.invalidate("width")&&this._core.refresh())},e.prototype.destroy=function(){var a,c;b.clearInterval(this._interval);for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(c in Object.getOwnPropertyNames(this))"function"!=typeof this[c]&&(this[c]=null)},a.fn.owlCarousel.Constructor.Plugins.AutoRefresh=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._loaded=[],this._handlers={"initialized.owl.carousel change.owl.carousel resized.owl.carousel":a.proxy(function(b){if(b.namespace&&this._core.settings&&this._core.settings.lazyLoad&&(b.property&&"position"===b.property.name||"initialized"===b.type||"resized"===b.type)){var c=this._core.settings,e=c.center&&Math.ceil(c.items/2)||c.items,f=c.center&&-1*e||0,g=(b.property&&b.property.value!==d?b.property.value:this._core.current())+f,h=this._core.clones().length,i=a.proxy(function(a,b){this.load(b)},this);for(c.lazyLoadEager>0&&(e+=c.lazyLoadEager,c.loop&&(g-=c.lazyLoadEager,e++)),!c.center&&c.stagePadding&&(g--,e+=2
vendor: 8,073 bytes, line 16
16);f++<e;)this.load(h/2+this._core.relative(g)),h&&a.each(this._core.clones(this._core.relative(g)),i),g++}},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers)};e.Defaults={lazyLoad:!1,lazyLoadEager:0},e.prototype.load=function(c){var d=this._core.$stage.children().eq(c),e=d&&d.find(".owl-lazy");!e||a.inArray(d.get(0),this._loaded)>-1||(e.each(a.proxy(function(c,d){var e,f=a(d),g=b.devicePixelRatio>1&&f.attr("data-src-retina")||f.attr("data-src")||f.attr("data-srcset");this._core.trigger("load",{element:f,url:g},"lazy"),f.is("img")?f.one("load.owl.lazy",a.proxy(function(){f.css("opacity",1),this._core.trigger("loaded",{element:f,url:g},"lazy")},this)).attr("src",g):f.is("source")?f.one("load.owl.lazy",a.proxy(function(){this._core.trigger("loaded",{element:f,url:g},"lazy")},this)).attr("srcset",g):(e=new Image,e.onload=a.proxy(function(){f.css({"background-image":'url("'+g+'")',opacity:"1"}),this._core.trigger("loaded",{element:f,url:g},"lazy")},this),e.src=g)},this)),this._loaded.push(d.get(0)))},e.prototype.destroy=function(){var a,b;for(a in this.handlers)this._core.$element.off(a,this.handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.Lazy=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(c){this._core=c,this._previousHeight=null,this._handlers={"initialized.owl.carousel refreshed.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoHeight&&this.update()},this),"changed.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoHeight&&"position"===a.property.name&&this.update()},this),"loaded.owl.lazy":a.proxy(function(a){a.namespace&&this._core.settings.autoHeight&&a.element.closest("."+this._core.settings.itemClass).index()===this._core.current()&&this.update()},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers),this._intervalId=null;var d=this;a(b).on("load",function(){d._core.settings.autoHeight&&d.update()}),a(b).resize(function(){d._core.settings.autoHeight&&(null!=d._intervalId&&clearTimeout(d._intervalId),d._intervalId=setTimeout(function(){d.update()},250))})};e.Defaults={autoHeight:!1,autoHeightClass:"owl-height"},e.prototype.update=function(){var b=this._core._current,c=b+this._core.settings.items,d=this._core.settings.lazyLoad,e=this._core.$stage.children().toArray().slice(b,c),f=[],g=0;a.each(e,function(b,c){f.push(a(c).height())}),g=Math.max.apply(null,f),g<=1&&d&&this._previousHeight&&(g=this._previousHeight),this._previousHeight=g,this._core.$stage.parent().height(g).addClass(this._core.settings.autoHeightClass)},e.prototype.destroy=function(){var a,b;for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.AutoHeight=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._videos={},this._playing=null,this._handlers={"initialized.owl.carousel":a.proxy(function(a){a.namespace&&this._core.register({type:"state",name:"playing",tags:["interacting"]})},this),"resize.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.video&&this.isInFullScreen()&&a.preventDefault()},this),"refreshed.owl.carousel":a.proxy(function(a){a.namespace&&this._core.is("resizing")&&this._core.$stage.find(".cloned .owl-video-frame").remove()},this),"changed.owl.carousel":a.proxy(function(a){a.namespace&&"position"===a.property.name&&this._playing&&this.stop()},this),"prepared.owl.carousel":a.proxy(function(b){if(b.namespace){var c=a(b.content).find(".owl-video");c.length&&(c.css("display","none"),this.fetch(c,a(b.content)))}},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this._core.$element.on(this._handlers),this._core.$element.on("click.owl.video",".owl-video-play-icon",a.proxy(function(a){this.play(a)},this))};e.Defaults={video:!1,videoHeight:!1,videoWidth:!1},e.prototype.fetch=function(a,b){var c=function(){return a.attr("data-vimeo-id")?"vimeo":a.attr("data-vzaar-id")?"vzaar":"youtube"}(),d=a.attr("data-vimeo-id")||a.attr("data-youtube-id")||a.attr("data-vzaar-id"),e=a.attr("data-width")||this._core.settings.videoWidth,f=a.attr("data-height")||this._core.settings.videoHeight,g=a.attr("href");if(!g)throw new Error("Missing video URL.");if(d=g.match(/(http:|https:|)\/\/(player.|www.|app.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com|be\-nocookie\.com)|vzaar\.com)\/(video\/|videos\/|embed\/|channels\/.+\/|groups\/.+\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/),d[3].indexOf("youtu")>-1)c="youtube";else if(d[3].indexOf("vimeo")>-1)c="vimeo";else{if(!(d[3].indexOf("vzaar")>-1))throw new Error("Video URL not supported.");c="vzaar"}d=d[6],this._videos[g]={type:c,id:d,width:e,height:f},b.attr("data-video",g),this.thumbnail(a,this._videos[g])},e.prototype.thumbnail=function(b,c){var d,e,f,g=c.width&&c.height?"width:"+c.width+"px;height:"+c.height+"px;":"",h=b.find("img"),i="src",j="",k=this._core.settings,l=function(c){e='<div class="owl-video-play-icon"></div>',d=k.lazyLoad?a("<div/>",{class:"owl-video-tn "+j,srcType:c}):a("<div/>",{class:"owl-video-tn",style:"opacity:1;background-image:url("+c+")"}),b.after(d),b.after(e)};if(b.wrap(a("<div/>",{class:"owl-video-wrapper",style:g})),this._core.settings.lazyLoad&&(i="data-src",j="owl-lazy"),h.length)return l(h.attr(i)),h.remove(),!1;"youtube"===c.type?(f="//img.youtube.com/vi/"+c.id+"/hqdefault.jpg",l(f)):"vimeo"===c.type?a.ajax({type:"GET",url:"//vimeo.com/api/v2/video/"+c.id+".json",jsonp:"callback",dataType:"jsonp",success:function(a){f=a[0].thumbnail_large,l(f)}}):"vzaar"===c.type&&a.ajax({type:"GET",url:"//vzaar.com/api/videos/"+c.id+".json",jsonp:"callback",dataType:"jsonp",success:function(a){f=a.framegrab_url,l(f)}})},e.prototype.stop=function(){this._core.trigger("stop",null,"video"),this._playing.find(".owl-video-frame").remove(),this._playing.removeClass("owl-video-playing"),this._playing=null,this._core.leave("playing"),this._core.trigger("stopped",null,"video")},e.prototype.play=function(b){var c,d=a(b.target),e=d.closest("."+this._core.settings.itemClass),f=this._videos[e.attr("data-video")],g=f.width||"100%",h=f.height||this._core.$stage.height();this._playing||(this._core.enter("playing"),this._core.trigger("play",null,"video"),e=this._core.items(this._core.relative(e.index())),this._core.reset(e.index()),c=a('<iframe frameborder="0" allowfullscreen mozallowfullscreen webkitAllowFullScreen ></iframe>'),c.attr("height",h),c.attr("width",g),"youtube"===f.type?c.attr("src","//www.youtube.com/embed/"+f.id+"?autoplay=1&rel=0&v="+f.id):"vimeo"===f.type?c.attr("src","//player.vimeo.com/video/"+f.id+"?autoplay=1"):"vzaar"===f.type&&c.attr("src","//view.vzaar.com/"+f.id+"/player?autoplay=true"),a(c).wrap('<div class="owl-video-frame" />').insertAfter(e.find(".owl-video")),this._playing=e.addClass("owl-video-playing"))},e.prototype.isInFullScreen=function(){var b=c.fullscreenElement||c.mozFullScreenElement||c.webkitFullscreenElement;return b&&a(b).parent().hasClass("owl-video-frame")},e.prototype.destroy=function(){var a,b;this._core.$element.off("click.owl.video");for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.Video=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this.core=b,this.core.options=a.extend({},e.Defaults,this.core.options),this.swapping=!0,this.previous=d,this.next=d,this.handlers={"change.owl.carousel":a.proxy(function(a){a.namespace&&"position"==a.property.name&&(this.previous=this.core.current(),this.next=a.property.value)},this),"drag.owl.carousel dragged.owl.carousel translated.owl.carousel":a.proxy(function(a){a.namespace&&(this.swapping="translated"==a.type)},this),"translate.owl.carousel":a.proxy(function(a){
16 17a.namespace&&this.swapping&&(this.core.options.animateOut||this.core.options.animateIn)&&this.swap()},this)},this.core.$element.on(this.handlers)};e.Defaults={animateOut:!1,
vendor: 12,177 bytes, line 17
17animateIn:!1},e.prototype.swap=function(){if(1===this.core.settings.items&&a.support.animation&&a.support.transition){this.core.speed(0);var b,c=a.proxy(this.clear,this),d=this.core.$stage.children().eq(this.previous),e=this.core.$stage.children().eq(this.next),f=this.core.settings.animateIn,g=this.core.settings.animateOut;this.core.current()!==this.previous&&(g&&(b=this.core.coordinates(this.previous)-this.core.coordinates(this.next),d.one(a.support.animation.end,c).css({left:b+"px"}).addClass("animated owl-animated-out").addClass(g)),f&&e.one(a.support.animation.end,c).addClass("animated owl-animated-in").addClass(f))}},e.prototype.clear=function(b){a(b.target).css({left:""}).removeClass("animated owl-animated-out owl-animated-in").removeClass(this.core.settings.animateIn).removeClass(this.core.settings.animateOut),this.core.onTransitionEnd()},e.prototype.destroy=function(){var a,b;for(a in this.handlers)this.core.$element.off(a,this.handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.Animate=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){var e=function(b){this._core=b,this._call=null,this._time=0,this._timeout=0,this._paused=!0,this._handlers={"changed.owl.carousel":a.proxy(function(a){a.namespace&&"settings"===a.property.name?this._core.settings.autoplay?this.play():this.stop():a.namespace&&"position"===a.property.name&&this._paused&&(this._time=0)},this),"initialized.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.autoplay&&this.play()},this),"play.owl.autoplay":a.proxy(function(a,b,c){a.namespace&&this.play(b,c)},this),"stop.owl.autoplay":a.proxy(function(a){a.namespace&&this.stop()},this),"mouseover.owl.autoplay":a.proxy(function(){this._core.settings.autoplayHoverPause&&this._core.is("rotating")&&this.pause()},this),"mouseleave.owl.autoplay":a.proxy(function(){this._core.settings.autoplayHoverPause&&this._core.is("rotating")&&this.play()},this),"touchstart.owl.core":a.proxy(function(){this._core.settings.autoplayHoverPause&&this._core.is("rotating")&&this.pause()},this),"touchend.owl.core":a.proxy(function(){this._core.settings.autoplayHoverPause&&this.play()},this)},this._core.$element.on(this._handlers),this._core.options=a.extend({},e.Defaults,this._core.options)};e.Defaults={autoplay:!1,autoplayTimeout:5e3,autoplayHoverPause:!1,autoplaySpeed:!1},e.prototype._next=function(d){this._call=b.setTimeout(a.proxy(this._next,this,d),this._timeout*(Math.round(this.read()/this._timeout)+1)-this.read()),this._core.is("interacting")||c.hidden||this._core.next(d||this._core.settings.autoplaySpeed)},e.prototype.read=function(){return(new Date).getTime()-this._time},e.prototype.play=function(c,d){var e;this._core.is("rotating")||this._core.enter("rotating"),c=c||this._core.settings.autoplayTimeout,e=Math.min(this._time%(this._timeout||c),c),this._paused?(this._time=this.read(),this._paused=!1):b.clearTimeout(this._call),this._time+=this.read()%c-e,this._timeout=c,this._call=b.setTimeout(a.proxy(this._next,this,d),c-e)},e.prototype.stop=function(){this._core.is("rotating")&&(this._time=0,this._paused=!0,b.clearTimeout(this._call),this._core.leave("rotating"))},e.prototype.pause=function(){this._core.is("rotating")&&!this._paused&&(this._time=this.read(),this._paused=!0,b.clearTimeout(this._call))},e.prototype.destroy=function(){var a,b;this.stop();for(a in this._handlers)this._core.$element.off(a,this._handlers[a]);for(b in Object.getOwnPropertyNames(this))"function"!=typeof this[b]&&(this[b]=null)},a.fn.owlCarousel.Constructor.Plugins.autoplay=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){"use strict";var e=function(b){this._core=b,this._initialized=!1,this._pages=[],this._controls={},this._templates=[],this.$element=this._core.$element,this._overrides={next:this._core.next,prev:this._core.prev,to:this._core.to},this._handlers={"prepared.owl.carousel":a.proxy(function(b){b.namespace&&this._core.settings.dotsData&&this._templates.push('<div class="'+this._core.settings.dotClass+'">'+a(b.content).find("[data-dot]").addBack("[data-dot]").attr("data-dot")+"</div>")},this),"added.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.dotsData&&this._templates.splice(a.position,0,this._templates.pop())},this),"remove.owl.carousel":a.proxy(function(a){a.namespace&&this._core.settings.dotsData&&this._templates.splice(a.position,1)},this),"changed.owl.carousel":a.proxy(function(a){a.namespace&&"position"==a.property.name&&this.draw()},this),"initialized.owl.carousel":a.proxy(function(a){a.namespace&&!this._initialized&&(this._core.trigger("initialize",null,"navigation"),this.initialize(),this.update(),this.draw(),this._initialized=!0,this._core.trigger("initialized",null,"navigation"))},this),"refreshed.owl.carousel":a.proxy(function(a){a.namespace&&this._initialized&&(this._core.trigger("refresh",null,"navigation"),this.update(),this.draw(),this._core.trigger("refreshed",null,"navigation"))},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this.$element.on(this._handlers)};e.Defaults={nav:!1,navText:['<span aria-label="Previous">‹</span>','<span aria-label="Next">›</span>'],navSpeed:!1,navElement:'button type="button" role="presentation"',navContainer:!1,navContainerClass:"owl-nav",navClass:["owl-prev","owl-next"],slideBy:1,dotClass:"owl-dot",dotsClass:"owl-dots",dots:!0,dotsEach:!1,dotsData:!1,dotsSpeed:!1,dotsContainer:!1},e.prototype.initialize=function(){var b,c=this._core.settings;this._controls.$relative=(c.navContainer?a(c.navContainer):a("<div>").addClass(c.navContainerClass).appendTo(this.$element)).addClass("disabled"),this._controls.$previous=a("<"+c.navElement+">").addClass(c.navClass[0]).html(c.navText[0]).prependTo(this._controls.$relative).on("click",a.proxy(function(a){this.prev(c.navSpeed)},this)),this._controls.$next=a("<"+c.navElement+">").addClass(c.navClass[1]).html(c.navText[1]).appendTo(this._controls.$relative).on("click",a.proxy(function(a){this.next(c.navSpeed)},this)),c.dotsData||(this._templates=[a('<button role="button">').addClass(c.dotClass).append(a("<span>")).prop("outerHTML")]),this._controls.$absolute=(c.dotsContainer?a(c.dotsContainer):a("<div>").addClass(c.dotsClass).appendTo(this.$element)).addClass("disabled"),this._controls.$absolute.on("click","button",a.proxy(function(b){var d=a(b.target).parent().is(this._controls.$absolute)?a(b.target).index():a(b.target).parent().index();b.preventDefault(),this.to(d,c.dotsSpeed)},this));for(b in this._overrides)this._core[b]=a.proxy(this[b],this)},e.prototype.destroy=function(){var a,b,c,d,e;e=this._core.settings;for(a in this._handlers)this.$element.off(a,this._handlers[a]);for(b in this._controls)"$relative"===b&&e.navContainer?this._controls[b].html(""):this._controls[b].remove();for(d in this.overides)this._core[d]=this._overrides[d];for(c in Object.getOwnPropertyNames(this))"function"!=typeof this[c]&&(this[c]=null)},e.prototype.update=function(){var a,b,c,d=this._core.clones().length/2,e=d+this._core.items().length,f=this._core.maximum(!0),g=this._core.settings,h=g.center||g.autoWidth||g.dotsData?1:g.dotsEach||g.items;if("page"!==g.slideBy&&(g.slideBy=Math.min(g.slideBy,g.items)),g.dots||"page"==g.slideBy)for(this._pages=[],a=d,b=0,c=0;a<e;a++){if(b>=h||0===b){if(this._pages.push({start:Math.min(f,a-d),end:a-d+h-1}),Math.min(f,a-d)===f)break;b=0,++c}b+=this._core.mergers(this._core.relative(a))}},e.prototype.draw=function(){var b,c=this._core.settings,d=this._core.items().length<=c.items,e=this._core.relative(this._core.current()),f=c.loop||c.rewind;this._controls.$relative.toggleClass("disabled",!c.nav||d),c.nav&&(this._controls.$previous.toggleClass("disabled",!f&&e<=this._core.minimum(!0)),this._controls.$next.toggleClass("disabled",!f&&e>=this._core.maximum(!0))),this._controls.$absolute.toggleClass("disabled",!c.dots||d),c.dots&&(b=this._pages.length-this._controls.$absolute.children().length,c.dotsData&&0!==b?this._controls.$absolute.html(this._templates.join("")):b>0?this._controls.$absolute.append(new Array(b+1).join(this._templates[0])):b<0&&this._controls.$absolute.children().slice(b).remove(),this._controls.$absolute.find(".active").removeClass("active"),this._controls.$absolute.children().eq(a.inArray(this.current(),this._pages)).addClass("active"))},e.prototype.onTrigger=function(b){var c=this._core.settings;b.page={index:a.inArray(this.current(),this._pages),count:this._pages.length,size:c&&(c.center||c.autoWidth||c.dotsData?1:c.dotsEach||c.items)}},e.prototype.current=function(){var b=this._core.relative(this._core.current());return a.grep(this._pages,a.proxy(function(a,c){return a.start<=b&&a.end>=b},this)).pop()},e.prototype.getPosition=function(b){var c,d,e=this._core.settings;return"page"==e.slideBy?(c=a.inArray(this.current(),this._pages),d=this._pages.length,b?++c:--c,c=this._pages[(c%d+d)%d].start):(c=this._core.relative(this._core.current()),d=this._core.items().length,b?c+=e.slideBy:c-=e.slideBy),c},e.prototype.next=function(b){a.proxy(this._overrides.to,this._core)(this.getPosition(!0),b)},e.prototype.prev=function(b){a.proxy(this._overrides.to,this._core)(this.getPosition(!1),b)},e.prototype.to=function(b,c,d){var e;!d&&this._pages.length?(e=this._pages.length,a.proxy(this._overrides.to,this._core)(this._pages[(b%e+e)%e].start,c)):a.proxy(this._overrides.to,this._core)(b,c)},a.fn.owlCarousel.Constructor.Plugins.Navigation=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){"use strict";var e=function(c){this._core=c,this._hashes={},this.$element=this._core.$element,this._handlers={"initialized.owl.carousel":a.proxy(function(c){c.namespace&&"URLHash"===this._core.settings.startPosition&&a(b).trigger("hashchange.owl.navigation")},this),"prepared.owl.carousel":a.proxy(function(b){if(b.namespace){var c=a(b.content).find("[data-hash]").addBack("[data-hash]").attr("data-hash");if(!c)return;this._hashes[c]=b.content}},this),"changed.owl.carousel":a.proxy(function(c){if(c.namespace&&"position"===c.property.name){var d=this._core.items(this._core.relative(this._core.current())),e=a.map(this._hashes,function(a,b){return a===d?b:null}).join();if(!e||b.location.hash.slice(1)===e)return;b.location.hash=e}},this)},this._core.options=a.extend({},e.Defaults,this._core.options),this.$element.on(this._handlers),a(b).on("hashchange.owl.navigation",a.proxy(function(a){var c=b.location.hash.substring(1),e=this._core.$stage.children(),f=this._hashes[c]&&e.index(this._hashes[c]);f!==d&&f!==this._core.current()&&this._core.to(this._core.relative(f),!1,!0)},this))};e.Defaults={URLhashListener:!1},e.prototype.destroy=function(){var c,d;a(b).off("hashchange.owl.navigation");for(c in this._handlers)this._core.$element.off(c,this._handlers[c]);for(d in Object.getOwnPropertyNames(this))"function"!=typeof this[d]&&(this[d]=null)},a.fn.owlCarousel.Constructor.Plugins.Hash=e}(window.Zepto||window.jQuery,window,document),function(a,b,c,d){function e(b,c){var e=!1,f=b.charAt(0).toUpperCase()+b.slice(1);return a.each((b+" "+h.join(f+" ")+f).split(" "),function(a,b){if(g[b]!==d)return e=!c||b,!1}),e}function f(a){return e(a,!0)}var g=a("<support>").get(0).style,h="Webkit Moz O ms".split(" "),i={transition:{end:{WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd",transition:"transitionend"}},animation:{end:{WebkitAnimation:"webkitAnimationEnd",MozAnimation:"animationend",OAnimation:"oAnimationEnd",animation:"animationend"}}},j={csstransforms:function(){return!!e("transform")},csstransforms3d:function(){return!!e("perspective")},csstransitions:function(){return!!e("transition")},cssanimations:function(){return!!e("animation")}};j.csstransitions()&&(a.support.transition=new String(f("transition")),a.support.transition.end=i.transition.end[a.support.transition]),j.cssanimations()&&(a.support.animation=new String(f("animation")),a.support.animation.end=i.animation.end[a.support.animation]),j.csstransforms()&&(a.support.transform=new String(f("transform")),a.support.transform3d=j.csstransforms3d())}(window.Zepto||window.jQuery,window,document);
vendor: 713 bytes, lines 17-24
17 18/*! 19 * clipboard.js v2.0.4 20 * https://zenorocha.github.io/clipboard.js 21 * 22 * Licensed MIT © Zeno Rocha 23 */ 24!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return function(n){var o={};function r(t){if(o[t])return o[t].exports;var e=o[t]={i:t,l:!1,exports:{}};return n[t].call(e.exports,e,e.exports,r),e.l=!0,e.exports}return r.m=n,r.c=o,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}
24),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=0)}([function(t,e,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i=function(){function o(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(t,e,n){return e&&o(t.prototype,e),n&&o(t,n),t}}(),a=o(n(1)),c=o(n(3)),u=o(n(4));function o(t){return t&&t.__esModule?t:{default:t}}var l=function(t){function o(t,e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,o);var n=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,(o.__proto__||Object.getPrototypeOf(o)).call(this));return n.resolveOptions(e),n.listenClick(t),n}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(o,c.default),i(o,[{key:"resolveOptions",value:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof t.action?t.action:this.defaultAction,this.target="function"==typeof t.target?t.target:this.defaultTarget,this.text="function"==typeof t.text?t.text:this.defaultText,this.container="object"===r(t.container)?t.container:document.body}},{key:"listenClick",value:function(t){var e=this;this.listener=(0,u.default)(t,"click",function(t){return e.onClick(t)})}},{key:"onClick",value:function(t){var e=t.delegateTarget||t.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new a.default({action:this.action(e),target:this.target(e),text:this.text(e),container:this.container,trigger:e,emitter:this})}},{key:"defaultAction",value:function(t){return s("action",t)}},{key:"defaultTarget",value:function(t){var e=s("target",t);if(e)return document.querySelector(e)}},{key:"defaultText",value:function(t){return s("text",t)}},{key:"destroy",value:function(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}],[{key:"isSupported",value:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:["copy","cut"],e="string"==typeof t?[t]:t,n=!!document.queryCommandSupported;return e.forEach(function(t){n=n&&!!document.queryCommandSupported(t)}),n}}]),o}();function s(t,e){var n="data-clipboard-"+t;if(e.hasAttribute(n))return e.getAttribute(n)}t.exports=l},function(t,e,n){"use strict";var o,r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i=function(){function o(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(t,e,n){return e&&o(t.prototype,e),n&&o(t,n),t}}(),a=n(2),c=(o=a)&&o.__esModule?o:{default:o};var u=function(){function e(t){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),this.resolveOptions(t),this.initSelection()}return i(e,[{key:"resolveOptions",value:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};this.action=t.action,this.container=t.container,this.emitter=t.emitter,this.target=t.target,this.text=t.text,this.trigger=t.trigger,this.selectedText=""}}
vendor: 2,910 bytes, line 24
24,{key:"initSelection",value:function(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"selectFake",value:function(){var t=this,e="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandlerCallback=function(){return t.removeFake()},this.fakeHandler=this.container.addEventListener("click",this.fakeHandlerCallback)||!0,this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[e?"right":"left"]="-9999px";var n=window.pageYOffset||document.documentElement.scrollTop;this.fakeElem.style.top=n+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,this.container.appendChild(this.fakeElem),this.selectedText=(0,c.default)(this.fakeElem),this.copyText()}},{key:"removeFake",value:function(){this.fakeHandler&&(this.container.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(this.container.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function(){this.selectedText=(0,c.default)(this.target),this.copyText()}},{key:"copyText",value:function(){var e=void 0;try{e=document.execCommand(this.action)}catch(t){e=!1}this.handleResult(e)}},{key:"handleResult",value:function(t){this.emitter.emit(t?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function(){this.trigger&&this.trigger.focus(),window.getSelection().removeAllRanges()}},{key:"destroy",value:function(){this.removeFake()}},{key:"action",set:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:"copy";if(this._action=t,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function(){return this._action}},{key:"target",set:function(t){if(void 0!==t){if(!t||"object"!==(void 0===t?"undefined":r(t))||1!==t.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&t.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(t.hasAttribute("readonly")||t.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=t}},get:function(){return this._target}}]),e}();t.exports=u},function(t,e){t.exports=function(t){var e;if("SELECT"===t.nodeName)t.focus(),e=t.value;else if("INPUT"===t.nodeName||"TEXTAREA"===t.nodeName){var n=t.hasAttribute("readonly");n||t.setAttribute("readonly",""),t.select(),t.setSelectionRange(0,t.value.length),n||t.removeAttribute("readonly"),e=t.value}
24else{t.hasAttribute("contenteditable")&&t.focus();var o=window.getSelection(),r=document.createRange();r.selectNodeContents(t),o.removeAllRanges(),o.addRange(r),e=o.toString()}return e}},function(t,e){function n(){}n.prototype={on:function(t,e,n){var o=this.e||(this.e={});return(o[t]||(o[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){var o=this;function r(){o.off(t,r),e.apply(n,arguments)}return r._=e,this.on(t,r,n)},emit:function(t){for(var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),o=0,r=n.length;o<r;o++)n[o].fn.apply(n[o].ctx,e);return this},off:function(t,e){var n=this.e||(this.e={}),o=n[t],r=[];if(o&&e)for(var i=0,a=o.length;i<a;i++)o[i].fn!==e&&o[i].fn._!==e&&r.push(o[i]);return r.length?n[t]=r:delete n[t],this}},t.exports=n},function(t,e,n){var d=n(5),h=n(6);t.exports=function(t,e,n){if(!t&&!e&&!n)throw new Error("Missing required arguments");if(!d.string(e))throw new TypeError("Second argument must be a String");if(!d.fn(n))throw new TypeError("Third argument must be a Function");if(d.node(t))return s=e,f=n,(l=t).addEventListener(s,f),{destroy:function(){l.removeEventListener(s,f)}};if(d.nodeList(t))return a=t,c=e,u=n,Array.prototype.forEach.call(a,function(t){t.addEventListener(c,u)}),{destroy:function(){Array.prototype.forEach.call(a,function(t){t.removeEventListener(c,u)})}};if(d.string(t))return o=t,r=e,i=n,h(document.body,o,r,i);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList");var o,r,i,a,c,u,l,s,f}},function(t,n){n.node=function(t){return void 0!==t&&t instanceof HTMLElement&&1===t.nodeType},n.nodeList=function(t){var e=Object.prototype.toString.call(t);return void 0!==t&&("[object NodeList]"===e||"[object HTMLCollection]"===e)&&"length"in t&&(0===t.length||n.node(t[0]))},n.string=function(t){return"string"==typeof t||t instanceof String},n.fn=function(t){return"[object Function]"===Object.prototype.toString.call(t)}},function(t,e,n){var a=n(7);function i(t,e,n,o,r){var i=function(e,n,t,o){return function(t){t.delegateTarget=a(t.target,n),t.delegateTarget&&o.call(e,t)}}.apply(this,arguments);return t.addEventListener(n,i,r),{destroy:function(){t.removeEventListener(n,i,r)}}}t.exports=function(t,e,n,o,r){return"function"==typeof t.addEventListener?i.apply(null,arguments):"function"==typeof n?i.bind(null,document).apply(null,arguments):("string"==typeof t&&(t=document.querySelectorAll(t)),Array.prototype.map.call(t,function(t){return i(t,e,n,o,r)}))}},function(t,e){if("undefined"!=typeof Element&&!Element.prototype.matches){var n=Element.prototype;n.matches=n.matchesSelector||n.mozMatchesSelector||n.msMatchesSelector||n.oMatchesSelector||n.webkitMatchesSelector}t.exports=function(t,e){for(;t&&9!==t.nodeType;){if("function"==typeof t.matches&&t.matches(e))return t;t=t.parentNode}}}])}); 25/*! selectize.js - v0.12.6 | https://github.com/selectize/selectize.js | Apache License (v2) */ 26 27!function(a,b){"function"==typeof define&&define.amd?define("sifter",b):"object"==typeof exports?module.exports=b():a.Sifter=b()}(this,function(){var a=function(a,b){this.items=a,this.settings=b||{diacritics:!0}};a.prototype.tokenize=function(a){if(!(a=e(String(a||"").toLowerCase()))||!a.length)return[];var b,c,d,g,i=[],j=a.split(/ +/);for(b=0,c=j.length;b<c;b++){if(d=f(j[b]),this.settings.diacritics)for(g in h)h.hasOwnProperty(g)&&(d=d.replace(new RegExp(g,"g"),h[g]));i.push({string:j[b],regex:new RegExp(d,"i")})}return i},a.prototype.iterator=function(a,b){var c;c=g(a)?Array.prototype.forEach||function(a){for(var b=0,c=this.length;b<c;b++)a(this[b],b,this)}:function(a){for(var b in this)this.hasOwnProperty(b)&&a(this[b],b,this)},c.apply(a,[b])},a.prototype.getScoreFunction=function(a,b){var c,e,f,g,h;c=this,a=c.prepareSearch(a,b),f=a.tokens,e=a.options.fields,g=f.length,h=a.options.nesting;var i=function(a,b){var c,d;return a?(a=String(a||""),-1===(d=a.search(b.regex))?0:(c=b.string.length/a.length,0===d&&(c+=.5),c)):0},j=function(){var a=e.length;return a?1===a?function(a,b){return i(d(b,e[0],h),a)}:function(b,c){for(var f=0,g=0;f<a;f++)g+=i(d(c,e[f],h),b);return g/a}:function(){return 0}}();return g?1===g?function(a){return j(f[0],a)}:"and"===a.options.conjunction?function(a){for(var b,c=0,d=0;c<g;c++){if((b=j(f[c],a))<=0)return 0;d+=b}return d/g}:function(a){for(var b=0,c=0;b<g;b++)c+=j(f[b],a);return c/g}:function(){return 0}},a.prototype.getSortFunction=function(a,c){var e,f,g,h,i,j,k,l,m,n,o;if(g=this,a=g.prepareSearch(a,c),o=!a.query&&c.sort_empty||c.sort,m=function(a,b){return"$score"===a?b.score:d(g.items[b.id],a,c.nesting)},i=[],o)for(e=0,f=o.length;e<f;e++)(a.query||"$score"!==o[e].field)&&i.push(o[e]);
vendor: 4,800 bytes, line 27
27if(a.query){for(n=!0,e=0,f=i.length;e<f;e++)if("$score"===i[e].field){n=!1;break}n&&i.unshift({field:"$score",direction:"desc"})}else for(e=0,f=i.length;e<f;e++)if("$score"===i[e].field){i.splice(e,1);break}for(l=[],e=0,f=i.length;e<f;e++)l.push("desc"===i[e].direction?-1:1);return j=i.length,j?1===j?(h=i[0].field,k=l[0],function(a,c){return k*b(m(h,a),m(h,c))}):function(a,c){var d,e,f;for(d=0;d<j;d++)if(f=i[d].field,e=l[d]*b(m(f,a),m(f,c)))return e;return 0}:null},a.prototype.prepareSearch=function(a,b){if("object"==typeof a)return a;b=c({},b);var d=b.fields,e=b.sort,f=b.sort_empty;return d&&!g(d)&&(b.fields=[d]),e&&!g(e)&&(b.sort=[e]),f&&!g(f)&&(b.sort_empty=[f]),{options:b,query:String(a||"").toLowerCase(),tokens:this.tokenize(a),total:0,items:[]}},a.prototype.search=function(a,b){var c,d,e,f,g=this;return d=this.prepareSearch(a,b),b=d.options,a=d.query,f=b.score||g.getScoreFunction(d),a.length?g.iterator(g.items,function(a,e){c=f(a),(!1===b.filter||c>0)&&d.items.push({score:c,id:e})}):g.iterator(g.items,function(a,b){d.items.push({score:1,id:b})}),e=g.getSortFunction(d,b),e&&d.items.sort(e),d.total=d.items.length,"number"==typeof b.limit&&(d.items=d.items.slice(0,b.limit)),d};var b=function(a,b){return"number"==typeof a&&"number"==typeof b?a>b?1:a<b?-1:0:(a=i(String(a||"")),b=i(String(b||"")),a>b?1:b>a?-1:0)},c=function(a,b){var c,d,e,f;for(c=1,d=arguments.length;c<d;c++)if(f=arguments[c])for(e in f)f.hasOwnProperty(e)&&(a[e]=f[e]);return a},d=function(a,b,c){if(a&&b){if(!c)return a[b];for(var d=b.split(".");d.length&&(a=a[d.shift()]););return a}},e=function(a){return(a+"").replace(/^\s+|\s+$|/g,"")},f=function(a){return(a+"").replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")},g=Array.isArray||"undefined"!=typeof $&&$.isArray||function(a){return"[object Array]"===Object.prototype.toString.call(a)},h={a:"[aá¸á¸ÄÄÃâÇÇȺⱥȦȧẠạÃäÃà ÃáÄÄÃãÃ
Ã¥Ä
ÄÃÄ
Ä]",b:"[bâ¢Î²ÎB฿ðá]",c:"[cÄÄÄÄÄÄÄÄCÌcÌÃçá¸á¸È»È¼ÆÆÉá´ï¼£ï½]",d:"[dÄÄá¸á¸á¸á¸á¸á¸á¸á¸á¸á¸ÄÄD̦d̦ÆÉÆÉÆÆáµá¶á¶È¡á´
Dï½Ã°]",e:"[eÃéÃèÃêá¸á¸ÄÄÄÄẼẽá¸á¸áººáº»ÄÄÃëÄÄȨȩÄÄá¶ÉÉÈÈ
Ếếá»á»á»á»
á»á»á¸á¸á¸á¸á¸á¸ÈÈẸẹá»á»â±¸á´ï¼¥ï½
ÉÇÆÆÎµ]",f:"[fÆÆá¸á¸]",g:"[gÉ¢â²Ç¤Ç¥ÄÄÄÄĢģÆÉ Ä Ä¡]",h:"[hĤĥĦħḨḩáºáºá¸¤á¸¥á¸¢á¸£É¦Ê°Ç¶Æ]",i:"[iÃÃÃìĬÄÃîÇÇÃïḮḯĨĩĮįĪīá»á»ÈÈÈÈá»á»á¸¬á¸ÆÉ¨É¨Ìáµ»á¶Ä°iIıɪIï½]",j:"[jȷĴĵÉÉÊÉʲ]",k:"[kÆÆêêḰḱǨǩḲḳḴḵκϰâ]",l:"[lÅÅĽľĻļĹĺḶḷḸḹḼḽḺḻĿÅȽÆâ± ⱡⱢɫɬá¶
ÉÈ´ÊLï½]",n:"[nÅÅǸǹÅÅÃñá¹á¹
Å
Åá¹á¹á¹á¹á¹á¹NÌnÌÆÉ²È Æáµ°á¶É³ÈµÉ´ï¼®ï½ÅÅ]",o:"[oÃøÃöÃóÃòÃôÇÇÅÅÅÅȮȯá»á»ÆÉµÆ Æ¡á»á»ÅÅÃõǪǫÈÈÕÖ
]",p:"[pá¹á¹á¹á¹â±£áµ½Æ¤Æ¥áµ±]",q:"[qêêÊ ÉÉêêqÌ]",r:"[rÅÅÉÉÅÅÅÅá¹á¹ÈÈÈÈá¹á¹â±¤É½]",s:"[sÅÅṠṡṢṣê¨ê©ÅÅÅ Å¡ÅÅÈÈSÌsÌ]",t:"[tÅ¤Å¥á¹ªá¹«Å¢Å£á¹¬á¹Æ®ÊÈÈṰṱṮṯƬÆ]",u:"[uŬÅÉÊỤụÃüÃúÃùÃûÇÇŰűŬů¯Æ°á»¦á»§ÅªÅ«Å¨Å©Å²Å³ÈÈâª]",v:"[vṼṽṾṿƲÊêêâ±±Ê]",w:"[wáºáºáºáºÅ´Åµáºáº
áºáºáºáº]",x:"[xáºáºáºáºÏ]",y:"[yÃýỲỳŶŷŸÿỸỹáºáºá»´á»µÉÉÆ³Æ´]",z:"[zŹźáºáºÅ½Å¾Å»Å¼áºáºáºáºÆµÆ¶]"},i=function(){var a,b,c,d,e="",f={};for(c in h)if(h.hasOwnProperty(c))for(d=h[c].substring(2,h[c].length-1),e+=d,a=0,b=d.length;a<b;a++)f[d.charAt(a)]=c;var g=new RegExp("["+e+"]","g");return function(a){return a.replace(g,function(a){return f[a]}).toLowerCase()}}();return a}),function(a,b){"function"==typeof define&&define.amd?define("microplugin",b):"object"==typeof exports?module.exports=b():a.MicroPlugin=b()}(this,function(){var a={};a.mixin=function(a){a.plugins={},a.prototype.initializePlugins=function(a){var c,d,e,f=this,g=[];if(f.plugins={names:[],settings:{},requested:{},loaded:{}},b.isArray(a))for(c=0,d=a.length;c<d;c++)"string"==typeof a[c]?g.push(a[c]):(f.plugins.settings[a[c].name]=a[c].options,g.push(a[c].name));else if(a)for(e in a)a.hasOwnProperty(e)&&(f.plugins.settings[e]=a[e],g.push(e));for(;g.length;)f.require(g.shift())},a.prototype.loadPlugin=function(b){var c=this,d=c.plugins,e=a.plugins[b];if(!a.plugins.hasOwnProperty(b))throw new Error('Unable to find "'+b+'" plugin');d.requested[b]=!0,d.loaded[b]=e.fn.apply(c,[c.plugins.settings[b]||{}]),d.names.push(b)},a.prototype.require=function(a){var b=this,c=b.plugins;if(!b.plugins.loaded.hasOwnProperty(a)){if(c.requested[a])throw new Error('Plugin has circular dependency ("'+a+'")');b.loadPlugin(a)}return c.loaded[a]},a.define=function(b,c){a.plugins[b]={name:b,fn:c}}};var b={isArray:Array.isArray||function(a){return"[object Array]"===Object.prototype.toString.call(a)}};return a}),function(a,b){"function"==typeof define&&define.amd?define("selectize",
vendor: 23,564 bytes, line 27
27["jquery","sifter","microplugin"],b):"object"==typeof exports?module.exports=b(require("jquery"),require("sifter"),require("microplugin")):a.Selectize=b(a.jQuery,a.Sifter,a.MicroPlugin)}(this,function(a,b,c){"use strict";var d=function(a,b){if("string"!=typeof b||b.length){var c="string"==typeof b?new RegExp(b,"i"):b,d=function(a){var b=0;if(3===a.nodeType){var e=a.data.search(c);if(e>=0&&a.data.length>0){var f=a.data.match(c),g=document.createElement("span");g.className="highlight";var h=a.splitText(e),i=(h.splitText(f[0].length),h.cloneNode(!0));g.appendChild(i),h.parentNode.replaceChild(g,h),b=1}}else if(1===a.nodeType&&a.childNodes&&!/(script|style)/i.test(a.tagName)&&("highlight"!==a.className||"SPAN"!==a.tagName))for(var j=0;j<a.childNodes.length;++j)j+=d(a.childNodes[j]);return b};return a.each(function(){d(this)})}};a.fn.removeHighlight=function(){return this.find("span.highlight").each(function(){this.parentNode.firstChild.nodeName;var a=this.parentNode;a.replaceChild(this.firstChild,this),a.normalize()}).end()};var e=function(){};e.prototype={on:function(a,b){this._events=this._events||{},this._events[a]=this._events[a]||[],this._events[a].push(b)},off:function(a,b){var c=arguments.length;return 0===c?delete this._events:1===c?delete this._events[a]:(this._events=this._events||{},void(a in this._events!=!1&&this._events[a].splice(this._events[a].indexOf(b),1)))},trigger:function(a){if(this._events=this._events||{},a in this._events!=!1)for(var b=0;b<this._events[a].length;b++)this._events[a][b].apply(this,Array.prototype.slice.call(arguments,1))}},e.mixin=function(a){for(var b=["on","off","trigger"],c=0;c<b.length;c++)a.prototype[b[c]]=e.prototype[b[c]]};var f=/Mac/.test(navigator.userAgent),g=f?91:17,h=f?18:17,i=!/android/i.test(window.navigator.userAgent)&&!!document.createElement("input").validity,j=function(a){return void 0!==a},k=function(a){return void 0===a||null===a?null:"boolean"==typeof a?a?"1":"0":a+""},l=function(a){return(a+"").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")},m={};m.before=function(a,b,c){var d=a[b];a[b]=function(){return c.apply(a,arguments),d.apply(a,arguments)}},m.after=function(a,b,c){var d=a[b];a[b]=function(){var b=d.apply(a,arguments);return c.apply(a,arguments),b}};var n=function(a){var b=!1;return function(){b||(b=!0,a.apply(this,arguments))}},o=function(a,b){var c;return function(){var d=this,e=arguments;window.clearTimeout(c),c=window.setTimeout(function(){a.apply(d,e)},b)}},p=function(a,b,c){var d,e=a.trigger,f={};a.trigger=function(){var c=arguments[0];if(-1===b.indexOf(c))return e.apply(a,arguments);f[c]=arguments},c.apply(a,[]),a.trigger=e;for(d in f)f.hasOwnProperty(d)&&e.apply(a,f[d])},q=function(a,b,c,d){a.on(b,c,function(b){for(var c=b.target;c&&c.parentNode!==a[0];)c=c.parentNode;return b.currentTarget=c,d.apply(this,[b])})},r=function(a){var b={};if("selectionStart"in a)b.start=a.selectionStart,b.length=a.selectionEnd-b.start;else if(document.selection){a.focus();var c=document.selection.createRange(),d=document.selection.createRange().text.length;c.moveStart("character",-a.value.length),b.start=c.text.length-d,b.length=d}return b},s=function(a,b,c){var d,e,f={};if(c)for(d=0,e=c.length;d<e;d++)f[c[d]]=a.css(c[d]);else f=a.css();b.css(f)},t=function(b,c){return b?(w.$testInput||(w.$testInput=a("<span />").css({position:"absolute",top:-99999,left:-99999,width:"auto",padding:0,whiteSpace:"pre"}).appendTo("body")),w.$testInput.text(b),s(c,w.$testInput,["letterSpacing","fontSize","fontFamily","fontWeight","textTransform"]),w.$testInput.width()):0},u=function(a){var b=null,c=function(c,d){var e,f,g,h,i,j,k,l;c=c||window.event||{},d=d||{},c.metaKey||c.altKey||(d.force||!1!==a.data("grow"))&&(e=a.val(),c.type&&"keydown"===c.type.toLowerCase()&&(f=c.keyCode,g=f>=48&&f<=57||f>=65&&f<=90||f>=96&&f<=111||f>=186&&f<=222||32===f,46===f||8===f?(l=r(a[0]),l.length?e=e.substring(0,l.start)+e.substring(l.start+l.length):8===f&&l.start?e=e.substring(0,l.start-1)+e.substring(l.start+1):46===f&&void 0!==l.start&&(e=e.substring(0,l.start)+e.substring(l.start+1))):g&&(j=c.shiftKey,k=String.fromCharCode(c.keyCode),k=j?k.toUpperCase():k.toLowerCase(),e+=k)),h=a.attr("placeholder"),!e&&h&&(e=h),(i=t(e,a)+4)!==b&&(b=i,a.width(i),a.triggerHandler("resize")))};a.on("keydown keyup update blur",c),c()},v=function(a){var b=document.createElement("div");return b.appendChild(a.cloneNode(!0)),b.innerHTML},w=function(c,d){var e,f,g,h,i=this;h=c[0],h.selectize=i;var j=window.getComputedStyle&&window.getComputedStyle(h,null);if(g=j?j.getPropertyValue("direction"):h.currentStyle&&h.currentStyle.direction,g=g||c.parents("[dir]:first").attr("dir")||"",a.extend(i,{order:0,settings:d,$input:c,tabIndex:c.attr("tabindex")||"",tagType:"select"===h.tagName.toLowerCase()?1:2,rtl:/rtl/i.test(g),eventNS:".selectize"+ ++w.count,highlightedValue:null,isBlurring:!1,isOpen:!1,isDisabled:!1,isRequired:c.is("[required]"),isInvalid:!1,isLocked:!1,isFocused:!1,isInputHidden:!1,isSetup:!1,isShiftDown:!1,isCmdDown:!1,isCtrlDown:!1,ignoreFocus:!1,ignoreBlur:!1,ignoreHover:!1,hasOptions:!1,currentResults:null,lastValue:"",caretPos:0,loading:0,loadedSearches:{},$activeOption:null,$activeItems:[],optgroups:{},options:{},userOptions:{},items:[],renderCache:{},onSearchChange:null===d.loadThrottle?i.onSearchChange:o(i.onSearchChange,d.loadThrottle)}),i.sifter=new b(this.options,{diacritics:d.diacritics}),i.settings.options){for(e=0,f=i.settings.options.length;e<f;e++)i.registerOption(i.settings.options[e]);delete i.settings.options}if(i.settings.optgroups){for(e=0,f=i.settings.optgroups.length;e<f;e++)i.registerOptionGroup(i.settings.optgroups[e]);delete i.settings.optgroups}i.settings.mode=i.settings.mode||(1===i.settings.maxItems?"single":"multi"),"boolean"!=typeof i.settings.hideSelected&&(i.settings.hideSelected="multi"===i.settings.mode),i.initializePlugins(i.settings.plugins),i.setupCallbacks(),i.setupTemplates(),i.setup()};return e.mixin(w),void 0!==c?c.mixin(w):function(a,b){b||(b={});console.error("Selectize: "+a),b.explanation&&(console.group&&console.group(),console.error(b.explanation),console.group&&console.groupEnd())}("Dependency MicroPlugin is missing",{explanation:'Make sure you either: (1) are using the "standalone" version of Selectize, or (2) require MicroPlugin before you load Selectize.'}),a.extend(w.prototype,{setup:function(){var b,c,d,e,j,k,l,m,n,o,p=this,r=p.settings,s=p.eventNS,t=a(window),v=a(document),w=p.$input;if(l=p.settings.mode,m=w.attr("class")||"",b=a("<div>").addClass(r.wrapperClass).addClass(m).addClass(l),c=a("<div>").addClass(r.inputClass).addClass("items").appendTo(b),d=a('<input type="text" autocomplete="off" />').appendTo(c).attr("tabindex",w.is(":disabled")?"-1":p.tabIndex),k=a(r.dropdownParent||b),e=a("<div>").addClass(r.dropdownClass).addClass(l).hide().appendTo(k),j=a("<div>").addClass(r.dropdownContentClass).appendTo(e),(o=w.attr("id"))&&(d.attr("id",o+"-selectized"),a("label[for='"+o+"']").attr("for",o+"-selectized")),p.settings.copyClassesToDropdown&&e.addClass(m),b.css({width:w[0].style.width}),p.plugins.names.length&&(n="plugin-"+p.plugins.names.join(" plugin-"),b.addClass(n),e.addClass(n)),(null===r.maxItems||r.maxItems>1)&&1===p.tagType&&w.attr("multiple","multiple"),p.settings.placeholder&&d.attr("placeholder",r.placeholder),!p.settings.splitOn&&p.settings.delimiter){var x=p.settings.delimiter.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&");p.settings.splitOn=new RegExp("\\s*"+x+"+\\s*")}w.attr("autocorrect")&&d.attr("autocorrect",w.attr("autocorrect")),w.attr("autocapitalize")&&d.attr("autocapitalize",w.attr("autocapitalize")),d[0].type=w[0].type,p.$wrapper=b,p.$control=c,p.$control_input=d,p.$dropdown=e,p.$dropdown_content=j,e.on("mouseenter mousedown click","[data-disabled]>[data-selectable]",function(a){a.stopImmediatePropagation()}),e.on("mouseenter","[data-selectable]",function(){return p.onOptionHover.apply(p,arguments)}),e.on("mousedown click","[data-selectable]",function(){return p.onOptionSelect.apply(p,arguments)}),q(c,"mousedown","*:not(input)",function(){return p.onItemSelect.apply(p,arguments)}),u(d),c.on({mousedown:function(){return p.onMouseDown.apply(p,arguments)},click:function(){return p.onClick.apply(p,arguments)}}),d.on({mousedown:function(a){a.stopPropagation()},keydown:function(){return p.onKeyDown.apply(p,arguments)},keyup:function(){return p.onKeyUp.apply(p,arguments)},keypress:function(){return p.onKeyPress.apply(p,arguments)},resize:function(){p.positionDropdown.apply(p,[])},blur:function(){return p.onBlur.apply(p,arguments)},focus:function(){return p.ignoreBlur=!1,p.onFocus.apply(p,arguments)},paste:function(){return p.onPaste.apply(p,arguments)}}),v.on("keydown"+s,function(a){p.isCmdDown=a[f?"metaKey":"ctrlKey"],p.isCtrlDown=a[f?"altKey":"ctrlKey"],p.isShiftDown=a.shiftKey}),v.on("keyup"+s,function(a){a.keyCode===h&&(p.isCtrlDown=!1),16===a.keyCode&&(p.isShiftDown=!1),a.keyCode===g&&(p.isCmdDown=!1)}),v.on("mousedown"+s,function(a){if(p.isFocused){if(a.target===p.$dropdown[0]||a.target.parentNode===p.$dropdown[0])return!1;p.$control.has(a.target).length||a.target===p.$control[0]||p.blur(a.target)}}),t.on(["scroll"+s,"resize"+s].join(" "),function(){p.isOpen&&p.positionDropdown.apply(p,arguments)}),t.on("mousemove"+s,function(){p.ignoreHover=!1}),this.revertSettings={$children:w.children().detach(),tabindex:w.attr("tabindex")},w.attr("tabindex",-1).hide().after(p.$wrapper),a.isArray(r.items)&&(p.setValue(r.items),delete r.items),i&&w.on("invalid"+s,function(a){a.preventDefault(),p.isInvalid=!0,p.refreshState()}),p.updateOriginalInput(),p.refreshItems(),p.refreshState(),p.updatePlaceholder(),p.isSetup=!0,w.is(":disabled")&&p.disable(),p.on("change",this.onChange),w.data("selectize",p),w.addClass("selectized"),p.trigger("initialize"),!0===r.preload&&p.onSearchChange("")},setupTemplates:function(){var b=this,c=b.settings.labelField,d=b.settings.optgroupLabelField,e={optgroup:function(a){return'<div class="optgroup">'+a.html+"</div>"},optgroup_header:function(a,b){return'<div class="optgroup-header">'+b(a[d])+"</div>"},option:function(a,b){return'<div class="option">'+b(a[c])+"</div>"},item:function(a,b){return'<div class="item">'+b(a[c])+"</div>"},option_create:function(a,b){return'<div class="create">Add <strong>'+b(a.input)+"</strong>…</div>"}};b.settings.render=a.extend({},e,b.settings.render)},setupCallbacks:function(){var a,b,c={initialize:"onInitialize",change:"onChange",item_add:"onItemAdd",item_remove:"onItemRemove",clear:"onClear",option_add:"onOptionAdd",option_remove:"onOptionRemove",option_clear:"onOptionClear",optgroup_add:"onOptionGroupAdd",optgroup_remove:"onOptionGroupRemove",optgroup_clear:"onOptionGroupClear",dropdown_open:"onDropdownOpen",dropdown_close:"onDropdownClose",type:"onType",load:"onLoad",focus:"onFocus",blur:"onBlur"};for(a in c)c.hasOwnProperty(a)&&(b=this.settings[c[a]])&&this.on(a,b)},onClick:function(a){var b=this;b.isFocused&&b.isOpen||(b.focus(),a.preventDefault())},onMouseDown:function(b){var c=this,d=b.isDefaultPrevented();a(b.target);if(c.isFocused){if(b.target!==c.$control_input[0])return"single"===c.settings.mode?c.isOpen?c.close():c.open():d||c.setActiveItem(null),!1}else d||window.setTimeout(function(){c.focus()},0)},onChange:function(){this.$input.trigger("change")},onPaste:function(b){var c=this;if(c.isFull()||c.isInputHidden||c.isLocked)return void b.preventDefault();c.settings.splitOn&&setTimeout(function(){var b=c.$control_input.val();if(b.match(c.settings.splitOn))for(var d=a.trim(b).split(c.settings.splitOn),e=0,f=d.length;e<f;e++)c.createItem(d[e])},0)},onKeyPress:function(a){if(this.isLocked)return a&&a.preventDefault();var b=String.fromCharCode(a.keyCode||a.which);return this.settings.create&&"multi"===this.settings.mode&&b===this.settings.delimiter?(this.createItem(),a.preventDefault(),!1):void 0},onKeyDown:function(a){var b=(a.target,this.$control_input[0],this);if(b.isLocked)return void(9!==a.keyCode&&a.preventDefault());switch(a.keyCode){case 65:if(b.isCmdDown)return void b.selectAll();break;case 27:return void(b.isOpen&&(a.preventDefault(),a.stopPropagation(),b.close()));case 78:if(!a.ctrlKey||a.altKey)break;case 40:if(!b.isOpen&&b.hasOptions)b.open();else if(b.$activeOption){b.ignoreHover=!0;var c=b.getAdjacentOption(b.$activeOption,1);c.length&&b.setActiveOption(c,!0,!0)}return void a.preventDefault();case 80:if(!a.ctrlKey||a.altKey)break;case 38:if(b.$activeOption){b.ignoreHover=!0;var d=b.getAdjacentOption(b.$activeOption,-1);d.length&&b.setActiveOption(d,!0,!0)}return void a.preventDefault();case 13:return void(b.isOpen&&b.$activeOption&&(b.onOptionSelect({currentTarget:b.$activeOption}),a.preventDefault()));case 37:return void b.advanceSelection(-1,a);case 39:return void b.advanceSelection(1,a);case 9:return b.settings.selectOnTab&&b.isOpen&&b.$activeOption&&(b.onOptionSelect({currentTarget:b.$activeOption}),b.isFull()||a.preventDefault()),void(b.settings.create&&b.createItem()&&a.preventDefault());case 8:case 46:return void b.deleteSelection(a)}return!b.isFull()&&!b.isInputHidden||(f?a.metaKey:a.ctrlKey)?void 0:void a.preventDefault()},onKeyUp:function(a){var b=this;if(b.isLocked)return a&&a.preventDefault();var c=b.$control_input.val()||"";b.lastValue!==c&&(b.lastValue=c,b.onSearchChange(c),b.refreshOptions(),b.trigger("type",c))},onSearchChange:function(a){var b=this,c=b.settings.load;c&&(b.loadedSearches.hasOwnProperty(a)||(b.loadedSearches[a]=!0,b.load(function(d){c.apply(b,[a,d])})))},onFocus:function(a){var b=this,c=b.isFocused;if(b.isDisabled)return b.blur(),a&&a.preventDefault(),!1;b.ignoreFocus||(b.isFocused=!0,"focus"===b.settings.preload&&b.onSearchChange(""),c||b.trigger("focus"),b.$activeItems.length||(b.showInput(),b.setActiveItem(null),b.refreshOptions(!!b.settings.openOnFocus)),b.refreshState())},onBlur:function(a,b){var c=this;if(c.isFocused&&(c.isFocused=!1,!c.ignoreFocus)){if(!c.ignoreBlur&&document.activeElement===c.$dropdown_content[0])return c.ignoreBlur=!0,void c.onFocus(a);var d=function(){c.close(),c.setTextboxValue(""),c.setActiveItem(null),c.setActiveOption(null),c.setCaret(c.items.length),c.refreshState(),b&&b.focus&&b.focus(),c.isBlurring=!1,c.ignoreFocus=!1,c.trigger("blur")};c.isBlurring=!0,c.ignoreFocus=!0,c.settings.create&&c.settings.createOnBlur?c.createItem(null,!1,d):d()}},onOptionHover:function(a){this.ignoreHover||this.setActiveOption(a.currentTarget,!1)},onOptionSelect:function(b){var c,d,e=this;b.preventDefault&&(b.preventDefault(),b.stopPropagation()),d=a(b.currentTarget),d.hasClass("create")?e.createItem(null,function(){e.settings.closeAfterSelect&&e.close()}):void 0!==(c=d.attr("data-value"))&&(e.lastQuery=null,e.setTextboxValue(""),e.addItem(c),e.settings.closeAfterSelect?e.close():!e.settings.hideSelected&&b.type&&/mouse/.test(b.type)&&e.setActiveOption(e.getOption(c)))},onItemSelect:function(a){var b=this;b.isLocked||"multi"===b.settings.mode&&(a.preventDefault(),b.setActiveItem(a.currentTarget,a))},load:function(a){var b=this,c=b.$wrapper.addClass(b.settings.loadingClass);b.loading++,a.apply(b,[function(a){b.loading=Math.max(b.loading-1,0),a&&a.length&&(b.addOption(a),b.refreshOptions(b.isFocused&&!b.isInputHidden)),b.loading||c.removeClass(b.settings.loadingClass),b.trigger("load",a)}])},setTextboxValue:function(a){var b=this.$control_input;b.val()!==a&&(b.val(a).triggerHandler("update"),this.lastValue=a)},getValue:function(){return 1===this.tagType&&this.$input.attr("multiple")?this.items:this.items.join(this.settings.delimiter)},setValue:function(a,b){p(this,b?[]:["change"],function(){this.clear(b),this.addItems(a,b)})},setActiveItem:function(b,c){var d,e,f,g,h,i,j,k,l=this;if("single"!==l.settings.mode){if(b=a(b),!b.length)return a(l.$activeItems).removeClass("active"),l.$activeItems=[],void(l.isFocused&&l.showInput());if("mousedown"===(d=c&&c.type.toLowerCase())&&l.isShiftDown&&l.$activeItems.length){for(k=l.$control.children(".active:last"),g=Array.prototype.indexOf.apply(l.$control[0].childNodes,[k[0]]),h=Array.prototype.indexOf.apply(l.$control[0].childNodes,[b[0]]),g>h&&(j=g,g=h,h=j),e=g;e<=h;e++)i=l.$control[0].childNodes[e],-1===l.$activeItems.indexOf(i)&&(a(i).addClass("active"),l.$activeItems.push(i));c.preventDefault()}else"mousedown"===d&&l.isCtrlDown||"keydown"===d&&this.isShiftDown?b.hasClass("active")?(f=l.$activeItems.indexOf(b[0]),l.$activeItems.splice(f,1),b.removeClass("active")):l.$activeItems.push(b.addClass("active")[0]):(a(l.$activeItems).removeClass("active"),l.$activeItems=[b.addClass("active")[0]]);l.hideInput(),this.isFocused||l.focus()}},setActiveOption:function(b,c,d){var e,f,g,h,i,k=this;k.$activeOption&&k.$activeOption.removeClass("active"),k.$activeOption=null,b=a(b),b.length&&(k.$activeOption=b.addClass("active"),!c&&j(c)||(e=k.$dropdown_content.height(),f=k.$activeOption.outerHeight(!0),c=k.$dropdown_content.scrollTop()||0,g=k.$activeOption.offset().top-k.$dropdown_content.offset().top+c,h=g,i=g-e+f,g+f>e+c?k.$dropdown_content.stop().animate({scrollTop:i},d?k.settings.scrollDuration:0):g<c&&k.$dropdown_content.stop().animate({scrollTop:h},d?k.settings.scrollDuration:0)))},selectAll:function(){var a=this;"single"!==a.settings.mode&&(a.$activeItems=Array.prototype.slice.apply(a.$control.children(":not(input)").addClass("active")),a.$activeItems.length&&(a.hideInput(),a.close()),a.focus())},hideInput:function(){var a=this;a.setTextboxValue(""),a.$control_input.css({opacity:0,position:"absolute",left:a.rtl?1e4:-1e4}),a.isInputHidden=!0},showInput:function(){this.$control_input.css({opacity:1,position:"relative",left:0}),this.isInputHidden=!1},focus:function(){var a=this;a.isDisabled||(a.ignoreFocus=!0,a.$control_input[0].focus(),window.setTimeout(function(){a.ignoreFocus=!1,a.onFocus()},0))},blur:function(a){this.$control_input[0].blur(),this.onBlur(null,a)},getScoreFunction:function(a){return this.sifter.getScoreFunction(a,this.getSearchOptions())},getSearchOptions:function(){var a=this.settings,b=a.sortField;return"string"==typeof b&&(b=[{field:b}]),{fields:a.searchField,conjunction:a.searchConjunction,sort:b,nesting:a.nesting}},search:function(b){var c,d,e,f=this,g=f.settings,h=this.getSearchOptions();if(g.score&&"function"!=typeof(e=f.settings.score.apply(this,[b])))throw new Error('Selectize "score" setting must be a function that returns a function');if(b!==f.lastQuery?(f.lastQuery=b,d=f.sifter.search(b,a.extend(h,{score:e})),f.currentResults=d):d=a.extend(!0,{},f.currentResults),g.hideSelected)for(c=d.items.length-1;c>=0;c--)-1!==f.items.indexOf(k(d.items[c].id))&&d.items.splice(c,1);return d},refreshOptions:function(b){var c,e,f,g,h,i,j,l,m,n,o,p,q,r,s,t;void 0===b&&(b=!0);var u=this,w=a.trim(u.$control_input.val()),x=u.search(w),y=u.$dropdown_content,z=u.$activeOption&&k(u.$activeOption.attr("data-value"));for(g=x.items.length,"number"==typeof u.settings.maxOptions&&(g=Math.min(g,u.settings.maxOptions)),h={},i=[],c=0;c<g;c++)for(j=u.options[x.items[c].id],l=u.render("option",j),m=j[u.settings.optgroupField]||"",n=a.isArray(m)?m:[m],e=0,f=n&&n.length;e<f;e++)m=n[e],u.optgroups.hasOwnProperty(m)||(m=""),h.hasOwnProperty(m)||(h[m]=document.createDocumentFragment(),i.push(m)),h[m].appendChild(l);for(this.settings.lockOptgroupOrder&&i.sort(function(a,b){return(u.optgroups[a].$order||0)-(u.optgroups[b].$order||0)}),o=document.createDocumentFragment(),c=0,g=i.length;c<g;c++)m=i[c],u.optgroups.hasOwnProperty(m)&&h[m].childNodes.length?(p=document.createDocumentFragment(),p.appendChild(u.render("optgroup_header",u.optgroups[m])),p.appendChild(h[m]),o.appendChild(u.render("optgroup",a.extend({},u.optgroups[m],{html:v(p),dom:p})))):o.appendChild(h[m]);if(y.html(o),u.settings.highlight&&(y.removeHighlight(),x.query.length&&x.tokens.length))for(c=0,g=x.tokens.length;c<g;c++)d(y,x.tokens[c].regex);if(!u.settings.hideSelected)for(c=0,g=u.items.length;c<g;c++)u.getOption(u.items[c]).addClass("selected");q=u.canCreate(w),q&&(y.prepend(u.render("option_create",{input:w})),t=a(y[0].childNodes[0])),u.hasOptions=x.items.length>0||q,u.hasOptions?(x.items.length>0?(s=z&&u.getOption(z),s&&s.length?r=s:"single"===u.settings.mode&&u.items.length&&(r=u.getOption(u.items[0])),r&&r.length||(r=t&&!u.settings.addPrecedence?u.getAdjacentOption(t,1):y.find("[data-selectable]:first"))):r=t,u.setActiveOption(r),b&&!u.isOpen&&u.open()):(u.setActiveOption(null),b&&u.isOpen&&u.close())},addOption:function(b){var c,d,e,f=this;if(a.isArray(b))for(c=0,d=b.length;c<d;c++)f.addOption(b[c]);else(e=f.registerOption(b))&&(f.userOptions[e]=!0,f.lastQuery=null,f.trigger("option_add",e,b))},registerOption:function(a){var b=k(a[this.settings.valueField]);return void 0!==b&&null!==b&&!this.options.hasOwnProperty(b)&&(a.$order=a.$order||++this.order,this.options[b]=a,b)},registerOptionGroup:function(a){var b=k(a[this.settings.optgroupValueField]);return!!b&&(a.$order=a.$order||++this.order,this.optgroups[b]=a,b)},addOptionGroup:function(a,b){b[this.settings.optgroupValueField]=a,(a=this.registerOptionGroup(b))&&this.trigger("optgroup_add",a,b)},removeOptionGroup:function(a){this.optgroups.hasOwnProperty(a)&&(delete this.optgroups[a],this.renderCache={},this.trigger("optgroup_remove",a))},clearOptionGroups:function(){this.optgroups={},this.renderCache={},this.trigger("optgroup_clear")},updateOption:function(b,c){var d,e,f,g,h,i,j,l=this;if(b=k(b),f=k(c[l.settings.valueField]),null!==b&&l.options.hasOwnProperty(b)){if("string"!=typeof f)throw new Error("Value must be set in option data");j=l.options[b].$order,f!==b&&(delete l.options[b],-1!==(g=l.items.indexOf(b))&&l.items.splice(g,1,f)),c.$order=c.$order||j,l.options[f]=c,h=l.renderCache.item,i=l.renderCache.option,h&&(delete h[b],delete h[f]),i&&(delete i[b],delete i[f]),-1!==l.items.indexOf(f)&&(d=l.getItem(b),e=a(l.render("item",c)),d.hasClass("active")&&e.addClass("active"),d.replaceWith(e)),l.lastQuery=null,l.isOpen&&l.refreshOptions(!1)}},removeOption:function(a,b){var c=this;a=k(a);var d=c.renderCache.item,e=c.renderCache.option;d&&delete d[a],e&&delete e[a],delete c.userOptions[a],delete c.options[a],c.lastQuery=null,c.trigger("option_remove",a),c.removeItem(a,b)},clearOptions:function(){var b=this;b.loadedSearches={},b.userOptions={},b.renderCache={};var c=b.options;a.each(b.options,function(a,d){-1==b.items.indexOf(a)&&delete c[a]}),b.options=b.sifter.items=c,b.lastQuery=null,b.trigger("option_clear")},getOption:function(a){return this.getElementWithValue(a,this.$dropdown_content.find("[data-selectable]"))},getAdjacentOption:function(b,c){var d=this.$dropdown.find("[data-selectable]"),e=d.index(b)+c;return e>=0&&e<d.length?d.eq(e):a()},getElementWithValue:function(b,c){if(void 0!==(b=k(b))&&null!==b)for(var d=0,e=c.length;d<e;d++)if(c[d].getAttribute("data-value")===b)return a(c[d]);return a()},getItem:function(a){return this.getElementWithValue(a,this.$control.children())},addItems:function(b,c){this.buffer=document.createDocumentFragment();for(var d=this.$control[0].childNodes,e=0;e<d.length;e++)this.buffer.appendChild(d[e]);for(var f=a.isArray(b)?b:[b],e=0,g=f.length;e<g;e++)this.isPending=e<g-1,this.addItem(f[e],c);var h=this.$control[0];h.insertBefore(this.buffer,h.firstChild),this.buffer=null},addItem:function(b,c){p(this,c?[]:["change"],function(){var d,e,f,g,h,i=this,j=i.settings.mode;if(b=k(b),-1!==i.items.indexOf(b))return void("single"===j&&i.close());i.options.hasOwnProperty(b)&&("single"===j&&i.clear(c),"multi"===j&&i.isFull()||(d=a(i.render("item",i.options[b])),h=i.isFull(),i.items.splice(i.caretPos,0,b),i.insertAtCaret(d
vendor: 15,627 bytes, lines 27-28
27),(!i.isPending||!h&&i.isFull())&&i.refreshState(),i.isSetup&&(f=i.$dropdown_content.find("[data-selectable]"),i.isPending||(e=i.getOption(b),g=i.getAdjacentOption(e,1).attr("data-value"),i.refreshOptions(i.isFocused&&"single"!==j),g&&i.setActiveOption(i.getOption(g))),!f.length||i.isFull()?i.close():i.isPending||i.positionDropdown(),i.updatePlaceholder(),i.trigger("item_add",b,d),i.isPending||i.updateOriginalInput({silent:c}))))})},removeItem:function(b,c){var d,e,f,g=this;d=b instanceof a?b:g.getItem(b),b=k(d.attr("data-value")),-1!==(e=g.items.indexOf(b))&&(d.remove(),d.hasClass("active")&&(f=g.$activeItems.indexOf(d[0]),g.$activeItems.splice(f,1)),g.items.splice(e,1),g.lastQuery=null,!g.settings.persist&&g.userOptions.hasOwnProperty(b)&&g.removeOption(b,c),e<g.caretPos&&g.setCaret(g.caretPos-1),g.refreshState(),g.updatePlaceholder(),g.updateOriginalInput({silent:c}),g.positionDropdown(),g.trigger("item_remove",b,d))},createItem:function(b,c){var d=this,e=d.caretPos;b=b||a.trim(d.$control_input.val()||"");var f=arguments[arguments.length-1];if("function"!=typeof f&&(f=function(){}),"boolean"!=typeof c&&(c=!0),!d.canCreate(b))return f(),!1;d.lock();var g="function"==typeof d.settings.create?this.settings.create:function(a){var b={};return b[d.settings.labelField]=a,b[d.settings.valueField]=a,b},h=n(function(a){if(d.unlock(),!a||"object"!=typeof a)return f();var b=k(a[d.settings.valueField]);if("string"!=typeof b)return f();d.setTextboxValue(""),d.addOption(a),d.setCaret(e),d.addItem(b),d.refreshOptions(c&&"single"!==d.settings.mode),f(a)}),i=g.apply(this,[b,h]);return void 0!==i&&h(i),!0},refreshItems:function(){this.lastQuery=null,this.isSetup&&this.addItem(this.items),this.refreshState(),this.updateOriginalInput()},refreshState:function(){this.refreshValidityState(),this.refreshClasses()},refreshValidityState:function(){if(!this.isRequired)return!1;var a=!this.items.length;this.isInvalid=a,this.$control_input.prop("required",a),this.$input.prop("required",!a)},refreshClasses:function(){var b=this,c=b.isFull(),d=b.isLocked;b.$wrapper.toggleClass("rtl",b.rtl),b.$control.toggleClass("focus",b.isFocused).toggleClass("disabled",b.isDisabled).toggleClass("required",b.isRequired).toggleClass("invalid",b.isInvalid).toggleClass("locked",d).toggleClass("full",c).toggleClass("not-full",!c).toggleClass("input-active",b.isFocused&&!b.isInputHidden).toggleClass("dropdown-active",b.isOpen).toggleClass("has-options",!a.isEmptyObject(b.options)).toggleClass("has-items",b.items.length>0),b.$control_input.data("grow",!c&&!d)},isFull:function(){ 28return null!==this.settings.maxItems&&this.items.length>=this.settings.maxItems},updateOriginalInput:function(a){var b,c,d,e,f=this;if(a=a||{},1===f.tagType){for(d=[],b=0,c=f.items.length;b<c;b++)e=f.options[f.items[b]][f.settings.labelField]||"",d.push('<option value="'+l(f.items[b])+'" selected="selected">'+l(e)+"</option>");d.length||this.$input.attr("multiple")||d.push('<option value="" selected="selected"></option>'),f.$input.html(d.join(""))}else f.$input.val(f.getValue()),f.$input.attr("value",f.$input.val());f.isSetup&&(a.silent||f.trigger("change",f.$input.val()))},updatePlaceholder:function(){if(this.settings.placeholder){var a=this.$control_input;this.items.length?a.removeAttr("placeholder"):a.attr("placeholder",this.settings.placeholder),a.triggerHandler("update",{force:!0})}},open:function(){var a=this;a.isLocked||a.isOpen||"multi"===a.settings.mode&&a.isFull()||(a.focus(),a.isOpen=!0,a.refreshState(),a.$dropdown.css({visibility:"hidden",display:"block"}),a.positionDropdown(),a.$dropdown.css({visibility:"visible"}),a.trigger("dropdown_open",a.$dropdown))},close:function(){var a=this,b=a.isOpen;"single"===a.settings.mode&&a.items.length&&(a.hideInput(),a.isBlurring||a.$control_input.blur()),a.isOpen=!1,a.$dropdown.hide(),a.setActiveOption(null),a.refreshState(),b&&a.trigger("dropdown_close",a.$dropdown)},positionDropdown:function(){var a=this.$control,b="body"===this.settings.dropdownParent?a.offset():a.position();b.top+=a.outerHeight(!0),this.$dropdown.css({width:a[0].getBoundingClientRect().width,top:b.top,left:b.left})},clear:function(a){var b=this;b.items.length&&(b.$control.children(":not(input)").remove(),b.items=[],b.lastQuery=null,b.setCaret(0),b.setActiveItem(null),b.updatePlaceholder(),b.updateOriginalInput({silent:a}),b.refreshState(),b.showInput(),b.trigger("clear"))},insertAtCaret:function(a){var b=Math.min(this.caretPos,this.items.length),c=a[0],d=this.buffer||this.$control[0];0===b?d.insertBefore(c,d.firstChild):d.insertBefore(c,d.childNodes[b]),this.setCaret(b+1)},deleteSelection:function(b){var c,d,e,f,g,h,i,j,k,l=this;if(e=b&&8===b.keyCode?-1:1,f=r(l.$control_input[0]),l.$activeOption&&!l.settings.hideSelected&&(i=l.getAdjacentOption(l.$activeOption,-1).attr("data-value")),g=[],l.$activeItems.length){for(k=l.$control.children(".active:"+(e>0?"last":"first")),h=l.$control.children(":not(input)").index(k),e>0&&h++,c=0,d=l.$activeItems.length;c<d;c++)g.push(a(l.$activeItems[c]).attr("data-value"));b&&(b.preventDefault(),b.stopPropagation())}else(l.isFocused||"single"===l.settings.mode)&&l.items.length&&(e<0&&0===f.start&&0===f.length?g.push(l.items[l.caretPos-1]):e>0&&f.start===l.$control_input.val().length&&g.push(l.items[l.caretPos]));if(!g.length||"function"==typeof l.settings.onDelete&&!1===l.settings.onDelete.apply(l,[g]))return!1;for(void 0!==h&&l.setCaret(h);g.length;)l.removeItem(g.pop());return l.showInput(),l.positionDropdown(),l.refreshOptions(!0),i&&(j=l.getOption(i),j.length&&l.setActiveOption(j)),!0},advanceSelection:function(a,b){var c,d,e,f,g,h=this;0!==a&&(h.rtl&&(a*=-1),c=a>0?"last":"first",d=r(h.$control_input[0]),h.isFocused&&!h.isInputHidden?(f=h.$control_input.val().length,(a<0?0===d.start&&0===d.length:d.start===f)&&!f&&h.advanceCaret(a,b)):(g=h.$control.children(".active:"+c),g.length&&(e=h.$control.children(":not(input)").index(g),h.setActiveItem(null),h.setCaret(a>0?e+1:e))))},advanceCaret:function(a,b){var c,d,e=this;0!==a&&(c=a>0?"next":"prev",e.isShiftDown?(d=e.$control_input[c](),d.length&&(e.hideInput(),e.setActiveItem(d),b&&b.preventDefault())):e.setCaret(e.caretPos+a))},setCaret:function(b){var c=this;if(b="single"===c.settings.mode?c.items.length:Math.max(0,Math.min(c.items.length,b)),!c.isPending){var d,e,f,g;for(f=c.$control.children(":not(input)"),d=0,e=f.length;d<e;d++)g=a(f[d]).detach(),d<b?c.$control_input.before(g):c.$control.append(g)}c.caretPos=b},lock:function(){this.close(),this.isLocked=!0,this.refreshState()},unlock:function(){this.isLocked=!1,this.refreshState()},disable:function(){var a=this;a.$input.prop("disabled",!0),a.$control_input.prop("disabled",!0).prop("tabindex",-1),a.isDisabled=!0,a.lock()},enable:function(){var a=this;a.$input.prop("disabled",!1),a.$control_input.prop("disabled",!1).prop("tabindex",a.tabIndex),a.isDisabled=!1,a.unlock()},destroy:function(){var b=this,c=b.eventNS,d=b.revertSettings;b.trigger("destroy"),b.off(),b.$wrapper.remove(),b.$dropdown.remove(),b.$input.html("").append(d.$children).removeAttr("tabindex").removeClass("selectized").attr({tabindex:d.tabindex}).show(),b.$control_input.removeData("grow"),b.$input.removeData("selectize"),0==--w.count&&w.$testInput&&(w.$testInput.remove(),w.$testInput=void 0),a(window).off(c),a(document).off(c),a(document.body).off(c),delete b.$input[0].selectize},render:function(b,c){var d,e,f="",g=!1,h=this;return"option"!==b&&"item"!==b||(d=k(c[h.settings.valueField]),g=!!d),g&&(j(h.renderCache[b])||(h.renderCache[b]={}),h.renderCache[b].hasOwnProperty(d))?h.renderCache[b][d]:(f=a(h.settings.render[b].apply(this,[c,l])),"option"===b||"option_create"===b?c[h.settings.disabledField]||f.attr("data-selectable",""):"optgroup"===b&&(e=c[h.settings.optgroupValueField]||"",f.attr("data-group",e),c[h.settings.disabledField]&&f.attr("data-disabled","")),"option"!==b&&"item"!==b||f.attr("data-value",d||""),g&&(h.renderCache[b][d]=f[0]),f[0])},clearCache:function(a){var b=this;void 0===a?b.renderCache={}:delete b.renderCache[a]},canCreate:function(a){var b=this;if(!b.settings.create)return!1;var c=b.settings.createFilter;return a.length&&("function"!=typeof c||c.apply(b,[a]))&&("string"!=typeof c||new RegExp(c).test(a))&&(!(c instanceof RegExp)||c.test(a))}}),w.count=0,w.defaults={options:[],optgroups:[],plugins:[],delimiter:",",splitOn:null,persist:!0,diacritics:!0,create:!1,createOnBlur:!1,createFilter:null,highlight:!0,openOnFocus:!0,maxOptions:1e3,maxItems:null,hideSelected:null,addPrecedence:!1,selectOnTab:!1,preload:!1,allowEmptyOption:!1,closeAfterSelect:!1,scrollDuration:60,loadThrottle:300,loadingClass:"loading",dataAttr:"data-data",optgroupField:"optgroup",valueField:"value",labelField:"text",disabledField:"disabled",optgroupLabelField:"label",optgroupValueField:"value",lockOptgroupOrder:!1,sortField:"$order",searchField:["text"],searchConjunction:"and",mode:null,wrapperClass:"selectize-control",inputClass:"selectize-input",dropdownClass:"selectize-dropdown",dropdownContentClass:"selectize-dropdown-content",dropdownParent:null,copyClassesToDropdown:!0,render:{}},a.fn.selectize=function(b){var c=a.fn.selectize.defaults,d=a.extend({},c,b),e=d.dataAttr,f=d.labelField,g=d.valueField,h=d.disabledField,i=d.optgroupField,j=d.optgroupLabelField,l=d.optgroupValueField,m=function(b,c){var h,i,j,k,l=b.attr(e);if(l)for(c.options=JSON.parse(l),h=0,i=c.options.length;h<i;h++)c.items.push(c.options[h][g]);else{var m=a.trim(b.val()||"");if(!d.allowEmptyOption&&!m.length)return;for(j=m.split(d.delimiter),h=0,i=j.length;h<i;h++)k={},k[f]=j[h],k[g]=j[h],c.options.push(k);c.items=j}},n=function(b,c){var m,n,o,p,q=c.options,r={},s=function(a){var b=e&&a.attr(e);return"string"==typeof b&&b.length?JSON.parse(b):null},t=function(b,e){b=a(b);var j=k(b.val());if(j||d.allowEmptyOption)if(r.hasOwnProperty(j)){if(e){var l=r[j][i];l?a.isArray(l)?l.push(e):r[j][i]=[l,e]:r[j][i]=e}}else{var m=s(b)||{};m[f]=m[f]||b.text(),m[g]=m[g]||j,m[h]=m[h]||b.prop("disabled"),m[i]=m[i]||e,r[j]=m,q.push(m),b.is(":selected")&&c.items.push(j)}};for(c.maxItems=b.attr("multiple")?null:1,p=b.children(),m=0,n=p.length;m<n;m++)o=p[m].tagName.toLowerCase(),"optgroup"===o?function(b){var d,e,f,g,i;for(b=a(b),f=b.attr("label"),f&&(g=s(b)||{},g[j]=f,g[l]=f,g[h]=b.prop("disabled"),c.optgroups.push(g)),i=a("option",b),d=0,e=i.length;d<e;d++)t(i[d],f)}(p[m]):"option"===o&&t(p[m])};return this.each(function(){if(!this.selectize){var e=a(this),f=this.tagName.toLowerCase(),g=e.attr("placeholder")||e.attr("data-placeholder");g||d.allowEmptyOption||(g=e.children('option[value=""]').text());var h={placeholder:g,options:[],optgroups:[],items:[]};"select"===f?n(e,h):m(e,h),new w(e,a.extend(!0,{},c,h,b))}})},a.fn.selectize.defaults=w.defaults,a.fn.selectize.support={validity:i},w.define("drag_drop",function(b){if(!a.fn.sortable)throw new Error('The "drag_drop" plugin requires jQuery UI "sortable".');if("multi"===this.settings.mode){var c=this;c.lock=function(){var a=c.lock;return function(){var b=c.$control.data("sortable");return b&&b.disable(),a.apply(c,arguments)}}(),c.unlock=function(){var a=c.unlock;return function(){var b=c.$control.data("sortable");return b&&b.enable(),a.apply(c,arguments)}}(),c.setup=function(){var b=c.setup;return function(){b.apply(this,arguments);var d=c.$control.sortable({items:"[data-value]",forcePlaceholderSize:!0,disabled:c.isLocked,start:function(a,b){b.placeholder.css("width",b.helper.css("width")),d.css({overflow:"visible"})},stop:function(){d.css({overflow:"hidden"});var b=c.$activeItems?c.$activeItems.slice():null,e=[];d.children("[data-value]").each(function(){e.push(a(this).attr("data-value"))}),c.setValue(e),c.setActiveItem(b)}})}}()}}),w.define("dropdown_header",function(b){var c=this;b=a.extend({title:"Untitled",headerClass:"selectize-dropdown-header",titleRowClass:"selectize-dropdown-header-title",labelClass:"selectize-dropdown-header-label",closeClass:"selectize-dropdown-header-close",html:function(a){return'<div class="'+a.headerClass+'"><div class="'+a.titleRowClass+'"><span class="'+a.labelClass+'">'+a.title+'</span><a href="javascript:void(0)" class="'+a.closeClass+'">×</a></div></div>'}},b),c.setup=function(){var d=c.setup;return function(){d.apply(c,arguments),c.$dropdown_header=a(b.html(b)),c.$dropdown.prepend(c.$dropdown_header)}}()}),w.define("optgroup_columns",function(b){var c=this;b=a.extend({equalizeWidth:!0,equalizeHeight:!0},b),this.getAdjacentOption=function(b,c){var d=b.closest("[data-group]").find("[data-selectable]"),e=d.index(b)+c;return e>=0&&e<d.length?d.eq(e):a()},this.onKeyDown=function(){var a=c.onKeyDown;return function(b){var d,e,f,g;return!this.isOpen||37!==b.keyCode&&39!==b.keyCode?a.apply(this,arguments):(c.ignoreHover=!0,g=this.$activeOption.closest("[data-group]"),d=g.find("[data-selectable]").index(this.$activeOption),g=37===b.keyCode?g.prev("[data-group]"):g.next("[data-group]"),f=g.find("[data-selectable]"),e=f.eq(Math.min(f.length-1,d)),void(e.length&&this.setActiveOption(e)))}}();var d=function(){var a,b=d.width,c=document;return void 0===b&&(a=c.createElement("div"),a.innerHTML='<div style="width:50px;height:50px;position:absolute;left:-50px;top:-50px;overflow:auto;"><div style="width:1px;height:100px;"></div></div>',a=a.firstChild,c.body.appendChild(a),b=d.width=a.offsetWidth-a.clientWidth,c.body.removeChild(a)),b},e=function(){var e,f,g,h,i,j,k;if(k=a("[data-group]",c.$dropdown_content),(f=k.length)&&c.$dropdown_content.width()){if(b.equalizeHeight){for(g=0,e=0;e<f;e++)g=Math.max(g,k.eq(e).height());k.css({height:g})}b.equalizeWidth&&(j=c.$dropdown_content.innerWidth()-d(),h=Math.round(j/f),k.css({width:h}),f>1&&(i=j-h*(f-1),k.eq(f-1).css({width:i})))}};(b.equalizeHeight||b.equalizeWidth)&&(m.after(this,"positionDropdown",e),m.after(this,"refreshOptions",e))}),w.define("remove_button",function(b){b=a.extend({label:"×",title:"Remove",className:"remove",append:!0},b);if("single"===this.settings.mode)return void function(b,c){c.className="remove-single";var d=b,e='<a href="javascript:void(0)" class="'+c.className+'" tabindex="-1" title="'+l(c.title)+'">'+c.label+"</a>",f=function(b,c){return a("<span>").append(b).append(c)};b.setup=function(){var g=d.setup;return function(){if(c.append){var h=a(d.$input.context).attr("id"),i=(a("#"+h),d.settings.render.item);d.settings.render.item=function(a){return f(i.apply(b,arguments),e)}}g.apply(b,arguments),b.$control.on("click","."+c.className,function(a){a.preventDefault(),d.isLocked||d.clear()})}}()}(this,b);!function(b,c){var d=b,e='<a href="javascript:void(0)" class="'+c.className+'" tabindex="-1" title="'+l(c.title)+'">'+c.label+"</a>",f=function(a,b){var c=a.search(/(<\/[^>]+>\s*)$/);return a.substring(0,c)+b+a.substring(c)};b.setup=function(){var g=d.setup;return function(){if(c.append){var h=d.settings.render.item;d.settings.render.item=function(a){return f(h.apply(b,arguments),e)}}g.apply(b,arguments),b.$control.on("click","."+c.className,function(b){if(b.preventDefault(),!d.isLocked){var c=a(b.currentTarget).parent();d.setActiveItem(c),d.deleteSelection()&&d.setCaret(d.items.length)}})}}()}(this,b)}),w.define("restore_on_backspace",function(a){var b=this;a.text=a.text||function(a){return a[this.settings.labelField]},this.onKeyDown=function(){var c=b.onKeyDown;return function(b){var d,e;return 8===b.keyCode&&""===this.$control_input.val()&&!this.$activeItems.length&&(d=this.caretPos-1)>=0&&d<this.items.length?(e=this.options[this.items[d]],this.deleteSelection(b)&&(this.setTextboxValue(a.text.apply(this,[e])),this.refreshOptions(!0)),void b.preventDefault()):c.apply(this,arguments)}}()}),w});
28Selectize.define("disable_options",function(t){var e,n=this;t=$.extend({disableOptions:[]},t),n.onFocus=(e=n.onFocus,function(){e.apply(this,arguments),$.each(t.disableOptions,function(t,e){n.$dropdown_content.find('[data-value="'+String(e)+'"]').addClass("option-disabled").removeAttr('data-selectable')})}),n.onOptionSelect=function(){var t=n.onOptionSelect;return function(e){var a,i;if(e.preventDefault&&(e.preventDefault(),e.stopPropagation()),!(i=$(e.currentTarget)).hasClass("option-disabled"))return i.hasClass("create")?n.createItem():((a=i.attr("data-value"))&&(n.lastQuery=null,n.setTextboxValue(""),n.addItem(a),!n.settings.hideSelected&&e.type&&/mouse/.test(e.type)&&n.setActiveOption(n.getOption(a))),n.blur()),t.apply(this,arguments)}}()}); 29// Sticky Plugin v1.0.4 for jQuery 30// ============= 31// Author: Anthony Garand 32// Improvements by German M. Bravo (Kronuz) and Ruud Kamphuis (ruudk) 33// Improvements by Leonardo C. Daronco (daronco) 34// Created: 02/14/2011 35// Date: 07/20/2015 36// Website: http://stickyjs.com/ 37// Description: Makes an element on the page stick on the screen as you scroll 38// It will only set the 'top' and 'position' of your element, you 39// might need to adjust the width in some cases. 40 41(function (factory) { 42 if (typeof define === 'function' && define.amd) { 43 // AMD. Register as an anonymous module. 44 define(['jquery'], factory); 45 } else if (typeof module === 'object' && module.exports) { 46 // Node/CommonJS 47 module.exports = factory(require('jquery')); 48 } else { 49 // Browser globals 50 factory(jQuery); 51 } 52}(function ($) { 53 var slice = Array.prototype.slice; // save ref to original slice() 54 var splice = Array.prototype.splice; // save ref to original slice() 55 56 var defaults = { 57 topSpacing: 0, 58 bottomSpacing: 0, 59 className: 'is-sticky', 60 wrapperClassName: 'sticky-wrapper', 61 center: false, 62 getWidthFrom: '', 63 widthFromWrapper: true, // works only when .getWidthFrom is empty 64 responsiveWidth: false, 65 zIndex: 'inherit' 66 }, 67 $window = $(window), 68 $document = $(document), 69 sticked = [], 70 windowHeight = $window.height(), 71 scroller = function() { 72 var scrollTop = $window.scrollTop(), 73 documentHeight = $document.height(), 74 dwh = documentHeight - windowHeight, 75 extra = (scrollTop > dwh) ? dwh - scrollTop : 0; 76 77 for (var i = 0, l = sticked.length; i < l; i++) { 78 var s = sticked[i], 79 elementTop = s.stickyWrapper.offset().top, 80 etse = elementTop - s.topSpacing - extra; 81 82 //update height in case of dynamic content 83 s.stickyWrapper.css('height', s.stickyElement.outerHeight()); 84 85 if (scrollTop <= etse) { 86 if (s.currentTop !== null) { 87 s.stickyElement 88 .css({ 89 'width': '', 90 'position': '', 91 'top': '', 92 'z-index': '' 93 }); 94 s.stickyElement.parent().removeClass(s.className); 95 s.stickyElement.trigger('sticky-end', [s]); 96 s.currentTop = null; 97 } 98 } 99 else { 100 var newTop = documentHeight - s.stickyElement.outerHeight() 101 - s.topSpacing - s.bottomSpacing - scrollTop - extra; 102 if (newTop < 0) { 103 newTop = newTop + s.topSpacing; 104 } else { 105 newTop = s.topSpacing; 106 } 107 if (s.currentTop !== newTop) { 108 var newWidth; 109 if (s.getWidthFrom) { 110 padding = s.stickyElement.innerWidth() - s.stickyElement.width(); 111 newWidth = $(s.getWidthFrom).width() - padding || null; 112 } else if (s.widthFromWrapper) { 113 newWidth = s.stickyWrapper.width(); 114 } 115 if (newWidth == null) { 116 newWidth = s.stickyElement.width(); 117 } 118 s.stickyElement 119 .css('width', newWidth) 120 .css('position', 'fixed') 121 .css('top', newTop) 122 .css('z-index', s.zIndex); 123 124 s.stickyElement.parent().addClass(s.className); 125 126 if (s.currentTop === null) { 127 s.stickyElement.trigger('sticky-start', [s]); 128 } else { 129 // sticky is started but it have to be repositioned 130 s.stickyElement.trigger('sticky-update', [s]); 131 } 132 133 if (s.currentTop === s.topSpacing && s.currentTop > newTop || s.currentTop === null && newTop < s.topSpacing) { 134 // just reached bottom || just started to stick but bottom is already reached 135 s.stickyElement.trigger('sticky-bottom-reached', [s]); 136 } else if(s.currentTop !== null && newTop === s.topSpacing && s.currentTop < newTop) { 137 // sticky is started && sticked at topSpacing && overflowing from top just finished 138 s.stickyElement.trigger('sticky-bottom-unreached', [s]); 139 } 140 141 s.currentTop = newTop; 142 } 143 144 // Check if sticky has reached end of container and stop sticking 145 var stickyWrapperContainer = s.stickyWrapper.parent(); 146 var unstick = (s.stickyElement.offset().top + s.stickyElement.outerHeight() >= stickyWrapperContainer.offset().top + stickyWrapperContainer.outerHeight()) && (s.stickyElement.offset().top <= s.topSpacing); 147 148 if( unstick ) { 149 s.stickyElement 150 .css('position', 'absolute') 151 .css('top', '') 152 .css('bottom', 0) 153 .css('z-index', ''); 154 } else { 155 s.stickyElement 156 .css('position', 'fixed') 157 .css('top', newTop) 158 .css('bottom', '') 159 .css('z-index', s.zIndex); 160 } 161 } 162 } 163 }, 164 resizer = function() { 165 windowHeight = $window.height(); 166 167 for (var i = 0, l = sticked.length; i < l; i++) { 168 var s = sticked[i]; 169 var newWidth = null; 170 if (s.getWidthFrom) { 171 if (s.responsiveWidth) { 172 newWidth = $(s.getWidthFrom).width(); 173 } 174 } else if(s.widthFromWrapper) { 175 newWidth = s.stickyWrapper.width(); 176 } 177 if (newWidth != null) { 178 s.stickyElement.css('width', newWidth); 179 } 180 } 181 }, 182 methods = { 183 init: function(options) { 184 return this.each(function() { 185 var o = $.extend({}, defaults, options); 186 var stickyElement = $(this); 187 188 var stickyId = stickyElement.attr('id'); 189 var wrapperId = stickyId ? stickyId + '-' + defaults.wrapperClassName : defaults.wrapperClassName;
vendor: 4,146 bytes, lines 190-316
190 var wrapper = $('<div></div>') 191 .attr('id', wrapperId) 192 .addClass(o.wrapperClassName); 193 194 stickyElement.wrapAll(function() { 195 if ($(this).parent("#" + wrapperId).length == 0) { 196 return wrapper; 197 } 198}); 199 200 var stickyWrapper = stickyElement.parent(); 201 202 if (o.center) { 203 stickyWrapper.css({width:stickyElement.outerWidth(),marginLeft:"auto",marginRight:"auto"}); 204 } 205 206 if (stickyElement.css("float") === "right") { 207 stickyElement.css({"float":"none"}).parent().css({"float":"right"}); 208 } 209 210 o.stickyElement = stickyElement; 211 o.stickyWrapper = stickyWrapper; 212 o.currentTop = null; 213 214 sticked.push(o); 215 216 methods.setWrapperHeight(this); 217 methods.setupChangeListeners(this); 218 }); 219 }, 220 221 setWrapperHeight: function(stickyElement) { 222 var element = $(stickyElement); 223 var stickyWrapper = element.parent(); 224 if (stickyWrapper) { 225 stickyWrapper.css('height', element.outerHeight()); 226 } 227 }, 228 229 setupChangeListeners: function(stickyElement) { 230 if (window.MutationObserver) { 231 var mutationObserver = new window.MutationObserver(function(mutations) { 232 if (mutations[0].addedNodes.length || mutations[0].removedNodes.length) { 233 methods.setWrapperHeight(stickyElement); 234 } 235 }); 236 mutationObserver.observe(stickyElement, {subtree: true, childList: true}); 237 } else { 238 if (window.addEventListener) { 239 stickyElement.addEventListener('DOMNodeInserted', function() { 240 methods.setWrapperHeight(stickyElement); 241 }, false); 242 stickyElement.addEventListener('DOMNodeRemoved', function() { 243 methods.setWrapperHeight(stickyElement); 244 }, false); 245 } else if (window.attachEvent) { 246 stickyElement.attachEvent('onDOMNodeInserted', function() { 247 methods.setWrapperHeight(stickyElement); 248 }); 249 stickyElement.attachEvent('onDOMNodeRemoved', function() { 250 methods.setWrapperHeight(stickyElement); 251 }); 252 } 253 } 254 }, 255 update: scroller, 256 unstick: function(options) { 257 return this.each(function() { 258 var that = this; 259 var unstickyElement = $(that); 260 261 var removeIdx = -1; 262 var i = sticked.length; 263 while (i-- > 0) { 264 if (sticked[i].stickyElement.get(0) === that) { 265 splice.call(sticked,i,1); 266 removeIdx = i; 267 } 268 } 269 if(removeIdx !== -1) { 270 unstickyElement.unwrap(); 271 unstickyElement 272 .css({ 273 'width': '', 274 'position': '', 275 'top': '', 276 'float': '', 277 'z-index': '' 278 }) 279 ; 280 } 281 }); 282 } 283 }; 284 285 // should be more efficient than using $window.scroll(scroller) and $window.resize(resizer): 286 if (window.addEventListener) { 287 window.addEventListener('scroll', scroller, false); 288 window.addEventListener('resize', resizer, false); 289 } else if (window.attachEvent) { 290 window.attachEvent('onscroll', scroller); 291 window.attachEvent('onresize', resizer); 292 } 293 294 $.fn.sticky = function(method) { 295 if (methods[method]) { 296 return methods[method].apply(this, slice.call(arguments, 1)); 297 } else if (typeof method === 'object' || !method ) { 298 return methods.init.apply( this, arguments ); 299 } else { 300 $.error('Method ' + method + ' does not exist on jQuery.sticky'); 301 } 302 }; 303 304 $.fn.unstick = function(method) { 305 if (methods[method]) { 306 return methods[method].apply(this, slice.call(arguments, 1)); 307 } else if (typeof method === 'object' || !method ) { 308 return methods.unstick.apply( this, arguments ); 309 } else { 310 $.error('Method ' + method + ' does not exist on jQuery.sticky'); 311 } 312 }; 313 $(function() { 314 setTimeout(scroller, 0); 315 }); 316}));
vendor: 52,920 bytes, lines 317-1865
317 318// Underscore.js 1.8.3 319// http://underscorejs.org 320// (c) 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors 321// Underscore may be freely distributed under the MIT license. 322 323(function() { 324 325 // Baseline setup 326 // -------------- 327 328 // Establish the root object, `window` in the browser, or `exports` on the server. 329 var root = this; 330 331 // Save the previous value of the `_` variable. 332 var previousUnderscore = root._; 333 334 // Save bytes in the minified (but not gzipped) version: 335 var ArrayProto = Array.prototype, ObjProto = Object.prototype, FuncProto = Function.prototype; 336 337 // Create quick reference variables for speed access to core prototypes. 338 var 339 push = ArrayProto.push, 340 slice = ArrayProto.slice, 341 toString = ObjProto.toString, 342 hasOwnProperty = ObjProto.hasOwnProperty; 343 344 // All **ECMAScript 5** native function implementations that we hope to use 345 // are declared here. 346 var 347 nativeIsArray = Array.isArray, 348 nativeKeys = Object.keys, 349 nativeBind = FuncProto.bind, 350 nativeCreate = Object.create; 351 352 // Naked function reference for surrogate-prototype-swapping. 353 var Ctor = function(){}; 354 355 // Create a safe reference to the Underscore object for use below. 356 var _ = function(obj) { 357 if (obj instanceof _) return obj; 358 if (!(this instanceof _)) return new _(obj); 359 this._wrapped = obj; 360 }; 361 362 // Export the Underscore object for **Node.js**, with 363 // backwards-compatibility for the old `require()` API. If we're in 364 // the browser, add `_` as a global object. 365 if (typeof exports !== 'undefined') { 366 if (typeof module !== 'undefined' && module.exports) { 367 exports = module.exports = _; 368 } 369 exports._ = _; 370 } else { 371 root._ = _; 372 } 373 374 // Current version. 375 _.VERSION = '1.8.3'; 376 377 // Internal function that returns an efficient (for current engines) version 378 // of the passed-in callback, to be repeatedly applied in other Underscore 379 // functions. 380 var optimizeCb = function(func, context, argCount) { 381 if (context === void 0) return func; 382 switch (argCount == null ? 3 : argCount) { 383 case 1: return function(value) { 384 return func.call(context, value); 385 }; 386 case 2: return function(value, other) { 387 return func.call(context, value, other); 388 }; 389 case 3: return function(value, index, collection) { 390 return func.call(context, value, index, collection); 391 }; 392 case 4: return function(accumulator, value, index, collection) { 393 return func.call(context, accumulator, value, index, collection); 394 }; 395 } 396 return function() { 397 return func.apply(context, arguments); 398 }; 399 }; 400 401 // A mostly-internal function to generate callbacks that can be applied 402 // to each element in a collection, returning the desired result â either 403 // identity, an arbitrary callback, a property matcher, or a property accessor. 404 var cb = function(value, context, argCount) { 405 if (value == null) return _.identity; 406 if (_.isFunction(value)) return optimizeCb(value, context, argCount); 407 if (_.isObject(value)) return _.matcher(value); 408 return _.property(value); 409 }; 410 _.iteratee = function(value, context) { 411 return cb(value, context, Infinity); 412 }; 413 414 // An internal function for creating assigner functions. 415 var createAssigner = function(keysFunc, undefinedOnly) { 416 return function(obj) { 417 var length = arguments.length; 418 if (length < 2 || obj == null) return obj; 419 for (var index = 1; index < length; index++) { 420 var source = arguments[index], 421 keys = keysFunc(source), 422 l = keys.length; 423 for (var i = 0; i < l; i++) { 424 var key = keys[i]; 425 if (!undefinedOnly || obj[key] === void 0) obj[key] = source[key]; 426 } 427 } 428 return obj; 429 }; 430 }; 431 432 // An internal function for creating a new object that inherits from another. 433 var baseCreate = function(prototype) { 434 if (!_.isObject(prototype)) return {}; 435 if (nativeCreate) return nativeCreate(prototype); 436 Ctor.prototype = prototype; 437 var result = new Ctor; 438 Ctor.prototype = null; 439 return result; 440 }; 441 442 var property = function(key) { 443 return function(obj) { 444 return obj == null ? void 0 : obj[key]; 445 }; 446 }; 447 448 // Helper for collection methods to determine whether a collection 449 // should be iterated as an array or as an object 450 // Related: http://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength 451 // Avoids a very nasty iOS 8 JIT bug on ARM-64. #2094 452 var MAX_ARRAY_INDEX = Math.pow(2, 53) - 1; 453 var getLength = property('length'); 454 var isArrayLike = function(collection) { 455 var length = getLength(collection); 456 return typeof length == 'number' && length >= 0 && length <= MAX_ARRAY_INDEX; 457 }; 458 459 // Collection Functions 460 // -------------------- 461 462 // The cornerstone, an `each` implementation, aka `forEach`. 463 // Handles raw objects in addition to array-likes. Treats all 464 // sparse array-likes as if they were dense. 465 _.each = _.forEach = function(obj, iteratee, context) { 466 iteratee = optimizeCb(iteratee, context); 467 var i, length; 468 if (isArrayLike(obj)) { 469 for (i = 0, length = obj.length; i < length; i++) { 470 iteratee(obj[i], i, obj); 471 } 472 } else { 473 var keys = _.keys(obj); 474 for (i = 0, length = keys.length; i < length; i++) { 475 iteratee(obj[keys[i]], keys[i], obj); 476 } 477 } 478 return obj; 479 }; 480 481 // Return the results of applying the iteratee to each element. 482 _.map = _.collect = function(obj, iteratee, context) { 483 iteratee = cb(iteratee, context); 484 var keys = !isArrayLike(obj) && _.keys(obj), 485 length = (keys || obj).length, 486 results = Array(length); 487 for (var index = 0; index < length; index++) { 488 var currentKey = keys ? keys[index] : index; 489 results[index] = iteratee(obj[currentKey], currentKey, obj); 490 } 491 return results; 492 }; 493 494 // Create a reducing function iterating left or right. 495 function createReduce(dir) { 496 // Optimized iterator function as using arguments.length 497 // in the main function will deoptimize the, see #1991. 498 function iterator(obj, iteratee, memo, keys, index, length) { 499 for (; index >= 0 && index < length; index += dir) { 500 var currentKey = keys ? keys[index] : index; 501 memo = iteratee(memo, obj[currentKey], currentKey, obj); 502 } 503 return memo; 504 } 505 506 return function(obj, iteratee, memo, context) { 507 iteratee = optimizeCb(iteratee, context, 4); 508 var keys = !isArrayLike(obj) && _.keys(obj), 509 length = (keys || obj).length, 510 index = dir > 0 ? 0 : length - 1; 511 // Determine the initial value if none is provided. 512 if (arguments.length < 3) { 513 memo = obj[keys ? keys[index] : index]; 514 index += dir; 515 } 516 return iterator(obj, iteratee, memo, keys, index, length); 517 }; 518 } 519 520 // **Reduce** builds up a single result from a list of values, aka `inject`, 521 // or `foldl`. 522 _.reduce = _.foldl = _.inject = createReduce(1); 523 524 // The right-associative version of reduce, also known as `foldr`. 525 _.reduceRight = _.foldr = createReduce(-1); 526 527 // Return the first value which passes a truth test. Aliased as `detect`. 528 _.find = _.detect = function(obj, predicate, context) { 529 var key; 530 if (isArrayLike(obj)) { 531 key = _.findIndex(obj, predicate, context); 532 } else { 533 key = _.findKey(obj, predicate, context); 534 } 535 if (key !== void 0 && key !== -1) return obj[key]; 536 }; 537 538 // Return all the elements that pass a truth test. 539 // Aliased as `select`. 540 _.filter = _.select = function(obj, predicate, context) { 541 var results = []; 542 predicate = cb(predicate, context); 543 _.each(obj, function(value, index, list) { 544 if (predicate(value, index, list)) results.push(value); 545 }); 546 return results; 547 }; 548 549 // Return all the elements for which a truth test fails. 550 _.reject = function(obj, predicate, context) { 551 return _.filter(obj, _.negate(cb(predicate)), context); 552 }; 553 554 // Determine whether all of the elements match a truth test. 555 // Aliased as `all`. 556 _.every = _.all = function(obj, predicate, context) { 557 predicate = cb(predicate, context); 558 var keys = !isArrayLike(obj) && _.keys(obj), 559 length = (keys || obj).length; 560 for (var index = 0; index < length; index++) { 561 var currentKey = keys ? keys[index] : index; 562 if (!predicate(obj[currentKey], currentKey, obj)) return false; 563 } 564 return true; 565 }; 566 567 // Determine if at least one element in the object matches a truth test. 568 // Aliased as `any`. 569 _.some = _.any = function(obj, predicate, context) { 570 predicate = cb(predicate, context); 571 var keys = !isArrayLike(obj) && _.keys(obj), 572 length = (keys || obj).length; 573 for (var index = 0; index < length; index++) { 574 var currentKey = keys ? keys[index] : index; 575 if (predicate(obj[currentKey], currentKey, obj)) return true; 576 } 577 return false; 578 }; 579 580 // Determine if the array or object contains a given item (using `===`). 581 // Aliased as `includes` and `include`. 582 _.contains = _.includes = _.include = function(obj, item, fromIndex, guard) { 583 if (!isArrayLike(obj)) obj = _.values(obj); 584 if (typeof fromIndex != 'number' || guard) fromIndex = 0; 585 return _.indexOf(obj, item, fromIndex) >= 0; 586 }; 587 588 // Invoke a method (with arguments) on every item in a collection. 589 _.invoke = function(obj, method) { 590 var args = slice.call(arguments, 2); 591 var isFunc = _.isFunction(method); 592 return _.map(obj, function(value) { 593 var func = isFunc ? method : value[method]; 594 return func == null ? func : func.apply(value, args); 595 }); 596 }; 597 598 // Convenience version of a common use case of `map`: fetching a property. 599 _.pluck = function(obj, key) { 600 return _.map(obj, _.property(key)); 601 }; 602 603 // Convenience version of a common use case of `filter`: selecting only objects 604 // containing specific `key:value` pairs. 605 _.where = function(obj, attrs) { 606 return _.filter(obj, _.matcher(attrs)); 607 }; 608 609 // Convenience version of a common use case of `find`: getting the first object 610 // containing specific `key:value` pairs. 611 _.findWhere = function(obj, attrs) { 612 return _.find(obj, _.matcher(attrs)); 613 }; 614 615 // Return the maximum element (or element-based computation). 616 _.max = function(obj, iteratee, context) { 617 var result = -Infinity, lastComputed = -Infinity, 618 value, computed; 619 if (iteratee == null && obj != null) { 620 obj = isArrayLike(obj) ? obj : _.values(obj); 621 for (var i = 0, length = obj.length; i < length; i++) { 622 value = obj[i]; 623 if (value > result) { 624 result = value; 625 } 626 } 627 } else { 628 iteratee = cb(iteratee, context); 629 _.each(obj, function(value, index, list) { 630 computed = iteratee(value, index, list); 631 if (computed > lastComputed || computed === -Infinity && result === -Infinity) { 632 result = value; 633 lastComputed = computed; 634 } 635 }); 636 } 637 return result; 638 }; 639 640 // Return the minimum element (or element-based computation). 641 _.min = function(obj, iteratee, context) { 642 var result = Infinity, lastComputed = Infinity, 643 value, computed; 644 if (iteratee == null && obj != null) { 645 obj = isArrayLike(obj) ? obj : _.values(obj); 646 for (var i = 0, length = obj.length; i < length; i++) { 647 value = obj[i]; 648 if (value < result) { 649 result = value; 650 } 651 } 652 } else { 653 iteratee = cb(iteratee, context); 654 _.each(obj, function(value, index, list) { 655 computed = iteratee(value, index, list); 656 if (computed < lastComputed || computed === Infinity && result === Infinity) { 657 result = value; 658 lastComputed = computed; 659 } 660 }); 661 } 662 return result; 663 }; 664 665 // Shuffle a collection, using the modern version of the 666 // [Fisher-Yates shuffle](http://en.wikipedia.org/wiki/FisherâYates_shuffle). 667 _.shuffle = function(obj) { 668 var set = isArrayLike(obj) ? obj : _.values(obj); 669 var length = set.length; 670 var shuffled = Array(length); 671 for (var index = 0, rand; index < length; index++) { 672 rand = _.random(0, index); 673 if (rand !== index) shuffled[index] = shuffled[rand]; 674 shuffled[rand] = set[index]; 675 } 676 return shuffled; 677 }; 678 679 // Sample **n** random values from a collection. 680 // If **n** is not specified, returns a single random element. 681 // The internal `guard` argument allows it to work with `map`. 682 _.sample = function(obj, n, guard) { 683 if (n == null || guard) { 684 if (!isArrayLike(obj)) obj = _.values(obj); 685 return obj[_.random(obj.length - 1)]; 686 } 687 return _.shuffle(obj).slice(0, Math.max(0, n)); 688 }; 689 690 // Sort the object's values by a criterion produced by an iteratee. 691 _.sortBy = function(obj, iteratee, context) { 692 iteratee = cb(iteratee, context); 693 return _.pluck(_.map(obj, function(value, index, list) { 694 return { 695 value: value, 696 index: index, 697 criteria: iteratee(value, index, list) 698 }; 699 }).sort(function(left, right) { 700 var a = left.criteria; 701 var b = right.criteria; 702 if (a !== b) { 703 if (a > b || a === void 0) return 1; 704 if (a < b || b === void 0) return -1; 705 } 706 return left.index - right.index; 707 }), 'value'); 708 }; 709 710 // An internal function used for aggregate "group by" operations. 711 var group = function(behavior) { 712 return function(obj, iteratee, context) { 713 var result = {}; 714 iteratee = cb(iteratee, context); 715 _.each(obj, function(value, index) { 716 var key = iteratee(value, index, obj); 717 behavior(result, value, key); 718 }); 719 return result; 720 }; 721 }; 722 723 // Groups the object's values by a criterion. Pass either a string attribute 724 // to group by, or a function that returns the criterion. 725 _.groupBy = group(function(result, value, key) { 726 if (_.has(result, key)) result[key].push(value); else result[key] = [value]; 727 }); 728 729 // Indexes the object's values by a criterion, similar to `groupBy`, but for 730 // when you know that your index values will be unique. 731 _.indexBy = group(function(result, value, key) { 732 result[key] = value; 733 }); 734 735 // Counts instances of an object that group by a certain criterion. Pass 736 // either a string attribute to count by, or a function that returns the 737 // criterion. 738 _.countBy = group(function(result, value, key) { 739 if (_.has(result, key)) result[key]++; else result[key] = 1; 740 }); 741 742 // Safely create a real, live array from anything iterable. 743 _.toArray = function(obj) { 744 if (!obj) return []; 745 if (_.isArray(obj)) return slice.call(obj); 746 if (isArrayLike(obj)) return _.map(obj, _.identity); 747 return _.values(obj); 748 }; 749 750 // Return the number of elements in an object. 751 _.size = function(obj) { 752 if (obj == null) return 0; 753 return isArrayLike(obj) ? obj.length : _.keys(obj).length; 754 }; 755 756 // Split a collection into two arrays: one whose elements all satisfy the given 757 // predicate, and one whose elements all do not satisfy the predicate. 758 _.partition = function(obj, predicate, context) { 759 predicate = cb(predicate, context); 760 var pass = [], fail = []; 761 _.each(obj, function(value, key, obj) { 762 (predicate(value, key, obj) ? pass : fail).push(value); 763 }); 764 return [pass, fail]; 765 }; 766 767 // Array Functions 768 // --------------- 769 770 // Get the first element of an array. Passing **n** will return the first N 771 // values in the array. Aliased as `head` and `take`. The **guard** check 772 // allows it to work with `_.map`. 773 _.first = _.head = _.take = function(array, n, guard) { 774 if (array == null) return void 0; 775 if (n == null || guard) return array[0]; 776 return _.initial(array, array.length - n); 777 }; 778 779 // Returns everything but the last entry of the array. Especially useful on 780 // the arguments object. Passing **n** will return all the values in 781 // the array, excluding the last N. 782 _.initial = function(array, n, guard) { 783 return slice.call(array, 0, Math.max(0, array.length - (n == null || guard ? 1 : n))); 784 }; 785 786 // Get the last element of an array. Passing **n** will return the last N 787 // values in the array. 788 _.last = function(array, n, guard) { 789 if (array == null) return void 0; 790 if (n == null || guard) return array[array.length - 1]; 791 return _.rest(array, Math.max(0, array.length - n)); 792 }; 793 794 // Returns everything but the first entry of the array. Aliased as `tail` and `drop`. 795 // Especially useful on the arguments object. Passing an **n** will return 796 // the rest N values in the array. 797 _.rest = _.tail = _.drop = function(array, n, guard) { 798 return slice.call(array, n == null || guard ? 1 : n); 799 }; 800 801 // Trim out all falsy values from an array. 802 _.compact = function(array) { 803 return _.filter(array, _.identity); 804 }; 805 806 // Internal implementation of a recursive `flatten` function. 807 var flatten = function(input, shallow, strict, startIndex) { 808 var output = [], idx = 0; 809 for (var i = startIndex || 0, length = getLength(input); i < length; i++) { 810 var value = input[i]; 811 if (isArrayLike(value) && (_.isArray(value) || _.isArguments(value))) { 812 //flatten current level of array or arguments object 813 if (!shallow) value = flatten(value, shallow, strict); 814 var j = 0, len = value.length; 815 output.length += len; 816 while (j < len) { 817 output[idx++] = value[j++]; 818 } 819 } else if (!strict) { 820 output[idx++] = value; 821 } 822 } 823 return output; 824 }; 825 826 // Flatten out an array, either recursively (by default), or just one level. 827 _.flatten = function(array, shallow) { 828 return flatten(array, shallow, false); 829 }; 830 831 // Return a version of the array that does not contain the specified value(s). 832 _.without = function(array) { 833 return _.difference(array, slice.call(arguments, 1)); 834 }; 835 836 // Produce a duplicate-free version of the array. If the array has already 837 // been sorted, you have the option of using a faster algorithm. 838 // Aliased as `unique`. 839 _.uniq = _.unique = function(array, isSorted, iteratee, context) { 840 if (!_.isBoolean(isSorted)) { 841 context = iteratee; 842 iteratee = isSorted; 843 isSorted = false; 844 } 845 if (iteratee != null) iteratee = cb(iteratee, context); 846 var result = []; 847 var seen = []; 848 for (var i = 0, length = getLength(array); i < length; i++) { 849 var value = array[i], 850 computed = iteratee ? iteratee(value, i, array) : value; 851 if (isSorted) { 852 if (!i || seen !== computed) result.push(value); 853 seen = computed; 854 } else if (iteratee) { 855 if (!_.contains(seen, computed)) { 856 seen.push(computed); 857 result.push(value); 858 } 859 } else if (!_.contains(result, value)) { 860 result.push(value); 861 } 862 } 863 return result; 864 }; 865 866 // Produce an array that contains the union: each distinct element from all of 867 // the passed-in arrays. 868 _.union = function() { 869 return _.uniq(flatten(arguments, true, true)); 870 }; 871 872 // Produce an array that contains every item shared between all the 873 // passed-in arrays. 874 _.intersection = function(array) { 875 var result = []; 876 var argsLength = arguments.length; 877 for (var i = 0, length = getLength(array); i < length; i++) { 878 var item = array[i]; 879 if (_.contains(result, item)) continue; 880 for (var j = 1; j < argsLength; j++) { 881 if (!_.contains(arguments[j], item)) break; 882 } 883 if (j === argsLength) result.push(item); 884 } 885 return result; 886 }; 887 888 // Take the difference between one array and a number of other arrays. 889 // Only the elements present in just the first array will remain. 890 _.difference = function(array) { 891 var rest = flatten(arguments, true, true, 1); 892 return _.filter(array, function(value){ 893 return !_.contains(rest, value); 894 }); 895 }; 896 897 // Zip together multiple lists into a single array -- elements that share 898 // an index go together. 899 _.zip = function() { 900 return _.unzip(arguments); 901 }; 902 903 // Complement of _.zip. Unzip accepts an array of arrays and groups 904 // each array's elements on shared indices 905 _.unzip = function(array) { 906 var length = array && _.max(array, getLength).length || 0; 907 var result = Array(length); 908 909 for (var index = 0; index < length; index++) { 910 result[index] = _.pluck(array, index); 911 } 912 return result; 913 }; 914 915 // Converts lists into objects. Pass either a single array of `[key, value]` 916 // pairs, or two parallel arrays of the same length -- one of keys, and one of 917 // the corresponding values. 918 _.object = function(list, values) { 919 var result = {}; 920 for (var i = 0, length = getLength(list); i < length; i++) { 921 if (values) { 922 result[list[i]] = values[i]; 923 } else { 924 result[list[i][0]] = list[i][1]; 925 } 926 } 927 return result; 928 }; 929 930 // Generator function to create the findIndex and findLastIndex functions 931 function createPredicateIndexFinder(dir) { 932 return function(array, predicate, context) { 933 predicate = cb(predicate, context); 934 var length = getLength(array); 935 var index = dir > 0 ? 0 : length - 1; 936 for (; index >= 0 && index < length; index += dir) { 937 if (predicate(array[index], index, array)) return index; 938 } 939 return -1; 940 }; 941 } 942 943 // Returns the first index on an array-like that passes a predicate test 944 _.findIndex = createPredicateIndexFinder(1); 945 _.findLastIndex = createPredicateIndexFinder(-1); 946 947 // Use a comparator function to figure out the smallest index at which 948 // an object should be inserted so as to maintain order. Uses binary search. 949 _.sortedIndex = function(array, obj, iteratee, context) { 950 iteratee = cb(iteratee, context, 1); 951 var value = iteratee(obj); 952 var low = 0, high = getLength(array); 953 while (low < high) { 954 var mid = Math.floor((low + high) / 2); 955 if (iteratee(array[mid]) < value) low = mid + 1; else high = mid; 956 } 957 return low; 958 }; 959 960 // Generator function to create the indexOf and lastIndexOf functions 961 function createIndexFinder(dir, predicateFind, sortedIndex) { 962 return function(array, item, idx) { 963 var i = 0, length = getLength(array); 964 if (typeof idx == 'number') { 965 if (dir > 0) { 966 i = idx >= 0 ? idx : Math.max(idx + length, i); 967 } else { 968 length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1; 969 } 970 } else if (sortedIndex && idx && length) { 971 idx = sortedIndex(array, item); 972 return array[idx] === item ? idx : -1; 973 } 974 if (item !== item) { 975 idx = predicateFind(slice.call(array, i, length), _.isNaN); 976 return idx >= 0 ? idx + i : -1; 977 } 978 for (idx = dir > 0 ? i : length - 1; idx >= 0 && idx < length; idx += dir) { 979 if (array[idx] === item) return idx; 980 } 981 return -1; 982 }; 983 } 984 985 // Return the position of the first occurrence of an item in an array, 986 // or -1 if the item is not included in the array. 987 // If the array is large and already in sort order, pass `true` 988 // for **isSorted** to use binary search. 989 _.indexOf = createIndexFinder(1, _.findIndex, _.sortedIndex); 990 _.lastIndexOf = createIndexFinder(-1, _.findLastIndex); 991 992 // Generate an integer Array containing an arithmetic progression. A port of 993 // the native Python `range()` function. See 994 // [the Python documentation](http://docs.python.org/library/functions.html#range). 995 _.range = function(start, stop, step) { 996 if (stop == null) { 997 stop = start || 0; 998 start = 0; 999 } 1000 step = step || 1; 1001 1002 var length = Math.max(Math.ceil((stop - start) / step), 0); 1003 var range = Array(length); 1004 1005 for (var idx = 0; idx < length; idx++, start += step) { 1006 range[idx] = start; 1007 } 1008 1009 return range; 1010 }; 1011 1012 // Function (ahem) Functions 1013 // ------------------ 1014 1015 // Determines whether to execute a function as a constructor 1016 // or a normal function with the provided arguments 1017 var executeBound = function(sourceFunc, boundFunc, context, callingContext, args) { 1018 if (!(callingContext instanceof boundFunc)) return sourceFunc.apply(context, args); 1019 var self = baseCreate(sourceFunc.prototype); 1020 var result = sourceFunc.apply(self, args); 1021 if (_.isObject(result)) return result; 1022 return self; 1023 }; 1024 1025 // Create a function bound to a given object (assigning `this`, and arguments, 1026 // optionally). Delegates to **ECMAScript 5**'s native `Function.bind` if 1027 // available. 1028 _.bind = function(func, context) { 1029 if (nativeBind && func.bind === nativeBind) return nativeBind.apply(func, slice.call(arguments, 1)); 1030 if (!_.isFunction(func)) throw new TypeError('Bind must be called on a function'); 1031 var args = slice.call(arguments, 2); 1032 var bound = function() { 1033 return executeBound(func, bound, context, this, args.concat(slice.call(arguments))); 1034 }; 1035 return bound; 1036 }; 1037 1038 // Partially apply a function by creating a version that has had some of its 1039 // arguments pre-filled, without changing its dynamic `this` context. _ acts 1040 // as a placeholder, allowing any combination of arguments to be pre-filled. 1041 _.partial = function(func) { 1042 var boundArgs = slice.call(arguments, 1); 1043 var bound = function() { 1044 var position = 0, length = boundArgs.length; 1045 var args = Array(length); 1046 for (var i = 0; i < length; i++) { 1047 args[i] = boundArgs[i] === _ ? arguments[position++] : boundArgs[i]; 1048 } 1049 while (position < arguments.length) args.push(arguments[position++]); 1050 return executeBound(func, bound, this, this, args); 1051 }; 1052 return bound; 1053 }; 1054 1055 // Bind a number of an object's methods to that object. Remaining arguments 1056 // are the method names to be bound. Useful for ensuring that all callbacks 1057 // defined on an object belong to it. 1058 _.bindAll = function(obj) { 1059 var i, length = arguments.length, key; 1060 if (length <= 1) throw new Error('bindAll must be passed function names'); 1061 for (i = 1; i < length; i++) { 1062 key = arguments[i]; 1063 obj[key] = _.bind(obj[key], obj); 1064 } 1065 return obj; 1066 }; 1067 1068 // Memoize an expensive function by storing its results. 1069 _.memoize = function(func, hasher) { 1070 var memoize = function(key) { 1071 var cache = memoize.cache; 1072 var address = '' + (hasher ? hasher.apply(this, arguments) : key); 1073 if (!_.has(cache, address)) cache[address] = func.apply(this, arguments); 1074 return cache[address]; 1075 }; 1076 memoize.cache = {}; 1077 return memoize; 1078 }; 1079 1080 // Delays a function for the given number of milliseconds, and then calls 1081 // it with the arguments supplied. 1082 _.delay = function(func, wait) { 1083 var args = slice.call(arguments, 2); 1084 return setTimeout(function(){ 1085 return func.apply(null, args); 1086 }, wait); 1087 }; 1088 1089 // Defers a function, scheduling it to run after the current call stack has 1090 // cleared. 1091 _.defer = _.partial(_.delay, _, 1); 1092 1093 // Returns a function, that, when invoked, will only be triggered at most once 1094 // during a given window of time. Normally, the throttled function will run 1095 // as much as it can, without ever going more than once per `wait` duration; 1096 // but if you'd like to disable the execution on the leading edge, pass 1097 // `{leading: false}`. To disable execution on the trailing edge, ditto. 1098 _.throttle = function(func, wait, options) { 1099 var context, args, result; 1100 var timeout = null; 1101 var previous = 0; 1102 if (!options) options = {}; 1103 var later = function() { 1104 previous = options.leading === false ? 0 : _.now(); 1105 timeout = null; 1106 result = func.apply(context, args); 1107 if (!timeout) context = args = null; 1108 }; 1109 return function() { 1110 var now = _.now(); 1111 if (!previous && options.leading === false) previous = now; 1112 var remaining = wait - (now - previous); 1113 context = this; 1114 args = arguments; 1115 if (remaining <= 0 || remaining > wait) { 1116 if (timeout) { 1117 clearTimeout(timeout); 1118 timeout = null; 1119 } 1120 previous = now; 1121 result = func.apply(context, args); 1122 if (!timeout) context = args = null; 1123 } else if (!timeout && options.trailing !== false) { 1124 timeout = setTimeout(later, remaining); 1125 } 1126 return result; 1127 }; 1128 }; 1129 1130 // Returns a function, that, as long as it continues to be invoked, will not 1131 // be triggered. The function will be called after it stops being called for 1132 // N milliseconds. If `immediate` is passed, trigger the function on the 1133 // leading edge, instead of the trailing. 1134 _.debounce = function(func, wait, immediate) { 1135 var timeout, args, context, timestamp, result; 1136 1137 var later = function() { 1138 var last = _.now() - timestamp; 1139 1140 if (last < wait && last >= 0) { 1141 timeout = setTimeout(later, wait - last); 1142 } else { 1143 timeout = null; 1144 if (!immediate) { 1145 result = func.apply(context, args); 1146 if (!timeout) context = args = null; 1147 } 1148 } 1149 }; 1150 1151 return function() { 1152 context = this; 1153 args = arguments; 1154 timestamp = _.now(); 1155 var callNow = immediate && !timeout; 1156 if (!timeout) timeout = setTimeout(later, wait); 1157 if (callNow) { 1158 result = func.apply(context, args); 1159 context = args = null; 1160 } 1161 1162 return result; 1163 }; 1164 }; 1165 1166 // Returns the first function passed as an argument to the second, 1167 // allowing you to adjust arguments, run code before and after, and 1168 // conditionally execute the original function. 1169 _.wrap = function(func, wrapper) { 1170 return _.partial(wrapper, func); 1171 }; 1172 1173 // Returns a negated version of the passed-in predicate. 1174 _.negate = function(predicate) { 1175 return function() { 1176 return !predicate.apply(this, arguments); 1177 }; 1178 }; 1179 1180 // Returns a function that is the composition of a list of functions, each 1181 // consuming the return value of the function that follows. 1182 _.compose = function() { 1183 var args = arguments; 1184 var start = args.length - 1; 1185 return function() { 1186 var i = start; 1187 var result = args[start].apply(this, arguments); 1188 while (i--) result = args[i].call(this, result); 1189 return result; 1190 }; 1191 }; 1192 1193 // Returns a function that will only be executed on and after the Nth call. 1194 _.after = function(times, func) { 1195 return function() { 1196 if (--times < 1) { 1197 return func.apply(this, arguments); 1198 } 1199 }; 1200 }; 1201 1202 // Returns a function that will only be executed up to (but not including) the Nth call. 1203 _.before = function(times, func) { 1204 var memo; 1205 return function() { 1206 if (--times > 0) { 1207 memo = func.apply(this, arguments); 1208 } 1209 if (times <= 1) func = null; 1210 return memo; 1211 }; 1212 }; 1213 1214 // Returns a function that will be executed at most one time, no matter how 1215 // often you call it. Useful for lazy initialization. 1216 _.once = _.partial(_.before, 2); 1217 1218 // Object Functions 1219 // ---------------- 1220 1221 // Keys in IE < 9 that won't be iterated by `for key in ...` and thus missed. 1222 var hasEnumBug = !{toString: null}.propertyIsEnumerable('toString'); 1223 var nonEnumerableProps = ['valueOf', 'isPrototypeOf', 'toString', 1224 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString']; 1225 1226 function collectNonEnumProps(obj, keys) { 1227 var nonEnumIdx = nonEnumerableProps.length; 1228 var constructor = obj.constructor; 1229 var proto = (_.isFunction(constructor) && constructor.prototype) || ObjProto; 1230 1231 // Constructor is a special case. 1232 var prop = 'constructor'; 1233 if (_.has(obj, prop) && !_.contains(keys, prop)) keys.push(prop); 1234 1235 while (nonEnumIdx--) { 1236 prop = nonEnumerableProps[nonEnumIdx]; 1237 if (prop in obj && obj[prop] !== proto[prop] && !_.contains(keys, prop)) { 1238 keys.push(prop); 1239 } 1240 } 1241 } 1242 1243 // Retrieve the names of an object's own properties. 1244 // Delegates to **ECMAScript 5**'s native `Object.keys` 1245 _.keys = function(obj) { 1246 if (!_.isObject(obj)) return []; 1247 if (nativeKeys) return nativeKeys(obj); 1248 var keys = []; 1249 for (var key in obj) if (_.has(obj, key)) keys.push(key); 1250 // Ahem, IE < 9. 1251 if (hasEnumBug) collectNonEnumProps(obj, keys); 1252 return keys; 1253 }; 1254 1255 // Retrieve all the property names of an object. 1256 _.allKeys = function(obj) { 1257 if (!_.isObject(obj)) return []; 1258 var keys = []; 1259 for (var key in obj) keys.push(key); 1260 // Ahem, IE < 9. 1261 if (hasEnumBug) collectNonEnumProps(obj, keys); 1262 return keys; 1263 }; 1264 1265 // Retrieve the values of an object's properties. 1266 _.values = function(obj) { 1267 var keys = _.keys(obj); 1268 var length = keys.length; 1269 var values = Array(length); 1270 for (var i = 0; i < length; i++) { 1271 values[i] = obj[keys[i]]; 1272 } 1273 return values; 1274 }; 1275 1276 // Returns the results of applying the iteratee to each element of the object 1277 // In contrast to _.map it returns an object 1278 _.mapObject = function(obj, iteratee, context) { 1279 iteratee = cb(iteratee, context); 1280 var keys = _.keys(obj), 1281 length = keys.length, 1282 results = {}, 1283 currentKey; 1284 for (var index = 0; index < length; index++) { 1285 currentKey = keys[index]; 1286 results[currentKey] = iteratee(obj[currentKey], currentKey, obj); 1287 } 1288 return results; 1289 }; 1290 1291 // Convert an object into a list of `[key, value]` pairs. 1292 _.pairs = function(obj) { 1293 var keys = _.keys(obj); 1294 var length = keys.length; 1295 var pairs = Array(length); 1296 for (var i = 0; i < length; i++) { 1297 pairs[i] = [keys[i], obj[keys[i]]]; 1298 } 1299 return pairs; 1300 }; 1301 1302 // Invert the keys and values of an object. The values must be serializable. 1303 _.invert = function(obj) { 1304 var result = {}; 1305 var keys = _.keys(obj); 1306 for (var i = 0, length = keys.length; i < length; i++) { 1307 result[obj[keys[i]]] = keys[i]; 1308 } 1309 return result; 1310 }; 1311 1312 // Return a sorted list of the function names available on the object. 1313 // Aliased as `methods` 1314 _.functions = _.methods = function(obj) { 1315 var names = []; 1316 for (var key in obj) { 1317 if (_.isFunction(obj[key])) names.push(key); 1318 } 1319 return names.sort(); 1320 }; 1321 1322 // Extend a given object with all the properties in passed-in object(s). 1323 _.extend = createAssigner(_.allKeys); 1324 1325 // Assigns a given object with all the own properties in the passed-in object(s) 1326 // (https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/assign) 1327 _.extendOwn = _.assign = createAssigner(_.keys); 1328 1329 // Returns the first key on an object that passes a predicate test 1330 _.findKey = function(obj, predicate, context) { 1331 predicate = cb(predicate, context); 1332 var keys = _.keys(obj), key; 1333 for (var i = 0, length = keys.length; i < length; i++) { 1334 key = keys[i]; 1335 if (predicate(obj[key], key, obj)) return key; 1336 } 1337 }; 1338 1339 // Return a copy of the object only containing the whitelisted properties. 1340 _.pick = function(object, oiteratee, context) { 1341 var result = {}, obj = object, iteratee, keys; 1342 if (obj == null) return result; 1343 if (_.isFunction(oiteratee)) { 1344 keys = _.allKeys(obj); 1345 iteratee = optimizeCb(oiteratee, context); 1346 } else { 1347 keys = flatten(arguments, false, false, 1); 1348 iteratee = function(value, key, obj) { return key in obj; }; 1349 obj = Object(obj); 1350 } 1351 for (var i = 0, length = keys.length; i < length; i++) { 1352 var key = keys[i]; 1353 var value = obj[key]; 1354 if (iteratee(value, key, obj)) result[key] = value; 1355 } 1356 return result; 1357 }; 1358 1359 // Return a copy of the object without the blacklisted properties. 1360 _.omit = function(obj, iteratee, context) { 1361 if (_.isFunction(iteratee)) { 1362 iteratee = _.negate(iteratee); 1363 } else { 1364 var keys = _.map(flatten(arguments, false, false, 1), String); 1365 iteratee = function(value, key) { 1366 return !_.contains(keys, key); 1367 }; 1368 } 1369 return _.pick(obj, iteratee, context); 1370 }; 1371 1372 // Fill in a given object with default properties. 1373 _.defaults = createAssigner(_.allKeys, true); 1374 1375 // Creates an object that inherits from the given prototype object. 1376 // If additional properties are provided then they will be added to the 1377 // created object. 1378 _.create = function(prototype, props) { 1379 var result = baseCreate(prototype); 1380 if (props) _.extendOwn(result, props); 1381 return result; 1382 }; 1383 1384 // Create a (shallow-cloned) duplicate of an object. 1385 _.clone = function(obj) { 1386 if (!_.isObject(obj)) return obj; 1387 return _.isArray(obj) ? obj.slice() : _.extend({}, obj); 1388 }; 1389 1390 // Invokes interceptor with the obj, and then returns obj. 1391 // The primary purpose of this method is to "tap into" a method chain, in 1392 // order to perform operations on intermediate results within the chain. 1393 _.tap = function(obj, interceptor) { 1394 interceptor(obj); 1395 return obj; 1396 }; 1397 1398 // Returns whether an object has a given set of `key:value` pairs. 1399 _.isMatch = function(object, attrs) { 1400 var keys = _.keys(attrs), length = keys.length; 1401 if (object == null) return !length; 1402 var obj = Object(object); 1403 for (var i = 0; i < length; i++) { 1404 var key = keys[i]; 1405 if (attrs[key] !== obj[key] || !(key in obj)) return false; 1406 } 1407 return true; 1408 }; 1409 1410 1411 // Internal recursive comparison function for `isEqual`. 1412 var eq = function(a, b, aStack, bStack) { 1413 // Identical objects are equal. `0 === -0`, but they aren't identical. 1414 // See the [Harmony `egal` proposal](http://wiki.ecmascript.org/doku.php?id=harmony:egal). 1415 if (a === b) return a !== 0 || 1 / a === 1 / b; 1416 // A strict comparison is necessary because `null == undefined`. 1417 if (a == null || b == null) return a === b; 1418 // Unwrap any wrapped objects. 1419 if (a instanceof _) a = a._wrapped; 1420 if (b instanceof _) b = b._wrapped; 1421 // Compare `[[Class]]` names. 1422 var className = toString.call(a); 1423 if (className !== toString.call(b)) return false; 1424 switch (className) { 1425 // Strings, numbers, regular expressions, dates, and booleans are compared by value. 1426 case '[object RegExp]': 1427 // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i') 1428 case '[object String]': 1429 // Primitives and their corresponding object wrappers are equivalent; thus, `"5"` is 1430 // equivalent to `new String("5")`. 1431 return '' + a === '' + b; 1432 case '[object Number]': 1433 // `NaN`s are equivalent, but non-reflexive. 1434 // Object(NaN) is equivalent to NaN 1435 if (+a !== +a) return +b !== +b; 1436 // An `egal` comparison is performed for other numeric values. 1437 return +a === 0 ? 1 / +a === 1 / b : +a === +b; 1438 case '[object Date]': 1439 case '[object Boolean]': 1440 // Coerce dates and booleans to numeric primitive values. Dates are compared by their 1441 // millisecond representations. Note that invalid dates with millisecond representations 1442 // of `NaN` are not equivalent. 1443 return +a === +b; 1444 } 1445 1446 var areArrays = className === '[object Array]'; 1447 if (!areArrays) { 1448 if (typeof a != 'object' || typeof b != 'object') return false; 1449 1450 // Objects with different constructors are not equivalent, but `Object`s or `Array`s 1451 // from different frames are. 1452 var aCtor = a.constructor, bCtor = b.constructor; 1453 if (aCtor !== bCtor && !(_.isFunction(aCtor) && aCtor instanceof aCtor && 1454 _.isFunction(bCtor) && bCtor instanceof bCtor) 1455 && ('constructor' in a && 'constructor' in b)) { 1456 return false; 1457 } 1458 } 1459 // Assume equality for cyclic structures. The algorithm for detecting cyclic 1460 // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`. 1461 1462 // Initializing stack of traversed objects. 1463 // It's done here since we only need them for objects and arrays comparison. 1464 aStack = aStack || []; 1465 bStack = bStack || []; 1466 var length = aStack.length; 1467 while (length--) { 1468 // Linear search. Performance is inversely proportional to the number of 1469 // unique nested structures. 1470 if (aStack[length] === a) return bStack[length] === b; 1471 } 1472 1473 // Add the first object to the stack of traversed objects. 1474 aStack.push(a); 1475 bStack.push(b); 1476 1477 // Recursively compare objects and arrays. 1478 if (areArrays) { 1479 // Compare array lengths to determine if a deep comparison is necessary. 1480 length = a.length; 1481 if (length !== b.length) return false; 1482 // Deep compare the contents, ignoring non-numeric properties. 1483 while (length--) { 1484 if (!eq(a[length], b[length], aStack, bStack)) return false; 1485 } 1486 } else { 1487 // Deep compare objects. 1488 var keys = _.keys(a), key; 1489 length = keys.length; 1490 // Ensure that both objects contain the same number of properties before comparing deep equality. 1491 if (_.keys(b).length !== length) return false; 1492 while (length--) { 1493 // Deep compare each member 1494 key = keys[length]; 1495 if (!(_.has(b, key) && eq(a[key], b[key], aStack, bStack))) return false; 1496 } 1497 } 1498 // Remove the first object from the stack of traversed objects. 1499 aStack.pop(); 1500 bStack.pop(); 1501 return true; 1502 }; 1503 1504 // Perform a deep comparison to check if two objects are equal. 1505 _.isEqual = function(a, b) { 1506 return eq(a, b); 1507 }; 1508 1509 // Is a given array, string, or object empty? 1510 // An "empty" object has no enumerable own-properties. 1511 _.isEmpty = function(obj) { 1512 if (obj == null) return true; 1513 if (isArrayLike(obj) && (_.isArray(obj) || _.isString(obj) || _.isArguments(obj))) return obj.length === 0; 1514 return _.keys(obj).length === 0; 1515 }; 1516 1517 // Is a given value a DOM element? 1518 _.isElement = function(obj) { 1519 return !!(obj && obj.nodeType === 1); 1520 }; 1521 1522 // Is a given value an array? 1523 // Delegates to ECMA5's native Array.isArray 1524 _.isArray = nativeIsArray || function(obj) { 1525 return toString.call(obj) === '[object Array]'; 1526 }; 1527 1528 // Is a given variable an object? 1529 _.isObject = function(obj) { 1530 var type = typeof obj; 1531 return type === 'function' || type === 'object' && !!obj; 1532 }; 1533 1534 // Add some isType methods: isArguments, isFunction, isString, isNumber, isDate, isRegExp, isError. 1535 _.each(['Arguments', 'Function', 'String', 'Number', 'Date', 'RegExp', 'Error'], function(name) { 1536 _['is' + name] = function(obj) { 1537 return toString.call(obj) === '[object ' + name + ']'; 1538 }; 1539 }); 1540 1541 // Define a fallback version of the method in browsers (ahem, IE < 9), where 1542 // there isn't any inspectable "Arguments" type. 1543 if (!_.isArguments(arguments)) { 1544 _.isArguments = function(obj) { 1545 return _.has(obj, 'callee'); 1546 }; 1547 } 1548 1549 // Optimize `isFunction` if appropriate. Work around some typeof bugs in old v8, 1550 // IE 11 (#1621), and in Safari 8 (#1929). 1551 if (typeof /./ != 'function' && typeof Int8Array != 'object') { 1552 _.isFunction = function(obj) { 1553 return typeof obj == 'function' || false; 1554 }; 1555 } 1556 1557 // Is a given object a finite number? 1558 _.isFinite = function(obj) { 1559 return isFinite(obj) && !isNaN(parseFloat(obj)); 1560 }; 1561 1562 // Is the given value `NaN`? (NaN is the only number which does not equal itself). 1563 _.isNaN = function(obj) { 1564 return _.isNumber(obj) && obj !== +obj; 1565 }; 1566 1567 // Is a given value a boolean? 1568 _.isBoolean = function(obj) { 1569 return obj === true || obj === false || toString.call(obj) === '[object Boolean]'; 1570 }; 1571 1572 // Is a given value equal to null? 1573 _.isNull = function(obj) { 1574 return obj === null; 1575 }; 1576 1577 // Is a given variable undefined? 1578 _.isUndefined = function(obj) { 1579 return obj === void 0; 1580 }; 1581 1582 // Shortcut function for checking if an object has a given property directly 1583 // on itself (in other words, not on a prototype). 1584 _.has = function(obj, key) { 1585 return obj != null && hasOwnProperty.call(obj, key); 1586 }; 1587 1588 // Utility Functions 1589 // ----------------- 1590 1591 // Run Underscore.js in *noConflict* mode, returning the `_` variable to its 1592 // previous owner. Returns a reference to the Underscore object. 1593 _.noConflict = function() { 1594 root._ = previousUnderscore; 1595 return this; 1596 }; 1597 1598 // Keep the identity function around for default iteratees. 1599 _.identity = function(value) { 1600 return value; 1601 }; 1602 1603 // Predicate-generating functions. Often useful outside of Underscore. 1604 _.constant = function(value) { 1605 return function() { 1606 return value; 1607 }; 1608 }; 1609 1610 _.noop = function(){}; 1611 1612 _.property = property; 1613 1614 // Generates a function for a given object that returns a given property. 1615 _.propertyOf = function(obj) { 1616 return obj == null ? function(){} : function(key) { 1617 return obj[key]; 1618 }; 1619 }; 1620 1621 // Returns a predicate for checking whether an object has a given set of 1622 // `key:value` pairs. 1623 _.matcher = _.matches = function(attrs) { 1624 attrs = _.extendOwn({}, attrs); 1625 return function(obj) { 1626 return _.isMatch(obj, attrs); 1627 }; 1628 }; 1629 1630 // Run a function **n** times. 1631 _.times = function(n, iteratee, context) { 1632 var accum = Array(Math.max(0, n)); 1633 iteratee = optimizeCb(iteratee, context, 1); 1634 for (var i = 0; i < n; i++) accum[i] = iteratee(i); 1635 return accum; 1636 }; 1637 1638 // Return a random integer between min and max (inclusive). 1639 _.random = function(min, max) { 1640 if (max == null) { 1641 max = min; 1642 min = 0; 1643 } 1644 return min + Math.floor(Math.random() * (max - min + 1)); 1645 }; 1646 1647 // A (possibly faster) way to get the current timestamp as an integer. 1648 _.now = Date.now || function() { 1649 return new Date().getTime(); 1650 }; 1651 1652 // List of HTML entities for escaping. 1653 var escapeMap = { 1654 '&': '&', 1655 '<': '<', 1656 '>': '>', 1657 '"': '"', 1658 "'": ''', 1659 '`': '`' 1660 }; 1661 var unescapeMap = _.invert(escapeMap); 1662 1663 // Functions for escaping and unescaping strings to/from HTML interpolation. 1664 var createEscaper = function(map) { 1665 var escaper = function(match) { 1666 return map[match]; 1667 }; 1668 // Regexes for identifying a key that needs to be escaped 1669 var source = '(?:' + _.keys(map).join('|') + ')'; 1670 var testRegexp = RegExp(source); 1671 var replaceRegexp = RegExp(source, 'g'); 1672 return function(string) { 1673 string = string == null ? '' : '' + string; 1674 return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string; 1675 }; 1676 }; 1677 _.escape = createEscaper(escapeMap); 1678 _.unescape = createEscaper(unescapeMap); 1679 1680 // If the value of the named `property` is a function then invoke it with the 1681 // `object` as context; otherwise, return it. 1682 _.result = function(object, property, fallback) { 1683 var value = object == null ? void 0 : object[property]; 1684 if (value === void 0) { 1685 value = fallback; 1686 } 1687 return _.isFunction(value) ? value.call(object) : value; 1688 }; 1689 1690 // Generate a unique integer id (unique within the entire client session). 1691 // Useful for temporary DOM ids. 1692 var idCounter = 0; 1693 _.uniqueId = function(prefix) { 1694 var id = ++idCounter + ''; 1695 return prefix ? prefix + id : id; 1696 }; 1697 1698 // By default, Underscore uses ERB-style template delimiters, change the 1699 // following template settings to use alternative delimiters. 1700 _.templateSettings = { 1701 evaluate : /<%([\s\S]+?)%>/g, 1702 interpolate : /<%=([\s\S]+?)%>/g, 1703 escape : /<%-([\s\S]+?)%>/g 1704 }; 1705 1706 // When customizing `templateSettings`, if you don't want to define an 1707 // interpolation, evaluation or escaping regex, we need one that is 1708 // guaranteed not to match. 1709 var noMatch = /(.)^/; 1710 1711 // Certain characters need to be escaped so that they can be put into a 1712 // string literal. 1713 var escapes = { 1714 "'": "'", 1715 '\\': '\\', 1716 '\r': 'r', 1717 '\n': 'n', 1718 '\u2028': 'u2028', 1719 '\u2029': 'u2029' 1720 }; 1721 1722 var escaper = /\\|'|\r|\n|\u2028|\u2029/g; 1723 1724 var escapeChar = function(match) { 1725 return '\\' + escapes[match]; 1726 }; 1727 1728 // JavaScript micro-templating, similar to John Resig's implementation. 1729 // Underscore templating handles arbitrary delimiters, preserves whitespace, 1730 // and correctly escapes quotes within interpolated code. 1731 // NB: `oldSettings` only exists for backwards compatibility. 1732 _.template = function(text, settings, oldSettings) { 1733 if (!settings && oldSettings) settings = oldSettings; 1734 settings = _.defaults({}, settings, _.templateSettings); 1735 1736 // Combine delimiters into one regular expression via alternation. 1737 var matcher = RegExp([ 1738 (settings.escape || noMatch).source, 1739 (settings.interpolate || noMatch).source, 1740 (settings.evaluate || noMatch).source 1741 ].join('|') + '|$', 'g'); 1742 1743 // Compile the template source, escaping string literals appropriately. 1744 var index = 0; 1745 var source = "__p+='"; 1746 text.replace(matcher, function(match, escape, interpolate, evaluate, offset) { 1747 source += text.slice(index, offset).replace(escaper, escapeChar); 1748 index = offset + match.length; 1749 1750 if (escape) { 1751 source += "'+\n((__t=(" + escape + "))==null?'':_.escape(__t))+\n'"; 1752 } else if (interpolate) { 1753 source += "'+\n((__t=(" + interpolate + "))==null?'':__t)+\n'"; 1754 } else if (evaluate) { 1755 source += "';\n" + evaluate + "\n__p+='"; 1756 } 1757 1758 // Adobe VMs need the match returned to produce the correct offest. 1759 return match; 1760 }); 1761 source += "';\n"; 1762 1763 // If a variable is not specified, place data values in local scope. 1764 if (!settings.variable) source = 'with(obj||{}){\n' + source + '}\n'; 1765 1766 source = "var __t,__p='',__j=Array.prototype.join," + 1767 "print=function(){__p+=__j.call(arguments,'');};\n" + 1768 source + 'return __p;\n'; 1769 1770 try { 1771 var render = new Function(settings.variable || 'obj', '_', source); 1772 } catch (e) { 1773 e.source = source; 1774 throw e; 1775 } 1776 1777 var template = function(data) { 1778 return render.call(this, data, _); 1779 }; 1780 1781 // Provide the compiled source as a convenience for precompilation. 1782 var argument = settings.variable || 'obj'; 1783 template.source = 'function(' + argument + '){\n' + source + '}'; 1784 1785 return template; 1786 }; 1787 1788 // Add a "chain" function. Start chaining a wrapped Underscore object. 1789 _.chain = function(obj) { 1790 var instance = _(obj); 1791 instance._chain = true; 1792 return instance; 1793 }; 1794 1795 // OOP 1796 // --------------- 1797 // If Underscore is called as a function, it returns a wrapped object that 1798 // can be used OO-style. This wrapper holds altered versions of all the 1799 // underscore functions. Wrapped objects may be chained. 1800 1801 // Helper function to continue chaining intermediate results. 1802 var result = function(instance, obj) { 1803 return instance._chain ? _(obj).chain() : obj; 1804 }; 1805 1806 // Add your own custom functions to the Underscore object. 1807 _.mixin = function(obj) { 1808 _.each(_.functions(obj), function(name) { 1809 var func = _[name] = obj[name]; 1810 _.prototype[name] = function() { 1811 var args = [this._wrapped]; 1812 push.apply(args, arguments); 1813 return result(this, func.apply(_, args)); 1814 }; 1815 }); 1816 }; 1817 1818 // Add all of the Underscore functions to the wrapper object. 1819 _.mixin(_); 1820 1821 // Add all mutator Array functions to the wrapper. 1822 _.each(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) { 1823 var method = ArrayProto[name]; 1824 _.prototype[name] = function() { 1825 var obj = this._wrapped; 1826 method.apply(obj, arguments); 1827 if ((name === 'shift' || name === 'splice') && obj.length === 0) delete obj[0]; 1828 return result(this, obj); 1829 }; 1830 }); 1831 1832 // Add all accessor Array functions to the wrapper. 1833 _.each(['concat', 'join', 'slice'], function(name) { 1834 var method = ArrayProto[name]; 1835 _.prototype[name] = function() { 1836 return result(this, method.apply(this._wrapped, arguments)); 1837 }; 1838 }); 1839 1840 // Extracts the result from a wrapped and chained object. 1841 _.prototype.value = function() { 1842 return this._wrapped; 1843 }; 1844 1845 // Provide unwrapping proxy for some methods used in engine operations 1846 // such as arithmetic and JSON stringification. 1847 _.prototype.valueOf = _.prototype.toJSON = _.prototype.value; 1848 1849 _.prototype.toString = function() { 1850 return '' + this._wrapped; 1851 }; 1852 1853 // AMD registration happens at the end for compatibility with AMD loaders 1854 // that may not enforce next-turn semantics on modules. Even though general 1855 // practice for AMD registration is to be anonymous, underscore registers 1856 // as a named module because, like jQuery, it is a base library that is 1857 // popular enough to be bundled in a third party lib, but not be part of 1858 // an AMD load request. Those cases could generate an error when an 1859 // anonymous define() is called outside of a loader request. 1860 if (typeof define === 'function' && define.amd) { 1861 define('underscore', [], function() { 1862 return _; 1863 }); 1864 } 1865}.call(this));
1866// 1867// Popover 1868// 1869 1870'use strict'; 1871 1872var Popover = (function() { 1873 1874 // Variables 1875 1876 var $popover = $('[data-toggle="popover"]'); 1877 1878 1879 // Methods 1880 1881 function init($this) { 1882 var popoverClass = ''; 1883 1884 if ($this.data('color')) { 1885 popoverClass = ' popover-' + $this.data('color'); 1886 } 1887 1888 var options = { 1889 trigger: 'focus', 1890 template: '<div class="popover' + popoverClass + '" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>' 1891 }; 1892 1893 $this.popover(options); 1894 } 1895 1896 1897 // Events 1898 1899 if ($popover.length) { 1900 $popover.each(function() { 1901 init($(this)); 1902 }); 1903 } 1904 1905})(); 1906 1907// 1908// Tooltip 1909// 1910 1911'use strict'; 1912 1913var Tooltip = (function() { 1914 1915 // Variables 1916 1917 var $tooltip = $('[data-toggle="tooltip"]'); 1918 1919 1920 // Methods 1921 1922 function init() { 1923 $tooltip.tooltip(); 1924 } 1925 1926 1927 // Events 1928 1929 if ($tooltip.length) { 1930 init(); 1931 } 1932 1933})(); 1934 1935// 1936// Swiper 1937// init of plugin Swiper JS 1938// 1939 1940$('.featured-products__carousel .owl-carousel').owlCarousel({ 1941 loop: false, 1942 nav: true, 1943 dots: false, 1944 navText : ["",""], 1945 responsive:{ 1946 0: { 1947 items: 2, 1948 margin: 20, 1949 }, 1950 768: { 1951 items: 3, 1952 margin: 20, 1953 }, 1954 992: { 1955 items: 3, 1956 margin: 30, 1957 // stagePadding: 10, 1958 }, 1959 1300: { 1960 items: 4, 1961 margin: 20, 1962 stagePadding: 0, 1963 } 1964 } 1965}); 1966// 1967// Popover 1968// 1969 1970'use strict'; 1971 1972var Popover = (function() { 1973 1974 // Variables 1975 1976 var $popover = $('[data-toggle="popover"]'), 1977 $popoverClass = ''; 1978 1979 1980 // Methods 1981 1982 function init($this) { 1983 if ($this.data('color')) { 1984 $popoverClass = 'popover-' + $this.data('color'); 1985 } 1986 1987 var options = { 1988 template: '<div class="popover ' + $popoverClass + '" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>' 1989 }; 1990 1991 $this.popover(options); 1992 } 1993 1994 1995 // Events 1996 1997 if ($popover.length) { 1998 $popover.each(function() { 1999 init($(this)); 2000 }); 2001 } 2002 2003})(); 2004 2005// 2006// Scrollbar 2007// 2008 2009'use strict'; 2010 2011var Scrollbar = (function() { 2012 2013 // Variables 2014 2015 var $scrollbar = $('.scrollbar-inner'); 2016 2017 2018 // Methods 2019 2020 function init() { 2021 $scrollbar.scrollbar().scrollLock() 2022 } 2023 2024 2025 // Events 2026 2027 if ($scrollbar.length) { 2028 init(); 2029 } 2030 2031})(); 2032 2033// 2034// Sticky 2035// 2036 2037'use strict'; 2038 2039var Sticky = (function() { 2040 2041 // 2042 // Variables 2043 // 2044 2045 var $sticky = $('[data-toggle="sticky"]'); 2046 2047 2048 // 2049 // Methods 2050 // 2051 2052 function init($this) { 2053 2054 var offset = $this.data('sticky-offset') ? $this.data('sticky-offset') : 0; 2055 var options = { 2056 'offset_top': offset 2057 }; 2058 2059 if($(window).width() > 1000) { 2060 $this.stick_in_parent(options); 2061 } else { 2062 $this.trigger("sticky_kit:detach"); 2063 } 2064 } 2065 2066 2067 // 2068 // Events 2069 // 2070 2071 $(window).on('load resize', function() { 2072 if ($sticky.length) { 2073 2074 // Init selects 2075 $sticky.each(function() { 2076 init($(this)); 2077 }); 2078 } 2079 }) 2080 2081 2082})(); 2083 2084// 2085// Forms 2086// 2087 2088'use strict'; 2089 2090 2091// 2092// Form control 2093// 2094 2095var FormControl = (function() { 2096 2097 // Variables 2098 2099 var $input = $('.form-control'), 2100 $indeterminateCheckbox = $('[data-toggle="indeterminate"]'); 2101 2102 2103 // Methods 2104 2105 function init($this) { 2106 $this.on('focus blur', function(e) { 2107 $(this).parents('.form-group').toggleClass('focused', (e.type === 'focus' || this.value.length > 0)); 2108 }).trigger('blur'); 2109 } 2110 2111 2112 // Events 2113 2114 if ($input.length) { 2115 init($input); 2116 } 2117 2118 // Add indeterminate state to a checkbox 2119 if($indeterminateCheckbox.length) { 2120 $indeterminateCheckbox.each(function() { 2121 $(this).prop('indeterminate', true) 2122 }) 2123 } 2124 2125})(); 2126 2127 2128// 2129// Custom input file 2130// 2131 2132var CustomInputFile = (function() { 2133 2134 // Variables 2135 2136 var $customInputFile = $('.custom-input-file'); 2137 2138 2139 // Methods 2140 2141 function change($input, $this, $e) { 2142 var fileName, 2143 $label = $input.next('label'), 2144 labelVal = $label.html(); 2145 2146 if ($this && $this.files.length > 1) { 2147 fileName = ($this.getAttribute('data-multiple-caption') || '').replace('{count}', $this.files.length); 2148 } 2149 else if ($e.target.value) { 2150 fileName = $e.target.value.split('\\').pop(); 2151 } 2152 2153 if (fileName) { 2154 $label.find('span').html(fileName); 2155 } 2156 else { 2157 $label.html(labelVal); 2158 } 2159 } 2160 2161 function focus($input) { 2162 $input.addClass('has-focus'); 2163 } 2164 2165 function blur($input) { 2166 $input.removeClass('has-focus'); 2167 } 2168 2169 2170 // Events 2171 2172 if ($customInputFile.length) { 2173 $customInputFile.each(function() { 2174 var $input = $(this); 2175 2176 $input.on('change', function(e) { 2177 var $this = this, 2178 $e = e; 2179 2180 change($input, $this, $e); 2181 }); 2182 2183 // Firefox bug fix 2184 $input.on('focus', function() { 2185 focus($input); 2186 }) 2187 .on('blur', function() { 2188 blur($input); 2189 }); 2190 }); 2191 } 2192})(); 2193 2194// 2195// Navbar 2196// 2197 2198'use strict'; 2199
2200var NavbarCollapse = (function() { 2201 2202 // Variables 2203 2204 var $nav = $('#navbar-main'), 2205 $collapse = $('#navbar-main-collapse'), 2206 $navTop = $('#navbar-top-main'); 2207 2208 2209 // Methods 2210 2211 function showNavbarCollapse($this) { 2212 $nav.addClass('navbar-collapsed'); 2213 $navTop.addClass('navbar-collapsed'); 2214 $('#header-main').addClass('header-collapse-show') 2215 } 2216 2217 function hideNavbarCollapse($this) { 2218 $this.removeClass('collapsing').addClass('collapsing-out'); 2219 $nav.removeClass('navbar-collapsed').addClass('navbar-collapsed-out'); 2220 $navTop.removeClass('navbar-collapsed').addClass('navbar-collapsed-out'); 2221 } 2222 2223 function hiddenNavbarCollapse($this) { 2224 $this.removeClass('collapsing-out'); 2225 $nav.removeClass('navbar-collapsed-out'); 2226 $navTop.removeClass('navbar-collapsed-out'); 2227 $('#header-main').removeClass('header-collapse-show') 2228 } 2229 2230 2231 // Events 2232 2233 if ($collapse.length) { 2234 $collapse.on({ 2235 'show.bs.collapse': function() { 2236 showNavbarCollapse($collapse); 2237 } 2238 }) 2239 2240 $collapse.on({ 2241 'hide.bs.collapse': function() { 2242 hideNavbarCollapse($collapse); 2243 } 2244 }) 2245 2246 $collapse.on({ 2247 'hidden.bs.collapse': function() { 2248 hiddenNavbarCollapse($collapse); 2249 } 2250 }) 2251 } 2252 2253})(); 2254 2255 2256// 2257// Sticky Navbar 2258// 2259 2260var NavbarSticky = (function() { 2261 2262 // Variables 2263 2264 var $nav = $('.navbar-sticky'); 2265 2266 2267 // Methods 2268 2269 function init($this) { 2270 2271 var scrollTop = $(window).scrollTop(); // our current vertical position from the top 2272 2273 // if we've scrolled more than the navigation, change its position to fixed to stick to top, 2274 // otherwise change it back to relative 2275 if (scrollTop > (navOffsetTop + 200)) { 2276 $this.addClass('sticky'); 2277 } else { 2278 $this.removeClass('sticky'); 2279 } 2280 } 2281 2282 2283 // Events 2284 2285 if ($nav.length) { 2286 2287 var navOffsetTop = $nav.offset().top; 2288 2289 // Init sticky navbar 2290 init($nav); 2291 2292 // re-calculate stickyness on scroll 2293 $(window).on({ 2294 'scroll': function() { 2295 init($nav); 2296 } 2297 }) 2298 } 2299})(); 2300 2301// 2302// Scroll to (anchor links) 2303// 2304 2305'use strict'; 2306 2307var ScrollTo = (function() { 2308 2309 // 2310 // Variables 2311 // 2312 2313 var $scrollTo = $('.scroll-me, [data-scroll-to], .toc-entry a'), 2314 urlHash = window.location.hash; 2315 2316 2317 // 2318 // Methods 2319 // 2320 2321 function init(hash) { 2322 $('html, body').animate({ 2323 scrollTop: $(hash).offset().top 2324 }, 'slow'); 2325 } 2326 2327 function scrollTo($this) { 2328 var $el = $this.attr('href'); 2329 var offset = $this.data('scroll-to-offset') ? $this.data('scroll-to-offset') : 0; 2330 var options = { 2331 scrollTop: $($el).offset().top - offset 2332 }; 2333 2334 // Animate scroll to the selected section 2335 $('html, body').stop(true, true).animate(options, 600); 2336 2337 event.preventDefault(); 2338 } 2339 2340 2341 // 2342 // Events 2343 // 2344 2345 if ($scrollTo.length) { 2346 // Init scroll on click 2347 $scrollTo.on('click', function(event) { 2348 scrollTo($(this)); 2349 }); 2350 } 2351 2352 $(window).on("load", function () { 2353 // Init scroll on page load if a hash is present 2354 if(urlHash && urlHash != '#!' && $(urlHash).length) { 2355 init(urlHash) 2356 } 2357 }); 2358})(); 2359 2360// 2361// Shape 2362// extending the functionality of the shape utility classes from purpose/utitlies/_shape.scss 2363// 2364 2365 2366'use strict'; 2367 2368$( document ).ready(function() { 2369 2370 // Variables 2371 2372 var $shape = $('.shape-container'); 2373 2374 2375 // Methods 2376 2377 function init($this) { 2378 2379 var svgHeight = $this.find('svg').height(); 2380 // alert(svgHeight) 2381 $this.css({ 2382 'height': svgHeight + 'px' 2383 }); 2384 2385 } 2386 2387 2388 // Events 2389 2390 $(window).on({ 2391 'load resize': function() { 2392 if ($shape.length) { 2393 $shape.each(function() { 2394 init($(this)); 2395 }); 2396 } 2397 } 2398 }) 2399 2400}); 2401!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self).Sweetalert2=e()}(this,function(){"use strict";function r(t){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function a(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}function c(t,e,n){return e&&o(t.prototype,e),n&&o(t,n),t}function s(){return(s=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n,o=arguments[e];for(n in o)Object.prototype.hasOwnProperty.call(o,n)&&(t[n]=o[n])}return t}).apply(this,arguments)}function u(t){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function l(t,e){return(l=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function d(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(t){return!1}}function i(t,e,n){return(i=d()?Reflect.construct:function(t,e,n){var o=[null];o.push.apply(o,e);o=new(Function.bind.apply(t,o));return n&&l(o,n.prototype),o}).apply(null,arguments)}function p(t,e){return!e||"object"!=typeof e&&"function"!=typeof e?function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t):e}function f(t,e,n){return(f="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(t,e,n){t=function(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=u(t)););return t}(t,e);if(t){e=Object.getOwnPropertyDescriptor(t,e);return e.get?e.get.call(n):e.value}})(t,e,n||t)}function m(t){return t.charAt(0).toUpperCase()+t.slice(1)}function h(e){return Object.keys(e).map(function(t){return e[t]})}function g(t){return Array.prototype.slice.call(t)}function v(t,e){e='"'.concat(t,'" is deprecated and will be removed in the next major release. Please use "').concat(e,'" instead.'),-1===Y.indexOf(e)&&(Y.push(e),W(e))}function b(t){return t&&"function"==typeof t.toPromise}function y(t){return b(t)?t.toPromise():Promise.resolve(t)}function w(t){return t&&Promise.resolve(t)===t}function C(t){return t instanceof Element||"object"===r(t=t)&&t.jquery}function k(){return document.body.querySelector(".".concat($.container))}function A(t){var e=k();return e?e.querySelector(t):null}function t(t){return A(".".concat(t))}function x(){return t($.popup)}function n(){var t=x();return g(t.querySelectorAll(".".concat($.icon)))}function B(){var t=n().filter(function(t){return wt(t)});return t.length?t[0]:null}function P(){return t($.title)}function E(){return t($.content)}function S(){return t($.image)}function O(){return t($["progress-steps"])}function T(){return t($["validation-message"])}function L(){return A(".".concat($.actions," .").concat($.confirm))}function q(){return A(".".concat($.actions," .").concat($.deny))}function D(){return A(".".concat($.loader))}function j(){return A(".".concat($.actions," .").concat($.cancel))}function I(){return t($.actions)}function M(){return t($.header)}function H(){return t($.footer)}function V(){return t($["timer-progress-bar"])}function R(){return t($.close)}
2401function N(){var t=g(x().querySelectorAll('[tabindex]:not([tabindex="-1"]):not([tabindex="0"])')).sort(function(t,e){return t=parseInt(t.getAttribute("tabindex")),(e=parseInt(e.getAttribute("tabindex")))<t?1:t<e?-1:0}),e=g(x().querySelectorAll('\n a[href],\n area[href],\n input:not([disabled]),\n select:not([disabled]),\n textarea:not([disabled]),\n button:not([disabled]),\n iframe,\n object,\n embed,\n [tabindex="0"],\n [contenteditable],\n audio[controls],\n video[controls],\n summary\n')).filter(function(t){return"-1"!==t.getAttribute("tabindex")});return function(t){for(var e=[],n=0;n<t.length;n++)-1===e.indexOf(t[n])&&e.push(t[n]);return e}(t.concat(e)).filter(function(t){return wt(t)})}function U(){return!G()&&!document.body.classList.contains($["no-backdrop"])}function _(e,t){e.textContent="",t&&(t=(new DOMParser).parseFromString(t,"text/html"),g(t.querySelector("head").childNodes).forEach(function(t){e.appendChild(t)}),g(t.querySelector("body").childNodes).forEach(function(t){e.appendChild(t)}))}function F(t,e){if(e){for(var n=e.split(/\s+/),o=0;o<n.length;o++)if(!t.classList.contains(n[o]))return;return 1}}function z(t,e,n){var o,i;if(i=e,g((o=t).classList).forEach(function(t){-1===h($).indexOf(t)&&-1===h(X).indexOf(t)&&-1===h(i.showClass).indexOf(t)&&o.classList.remove(t)}),e.customClass&&e.customClass[n]){if("string"!=typeof e.customClass[n]&&!e.customClass[n].forEach)return W("Invalid type of customClass.".concat(n,'! Expected string or iterable object, got "').concat(r(e.customClass[n]),'"'));vt(t,e.customClass[n])}}var e="SweetAlert2:",W=function(t){console.warn("".concat(e," ").concat("object"===r(t)?t.join(" "):t))},K=function(t){console.error("".concat(e," ").concat(t))},Y=[],Z=function(t){return"function"==typeof t?t():t},Q=Object.freeze({cancel:"cancel",backdrop:"backdrop",close:"close",esc:"esc",timer:"timer"}),J=function(t){var e,n={};for(e in t)n[t[e]]="swal2-"+t[e];return n},$=J(["container","shown","height-auto","iosfix","popup","modal","no-backdrop","no-transition","toast","toast-shown","toast-column","show","hide","close","title","header","content","html-container","actions","confirm","deny","cancel","footer","icon","icon-content","image","input","file","range","select","radio","checkbox","label","textarea","inputerror","input-label","validation-message","progress-steps","active-progress-step","progress-step","progress-step-line","loader","loading","styled","top","top-start","top-end","top-left","top-right","center","center-start","center-end","center-left","center-right","bottom","bottom-start","bottom-end","bottom-left","bottom-right","grow-row","grow-column","grow-fullscreen","rtl","timer-progress-bar","timer-progress-bar-container","scrollbar-measure","icon-success","icon-warning","icon-info","icon-question","icon-error"]),X=J(["success","warning","info","question","error"]),G=function(){return document.body.classList.contains($["toast-shown"])},tt={previousBodyPadding:null};function et(t,e){if(!e)return null;switch(e){case"select":case"textarea":case"file":return yt(t,$[e]);case"checkbox":return t.querySelector(".".concat($.checkbox," input"));case"radio":return t.querySelector(".".concat($.radio," input:checked"))||t.querySelector(".".concat($.radio," input:first-child"));case"range":return t.querySelector(".".concat($.range," input"));default:return yt(t,$.input)}}function nt(t){var e;t.focus(),"file"!==t.type&&(e=t.value,t.value="",t.value=e)}function ot(t,e,n){t&&e&&("string"==typeof e&&(e=e.split(/\s+/).filter(Boolean)),e.forEach(function(e){t.forEach?t.forEach(function(t){n?t.classList.add(e):t.classList.remove(e)}):n?t.classList.add(e):t.classList.remove(e)}))}function it(t,e,n){n==="".concat(parseInt(n))&&(n=parseInt(n)),n||0===parseInt(n)?t.style[e]="number"==typeof n?"".concat(n,"px"):n:t.style.removeProperty(e)}function rt(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:"flex";t.style.display=e}function at(t){t.style.display="none"}function ct(t,e,n,o){(e=t.querySelector(e))&&(e.style[n]=o)}function st(t,e,n){e?rt(t,n):at(t)}function ut(t){return!!(t.scrollHeight>t.clientHeight)}function lt(t){var e=window.getComputedStyle(t),t=parseFloat(e.getPropertyValue("animation-duration")||"0"),e=parseFloat(e.getPropertyValue("transition-duration")||"0");return 0<t||0<e}function dt(t){var e=1<arguments.length&&void 0!==arguments[1]&&arguments[1],n=V();wt(n)&&(e&&(n.style.transition="none",n.style.width="100%"),setTimeout(function(){n.style.transition="width ".concat(t/1e3,"s linear"),n.style.width="0%"},10))}function pt(){return"undefined"==typeof window||"undefined"==typeof document}function ft(t){Mn.isVisible()&>!==t.target.value&&Mn.resetValidationMessage(),gt=t.target.value}function mt(t,e){t instanceof HTMLElement?e.appendChild(t):"object"===r(t)?At(t,e):t&&_(e,t)}function ht(t,e){var n,o,i,r,a=I(),c=D(),s=L(),u=q(),l=j();e.showConfirmButton||e.showDenyButton||e.showCancelButton||at(a),z(a,e,"actions"),Pt(s,"confirm",e),Pt(u,"deny",e),Pt(l,"cancel",e),n=s,o=u,i=l,(r=e).buttonsStyling?(vt([n,o,i],$.styled),r.confirmButtonColor&&(n.style.backgroundColor=r.confirmButtonColor),r.denyButtonColor&&(o.style.backgroundColor=r.denyButtonColor),r.cancelButtonColor&&(i.style.backgroundColor=r.cancelButtonColor)):bt([n,o,i],$.styled),e.reverseButtons&&(a.insertBefore(l,c),a.insertBefore(u,c),a.insertBefore(s,c)),_(c,e.loaderHtml),z(c,e,"loader")}var gt,vt=function(t,e){ot(t,e,!0)},bt=function(t,e){ot(t,e,!1)},yt=function(t,e){for(var n=0;n<t.childNodes.length;n++)if(F(t.childNodes[n],e))return t.childNodes[n]},wt=function(t){return!(!t||!(t.offsetWidth||t.offsetHeight||t.getClientRects().length))},Ct='\n <div aria-labelledby="'.concat($.title,'" aria-describedby="').concat($.content,'" class="').concat($.popup,'" tabindex="-1">\n <div class="').concat($.header,'">\n <ul class="').concat($["progress-steps"],'"></ul>\n <div class="').concat($.icon," ").concat(X.error,'"></div>\n <div class="').concat($.icon," ").concat(X.question,'"></div>\n <div class="').concat($.icon," ").concat(X.warning,'"></div>\n <div class="').concat($.icon," ").concat(X.info,'"></div>\n <div class="').concat($.icon," ").concat(X.success,'"></div>\n <img class="').concat($.image,'" />\n <h2 class="').concat($.title,'" id="').concat($.title,'"></h2>\n <button type="button" class="').concat($.close,'"></button>\n </div>\n <div class="').concat($.content,'">\n <div id="').concat($.content,'" class="').concat($["html-container"],'"></div>\n <input class="').concat($.input,'" />\n <input type="file" class="').concat($.file,'" />\n <div class="').concat($.range,'">\n <input type="range" />\n <output></output>\n </div>\n <select class="').concat($.select,'"></select>\n <div class="').concat($.radio,'"></div>
2401\n <label for="').concat($.checkbox,'" class="').concat($.checkbox,'">\n <input type="checkbox" />\n <span class="').concat($.label,'"></span>\n </label>\n <textarea class="').concat($.textarea,'"></textarea>\n <div class="').concat($["validation-message"],'" id="').concat($["validation-message"],'"></div>\n </div>\n <div class="').concat($.actions,'">\n <div class="').concat($.loader,'"></div>\n <button type="button" class="').concat($.confirm,'"></button>\n <button type="button" class="').concat($.deny,'"></button>\n <button type="button" class="').concat($.cancel,'"></button>\n </div>\n <div class="').concat($.footer,'"></div>\n <div class="').concat($["timer-progress-bar-container"],'">\n <div class="').concat($["timer-progress-bar"],'"></div>\n </div>\n </div>\n').replace(/(^|\n)\s*/g,""),kt=function(t){var e,n,o,i,r,a=!!(i=k())&&(i.parentNode.removeChild(i),bt([document.documentElement,document.body],[$["no-backdrop"],$["toast-shown"],$["has-column"]]),!0);pt()?K("SweetAlert2 requires document to initialize"):((r=document.createElement("div")).className=$.container,a&&vt(r,$["no-transition"]),_(r,Ct),(i="string"==typeof(e=t.target)?document.querySelector(e):e).appendChild(r),a=t,(e=x()).setAttribute("role",a.toast?"alert":"dialog"),e.setAttribute("aria-live",a.toast?"polite":"assertive"),a.toast||e.setAttribute("aria-modal","true"),r=i,"rtl"===window.getComputedStyle(r).direction&&vt(k(),$.rtl),t=E(),a=yt(t,$.input),e=yt(t,$.file),n=t.querySelector(".".concat($.range," input")),o=t.querySelector(".".concat($.range," output")),i=yt(t,$.select),r=t.querySelector(".".concat($.checkbox," input")),t=yt(t,$.textarea),a.oninput=ft,e.onchange=ft,i.onchange=ft,r.onchange=ft,t.oninput=ft,n.oninput=function(t){ft(t),o.value=n.value},n.onchange=function(t){ft(t),n.nextSibling.value=n.value})},At=function(t,e){t.jquery?xt(e,t):_(e,t.toString())},xt=function(t,e){if(t.textContent="",0 in e)for(var n=0;n in e;n++)t.appendChild(e[n].cloneNode(!0));else t.appendChild(e.cloneNode(!0))},Bt=function(){if(pt())return!1;var t,e=document.createElement("div"),n={WebkitAnimation:"webkitAnimationEnd",OAnimation:"oAnimationEnd oanimationend",animation:"animationend"};for(t in n)if(Object.prototype.hasOwnProperty.call(n,t)&&void 0!==e.style[t])return n[t];return!1}();function Pt(t,e,n){st(t,n["show".concat(m(e),"Button")],"inline-block"),_(t,n["".concat(e,"ButtonText")]),t.setAttribute("aria-label",n["".concat(e,"ButtonAriaLabel")]),t.className=$[e],z(t,n,"".concat(e,"Button")),vt(t,n["".concat(e,"ButtonClass")])}function Et(t,e){var n,o,i=k();i&&(o=i,"string"==typeof(n=e.backdrop)?o.style.background=n:n||vt([document.documentElement,document.body],$["no-backdrop"]),!e.backdrop&&e.allowOutsideClick&&W('"allowOutsideClick" parameter requires `backdrop` parameter to be set to `true`'),o=i,(n=e.position)in $?vt(o,$[n]):(W('The "position" parameter is not valid, defaulting to "center"'),vt(o,$.center)),n=i,!(o=e.grow)||"string"!=typeof o||(o="grow-".concat(o))in $&&vt(n,$[o]),z(i,e,"container"),(e=document.body.getAttribute("data-swal2-queue-step"))&&(i.setAttribute("data-queue-step",e),document.body.removeAttribute("data-swal2-queue-step")))}function St(t,e){t.placeholder&&!e.inputPlaceholder||(t.placeholder=e.inputPlaceholder)}function Ot(t,e,n){var o,i;n.inputLabel&&(t.id=$.input,o=document.createElement("label"),i=$["input-label"],o.setAttribute("for",t.id),o.className=i,vt(o,n.customClass.inputLabel),o.innerText=n.inputLabel,e.insertAdjacentElement("beforebegin",o))}var Tt={promise:new WeakMap,innerParams:new WeakMap,domCache:new WeakMap},Lt=["input","file","range","select","radio","checkbox","textarea"],qt=function(t){if(!Mt[t.input])return K('Unexpected type of input! Expected "text", "email", "password", "number", "tel", "select", "radio", "checkbox", "textarea", "file" or "url", got "'.concat(t.input,'"'));var e=It(t.input),n=Mt[t.input](e,t);rt(n),setTimeout(function(){nt(n)})},Dt=function(t,e){var n=et(E(),t);
2401if(n)for(var o in!function(t){for(var e=0;e<t.attributes.length;e++){var n=t.attributes[e].name;-1===["type","value","style"].indexOf(n)&&t.removeAttribute(n)}}(n),e)"range"===t&&"placeholder"===o||n.setAttribute(o,e[o])},jt=function(t){var e=It(t.input);t.customClass&&vt(e,t.customClass.input)},It=function(t){t=$[t]||$.input;return yt(E(),t)},Mt={};Mt.text=Mt.email=Mt.password=Mt.number=Mt.tel=Mt.url=function(t,e){return"string"==typeof e.inputValue||"number"==typeof e.inputValue?t.value=e.inputValue:w(e.inputValue)||W('Unexpected type of inputValue! Expected "string", "number" or "Promise", got "'.concat(r(e.inputValue),'"')),Ot(t,t,e),St(t,e),t.type=e.input,t},Mt.file=function(t,e){return Ot(t,t,e),St(t,e),t},Mt.range=function(t,e){var n=t.querySelector("input"),o=t.querySelector("output");return n.value=e.inputValue,n.type=e.input,o.value=e.inputValue,Ot(n,t,e),t},Mt.select=function(t,e){var n;return t.textContent="",e.inputPlaceholder&&(n=document.createElement("option"),_(n,e.inputPlaceholder),n.value="",n.disabled=!0,n.selected=!0,t.appendChild(n)),Ot(t,t,e),t},Mt.radio=function(t){return t.textContent="",t},Mt.checkbox=function(t,e){var n=et(E(),"checkbox");n.value=1,n.id=$.checkbox,n.checked=Boolean(e.inputValue);n=t.querySelector("span");return _(n,e.inputPlaceholder),t},Mt.textarea=function(e,t){e.value=t.inputValue,St(e,t),Ot(e,e,t);function n(t){return parseInt(window.getComputedStyle(t).paddingLeft)+parseInt(window.getComputedStyle(t).paddingRight)}var o;return"MutationObserver"in window&&(o=parseInt(window.getComputedStyle(x()).width),new MutationObserver(function(){var t=e.offsetWidth+n(x())+n(E());x().style.width=o<t?"".concat(t,"px"):null}).observe(e,{attributes:!0,attributeFilter:["style"]})),e};function Ht(t,e){var o,i,r,n=E().querySelector("#".concat($.content));e.html?(mt(e.html,n),rt(n,"block")):e.text?(n.textContent=e.text,rt(n,"block")):at(n),t=t,o=e,i=E(),t=Tt.innerParams.get(t),r=!t||o.input!==t.input,Lt.forEach(function(t){var e=$[t],n=yt(i,e);Dt(t,o.inputAttributes),n.className=e,r&&at(n)}),o.input&&(r&&qt(o),jt(o)),z(E(),e,"content")}function Vt(){return k()&&k().getAttribute("data-queue-step")}function Rt(t,o){var i=O();if(!o.progressSteps||0===o.progressSteps.length)return at(i),0;rt(i),i.textContent="";var r=parseInt(void 0===o.currentProgressStep?Vt():o.currentProgressStep);r>=o.progressSteps.length&&W("Invalid currentProgressStep parameter, it should be less than progressSteps.length (currentProgressStep like JS arrays starts from 0)"),o.progressSteps.forEach(function(t,e){var n,t=(n=t,t=document.createElement("li"),vt(t,$["progress-step"]),_(t,n),t);i.appendChild(t),e===r&&vt(t,$["active-progress-step"]),e!==o.progressSteps.length-1&&(t=o,e=document.createElement("li"),vt(e,$["progress-step-line"]),t.progressStepsDistance&&(e.style.width=t.progressStepsDistance),e=e,i.appendChild(e))})}function Nt(t,e){var n=M();z(n,e,"header"),Rt(0,e),n=t,t=e,(n=Tt.innerParams.get(n))&&t.icon===n.icon&&B()?zt(B(),t):(Ft(),t.icon&&(-1!==Object.keys(X).indexOf(t.icon)?(n=A(".".concat($.icon,".").concat(X[t.icon])),rt(n),Kt(n,t),zt(n,t),vt(n,t.showClass.icon)):K('Unknown icon! Expected "success", "error", "warning", "info" or "question", got "'.concat(t.icon,'"')))),function(t){var e=S();if(!t.imageUrl)return at(e);rt(e,""),e.setAttribute("src",t.imageUrl),e.setAttribute("alt",t.imageAlt),it(e,"width",t.imageWidth),it(e,"height",t.imageHeight),e.className=$.image,z(e,t,"image")}(e),n=e,t=P(),st(t,n.title||n.titleText),n.title&&mt(n.title,t),n.titleText&&(t.innerText=n.titleText),z(t,n,"title"),n=e,e=R(),_(e,n.closeButtonHtml),z(e,n,"closeButton"),st(e,n.showCloseButton),e.setAttribute("aria-label",n.closeButtonAriaLabel)}function Ut(t,e){var n,o;o=e,n=x(),it(n,"width",o.width),it(n,"padding",o.padding),o.background&&(n.style.background=o.background),Jt(n,o),Et(0,e),Nt(t,e),Ht(t,e),ht(0,e),o=e,t=H(),st(t,o.footer),o.footer&&mt(o.footer,t),z(t,o,"footer"),"function"==typeof e.didRender?e.didRender(x()):"function"==typeof e.onRender&&e.onRender(x())}function _t(){return L()&&L().click()}var Ft=function(){for(var t=n(),e=0;e<t.length;e++)at(t[e])},zt=function(t,e){Yt(t,e),Wt(),z(t,e,"icon")},Wt=function(){for(var t=x(),e=window.getComputedStyle(t).getPropertyValue("background-color"),n=t.querySelectorAll("[class^=swal2-success-circular-line], .swal2-success-fix"),o=0;o<n.length;o++)n[o].style.backgroundColor=e},Kt=function(t,e){t.textContent="",e.iconHtml?_(t,Zt(e.iconHtml)):"success"===e.icon?_(t,'\n <div class="swal2-success-circular-line-left"></div>
2401\n <span class="swal2-success-line-tip"></span> <span class="swal2-success-line-long"></span>\n <div class="swal2-success-ring"></div> <div class="swal2-success-fix"></div>\n <div class="swal2-success-circular-line-right"></div>\n '):"error"===e.icon?_(t,'\n <span class="swal2-x-mark">\n <span class="swal2-x-mark-line-left"></span>\n <span class="swal2-x-mark-line-right"></span>\n </span>\n '):_(t,Zt({question:"?",warning:"!",info:"i"}[e.icon]))},Yt=function(t,e){if(e.iconColor){t.style.color=e.iconColor,t.style.borderColor=e.iconColor;for(var n=0,o=[".swal2-success-line-tip",".swal2-success-line-long",".swal2-x-mark-line-left",".swal2-x-mark-line-right"];n<o.length;n++)ct(t,o[n],"backgroundColor",e.iconColor);ct(t,".swal2-success-ring","borderColor",e.iconColor)}},Zt=function(t){return'<div class="'.concat($["icon-content"],'">').concat(t,"</div>")},Qt=[],Jt=function(t,e){t.className="".concat($.popup," ").concat(wt(t)?e.showClass.popup:""),e.toast?(vt([document.documentElement,document.body],$["toast-shown"]),vt(t,$.toast)):vt(t,$.modal),z(t,e,"popup"),"string"==typeof e.customClass&&vt(t,e.customClass),e.icon&&vt(t,$["icon-".concat(e.icon)])};function $t(t){var e=x();e||Mn.fire(),e=x();var n=I(),o=D();!t&&wt(L())&&(t=L()),rt(n),t&&(at(t),o.setAttribute("data-button-to-replace",t.className)),o.parentNode.insertBefore(o,t),vt([e,n],$.loading),rt(o),e.setAttribute("data-loading",!0),e.setAttribute("aria-busy",!0),e.focus()}function Xt(){return new Promise(function(t){var e=window.scrollX,n=window.scrollY;ee.restoreFocusTimeout=setTimeout(function(){ee.previousActiveElement&&ee.previousActiveElement.focus?(ee.previousActiveElement.focus(),ee.previousActiveElement=null):document.body&&document.body.focus(),t()},100),void 0!==e&&void 0!==n&&window.scrollTo(e,n)})}function Gt(){if(ee.timeout)return function(){var t=V(),e=parseInt(window.getComputedStyle(t).width);t.style.removeProperty("transition"),t.style.width="100%";var n=parseInt(window.getComputedStyle(t).width),n=parseInt(e/n*100);t.style.removeProperty("transition"),t.style.width="".concat(n,"%")}(),ee.timeout.stop()}function te(){if(ee.timeout){var t=ee.timeout.start();return dt(t),t}}var ee={},ne=!1,oe={};function ie(t){for(var e=t.target;e&&e!==document;e=e.parentNode)for(var n in oe){var o=e.getAttribute(n);if(o)return void oe[n].fire({template:o})}}function re(t){return Object.prototype.hasOwnProperty.call(se,t)}function ae(t){return le[t]}function ce(t){for(var e in t)re(o=e)||W('Unknown parameter "'.concat(o,'"')),t.toast&&(n=e,-1!==de.indexOf(n)&&W('The parameter "'.concat(n,'" is incompatible with toasts'))),ae(n=e)&&v(n,ae(n));var n,o}var se={title:"",titleText:"",text:"",html:"",footer:"",icon:void 0,iconColor:void 0,iconHtml:void 0,template:void 0,toast:!1,animation:!0,showClass:{popup:"swal2-show",backdrop:"swal2-backdrop-show",icon:"swal2-icon-show"},hideClass:{popup:"swal2-hide",backdrop:"swal2-backdrop-hide",icon:"swal2-icon-hide"},customClass:{},target:"body",backdrop:!0,heightAuto:!0,allowOutsideClick:!0,allowEscapeKey:!0,allowEnterKey:!0,stopKeydownPropagation:!0,keydownListenerCapture:!1,showConfirmButton:!0,showDenyButton:!1,showCancelButton:!1,preConfirm:void 0,preDeny:void 0,confirmButtonText:"OK",confirmButtonAriaLabel:"",confirmButtonColor:void 0,denyButtonText:"No",denyButtonAriaLabel:"",denyButtonColor:void 0,cancelButtonText:"Cancel",cancelButtonAriaLabel:"",cancelButtonColor:void 0,buttonsStyling:!0,reverseButtons:!1,focusConfirm:!0,focusDeny:!1,focusCancel:!1,showCloseButton:!1,closeButtonHtml:"×",closeButtonAriaLabel:"Close this dialog",loaderHtml:"",showLoaderOnConfirm:!1,imageUrl:void 0,imageWidth:void 0,imageHeight:void 0,imageAlt:"",timer:void 0,timerProgressBar:!1,width:void 0,padding:void 0,background:void 0,input:void 0,inputPlaceholder:"",inputLabel:"",inputValue:"",inputOptions:{},inputAutoTrim:!0,inputAttributes:{},inputValidator:void 0,returnInputValueOnDeny:!1,validationMessage:void 0,grow:!1,position:"center",progressSteps:[],currentProgressStep:void 0,progressStepsDistance:void 0,onBeforeOpen:void 0,onOpen:void 0,willOpen:void 0,didOpen:void 0,onRender:void 0,didRender:void 0,onClose:void 0,onAfterClose:void 0,willClose:void 0,didClose
2401:void 0,onDestroy:void 0,didDestroy:void 0,scrollbarPadding:!0},ue=["allowEscapeKey","allowOutsideClick","background","buttonsStyling","cancelButtonAriaLabel","cancelButtonColor","cancelButtonText","closeButtonAriaLabel","closeButtonHtml","confirmButtonAriaLabel","confirmButtonColor","confirmButtonText","currentProgressStep","customClass","denyButtonAriaLabel","denyButtonColor","denyButtonText","didClose","didDestroy","footer","hideClass","html","icon","iconColor","imageAlt","imageHeight","imageUrl","imageWidth","onAfterClose","onClose","onDestroy","progressSteps","reverseButtons","showCancelButton","showCloseButton","showConfirmButton","showDenyButton","text","title","titleText","willClose"],le={animation:'showClass" and "hideClass',onBeforeOpen:"willOpen",onOpen:"didOpen",onRender:"didRender",onClose:"willClose",onAfterClose:"didClose",onDestroy:"didDestroy"},de=["allowOutsideClick","allowEnterKey","backdrop","focusConfirm","focusDeny","focusCancel","heightAuto","keydownListenerCapture"],pe=Object.freeze({isValidParameter:re,isUpdatableParameter:function(t){return-1!==ue.indexOf(t)},isDeprecatedParameter:ae,argsToParams:function(n){var o={};return"object"!==r(n[0])||C(n[0])?["title","html","icon"].forEach(function(t,e){e=n[e];"string"==typeof e||C(e)?o[t]=e:void 0!==e&&K("Unexpected type of ".concat(t,'! Expected "string" or "Element", got ').concat(r(e)))}):s(o,n[0]),o},isVisible:function(){return wt(x())},clickConfirm:_t,clickDeny:function(){return q()&&q().click()},clickCancel:function(){return j()&&j().click()},getContainer:k,getPopup:x,getTitle:P,getContent:E,getHtmlContainer:function(){return t($["html-container"])},getImage:S,getIcon:B,getIcons:n,getInputLabel:function(){return t($["input-label"])},getCloseButton:R,getActions:I,getConfirmButton:L,getDenyButton:q,getCancelButton:j,getLoader:D,getHeader:M,getFooter:H,getTimerProgressBar:V,getFocusableElements:N,getValidationMessage:T,isLoading:function(){return x().hasAttribute("data-loading")},fire:function(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return i(this,e)},mixin:function(r){return function(t){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&l(t,e)}(i,t);var n,o,e=(n=i,o=d(),function(){var t,e=u(n);return p(this,o?(t=u(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments))});function i(){return a(this,i),e.apply(this,arguments)}return c(i,[{key:"_main",value:function(t,e){return f(u(i.prototype),"_main",this).call(this,t,s({},e,r))}}]),i}(this)},queue:function(t){var r=this;Qt=t;function a(t,e){Qt=[],t(e)}var c=[];return new Promise(function(i){!function e(n,o){n<Qt.length?(document.body.setAttribute("data-swal2-queue-step",n),r.fire(Qt[n]).then(function(t){void 0!==t.value?(c.push(t.value),e(n+1,o)):a(i,{dismiss:t.dismiss})})):a(i,{value:c})}(0)})},getQueueStep:Vt,insertQueueStep:function(t,e){return e&&e<Qt.length?Qt.splice(e,0,t):Qt.push(t)},deleteQueueStep:function(t){void 0!==Qt[t]&&Qt.splice(t,1)},showLoading:$t,enableLoading:$t,getTimerLeft:function(){return ee.timeout&&ee.timeout.getTimerLeft()},stopTimer:Gt,resumeTimer:te,toggleTimer:function(){var t=ee.timeout;return t&&(t.running?Gt:te)()},increaseTimer:function(t){if(ee.timeout){t=ee.timeout.increase(t);return dt(t,!0),t}},isTimerRunning:function(){return ee.timeout&&ee.timeout.isRunning()},bindClickHandler:function(){oe[0<arguments.length&&void 0!==arguments[0]?arguments[0]:"data-swal-template"]=this,ne||(document.body.addEventListener("click",ie),ne=!0)}});function fe(){var t,e;Tt.innerParams.get(this)&&(t=Tt.domCache.get(this),at(t.loader),(e=t.popup.getElementsByClassName(t.loader.getAttribute("data-button-to-replace"))).length?rt(e[0],"inline-block"):wt(L())||wt(q())||wt(j())||at(t.actions),bt([t.popup,t.actions],$.loading),t.popup.removeAttribute("aria-busy"),t.popup.removeAttribute("data-loading"),t.confirmButton.disabled=!1,t.denyButton.disabled=!1,t.cancelButton.disabled=!1)}function me(){null===tt.previousBodyPadding&&document.body.scrollHeight>window.innerHeight&&(tt.previousBodyPadding=parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right")),document.body.style.paddingRight="".concat(tt.previousBodyPadding+function(){var t=document.createElement("div");t.className=$["scrollbar-measure"],document.body.appendChild(t);var e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e}(),"px"))}function he(){return!!window.MSInputMethodContext&&!!document.documentMode}function ge(){var t=k(),e=x();t.style.removeProperty("align-items"),e.offsetTop<0&&(t.style.alignItems="flex-start")}var ve=function(){navigator.userAgent.match(/(CriOS|FxiOS|EdgiOS|YaBrowser|UCBrowser)/i)||x().scrollHeight>window.innerHeight-44&&(k().style.paddingBottom="".concat(44,"px"))},be=function(){var e,t=k();t.ontouchstart=function(t){e=ye(t)},t.ontouchmove=function(t){e&&(t.preventDefault(),t.stopPropagation())}},ye=function(t){var e=t.target,n=k();return!we(t)&&!Ce(t)&&(e===n||!(ut(n)||"INPUT"===e.tagName||ut(E())&&E().contains(e)))},we=function(t){return t.touches&&t.touches.length&&"stylus"===t.touches[0].touchType},Ce=function(t){return t.touches&&1<t.touches.length},ke={swalPromiseResolve:new WeakMap};function Ae(t,e,n,o){n?Oe(t,o):(Xt().then(function(){return Oe(t,o)}),ee.keydownTarget.removeEventListener("keydown",ee.keydownHandler,{capture:ee.keydownListenerCapture}),ee.keydownHandlerAdded=!1),e.parentNode&&!document.body.getAttribute("data-swal2-queue-step")&&e.parentNode.removeChild(e),U()&&(null!==tt.previousBodyPadding&&(document.body.style.paddingRight="".concat(tt.previousBodyPadding,"px"),tt.previousBodyPadding=null),F(document.body,$.iosfix)&&
2401(e=parseInt(document.body.style.top,10),bt(document.body,$.iosfix),document.body.style.top="",document.body.scrollTop=-1*e),"undefined"!=typeof window&&he()&&window.removeEventListener("resize",ge),g(document.body.children).forEach(function(t){t.hasAttribute("data-previous-aria-hidden")?(t.setAttribute("aria-hidden",t.getAttribute("data-previous-aria-hidden")),t.removeAttribute("data-previous-aria-hidden")):t.removeAttribute("aria-hidden")})),bt([document.documentElement,document.body],[$.shown,$["height-auto"],$["no-backdrop"],$["toast-shown"],$["toast-column"]])}function xe(t){var e,n,o,i=x();i&&(t=Be(t),(e=Tt.innerParams.get(this))&&!F(i,e.hideClass.popup)&&(n=ke.swalPromiseResolve.get(this),bt(i,e.showClass.popup),vt(i,e.hideClass.popup),o=k(),bt(o,e.showClass.backdrop),vt(o,e.hideClass.backdrop),Pe(this,i,e),n(t)))}function Be(t){return void 0===t?{isConfirmed:!1,isDenied:!1,isDismissed:!0}:s({isConfirmed:!1,isDenied:!1,isDismissed:!1},t)}function Pe(t,e,n){var o=k(),i=Bt&<(e),r=n.onClose,a=n.onAfterClose,c=n.willClose,n=n.didClose;Ee(e,c,r),i?Se(t,e,o,n||a):Ae(t,o,G(),n||a)}var Ee=function(t,e,n){null!==e&&"function"==typeof e?e(t):null!==n&&"function"==typeof n&&n(t)},Se=function(t,e,n,o){ee.swalCloseEventFinishedCallback=Ae.bind(null,t,n,G(),o),e.addEventListener(Bt,function(t){t.target===e&&(ee.swalCloseEventFinishedCallback(),delete ee.swalCloseEventFinishedCallback)})},Oe=function(t,e){setTimeout(function(){"function"==typeof e&&e(),t._destroy()})};function Te(t,e,n){var o=Tt.domCache.get(t);e.forEach(function(t){o[t].disabled=n})}function Le(t,e){if(!t)return!1;if("radio"===t.type)for(var n=t.parentNode.parentNode.querySelectorAll("input"),o=0;o<n.length;o++)n[o].disabled=e;else t.disabled=e}var qe=function(){function n(t,e){a(this,n),this.callback=t,this.remaining=e,this.running=!1,this.start()}return c(n,[{key:"start",value:function(){return this.running||(this.running=!0,this.started=new Date,this.id=setTimeout(this.callback,this.remaining)),this.remaining}},{key:"stop",value:function(){return this.running&&(this.running=!1,clearTimeout(this.id),this.remaining-=new Date-this.started),this.remaining}},{key:"increase",value:function(t){var e=this.running;return e&&this.stop(),this.remaining+=t,e&&this.start(),this.remaining}},{key:"getTimerLeft",value:function(){return this.running&&(this.stop(),this.start()),this.remaining}},{key:"isRunning",value:function(){return this.running}}]),n}(),De={email:function(t,e){return/^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]{2,24}$/.test(t)?Promise.resolve():Promise.resolve(e||"Invalid email address")},url:function(t,e){return/^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(t)?Promise.resolve():Promise.resolve(e||"Invalid URL")}};function je(t){var e,n;(e=t).inputValidator||Object.keys(De).forEach(function(t){e.input===t&&(e.inputValidator=De[t])}),t.showLoaderOnConfirm&&!t.preConfirm&&W("showLoaderOnConfirm is set to true, but preConfirm is not defined.\nshowLoaderOnConfirm should be used together with preConfirm, see usage example:\nhttps://sweetalert2.github.io/#ajax-request"),t.animation=Z(t.animation),(n=t).target&&("string"!=typeof n.target||document.querySelector(n.target))&&("string"==typeof n.target||n.target.appendChild)||(W('Target parameter is not valid, defaulting to "body"'),n.target="body"),"string"==typeof t.title&&(t.title=t.title.split("\n").join("<br />")),kt(t)}function Ie(t){var e=k(),n=x();"function"==typeof t.willOpen?t.willOpen(n):"function"==typeof t.onBeforeOpen&&t.onBeforeOpen(n);var o=window.getComputedStyle(document.body).overflowY;$e(e,n,t),setTimeout(function(){Qe(e,n)},10),U()&&(Je(e,t.scrollbarPadding,o),g(document.body.children).forEach(function(t){t===k()||function(t,e){if("function"==typeof t.contains)return t.contains(e)}(t,k())||(t.hasAttribute("aria-hidden")&&t.setAttribute("data-previous-aria-hidden",t.getAttribute("aria-hidden")),t.setAttribute("aria-hidden","true"))})),G()||ee.previousActiveElement||(ee.previousActiveElement=document.activeElement),Ze(n,t),bt(e,$["no-transition"])}function Me(t){var e=x();t.target===e&&(t=k(),e.removeEventListener(Bt,Me),t.style.overflowY="auto")}function He(t,e){t.closePopup({isConfirmed:!0,value:e})}function Ve(t,e,n){var o=N();if(o.length)return(e+=n)===o.length?e=0:-1===e&&(e=o.length-1),o[e].focus();x().focus()}var Re=["swal-title","swal-html","swal-footer"],Ne=function(t){var n={};
2401return g(t.querySelectorAll("swal-param")).forEach(function(t){Ye(t,["name","value"]);var e=t.getAttribute("name"),t=t.getAttribute("value");"boolean"==typeof se[e]&&"false"===t&&(t=!1),"object"===r(se[e])&&(t=JSON.parse(t)),n[e]=t}),n},Ue=function(t){var n={};return g(t.querySelectorAll("swal-button")).forEach(function(t){Ye(t,["type","color","aria-label"]);var e=t.getAttribute("type");n["".concat(e,"ButtonText")]=t.innerHTML,n["show".concat(m(e),"Button")]=!0,t.hasAttribute("color")&&(n["".concat(e,"ButtonColor")]=t.getAttribute("color")),t.hasAttribute("aria-label")&&(n["".concat(e,"ButtonAriaLabel")]=t.getAttribute("aria-label"))}),n},_e=function(t){var e={},t=t.querySelector("swal-image");return t&&(Ye(t,["src","width","height","alt"]),t.hasAttribute("src")&&(e.imageUrl=t.getAttribute("src")),t.hasAttribute("width")&&(e.imageWidth=t.getAttribute("width")),t.hasAttribute("height")&&(e.imageHeight=t.getAttribute("height")),t.hasAttribute("alt")&&(e.imageAlt=t.getAttribute("alt"))),e},Fe=function(t){var e={},t=t.querySelector("swal-icon");return t&&(Ye(t,["type","color"]),t.hasAttribute("type")&&(e.icon=t.getAttribute("type")),t.hasAttribute("color")&&(e.iconColor=t.getAttribute("color")),e.iconHtml=t.innerHTML),e},ze=function(t){var n={},e=t.querySelector("swal-input");e&&(Ye(e,["type","label","placeholder","value"]),n.input=e.getAttribute("type")||"text",e.hasAttribute("label")&&(n.inputLabel=e.getAttribute("label")),e.hasAttribute("placeholder")&&(n.inputPlaceholder=e.getAttribute("placeholder")),e.hasAttribute("value")&&(n.inputValue=e.getAttribute("value")));t=t.querySelectorAll("swal-input-option");return t.length&&(n.inputOptions={},g(t).forEach(function(t){Ye(t,["value"]);var e=t.getAttribute("value"),t=t.innerHTML;n.inputOptions[e]=t})),n},We=function(t,e){var n,o={};for(n in e){var i=e[n],r=t.querySelector(i);r&&(Ye(r,[]),o[i.replace(/^swal-/,"")]=r.innerHTML)}return o},Ke=function(t){var e=Re.concat(["swal-param","swal-button","swal-image","swal-icon","swal-input","swal-input-option"]);g(t.querySelectorAll("*")).forEach(function(t){t=t.tagName.toLowerCase();-1===e.indexOf(t)&&W("Unrecognized element <".concat(t,">"))})},Ye=function(e,n){g(e.attributes).forEach(function(t){-1===n.indexOf(t.name)&&W(['Unrecognized attribute "'.concat(t.name,'" on <').concat(e.tagName.toLowerCase(),">."),"".concat(n.length?"Allowed attributes are: ".concat(n.join(", ")):"To set the value, use HTML within the element.")])})},Ze=function(t,e){"function"==typeof e.didOpen?setTimeout(function(){return e.didOpen(t)}):"function"==typeof e.onOpen&&setTimeout(function(){return e.onOpen(t)})},Qe=function(t,e){Bt&<(e)?(t.style.overflowY="hidden",e.addEventListener(Bt,Me)):t.style.overflowY="auto"},Je=function(t,e,n){var o;(/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream||"MacIntel"===navigator.platform&&1<navigator.maxTouchPoints)&&!F(document.body,$.iosfix)&&(o=document.body.scrollTop,document.body.style.top="".concat(-1*o,"px"),vt(document.body,$.iosfix),be(),ve()),"undefined"!=typeof window&&he()&&(ge(),window.addEventListener("resize",ge)),e&&"hidden"!==n&&me(),setTimeout(function(){t.scrollTop=0})},$e=function(t,e,n){vt(t,n.showClass.backdrop),e.style.setProperty("opacity","0","important"),rt(e),setTimeout(function(){vt(e,n.showClass.popup),e.style.removeProperty("opacity")},10),vt([document.documentElement,document.body],$.shown),n.heightAuto&&n.backdrop&&!n.toast&&vt([document.documentElement,document.body],$["height-auto"])},Xe=function(t){return t.checked?1:0},Ge=function(t){return t.checked?t.value:null},tn=function(t){return t.files.length?null!==t.getAttribute("multiple")?t.files:t.files[0]:null},en=function(e,n){function o(t){return on[n.input](i,rn(t),n)}var i=E();b(n.inputOptions)||w(n.inputOptions)?($t(),y(n.inputOptions).then(function(t){e.hideLoading(),o(t)})):"object"===r(n.inputOptions)?o(n.inputOptions):K("Unexpected type of inputOptions! Expected object, Map or Promise, got ".concat(r(n.inputOptions)))},nn=function(e,n){var o=e.getInput();at(o),y(n.inputValue).then(function(t){o.value="number"===n.input?parseFloat(t)||0:"".concat(t),rt(o
2401),o.focus(),e.hideLoading()}).catch(function(t){K("Error in inputValue promise: ".concat(t)),o.value="",rt(o),o.focus(),e.hideLoading()})},on={select:function(t,e,i){function o(t,e,n){var o=document.createElement("option");o.value=n,_(o,e),o.selected=an(n,i.inputValue),t.appendChild(o)}var r=yt(t,$.select);e.forEach(function(t){var e,n=t[0],t=t[1];Array.isArray(t)?((e=document.createElement("optgroup")).label=n,e.disabled=!1,r.appendChild(e),t.forEach(function(t){return o(e,t[1],t[0])})):o(r,t,n)}),r.focus()},radio:function(t,e,i){var r=yt(t,$.radio);e.forEach(function(t){var e=t[0],n=t[1],o=document.createElement("input"),t=document.createElement("label");o.type="radio",o.name=$.radio,o.value=e,an(e,i.inputValue)&&(o.checked=!0);e=document.createElement("span");_(e,n),e.className=$.label,t.appendChild(o),t.appendChild(e),r.appendChild(t)});e=r.querySelectorAll("input");e.length&&e[0].focus()}},rn=function n(o){var i=[];return"undefined"!=typeof Map&&o instanceof Map?o.forEach(function(t,e){"object"===r(t)&&(t=n(t)),i.push([e,t])}):Object.keys(o).forEach(function(t){var e=o[t];"object"===r(e)&&(e=n(e)),i.push([t,e])}),i},an=function(t,e){return e&&e.toString()===t.toString()},cn=function(t,e,n){var o=function(t,e){var n=t.getInput();if(!n)return null;switch(e.input){case"checkbox":return Xe(n);case"radio":return Ge(n);case"file":return tn(n);default:return e.inputAutoTrim?n.value.trim():n.value}}(t,e);e.inputValidator?sn(t,e,o):t.getInput().checkValidity()?("deny"===n?un:ln)(t,e,o):(t.enableButtons(),t.showValidationMessage(e.validationMessage))},sn=function(e,n,o){e.disableInput(),Promise.resolve().then(function(){return y(n.inputValidator(o,n.validationMessage))}).then(function(t){e.enableButtons(),e.enableInput(),t?e.showValidationMessage(t):ln(e,n,o)})},un=function(e,t,n){t.preDeny?Promise.resolve().then(function(){return y(t.preDeny(n,t.validationMessage))}).then(function(t){!1===t?e.hideLoading():e.closePopup({isDenied:!0,value:void 0===t?n:t})}):e.closePopup({isDenied:!0,value:n})},ln=function(e,t,n){t.showLoaderOnConfirm&&$t(),t.preConfirm?(e.resetValidationMessage(),Promise.resolve().then(function(){return y(t.preConfirm(n,t.validationMessage))}).then(function(t){wt(T())||!1===t?e.hideLoading():He(e,void 0===t?n:t)})):He(e,n)},dn=["ArrowRight","ArrowDown","Right","Down"],pn=["ArrowLeft","ArrowUp","Left","Up"],fn=["Escape","Esc"],mn=function(t,e,n){var o=Tt.innerParams.get(t);o.stopKeydownPropagation&&e.stopPropagation(),"Enter"===e.key?hn(t,e,o):"Tab"===e.key?gn(e,o):-1!==[].concat(dn,pn).indexOf(e.key)?vn(e.key):-1!==fn.indexOf(e.key)&&bn(e,o,n)},hn=function(t,e,n){e.isComposing||e.target&&t.getInput()&&e.target.outerHTML===t.getInput().outerHTML&&-1===["textarea","file"].indexOf(n.input)&&(_t(),e.preventDefault())},gn=function(t,e){for(var n=t.target,o=N(),i=-1,r=0;r<o.length;r++)if(n===o[r]){i=r;break}t.shiftKey?Ve(0,i,-1):Ve(0,i,1),t.stopPropagation(),t.preventDefault()},vn=function(t){-1!==[L(),q(),j()].indexOf(document.activeElement)&&(t=-1!==dn.indexOf(t)?"nextElementSibling":"previousElementSibling",(t=document.activeElement[t])&&t.focus())},bn=function(t,e,n){Z(e.allowEscapeKey)&&(t.preventDefault(),n(Q.esc))},yn=function(e,t,n){t.popup.onclick=function(){var t=Tt.innerParams.get(e);t.showConfirmButton||t.showDenyButton||t.showCancelButton||t.showCloseButton||t.timer||t.input||n(Q.close)}},wn=!1,Cn=function(e){e.popup.onmousedown=function(){e.container.onmouseup=function(t){e.container.onmouseup=void 0,t.target===e.container&&(wn=!0)}}},kn=function(e){e.container.onmousedown=function(){e.popup.onmouseup=function(t){e.popup.onmouseup=void 0,t.target!==e.popup&&!e.popup.contains(t.target)||(wn=!0)}}},An=function(n,o,i){o.container.onclick=function(t){var e=Tt.innerParams.get(n);wn?wn=!1:t.target===o.container&&Z(e.allowOutsideClick)&&i(Q.backdrop)}};function xn(t,e){var n=function(t){t="string"==typeof t.template?document.querySelector(t.template):t.template;if(!t)return{};t=t.content||t;return Ke(t),s(Ne(t),Ue(t),_e(t),Fe(t),ze(t),We(t,Re))}(t),o=s({},se.showClass,e.showClass,n.showClass,t.showClass),i=s({},se.hideClass,e.hideClass,n.hideClass,t.hideClass);return(n=s({},se,e,n,t)).showClass=o,n.hideClass=i,!1===t.animation&&(n.showClass={popup:"swal2-noanimation",backdrop:"swal2-noanimation"},n.hideClass={}),n}function Bn(a,c,s){return new Promise(function(t){function e(t){a.closePopup({isDismissed:!0,dismiss:t})}var n,o,i,r;ke.swalPromiseResolve.set(a,t),c.confirmButton.onclick=function(){return e=s,(t=a).disableButtons(),void(e.input?cn(t,e,"confirm"):ln(t,e,!0));var t,e},c.denyButton.onclick=function(){return e=s,(t=a).disableButtons(),void(e.returnInputValueOnDeny?cn(t,e,"deny"):un(t,e,!1));var t,e},c.cancelButton.onclick=function(){return t=e,a.disableButtons(),void t(Q.cancel);var t},c.closeButton.onclick=function(){return e(Q.close)},n=a,r=c,t=e,Tt.innerParams.get(n).toast?yn(n,r,t):(Cn(r),kn(r),An(n,r,t)),o=a,r=s,i=e,(t=ee).keydownTarget&&t.keydownHandlerAdded&&(t.keydownTarget.removeEventListener("keydown",t.keydownHandler,{capture:t.keydownListenerCapture}),t.keydownHandlerAdded=!1),r.toast||(t.keydownHandler=function(t){return mn(o,t,i)},t.keydownTarget=r.keydownListenerCapture?window:x(),t.keydownListenerCapture=r.keydownListenerCapture,t.keydownTarget.addEventListener("keydown",t.keydownHandler,{capture:t.keydownListenerCapture}),t.keydownHandlerAdded=!0),(s.toast&&(s.input||s.footer||s.showCloseButton)?vt:bt)(document.body,$["toast-column"]),r=a,"select"===(t=s).input||"radio"===t.input?en(r,t):-1!==["text","email","number","tel","textarea"].indexOf(t.input)&&(b(t.inputValue)||w(t.inputValue))&&nn(r,t),Ie(s),En(ee,s,e),Sn(c,s),setTimeout(function(){c.container.scrollTop=0})})}function Pn(t){var e={popup:x(),container:k(),content:E(),actions:I(),confirmButton:L(),denyButton:q(),cancelButton:j(),loader:D(),closeButton:R(),validationMessage:T(),progressSteps:O()};return Tt.domCache.set(t,e),e}var En=function(t,e,n){var o=V();at(o),e.timer&&(t.timeout=new qe(function(){n("timer"),delete t.timeout},e.timer),e.timerProgressBar&&(rt(o),setTimeout(function(){t.timeout&&t.timeout.running&&dt(e.timer)})))},Sn=function(t,e){if(!e.toast)return Z(e.allowEnterKey)?void(On(t,e)||Ve(0,-1,1)):Tn()},On=function(t,e){return e.focusDeny&&wt(t.denyButton)?(t.denyButton.focus(),!0):e.focusCancel&&wt(t.cancelButton)?(t.cancelButton.focus(),!0):!(!e.focusConfirm||!wt(t.confirmButton))&&(t.confirmButton.focus(),!0)},Tn=function(){document.activeElement&&"function"==typeof document.activeElement.blur&&document.activeElement.blur()};function Ln(t){"function"==typeof t.didDestroy?t.didDestroy():"function"==typeof t.onDestroy&&t.onDestroy()}function qn(t){delete t.params,delete ee.keydownHandler,delete ee.keydownTarget,jn(Tt),jn(ke)}var Dn,jn=function(t){for(var e in t)t[e]=new WeakMap}
2401,J=Object.freeze({hideLoading:fe,disableLoading:fe,getInput:function(t){var e=Tt.innerParams.get(t||this);return(t=Tt.domCache.get(t||this))?et(t.content,e.input):null},close:xe,closePopup:xe,closeModal:xe,closeToast:xe,enableButtons:function(){Te(this,["confirmButton","denyButton","cancelButton"],!1)},disableButtons:function(){Te(this,["confirmButton","denyButton","cancelButton"],!0)},enableInput:function(){return Le(this.getInput(),!1)},disableInput:function(){return Le(this.getInput(),!0)},showValidationMessage:function(t){var e=Tt.domCache.get(this),n=Tt.innerParams.get(this);_(e.validationMessage,t),e.validationMessage.className=$["validation-message"],n.customClass&&n.customClass.validationMessage&&vt(e.validationMessage,n.customClass.validationMessage),rt(e.validationMessage),(e=this.getInput())&&(e.setAttribute("aria-invalid",!0),e.setAttribute("aria-describedBy",$["validation-message"]),nt(e),vt(e,$.inputerror))},resetValidationMessage:function(){var t=Tt.domCache.get(this);t.validationMessage&&at(t.validationMessage),(t=this.getInput())&&(t.removeAttribute("aria-invalid"),t.removeAttribute("aria-describedBy"),bt(t,$.inputerror))},getProgressSteps:function(){return Tt.domCache.get(this).progressSteps},_main:function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};return ce(s({},e,t)),ee.currentInstance&&ee.currentInstance._destroy(),ee.currentInstance=this,je(t=xn(t,e)),Object.freeze(t),ee.timeout&&(ee.timeout.stop(),delete ee.timeout),clearTimeout(ee.restoreFocusTimeout),e=Pn(this),Ut(this,t),Tt.innerParams.set(this,t),Bn(this,e,t)},update:function(e){var t=x(),n=Tt.innerParams.get(this);if(!t||F(t,n.hideClass.popup))return W("You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup.");var o={};Object.keys(e).forEach(function(t){Mn.isUpdatableParameter(t)?o[t]=e[t]:W('Invalid parameter to update: "'.concat(t,'". Updatable params are listed here: https://github.com/sweetalert2/sweetalert2/blob/master/src/utils/params.js\n\nIf you think this parameter should be updatable, request it here: https://github.com/sweetalert2/sweetalert2/issues/new?template=02_feature_request.md'))}),n=s({},n,o),Ut(this,n),Tt.innerParams.set(this,n),Object.defineProperties(this,{params:{value:s({},this.params,e),writable:!1,enumerable:!0}})},_destroy:function(){var t=Tt.domCache.get(this),e=Tt.innerParams.get(this);e&&(t.popup&&ee.swalCloseEventFinishedCallback&&(ee.swalCloseEventFinishedCallback(),delete ee.swalCloseEventFinishedCallback),ee.deferDisposalTimer&&(clearTimeout(ee.deferDisposalTimer),delete ee.deferDisposalTimer),Ln(e),qn(this))}}),In=function(){function i(){if(a(this,i),"undefined"!=typeof window){"undefined"==typeof Promise&&K("This package requires a Promise library, please include a shim to enable it in this browser (See: https://github.com/sweetalert2/sweetalert2/wiki/Migration-from-SweetAlert-to-SweetAlert2#1-ie-support)"),Dn=this;for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];var o=Object.freeze(this.constructor.argsToParams(e));Object.defineProperties(this,{params:{value:o,writable:!1,enumerable:!0,configurable:!0}});o=this._main(this.params);Tt.promise.set(this,o)}}return c(i,[{key:"then",value:function(t){return Tt.promise.get(this).then(t)}},{key:"finally",value:function(t){return Tt.promise.get(this).finally(t)}}]),i}();s(In.prototype,J),s(In,pe),Object.keys(J).forEach(function(t){In[t]=function(){if(Dn)return Dn[t].apply(Dn,arguments)}}),In.DismissReason=Q,In.version="10.13.0";var Mn=In;return Mn.default=Mn}),void 0!==this&&this.Sweetalert2&&(this.swal=this.sweetAlert=this.Swal=this.SweetAlert=this.Sweetalert2); 2402"use strict"; 2403 2404var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); 2405 2406function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } 2407 2408function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { c
2408onstructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } 2409 2410function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 2411 2412/* 2413 * 2414 * More info at [www.dropzonejs.com](http://www.dropzonejs.com) 2415 * 2416 * Copyright (c) 2012, Matias Meno 2417 * 2418 * Permission is hereby granted, free of charge, to any person obtaining a copy 2419 * of this software and associated documentation files (the "Software"), to deal 2420 * in the Software without restriction, including without limitation the rights 2421 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 2422 * copies of the Software, and to permit persons to whom the Software is 2423 * furnished to do so, subject to the following conditions: 2424 * 2425 * The above copyright notice and this permission notice shall be included in 2426 * all copies or substantial portions of the Software. 2427 * 2428 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 2429 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 2430 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 2431 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 2432 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 2433 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 2434 * THE SOFTWARE. 2435 * 2436 */ 2437 2438// The Emitter class provides the ability to call `.on()` on Dropzone to listen 2439// to events. 2440// It is strongly based on component's emitter class, and I removed the 2441// functionality because of the dependency hell with different frameworks. 2442var Emitter = function () { 2443 function Emitter() { 2444 _classCallCheck(this, Emitter); 2445 } 2446 2447 _createClass(Emitter, [{ 2448 key: "on", 2449 2450 // Add an event listener for given event 2451 value: function on(event, fn) { 2452 this._callbacks = this._callbacks || {}; 2453 // Create namespace for this event 2454 if (!this._callbacks[event]) { 2455 this._callbacks[event] = []; 2456 } 2457 this._callbacks[event].push(fn); 2458 return this; 2459 } 2460 }, { 2461 key: "emit", 2462 value: function emit(event) { 2463 this._callbacks = this._callbacks || {}; 2464 var callbacks = this._callbacks[event]; 2465 2466 if (callbacks) { 2467 for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { 2468 args[_key - 1] = arguments[_key]; 2469 } 2470 2471 for (var _iterator = callbacks, _isArray = true, _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) { 2472 var _ref; 2473 2474 if (_isArray) { 2475 if (_i >= _iterator.length) break; 2476 _ref = _iterator[_i++]; 2477 } else { 2478 _i = _iterator.next(); 2479 if (_i.done) break; 2480 _ref = _i.value; 2481 } 2482 2483 var callback = _ref; 2484 2485 callback.apply(this, args); 2486 } 2487 } 2488 2489 return this; 2490 } 2491 2492 // Remove event listener for given event. If fn is not provided, all event 2493 // listeners for that event will be removed. If neither is provided, all 2494 // event listeners will be removed. 2495 2496 }, { 2497 key: "off", 2498 value: function off(event, fn) { 2499 if (!this._callbacks || arguments.length === 0) { 2500 this._callbacks = {}; 2501 return this; 2502 } 2503 2504 // specific event 2505 var callbacks = this._callbacks[event]; 2506 if (!callbacks) { 2507 return this; 2508 } 2509 2510 // remove all handlers 2511 if (arguments.length === 1) { 2512 delete this._callbacks[event]; 2513 return this; 2514 } 2515 2516 // remove specific handler 2517 for (var i = 0; i < callbacks.length; i++) { 2518 var callback = callbacks[i]; 2519 if (callback === fn) { 2520 callbacks.splice(i, 1); 2521 break; 2522 } 2523 } 2524 2525 return this; 2526 } 2527 }]); 2528 2529 return Emitter; 2530}(); 2531 2532var Dropzone = function (_Emitter) { 2533 _inherits(Dropzone, _Emitter); 2534 2535 _createClass(Dropzone, null, [{ 2536 key: "initClass", 2537 value: function initClass() { 2538 2539 // Exposing the emitter class, mainly for tests 2540 this.prototype.Emitter = Emitter; 2541 2542 /* 2543 This is a list of all available events you can register on a dropzone object. 2544 You can register an event handler like this: 2545 dropzone.on("dragEnter", function() { }); 2546 */ 2547 this.prototype.events = ["drop", "dragstart", "dragend", "dragenter", "dragover", "dragleave", "addedfile", "addedfiles", "removedfile", "thumbnail", "error", "errormultiple", "processing", "processingmultiple", "uploadprogress", "totaluploadprogress", "sending", "sendingmultiple", "success", "successmultiple", "canceled", "canceledmultiple", "complete", "completemultiple", "reset", "maxfilesexceeded", "maxfilesreached", "queuecomplete"]; 2548 2549 this.prototype.defaultOptions = { 2550 /** 2551 * Has to be specified on elements other than form (or when the form 2552 * doesn't have an `action` attribute). You can also 2553 * provide a function that will be called with `files` and 2554 * must return the url (since `v3.12.0`) 2555 */ 2556 url: null, 2557 2558 /** 2559 * Can be changed to `"put"` if necessary. You can also provide a function 2560 * that will be called with `files` and must return the method (since `v3.12.0`).
2561 */ 2562 method: "post", 2563 2564 /** 2565 * Will be set on the XHRequest. 2566 */ 2567 withCredentials: false, 2568 2569 /** 2570 * The timeout for the XHR requests in milliseconds (since `v4.4.0`). 2571 */ 2572 timeout: 30000, 2573 2574 /** 2575 * How many file uploads to process in parallel (See the 2576 * Enqueuing file uploads* documentation section for more info) 2577 */ 2578 parallelUploads: 2, 2579 2580 /** 2581 * Whether to send multiple files in one request. If 2582 * this it set to true, then the fallback file input element will 2583 * have the `multiple` attribute as well. This option will 2584 * also trigger additional events (like `processingmultiple`). See the events 2585 * documentation section for more information. 2586 */ 2587 uploadMultiple: false, 2588 2589 /** 2590 * Whether you want files to be uploaded in chunks to your server. This can't be 2591 * used in combination with `uploadMultiple`. 2592 * 2593 * See [chunksUploaded](#config-chunksUploaded) for the callback to finalise an upload. 2594 */ 2595 chunking: false, 2596 2597 /** 2598 * If `chunking` is enabled, this defines whether **every** file should be chunked, 2599 * even if the file size is below chunkSize. This means, that the additional chunk 2600 * form data will be submitted and the `chunksUploaded` callback will be invoked. 2601 */ 2602 forceChunking: false, 2603 2604 /** 2605 * If `chunking` is `true`, then this defines the chunk size in bytes. 2606 */ 2607 chunkSize: 2000000, 2608 2609 /** 2610 * If `true`, the individual chunks of a file are being uploaded simultaneously. 2611 */ 2612 parallelChunkUploads: false, 2613 2614 /** 2615 * Whether a chunk should be retried if it fails. 2616 */ 2617 retryChunks: false, 2618 2619 /** 2620 * If `retryChunks` is true, how many times should it be retried. 2621 */ 2622 retryChunksLimit: 3, 2623 2624 /** 2625 * If not `null` defines how many files this Dropzone handles. If it exceeds, 2626 * the event `maxfilesexceeded` will be called. The dropzone element gets the 2627 * class `dz-max-files-reached` accordingly so you can provide visual feedback. 2628 */ 2629 maxFilesize: 256, 2630 2631 /** 2632 * The name of the file param that gets transferred. 2633 * **NOTE**: If you have the option `uploadMultiple` set to `true`, then 2634 * Dropzone will append `[]` to the name. 2635 */ 2636 paramName: "file", 2637 2638 /** 2639 * Whether thumbnails for images should be generated 2640 */ 2641 createImageThumbnails: true, 2642 2643 /** 2644 * In MB. When the filename exceeds this limit, the thumbnail will not be generated. 2645 */ 2646 maxThumbnailFilesize: 10, 2647 2648 /** 2649 * If `null`, the ratio of the image will be used to calculate it. 2650 */ 2651 thumbnailWidth: 120, 2652 2653 /** 2654 * The same as `thumbnailWidth`. If both are null, images will not be resized. 2655 */ 2656 thumbnailHeight: 120, 2657 2658 /** 2659 * How the images should be scaled down in case both, `thumbnailWidth` and `thumbnailHeight` are provided. 2660 * Can be either `contain` or `crop`. 2661 */ 2662 thumbnailMethod: 'crop', 2663 2664 /** 2665 * If set, images will be resized to these dimensions before being **uploaded**. 2666 * If only one, `resizeWidth` **or** `resizeHeight` is provided, the original aspect 2667 * ratio of the file will be preserved. 2668 * 2669 * The `options.transformFile` function uses these options, so if the `transformFile` function 2670 * is overridden, these options don't do anything. 2671 */ 2672 resizeWidth: null, 2673 2674 /** 2675 * See `resizeWidth`. 2676 */ 2677 resizeHeight: null, 2678 2679 /** 2680 * The mime type of the resized image (before it gets uploaded to the server). 2681 * If `null` the original mime type will be used. To force jpeg, for example, use `image/jpeg`. 2682 * See `resizeWidth` for more information. 2683 */ 2684 resizeMimeType: null, 2685 2686 /** 2687 * The quality of the resized images. See `resizeWidth`. 2688 */ 2689 resizeQuality: 0.8, 2690 2691 /** 2692 * How the images should be scaled down in case both, `resizeWidth` and `resizeHeight` are provided. 2693 * Can be either `contain` or `crop`. 2694 */ 2695 resizeMethod: 'contain', 2696 2697 /** 2698 * The base that is used to calculate the filesize. You can change this to 2699 * 1024 if you would rather display kibibytes, mebibytes, etc... 2700 * 1024 is technically incorrect, because `1024 bytes` are `1 kibibyte` not `1 kilobyte`. 2701 * You can change this to `1024` if you don't care about validity. 2702 */ 2703 filesizeBase: 1000, 2704 2705 /** 2706 * Can be used to limit the maximum number of files that will be handled by this Dropzone 2707 */ 2708 maxFiles: null, 2709 2710 /** 2711 * An optional object to send additional headers to the server. Eg: 2712 * `{ "My-Awesome-Header": "header value" }` 2713 */ 2714 headers: null, 2715 2716 /** 2717 * If `true`, the dropzone element itself will be clickable, if `false` 2718 * nothing will be clickable. 2719 * 2720 * You can also pass an HTML element, a CSS selector (for multiple elements) 2721 * or an array of those. In that case, all of those elements will trigger an 2722 * upload when clicked. 2723 */ 2724 clickable: true, 2725 2726 /** 2727 * Whether hidden files in directories should be ignored. 2728 */ 2729 ignoreHiddenFiles: true, 2730 2731 /** 2732 * The default implementation of `accept` checks the file's mime type or 2733 * extension against this list. This is a comma separated list of mime
2734 * types or file extensions. 2735 * 2736 * Eg.: `image/*,application/pdf,.psd` 2737 * 2738 * If the Dropzone is `clickable` this option will also be used as 2739 * [`accept`](https://developer.mozilla.org/en-US/docs/HTML/Element/input#attr-accept) 2740 * parameter on the hidden file input as well. 2741 */ 2742 acceptedFiles: null, 2743 2744 /** 2745 * **Deprecated!** 2746 * Use acceptedFiles instead. 2747 */ 2748 acceptedMimeTypes: null, 2749 2750 /** 2751 * If false, files will be added to the queue but the queue will not be 2752 * processed automatically. 2753 * This can be useful if you need some additional user input before sending 2754 * files (or if you want want all files sent at once). 2755 * If you're ready to send the file simply call `myDropzone.processQueue()`. 2756 * 2757 * See the [enqueuing file uploads](#enqueuing-file-uploads) documentation 2758 * section for more information. 2759 */ 2760 autoProcessQueue: true, 2761 2762 /** 2763 * If false, files added to the dropzone will not be queued by default. 2764 * You'll have to call `enqueueFile(file)` manually. 2765 */ 2766 autoQueue: true, 2767 2768 /** 2769 * If `true`, this will add a link to every file preview to remove or cancel (if 2770 * already uploading) the file. The `dictCancelUpload`, `dictCancelUploadConfirmation` 2771 * and `dictRemoveFile` options are used for the wording. 2772 */ 2773 addRemoveLinks: false, 2774 2775 /** 2776 * Defines where to display the file previews â if `null` the 2777 * Dropzone element itself is used. Can be a plain `HTMLElement` or a CSS 2778 * selector. The element should have the `dropzone-previews` class so 2779 * the previews are displayed properly. 2780 */ 2781 previewsContainer: null, 2782 2783 /** 2784 * This is the element the hidden input field (which is used when clicking on the 2785 * dropzone to trigger file selection) will be appended to. This might 2786 * be important in case you use frameworks to switch the content of your page. 2787 * 2788 * Can be a selector string, or an element directly. 2789 */ 2790 hiddenInputContainer: "body", 2791 2792 /** 2793 * If null, no capture type will be specified 2794 * If camera, mobile devices will skip the file selection and choose camera 2795 * If microphone, mobile devices will skip the file selection and choose the microphone 2796 * If camcorder, mobile devices will skip the file selection and choose the camera in video mode 2797 * On apple devices multiple must be set to false. AcceptedFiles may need to 2798 * be set to an appropriate mime type (e.g. "image/*", "audio/*", or "video/*"). 2799 */ 2800 capture: null, 2801 2802 /** 2803 * **Deprecated**. Use `renameFile` instead. 2804 */ 2805 renameFilename: null, 2806 2807 /** 2808 * A function that is invoked before the file is uploaded to the server and renames the file. 2809 * This function gets the `File` as argument and can use the `file.name`. The actual name of the 2810 * file that gets used during the upload can be accessed through `file.upload.filename`. 2811 */ 2812 renameFile: null, 2813 2814 /** 2815 * If `true` the fallback will be forced. This is very useful to test your server 2816 * implementations first and make sure that everything works as 2817 * expected without dropzone if you experience problems, and to test 2818 * how your fallbacks will look. 2819 */ 2820 forceFallback: false, 2821 2822 /** 2823 * The text used before any files are dropped. 2824 */ 2825 dictDefaultMessage: "Drop files here to upload", 2826 2827 /** 2828 * The text that replaces the default message text it the browser is not supported. 2829 */ 2830 dictFallbackMessage: "Your browser does not support drag'n'drop file uploads.", 2831 2832 /** 2833 * The text that will be added before the fallback form. 2834 * If you provide a fallback element yourself, or if this option is `null` this will 2835 * be ignored. 2836 */ 2837 dictFallbackText: "Please use the fallback form below to upload your files like in the olde
2837n days.", 2838 2839 /** 2840 * If the filesize is too big. 2841 * `{{filesize}}` and `{{maxFilesize}}` will be replaced with the respective configuration values. 2842 */ 2843 dictFileTooBig: "File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.", 2844 2845 /** 2846 * If the file doesn't match the file type. 2847 */ 2848 dictInvalidFileType: "You can't upload files of this type.", 2849 2850 /** 2851 * If the server response was invalid. 2852 * `{{statusCode}}` will be replaced with the servers status code. 2853 */ 2854 dictResponseError: "Server responded with {{statusCode}} code.", 2855 2856 /** 2857 * If `addRemoveLinks` is true, the text to be used for the cancel upload link. 2858 */ 2859 dictCancelUpload: "Cancel upload", 2860 2861 /** 2862 * The text that is displayed if an upload was manually canceled 2863 */ 2864 dictUploadCanceled: "Upload canceled.", 2865 2866 /** 2867 * If `addRemoveLinks` is true, the text to be used for confirmation when cancelling upload. 2868 */ 2869 dictCancelUploadConfirmation: "Are you sure you want to cancel this upload?", 2870 2871 /** 2872 * If `addRemoveLinks` is true, the text to be used to remove a file. 2873 */ 2874 dictRemoveFile: "Remove file", 2875 2876 /** 2877 * If this is not null, then the user will be prompted before removing a file. 2878 */ 2879 dictRemoveFileConfirmation: null, 2880 2881 /** 2882 * Displayed if `maxFiles` is st and exceeded. 2883 * The string `{{maxFiles}}` will be replaced by the configuration value. 2884 */ 2885 dictMaxFilesExceeded: "You can not upload any more files.", 2886 2887 /** 2888 * Allows you to translate the different units. Starting with `tb` for terabytes and going down to 2889 * `b` for bytes. 2890 */ 2891 dictFileSizeUnits: { tb: "TB", gb: "GB", mb: "MB", kb: "KB", b: "b" }, 2892 /** 2893 * Called when dropzone initialized 2894 * You can add event listeners here 2895 */ 2896 init: function init() {}, 2897 2898 2899 /** 2900 * Can be an **object** of additional parameters to transfer to the server, **or** a `Function` 2901 * that gets invoked with the `files`, `xhr` and, if it's a chunked upload, `chunk` arguments. In case 2902 * of a function, this needs to return a map. 2903 * 2904 * The default implementation does nothing for normal uploads, but adds relevant information for 2905 * chunked uploads. 2906 * 2907 * This is the same as adding hidden input fields in the form element. 2908 */ 2909 params: function params(files, xhr, chunk) { 2910 if (chunk) { 2911 return { 2912 dzuuid: chunk.file.upload.uuid, 2913 dzchunkindex: chunk.index, 2914 dztotalfilesize: chunk.file.size, 2915 dzchunksize: this.options.chunkSize, 2916 dztotalchunkcount: chunk.file.upload.totalChunkCount, 2917 dzchunkbyteoffset: chunk.index * this.options.chunkSize 2918 }; 2919 } 2920 }, 2921 2922 2923 /** 2924 * A function that gets a [file](https://developer.mozilla.org/en-US/docs/DOM/File) 2925 * and a `done` function as parameters. 2926 * 2927 * If the done function is invoked without arguments, the file is "accepted" and will 2928 * be processed. If you pass an error message, the file is rejected, and the error 2929 * message will be displayed. 2930 * This function will not be called if the file is too big or doesn't match the mime types. 2931 */ 2932 accept: function accept(file, done) { 2933 return done(); 2934 }, 2935 2936 2937 /** 2938 * The callback that will be invoked when all chunks have been uploaded for a file. 2939 * It gets the file for which the chunks have been uploaded as the first parameter, 2940 * and the `done` function as second. `done()` needs to be invoked when everything 2941 * needed to finish the upload process is done. 2942 */ 2943 chunksUploaded: function chunksUploaded(file, done) { 2944 done(); 2945 }, 2946 2947 /** 2948 * Gets called when the browser is not supported. 2949 * The default implementation shows the fallback input field and adds 2950 * a text. 2951 */ 2952 fallback: function fallback() { 2953 // This code should pass in IE7... :( 2954 var messageElement = void 0; 2955 this.element.className = this.element.className + " dz-browser-not-supported"; 2956 2957 for (var _iterator2 = this.element.getElementsByTagName("div"), _isArray2 = true, _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) { 2958 var _ref2; 2959 2960 if (_isArray2) { 2961 if (_i2 >= _iterator2.length) break; 2962 _ref2 = _iterator2[_i2++]; 2963 } else { 2964 _i2 = _iterator2.next(); 2965 if (_i2.done) break; 2966 _ref2 = _i2.value; 2967 } 2968 2969 var child = _ref2; 2970 2971 if (/(^| )dz-message($| )/.test(child.className)) { 2972 messageElement = child; 2973 child.className = "dz-message"; // Removes the 'dz-default' class 2974 break; 2975 } 2976 } 2977 if (!messageElement) { 2978 messageElement = Dropzone.createElement("<div class=\"dz-message\"><span></span></div>"); 2979 this.element.appendChild(messageElement); 2980 } 2981 2982 var span = messageElement.getElementsByTagName("span")[0]; 2983 if (span) { 2984 if (span.textContent != null) { 2985 span.textContent = this.options.dictFallbackMessage; 2986 }
2986 else if (span.innerText != null) { 2987 span.innerText = this.options.dictFallbackMessage; 2988 } 2989 } 2990 2991 return this.element.appendChild(this.getFallbackForm()); 2992 }, 2993 2994 2995 /** 2996 * Gets called to calculate the thumbnail dimensions. 2997 * 2998 * It gets `file`, `width` and `height` (both may be `null`) as parameters and must return an object containing: 2999 * 3000 * - `srcWidth` & `srcHeight` (required) 3001 * - `trgWidth` & `trgHeight` (required) 3002 * - `srcX` & `srcY` (optional, default `0`) 3003 * - `trgX` & `trgY` (optional, default `0`) 3004 * 3005 * Those values are going to be used by `ctx.drawImage()`. 3006 */ 3007 resize: function resize(file, width, height, resizeMethod) { 3008 var info = { 3009 srcX: 0, 3010 srcY: 0, 3011 srcWidth: file.width, 3012 srcHeight: file.height 3013 }; 3014 3015 var srcRatio = file.width / file.height; 3016 3017 // Automatically calculate dimensions if not specified 3018 if (width == null && height == null) { 3019 width = info.srcWidth; 3020 height = info.srcHeight; 3021 } else if (width == null) { 3022 width = height * srcRatio; 3023 } else if (height == null) { 3024 height = width / srcRatio; 3025 } 3026 3027 // Make sure images aren't upscaled 3028 width = Math.min(width, info.srcWidth); 3029 height = Math.min(height, info.srcHeight); 3030 3031 var trgRatio = width / height; 3032 3033 if (info.srcWidth > width || info.srcHeight > height) { 3034 // Image is bigger and needs rescaling 3035 if (resizeMethod === 'crop') { 3036 if (srcRatio > trgRatio) { 3037 info.srcHeight = file.height; 3038 info.srcWidth = info.srcHeight * trgRatio; 3039 } else { 3040 info.srcWidth = file.width; 3041 info.srcHeight = info.srcWidth / trgRatio; 3042 } 3043 } else if (resizeMethod === 'contain') { 3044 // Method 'contain' 3045 if (srcRatio > trgRatio) { 3046 height = width / srcRatio; 3047 } else { 3048 width = height * srcRatio; 3049 } 3050 } else { 3051 throw new Error("Unknown resizeMethod '" + resizeMethod + "'"); 3052 } 3053 } 3054 3055 info.srcX = (file.width - info.srcWidth) / 2; 3056 info.srcY = (file.height - info.srcHeight) / 2; 3057 3058 info.trgWidth = width; 3059 info.trgHeight = height; 3060 3061 return info; 3062 }, 3063 3064 3065 /** 3066 * Can be used to transform the file (for example, resize an image if necessary). 3067 * 3068 * The default implementation uses `resizeWidth` and `resizeHeight` (if provided) and resizes 3069 * images according to those dimensions. 3070 * 3071 * Gets the `file` as the first parameter, and a `done()` function as the second, that needs 3072 * to be invoked with the file when the transformation is done. 3073 */ 3074 transformFile: function transformFile(file, done) { 3075 if ((this.options.resizeWidth || this.options.resizeHeight) && file.type.match(/image.*/)) { 3076 return this.resizeImage(file, this.options.resizeWidth, this.options.resizeHeight, this.options.resizeMethod, done); 3077 } else { 3078 return done(file); 3079 } 3080 }, 3081 3082 3083 /** 3084 * A string that contains the template used for each dropped 3085 * file. Change it to fulfill your needs but make sure to properly 3086 * provide all elements. 3087 * 3088 * If you want to use an actual HTML element instead of providing a String 3089 * as a config option, you could create a div with the id `tpl`, 3090 * put the template inside it and provide the element like this: 3091 * 3092 * document 3093 * .querySelector('#tpl') 3094 * .innerHTML 3095 * 3096 */ 3097 previewTemplate: "<div class=\"dz-preview dz-file-preview\">\n <div class=\"dz-image\"><img data-dz-thumbnail /></div>\n <div class=\"dz-details\">\n <div class=\"dz-size\"><span data-dz-size></span></div>\n <div class=\"dz-filename\"><span data-dz-name></span></div>\n </div>\n <div class=\"dz-progress\"><span class=\"dz-upload\" data-dz-uploadprogress></span></div>\n <div class=\"dz-error-message\"><span data-dz-errormessage></span></div>\n <div class=\"dz-success-mark\">\n <svg width=\"54px\" height=\"54px\" viewBox=\"0 0 54 54\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns:sketch=\"http://www.bohemiancoding.com/sketch/ns\">\n <title>Check</title>\n <defs></defs>\n <g id=\"Page-1\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\" sketch:type=\"MSPage\">\n <path d=\"M23.5,31.8431458 L17.5852419,25.9283877 C16.0248253,24.3679711 13.4910294,24.366835 11.9289322,25.9289322 C10.3700136,27.4878508 10.3665912,30.0234455 11.9283877,31.5852419 L20.4147581,40.0716123 C20.5133999,40.1702541 20.6159315,40.2626649 20.7218615,40.3488435 C22.2835669,41.8725651 24.794234,41.8626202 26.3461564,40.3106978 L43.3106978,23.3461564 C44.8771021,21.7797521 44.8758057,19.2483887 43.3137085,17.6862915 C41.7547899,16.1273729 39.2176035,16.1255422 37.6538436,17.6893022 L23.5,31.8431458 Z M27,53 C41.3594035,53 53,41.3594035 53,27 C53,12.6405965 41.3594035,1 27,1 C12.6405965,1 1,12.6405965 1,27 C1,41.3594035 12.6405965,53 27,53 Z\" id=\"Oval-2\" stroke-opacity=\"0.198794158\" stroke=\"#747474\" fill-opacity=\"0.816519475\" fill=\"#FFFFFF\" sketch:type=\"MSShapeGroup\"></path>\n </g>\n </svg>\n </div>\n <div class=\"dz-error-mark\">\n <svg width=\"54px\" height=\"54px\" viewBox=\"0 0 54 54\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns:sketch=\"http://www.bohemiancoding.com/sketch/ns\">\n <title>Error</title>\n <defs></defs>\n <g id=\"Page-1\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\" sketch:type=\"MSPage\">\n <g id=\"Check-+-Oval-2\" sketch:type=\"MSLayerGroup\" stroke=\"#747474\" stroke-opacity=\"0.198794158\" fill=\"#FFFFFF\" fill-opacity=\"0.816519475\">\n <path d=\"M32.6568542,29 L38.3106978,23.3461564 C39.8771021,21.7797521 39.8758057,19.2483887 38.3137085,17.6862915 C36.7547899,16.1273729 34.2176035,16.1255422 32.6538436,17.6893022 L27,23.3431458 L21.3461564,17.6893022 C19.7823965,16.1255422 17.2452101,16.1273729 15.6862915,17.6862915 C14.1241943,19.2483887 14.1228979,21.7797521 15.6893022,23.3461564 L21.3431458,29 L15.6893022,34.6538436 C14.1228979,36.2202479 14.1241943,38.7516113 15.6862915,40.3137085 C17.2452101,41.8726271 19.7823965,41.8744578 21.3461564,40.3106978 L27,34.6568542 L32.6538436,40.3106978 C34.2176035,41.8744578 36.7547899,41.8726271 38.3137085,40.3137085 C39.8758057,38.7516113 39.8771021,36.2202479 38.3106978,34.6538436 L32.6568542,29 Z M27,53 C41.3594035,53 53,41.3594035 53,27 C53,12.6405965 41.3594035,1 27,1 C12.6405965,1 1,12.6405965 1,27 C1,41.3594035 12.6405965,53 27,53 Z\" id=\"Oval-2\" sketch:type=\"MSShapeGroup\"></path>\n </g>\n </g>\n </svg>\n </div>\n</div>", 3098 3099 // END OPTIONS 3100 // (Required by the dropzone documentation parser) 3101 3102 3103 /* 3104 Those functions register themselves to the events on init and handle all 3105 the user interface specific stuff. Overwriting them won't break the upload 3106 but can break the way it's displayed. 3107 You can overwrite them if you don't like the default behavior. If you just 3108 want to add an additional event handler, register it on the dropzone object 3109 and don't overwrite those options. 3110 */ 3111 3112 // Those are self explanatory and simply concern the DragnDrop. 3113 drop: function drop(e) { 3114 return this.element.classList.remove("dz-drag-hover"); 3115 }, 3116 dragstart: function dragstart(e) {}, 3117 dragend: function dragend(e) { 3118 return this.element.classList.remove("dz-drag-hover"); 3119 }, 3120 dragenter: function dragenter(e) { 3121 return this.element.classList.add("dz-drag-hover"); 3122 }, 3123 dragover: function dragover(e) { 3124 return this.element.classList.add("dz-drag-hover"); 3125 }, 3126 dragleave: function dragleave(e) { 3127 return this.element.classList.remove("dz-drag-hover"); 3128 }, 3129 paste: function paste(e) {}, 3130 3131 3132 // Called whenever there are no files left in the dropzone anymore, and the 3133 // dropzone should be displayed as if in the initial state. 3134 reset: function reset() { 3135 return this.element.classList.remove("dz-started"); 3136 }, 3137 3138 3139 // Called when a file is added to the queue 3140 // Receives `file` 3141 addedfile: function addedfile(file) { 3142 var _this2 = this; 3143 3144 if (this.element === this.previewsContainer) { 3145 this.element.classList.add("dz-started"); 3146 } 3147 3148 if (this.previewsContainer) { 3149 file.previewElement = Dropzone.createElement(this.options.previewTemplate.trim()); 3150 file.previewTemplate = file.previewElement; // Backwards compatibility 3151 3152 this.previewsContainer.appendChild(file.previewElement); 3153 for (var _iterator3 = file.previewElement.querySelectorAll("[data-dz-name]"), _isArray3 = true, _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _iterator3[Symbol.iterator]();;) { 3154 var _ref3; 3155 3156 if (_isArray3) { 3157 if (_i3 >= _iterator3.length) break; 3158 _ref3 = _iterator3[_i3++]; 3159 } else { 3160 _i3 = _iterator3.next(); 3161 if (_i3.done) break; 3162 _ref3 = _i3.value; 3163 } 3164 3165 var node = _ref3; 3166 3167 node.textContent = file.name; 3168 } 3169 for (var _iterator4 = file.previewElement.querySelectorAll("[data-dz-size]"), _isArray4 = true, _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : _iterator4[Symbol.iterator]();;) { 3170 if (_isArray4) { 3171 if (_i4 >= _iterator4.length) break; 3172 node = _iterator4[_i4++]; 3173 } else { 3174 _i4 = _iterator4.next(); 3175 if (_i4.done) break; 3176 node = _i4.value; 3177 } 3178 3179 node.innerHTML = this.filesize(file.size); 3180 } 3181 3182 if (this.options.addRemoveLinks) { 3183 file._removeLink = Dropzone.createElement("<a class=\"dz-remove\" href=\"javascript:undefined;\" data-dz-remove>" + this.options.dictRemoveFile + "</a>"); 3184 file.previewElement.appendChild(file._removeLink); 3185 } 3186 3187 var removeFileEvent = function removeFileEvent(e) { 3188 e.preventDefault(); 3189 e.stopPropagation(); 3190 if (file.status === Dropzone.UPLOADING) { 3191 return Dropzone.confirm(_this2.options.dictCancelUploadConfirmation, function () { 3192 return _this2.removeFile(file); 3193 }); 3194 } else { 3195 if (_this2.options.dictRemoveFileConfirmation) { 3196 return Dropzone.confirm(_this2.options.dictRemoveFileConfirmation, function () { 3197 return _this2.removeFile(file); 3198 }); 3199 } else { 3200 return _this2.removeFile(file); 3201 } 3202 } 3203 }; 3204 3205 for (var _iterator5 = file.previewElement.querySelectorAll("[data-dz-remove]"), _isArray5 = true, _i5 = 0, _iterator5 = _isArray5 ? _iterator5 : _iterator5[Symbol.iterator]();;) { 3206 var _ref4; 3207 3208 if (_isArray5) { 3209 if (_i5 >= _iterator5.length) break; 3210 _ref4 = _iterator5[_i5++]; 3211 } else { 3212 _i5 = _iterator5.next(); 3213 if (_i5.done) break; 3214 _ref4 = _i5.value; 3215 } 3216 3217 var removeLink = _ref4; 3218 3219 removeLink.addEventListener("click", removeFileEvent); 3220 } 3221 } 3222 }, 3223 3224 3225 // Called whenever a file is removed. 3226 removedfile: function removedfile(file) { 3227 if (file.previewElement != null && file.previewElement.parentNode != null) { 3228 file.previewElement.parentNode.removeChild(file.previewElement); 3229 } 3230 return this._updateMaxFilesReachedClass(); 3231 }, 3232 3233 3234 // Called when a thumbnail has been generated 3235 // Receives `file` and `dataUrl` 3236 thumbnail: function thumbnail(file, dataUrl) { 3237 if (file.previewElement) { 3238 file.previewElement.classList.remove("dz-file-preview"); 3239 for (var _iterator6 = file.previewElement.querySelectorAll("[data-dz-thumbnail]"), _isArray6 = true, _i6 = 0, _iterator6 = _isArray6 ? _iterator6 : _iterator6[Symbol.iterator]();;) { 3240 var _ref5; 3241 3242 if (_isArray6) { 3243 if (_i6 >= _iterator6.length) break; 3244 _ref5 = _iterator6[_i6++]; 3245 } else { 3246 _i6 = _iterator6.next(); 3247 if (_i6.done) break; 3248 _ref5 = _i6.value; 3249 } 3250 3251 var thumbnailElement = _ref5; 3252 3253 thumbnailElement.alt = file.name; 3254 thumbnailElement.src = dataUrl; 3255 } 3256 3257 return setTimeout(function () { 3258 return file.previewElement.classList.add("dz-image-preview"); 3259 }, 1); 3260 } 3261 }, 3262 3263 3264 // Called whenever an error occurs 3265 // Receives `file` and `message` 3266 error: function error(file, message) { 3267 if (file.previewElement) { 3268 file.previewElement.classList.add("dz-error"); 3269 if (typeof message !== "String" && message.error) { 3270 message = message.error; 3271 } 3272 for (var _iterator7 = file.previewElement.querySelectorAll("[data-dz-errormessage]"), _isArray7 = true, _i7 = 0, _iterator7 = _isArray7 ? _iterator7 : _iterator7[Symbol.iterator]();;) { 3273 var _ref6; 3274 3275 if (_isArray7) { 3276 if (_i7 >= _iterator7.length) break; 3277 _ref6 = _iterator7[_i7++]; 3278 } else { 3279 _i7 = _iterator7.next(); 3280 if (_i7.done) break; 3281 _ref6 = _i7.value; 3282 } 3283 3284 var node = _ref6; 3285 3286 node.textContent = message; 3287 } 3288 } 3289 }, 3290 errormultiple: function errormultiple() {}, 3291 3292 3293 // Called when a file gets processed. Since there is a cue, not all added 3294 // files are processed immediately. 3295 // Receives `file` 3296 processing: function processing(file) { 3297 if (file.previewElement) { 3298 file.previewElement.classList.add("dz-processing"); 3299 if (file._removeLink) { 3300 return file._removeLink.innerHTML = this.options.dictCancelUpload; 3301 } 3302 } 3303 }, 3304 processingmultiple: function processingmultiple() {}, 3305 3306 3307 // Called whenever the upload progress gets updated. 3308 // Receives `file`, `progress` (percentage 0-100) and `bytesSent`. 3309 // To get the total number of bytes of the file, use `file.size` 3310 uploadprogress: function uploadprogress(file, progress, bytesSent) { 3311 if (file.previewElement) { 3312 for (var _iterator8 = file.previewElement.querySelectorAll("[data-dz-uploadprogress]"), _isArray8 = true, _i8 = 0, _iterator8 = _isArray8 ? _iterator8 : _iterator8[Symbol.iterator]();;) { 3313 var _ref7; 3314 3315 if (_isArray8) { 3316 if (_i8 >= _iterator8.length) break; 3317 _ref7 = _iterator8[_i8++]; 3318 } else { 3319 _i8 = _iterator8.next(); 3320 if (_i8.done) break; 3321 _ref7 = _i8.value; 3322 } 3323 3324 var node = _ref7; 3325 3326 node.nodeName === 'PROGRESS' ? node.value = progress : node.style.width = progress + "%"; 3327 } 3328 } 3329 }, 3330 3331 3332 // Called whenever the total upload progress gets updated. 3333 // Called with totalUploadProgress (0-100), totalBytes and totalBytesSent 3334 totaluploadprogress: function totaluploadprogress() {}, 3335 3336 3337 // Called just before the file is sent. Get
3337s the `xhr` object as second 3338 // parameter, so you can modify it (for example to add a CSRF token) and a 3339 // `formData` object to add additional information. 3340 sending: function sending() {}, 3341 sendingmultiple: function sendingmultiple() {}, 3342 3343 3344 // When the complete upload is finished and successful 3345 // Receives `file` 3346 success: function success(file) { 3347 if (file.previewElement) { 3348 return file.previewElement.classList.add("dz-success"); 3349 } 3350 }, 3351 successmultiple: function successmultiple() {}, 3352 3353 3354 // When the upload is canceled. 3355 canceled: function canceled(file) { 3356 return this.emit("error", file, this.options.dictUploadCanceled); 3357 }, 3358 canceledmultiple: function canceledmultiple() {}, 3359 3360 3361 // When the upload is finished, either with success or an error. 3362 // Receives `file` 3363 complete: function complete(file) { 3364 if (file._removeLink) { 3365 file._removeLink.innerHTML = this.options.dictRemoveFile; 3366 } 3367 if (file.previewElement) { 3368 return file.previewElement.classList.add("dz-complete"); 3369 } 3370 }, 3371 completemultiple: function completemultiple() {}, 3372 maxfilesexceeded: function maxfilesexceeded() {}, 3373 maxfilesreached: function maxfilesreached() {}, 3374 queuecomplete: function queuecomplete() {}, 3375 addedfiles: function addedfiles() {} 3376 }; 3377 3378 this.prototype._thumbnailQueue = []; 3379 this.prototype._processingThumbnail = false; 3380 } 3381 3382 // global utility 3383 3384 }, { 3385 key: "extend", 3386 value: function extend(target) { 3387 for (var _len2 = arguments.length, objects = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { 3388 objects[_key2 - 1] = arguments[_key2]; 3389 } 3390 3391 for (var _iterator9 = objects, _isArray9 = true, _i9 = 0, _iterator9 = _isArray9 ? _iterator9 : _iterator9[Symbol.iterator]();;) { 3392 var _ref8; 3393 3394 if (_isArray9) { 3395 if (_i9 >= _iterator9.length) break; 3396 _ref8 = _iterator9[_i9++]; 3397 } else { 3398 _i9 = _iterator9.next(); 3399 if (_i9.done) break; 3400 _ref8 = _i9.value; 3401 } 3402 3403 var object = _ref8; 3404 3405 for (var key in object) { 3406 var val = object[key]; 3407 target[key] = val; 3408 } 3409 } 3410 return target; 3411 } 3412 }]); 3413 3414 function Dropzone(el, options) { 3415 _classCallCheck(this, Dropzone); 3416 3417 var _this = _possibleConstructorReturn(this, (Dropzone.__proto__ || Object.getPrototypeOf(Dropzone)).call(this)); 3418 3419 var fallback = void 0, 3420 left = void 0; 3421 _this.element = el; 3422 // For backwards compatibility since the version was in the prototype previously 3423 _this.version = Dropzone.version; 3424 3425 _this.defaultOptions.previewTemplate = _this.defaultOptions.previewTemplate.replace(/\n*/g, ""); 3426 3427 _this.clickableElements = []; 3428 _this.listeners = []; 3429 _this.files = []; // All files 3430 3431 if (typeof _this.element === "string") { 3432 _this.element = document.querySelector(_this.element); 3433 } 3434 3435 // Not checking if instance of HTMLElement or Element since IE9 is extremely weird. 3436 if (!_this.element || _this.element.nodeType == null) { 3437 throw new Error("Invalid dropzone element."); 3438 } 3439 3440 if (_this.element.dropzone) { 3441 throw new Error("Dropzone already attached."); 3442 } 3443 3444 // Now add this dropzone to the instances. 3445 Dropzone.instances.push(_this); 3446 3447 // Put the dropzone inside the element itself. 3448 _this.element.dropzone = _this; 3449 3450 var elementOptions = (left = Dropzone.optionsForElement(_this.element)) != null ? left : {}; 3451 3452 _this.options = Dropzone.extend({}, _this.defaultOptions, elementOptions, options != null ? options : {}); 3453 3454 // If the browser failed, just call the fallback and leave 3455 if (_this.options.forceFallback || !Dropzone.isBrowserSupported()) { 3456 var _ret; 3457 3458 return _ret = _this.options.fallback.call(_this), _possibleConstructorReturn(_this, _ret); 3459 } 3460 3461 // @options.url = @element.getAttribute "action" unless @options.url? 3462 if (_this.options.url == null) { 3463 _this.options.url = _this.element.getAttribute("action"); 3464 } 3465 3466 if (!_this.options.url) { 3467 throw new Error("No URL provided."); 3468 } 3469 3470 if (_this.options.acceptedFiles && _this.options.acceptedMimeTypes) { 3471 throw new Error("You can't provide both 'acceptedFiles' and 'acceptedMimeTypes'. 'acceptedMimeTypes' is deprecated."); 3472 } 3473 3474 if (_this.options.uploadMultiple && _this.options.chunking) { 3475 throw new Error('You cannot set both: uploadMultiple and chunking.'); 3476 } 3477 3478 // Backwards compatibility 3479 if (_this.options.acceptedMimeTypes) { 3480 _this.options.acceptedFiles = _this.options.acceptedMimeTypes; 3481 delete _this.options.acceptedMimeTypes; 3482 } 3483 3484 // Backwards compatibility 3485 if (_this.options.renameFilename != null) { 3486 _this.options.renameFile = function (file) { 3487 return _this.options.renameFilename.call(_this, file.name, file); 3488 }; 3489 } 3490 3491 _this.options.method = _this.options.method.toUpperCase(); 3492 3493 if ((fallback = _this.getExistingFallback()) && fallback.parentNode) { 3494 // Remove the fallback 3495 fallback.parentNode.removeChild(fallback); 3496 } 3497 3498 // Display previews in the previewsContainer element or the Dropzone element unless explicitly set to false 3499 if (_this.options.previewsContainer !== false) { 3500 if (_this.options.previewsContainer) { 3501 _this.previewsContainer = Dropzone.getElement(_this.options.previewsContainer, "previewsContainer"); 3502 } else { 3503 _this.previewsContainer = _this.element; 3504 } 3505 } 3506 3507 if (_this.options.clickable) { 3508 if (_this.options.clickable === true) { 3509 _this.clickableElements = [_this.element]; 3510 } else { 3511 _this.clickableElements = Dropzone.getElements(_this.options.clickable, "clickable"); 3512 } 3513 } 3514 3515 _this.init(); 3516 return _this; 3517 } 3518 3519 // Returns all files that have been accepted 3520 3521 3522 _createClass(Dropzone, [{ 3523 key: "getAcceptedFiles", 3524 value: function getAcceptedFiles() { 3525 return this.files.filter(function (file) { 3526 return file.accepted; 3527 }).map(function (file) { 3528 return file; 3529 }); 3530 } 3531 3532 // Returns all files that have been rejected
3533 // Not sure when that's going to be useful, but added for completeness. 3534 3535 }, { 3536 key: "getRejectedFiles", 3537 value: function getRejectedFiles() { 3538 return this.files.filter(function (file) { 3539 return !file.accepted; 3540 }).map(function (file) { 3541 return file; 3542 }); 3543 } 3544 }, { 3545 key: "getFilesWithStatus", 3546 value: function getFilesWithStatus(status) { 3547 return this.files.filter(function (file) { 3548 return file.status === status; 3549 }).map(function (file) { 3550 return file; 3551 }); 3552 } 3553 3554 // Returns all files that are in the queue 3555 3556 }, { 3557 key: "getQueuedFiles", 3558 value: function getQueuedFiles() { 3559 return this.getFilesWithStatus(Dropzone.QUEUED); 3560 } 3561 }, { 3562 key: "getUploadingFiles", 3563 value: function getUploadingFiles() { 3564 return this.getFilesWithStatus(Dropzone.UPLOADING); 3565 } 3566 }, { 3567 key: "getErroredFiles", 3568 value: function getErroredFiles() { 3569 return this.getFilesWithStatus(Dropzone.ERROR); 3570 } 3571 }, { 3572 key: "getAddedFiles", 3573 value: function getAddedFiles() { 3574 return this.getFilesWithStatus(Dropzone.ADDED); 3575 } 3576 3577 // Files that are either queued or uploading 3578 3579 }, { 3580 key: "getActiveFiles", 3581 value: function getActiveFiles() { 3582 return this.files.filter(function (file) { 3583 return file.status === Dropzone.UPLOADING || file.status === Dropzone.QUEUED; 3584 }).map(function (file) { 3585 return file; 3586 }); 3587 } 3588 3589 // The function that gets called when Dropzone is initialized. You 3590 // can (and should) setup event listeners inside this function. 3591 3592 }, { 3593 key: "init", 3594 value: function init() { 3595 var _this3 = this; 3596 3597 // In case it isn't set already 3598 if (this.element.tagName === "form") { 3599 this.element.setAttribute("enctype", "multipart/form-data"); 3600 } 3601 3602 if (this.element.classList.contains("dropzone") && !this.element.querySelector(".dz-message")) { 3603 this.element.appendChild(Dropzone.createElement("<div class=\"dz-default dz-message\"><span>" + this.options.dictDefaultMessage + "</span></div>")); 3604 } 3605 3606 if (this.clickableElements.length) { 3607 var setupHiddenFileInput = function setupHiddenFileInput() { 3608 if (_this3.hiddenFileInput) { 3609 _this3.hiddenFileInput.parentNode.removeChild(_this3.hiddenFileInput); 3610 } 3611 _this3.hiddenFileInput = document.createElement("input"); 3612 _this3.hiddenFileInput.setAttribute("type", "file"); 3613 if (_this3.options.maxFiles === null || _this3.options.maxFiles > 1) { 3614 _this3.hiddenFileInput.setAttribute("multiple", "multiple"); 3615 } 3616 _this3.hiddenFileInput.className = "dz-hidden-input"; 3617 3618 if (_this3.options.acceptedFiles !== null) { 3619 _this3.hiddenFileInput.setAttribute("accept", _this3.options.acceptedFiles); 3620 } 3621 if (_this3.options.capture !== null) { 3622 _this3.hiddenFileInput.setAttribute("capture", _this3.options.capture); 3623 } 3624 3625 // Not setting `display="none"` because some browsers don't accept clicks 3626 // on elements that aren't displayed. 3627 _this3.hiddenFileInput.style.visibility = "hidden"; 3628 _this3.hiddenFileInput.style.position = "absolute"; 3629 _this3.hiddenFileInput.style.top = "0"; 3630 _this3.hiddenFileInput.style.left = "0"; 3631 _this3.hiddenFileInput.style.height = "0"; 3632 _this3.hiddenFileInput.style.width = "0"; 3633 Dropzone.getElement(_this3.options.hiddenInputContainer, 'hiddenInputContainer').appendChild(_this3.hiddenFileInput); 3634 return _this3.hiddenFileInput.addEventListener("change", function () { 3635 var files = _this3.hiddenFileInput.files; 3636 3637 if (files.length) { 3638 for (var _iterator10 = files, _isArray10 = true, _i10 = 0, _iterator10 = _isArray10 ? _iterator10 : _iterator10[Symbol.iterator]();;) { 3639 var _ref9; 3640 3641 if (_isArray10) { 3642 if (_i10 >= _iterator10.length) break; 3643 _ref9 = _iterator10[_i10++]; 3644 } else { 3645 _i10 = _iterator10.next(); 3646 if (_i10.done) break; 3647 _ref9 = _i10.value; 3648 } 3649 3650 var file = _ref9; 3651 3652 _this3.addFile(file); 3653 } 3654 } 3655 _this3.emit("addedfiles", files); 3656 return setupHiddenFileInput(); 3657 }); 3658 }; 3659 setupHiddenFileInput(); 3660 } 3661 3662 this.URL = window.URL !== null ? window.URL : window.webkitURL; 3663 3664 // Setup all event listeners on the Dropzone object itself. 3665 // They're not in @setupEventListeners() because they shouldn't be removed 3666 // again when the dropzone gets disabled. 3667 for (var _iterator11 = this.events, _isArray11 = true, _i11 = 0, _iterator11 = _isArray11 ? _iterator11 : _iterator11[Symbol.iterator]();;) { 3668 var _ref10; 3669 3670 if (_isArray11) { 3671 if (_i11 >= _iterator11.length) break; 3672 _ref10 = _iterator11[_i11++]; 3673 } else { 3674 _i11 = _iterator11.next(); 3675 if (_i11.done) break; 3676 _ref10 = _i11.value; 3677 } 3678 3679 var eventName = _ref10; 3680 3681 this.on(eventName, this.options[eventName]); 3682 } 3683 3684 this.on("uploadprogress", function () { 3685 return _this3.updateTotalUploadProgress(); 3686 }); 3687 3688 this.on("removedfile", function () { 3689 return _this3.updateTotalUploadProgress(); 3690 }); 3691 3692 this.on("canceled", function (file) { 3693 return _this3.emit("complete", file); 3694 }); 3695 3696 // Emit a `queuecomplete` event if all files finished uploading. 3697 this.on("complete", function (file) { 3698 if (_this3.getAddedFiles().length === 0 && _this3.getUploadingFiles().length === 0 && _this3.getQueuedFiles().length === 0) { 3699 // This needs to be deferred so that `queuecomplete` really triggers after `complete` 3700 return setTimeout(function () { 3701 return _this3.emit("queuecomplete"); 3702 }, 0); 3703 } 3704 }); 3705 3706 var noPropagation = function noPropagation(e) { 3707 e.stopPropagation(); 3708 if (e.preventDefault) { 3709 return e.preventDefault(); 3710 } else { 3711 return e.returnValue = false;
3712 } 3713 }; 3714 3715 // Create the listeners 3716 this.listeners = [{ 3717 element: this.element, 3718 events: { 3719 "dragstart": function dragstart(e) { 3720 return _this3.emit("dragstart", e); 3721 }, 3722 "dragenter": function dragenter(e) { 3723 noPropagation(e); 3724 return _this3.emit("dragenter", e); 3725 }, 3726 "dragover": function dragover(e) { 3727 // Makes it possible to drag files from chrome's download bar 3728 // http://stackoverflow.com/questions/19526430/drag-and-drop-file-uploads-from-chrome-downloads-bar 3729 // Try is required to prevent bug in Internet Explorer 11 (SCRIPT65535 exception) 3730 var efct = void 0; 3731 try { 3732 efct = e.dataTransfer.effectAllowed; 3733 } catch (error) {} 3734 e.dataTransfer.dropEffect = 'move' === efct || 'linkMove' === efct ? 'move' : 'copy'; 3735 3736 noPropagation(e); 3737 return _this3.emit("dragover", e); 3738 }, 3739 "dragleave": function dragleave(e) { 3740 return _this3.emit("dragleave", e); 3741 }, 3742 "drop": function drop(e) { 3743 noPropagation(e); 3744 return _this3.drop(e); 3745 }, 3746 "dragend": function dragend(e) { 3747 return _this3.emit("dragend", e); 3748 } 3749 3750 // This is disabled right now, because the browsers don't implement it properly. 3751 // "paste": (e) => 3752 // noPropagation e 3753 // @paste e 3754 } }]; 3755 3756 this.clickableElements.forEach(function (clickableElement) { 3757 return _this3.listeners.push({ 3758 element: clickableElement, 3759 events: { 3760 "click": function click(evt) { 3761 // Only the actual dropzone or the message element should trigger file selection 3762 if (clickableElement !== _this3.element || evt.target === _this3.element || Dropzone.elementInside(evt.target, _this3.element.querySelector(".dz-message"))) { 3763 _this3.hiddenFileInput.click(); // Forward the click 3764 } 3765 return true; 3766 } 3767 } 3768 }); 3769 }); 3770 3771 this.enable(); 3772 3773 return this.options.init.call(this); 3774 } 3775 3776 // Not fully tested yet 3777 3778 }, { 3779 key: "destroy", 3780 value: function destroy() { 3781 this.disable(); 3782 this.removeAllFiles(true); 3783 if (this.hiddenFileInput != null ? this.hiddenFileInput.parentNode : undefined) { 3784 this.hiddenFileInput.parentNode.removeChild(this.hiddenFileInput); 3785 this.hiddenFileInput = null; 3786 } 3787 delete this.element.dropzone; 3788 return Dropzone.instances.splice(Dropzone.instances.indexOf(this), 1); 3789 } 3790 }, { 3791 key: "updateTotalUploadProgress", 3792 value: function updateTotalUploadProgress() { 3793 var totalUploadProgress = void 0; 3794 var totalBytesSent = 0; 3795 var totalBytes = 0; 3796 3797 var activeFiles = this.getActiveFiles(); 3798 3799 if (activeFiles.length) { 3800 for (var _iterator12 = this.getActiveFiles(), _isArray12 = true, _i12 = 0, _iterator12 = _isArray12 ? _iterator12 : _iterator12[Symbol.iterator]();;) { 3801 var _ref11; 3802 3803 if (_isArray12) { 3804 if (_i12 >= _iterator12.length) break; 3805 _ref11 = _iterator12[_i12++]; 3806 } else { 3807 _i12 = _iterator12.next(); 3808 if (_i12.done) break; 3809 _ref11 = _i12.value; 3810 } 3811 3812 var file = _ref11; 3813 3814 totalBytesSent += file.upload.bytesSent; 3815 totalBytes += file.upload.total; 3816 } 3817 totalUploadProgress = 100 * totalBytesSent / totalBytes; 3818 } else { 3819 totalUploadProgress = 100; 3820 } 3821 3822 return this.emit("totaluploadprogress", totalUploadProgress, totalBytes, totalBytesSent); 3823 } 3824 3825 // @options.paramName can be a function taking one parameter rather than a string. 3826 // A parameter name for a file is obtained simply by calling this with an index number. 3827 3828 }, { 3829 key: "_getParamName", 3830 value: function _getParamName(n) { 3831 if (typeof this.options.paramName === "function") { 3832 return this.options.paramName(n); 3833 } else { 3834 return "" + this.options.paramName + (this.options.uploadMultiple ? "[" + n + "]" : ""); 3835 } 3836 } 3837 3838 // If @options.renameFile is a function, 3839 // the function will be used to rename the file.name before appending it to the formData 3840 3841 }, { 3842 key: "_renameFile", 3843 value: function _renameFile(file) { 3844 if (typeof this.options.renameFile !== "function") { 3845 return file.name; 3846 } 3847 return this.options.renameFile(file); 3848 } 3849 3850 // Returns a form that can be used as fallback if the browser does not support DragnDrop 3851 // 3852 // If the dropzone is already a form, only the input field and button are returned. Otherwise a complete form element is provided. 3853 // This code has to pass in IE7 :( 3854 3855 }, { 3856 key: "getFallbackForm", 3857 value: function getFallbackForm() { 3858 var existingFallback = void 0, 3859 form = void 0; 3860 if (existingFallback = this.getExistingFallback()) { 3861 return existingFallback; 3862 } 3863 3864 var fieldsString = "<div class=\"dz-fallback\">"; 3865 if (this.options.dictFallbackText) { 3866 fieldsString += "<p>" + this.options.dictFallbackText + "</p>"; 3867 } 3868 fieldsString += "<input type=\"file\" name=\"" + this._getParamName(0) + "\" " + (this.options.uploadMultiple ? 'multiple="multiple"' : undefined) + " /><input type=\"submit\" value=\"Upload!\"></div>"; 3869 3870 var fields = Dropzone.createElement(fieldsString); 3871 if (this.element.tagName !== "FORM") { 3872 form = Dropzone.createElement("<form action=\"" + this.options.url + "\" enctype=\"multipart/form-data\" method=\"" + this.options.method + "\"></form>"); 3873 form.appendChild(fields); 3874 } else { 3875 // Make sure that the enctype and method attributes are set properly 3876 this.element.setAttribute("enctype", "multipart/form-data"); 3877 this.element.setAttribute("method", this.options.method); 3878 } 3879 return form != null ? form : fields; 3880 } 3881 3882 // Returns the fallback elements if they exist already 3883 // 3884 // This code has to pass in IE7 :( 3885 3886 }, { 3887 key: "getExistingFallback", 3888 value: function getExistingFallback() { 3889 var getFallback = function getFallback(elements) { 3890 for (var _iterator13 = elements, _isArray13 = true, _i13 = 0, _iterator13 = _isArray13 ? _iterator13 : _iterator13[Symbol.iterator]();;) { 3891 var _ref12; 3892 3893 if (_isArray13) { 3894 if (_i13 >= _iterator13.length) break; 3895 _ref12 = _iterator13[_i13++]; 3896 } else { 3897 _i13 = _iterator13.next(); 3898 if (_i13.done) break; 3899 _ref12 = _i13.value; 3900 } 3901 3902 var el = _ref12; 3903 3904 if (/(^| )fallback($| )/.test(el.className)) { 3905 return el; 3906 } 3907 } 3908 }; 3909 3910 var _arr = ["div", "form"]; 3911 for (var _i14 = 0; _i14 < _arr.length; _i14++) { 3912 var tagName = _arr[_i14]; 3913 var fallback; 3914 if (fallback = getFallback(this.element.getElementsByTagName(tagName))) { 3915 return fallback; 3916 } 3917 } 3918 } 3919 3920 // Activates all listeners stored in @listeners 3921 3922 }, { 3923 key: "setupEventListeners", 3924 value: function setupEventListeners() { 3925 return this.listeners.map(function (elementListeners) { 3926 return function () { 3927 var result = []; 3928 for (var event in elementListeners.events) { 3929 var listener = elementListeners.events[event]; 3930 result.push(elementListeners.element.addEventListener(event, listener, false)); 3931 } 3932 return result; 3933 }(); 3934 }); 3935 } 3936 3937 // Deactivates all listeners stored in @listeners 3938 3939 }, { 3940 key: "removeEventListeners", 3941 value: function removeEventListeners() { 3942 return this.listeners.map(function (elementListeners) { 3943 return function () { 3944 var result = []; 3945 for (var event in elementListeners.events) { 3946 var listener = elementListeners.events[event]; 3947 result.push(elementListeners.element.removeEventListener(event, listener, false)); 3948 } 3949 return result; 3950 }(); 3951 }); 3952 } 3953 3954 // Removes all event listeners and cancels all files in the queue or being processed. 3955 3956 }, { 3957 key: "disable", 3958 value: function disable() { 3959 var _this4 = this; 3960
3961 this.clickableElements.forEach(function (element) { 3962 return element.classList.remove("dz-clickable"); 3963 }); 3964 this.removeEventListeners(); 3965 this.disabled = true; 3966 3967 return this.files.map(function (file) { 3968 return _this4.cancelUpload(file); 3969 }); 3970 } 3971 }, { 3972 key: "enable", 3973 value: function enable() { 3974 delete this.disabled; 3975 this.clickableElements.forEach(function (element) { 3976 return element.classList.add("dz-clickable"); 3977 }); 3978 return this.setupEventListeners(); 3979 } 3980 3981 // Returns a nicely formatted filesize 3982 3983 }, { 3984 key: "filesize", 3985 value: function filesize(size) { 3986 var selectedSize = 0; 3987 var selectedUnit = "b"; 3988 3989 if (size > 0) { 3990 var units = ['tb', 'gb', 'mb', 'kb', 'b']; 3991 3992 for (var i = 0; i < units.length; i++) { 3993 var unit = units[i]; 3994 var cutoff = Math.pow(this.options.filesizeBase, 4 - i) / 10; 3995 3996 if (size >= cutoff) { 3997 selectedSize = size / Math.pow(this.options.filesizeBase, 4 - i); 3998 selectedUnit = unit; 3999 break; 4000 } 4001 } 4002 4003 selectedSize = Math.round(10 * selectedSize) / 10; // Cutting of digits 4004 } 4005 4006 return "<strong>" + selectedSize + "</strong> " + this.options.dictFileSizeUnits[selectedUnit]; 4007 } 4008 4009 // Adds or removes the `dz-max-files-reached` class from the form. 4010 4011 }, { 4012 key: "_updateMaxFilesReachedClass", 4013 value: function _updateMaxFilesReachedClass() { 4014 if (this.options.maxFiles != null && this.getAcceptedFiles().length >= this.options.maxFiles) { 4015 if (this.getAcceptedFiles().length === this.options.maxFiles) { 4016 this.emit('maxfilesreached', this.files); 4017 } 4018 return this.element.classList.add("dz-max-files-reached"); 4019 } else { 4020 return this.element.classList.remove("dz-max-files-reached"); 4021 } 4022 } 4023 }, { 4024 key: "drop", 4025 value: function drop(e) { 4026 if (!e.dataTransfer) { 4027 return; 4028 } 4029 this.emit("drop", e); 4030 4031 // Convert the FileList to an Array 4032 // This is necessary for IE11 4033 var files = []; 4034 for (var i = 0; i < e.dataTransfer.files.length; i++) { 4035 files[i] = e.dataTransfer.files[i]; 4036 } 4037 4038 this.emit("addedfiles", files); 4039 4040 // Even if it's a folder, files.length will contain the folders. 4041 if (files.length) { 4042 var items = e.dataTransfer.items; 4043 4044 if (items && items.length && items[0].webkitGetAsEntry != null) { 4045 // The browser supports dropping of folders, so handle items instead of files 4046 this._addFilesFromItems(items); 4047 } else { 4048 this.handleFiles(files); 4049 } 4050 } 4051 } 4052 }, { 4053 key: "paste", 4054 value: function paste(e) { 4055 if (__guard__(e != null ? e.clipboardData : undefined, function (x) { 4056 return x.items; 4057 }) == null) { 4058 return; 4059 } 4060 4061 this.emit("paste", e); 4062 var items = e.clipboardData.items; 4063 4064 4065 if (items.length) { 4066 return this._addFilesFromItems(items); 4067 } 4068 } 4069 }, { 4070 key: "handleFiles", 4071 value: function handleFiles(files) { 4072 for (var _iterator14 = files, _isArray14 = true, _i15 = 0, _iterator14 = _isArray14 ? _iterator14 : _iterator14[Symbol.iterator]();;) { 4073 var _ref13; 4074 4075 if (_isArray14) { 4076 if (_i15 >= _iterator14.length) break; 4077 _ref13 = _iterator14[_i15++]; 4078 } else { 4079 _i15 = _iterator14.next(); 4080 if (_i15.done) break; 4081 _ref13 = _i15.value; 4082 } 4083 4084 var file = _ref13; 4085 4086 this.addFile(file); 4087 } 4088 } 4089 4090 // When a folder is dropped (or files are pasted), items must be handled 4091 // instead of files. 4092 4093 }, { 4094 key: "_addFilesFromItems", 4095 value: function _addFilesFromItems(items) { 4096 var _this5 = this; 4097 4098 return function () { 4099 var result = []; 4100 for (var _iterator15 = items, _isArray15 = true, _i16 = 0, _iterator15 = _isArray15 ? _iterator15 : _iterator15[Symbol.iterator]();;) { 4101 var _ref14; 4102 4103 if (_isArray15) { 4104 if (_i16 >= _iterator15.length) break; 4105 _ref14 = _iterator15[_i16++]; 4106 } else { 4107 _i16 = _iterator15.next(); 4108 if (_i16.done) break; 4109 _ref14 = _i16.value; 4110 } 4111 4112 var item = _ref14; 4113 4114 var entry; 4115 if (item.webkitGetAsEntry != null && (entry = item.webkitGetAsEntry())) { 4116 if (entry.isFile) { 4117 result.push(_this5.addFile(item.getAsFile())); 4118 } else if (entry.isDirectory) { 4119 // Append all files from that directory to files 4120 result.push(_this5._addFilesFromDirectory(entry, entry.name)); 4121 } else { 4122 result.push(undefined); 4123 } 4124 } else if (item.getAsFile != null) { 4125 if (item.kind == null || item.kind === "file") { 4126 result.push(_this5.addFile(item.getAsFile())); 4127 } else { 4128 result.push(undefined); 4129 } 4130 } else { 4131 result.push(undefined); 4132 } 4133 } 4134 return result; 4135 }(); 4136 } 4137 4138 // Goes through the directory, and adds each file it finds recursively 4139 4140 }, { 4141 key: "_addFilesFromDirectory", 4142 value: function _addFilesFromDirectory(directory, path) { 4143 var _this6 = this; 4144 4145 var dirReader = directory.createReader(); 4146 4147 var errorHandler = function errorHandler(error) { 4148 return __guardMethod__(console, 'log', function (o) { 4149 return o.log(error); 4150 }); 4151 }; 4152 4153 var readEntries = function readEntries() { 4154 return dirReader.readEntries(function (entries) { 4155 if (entries.length > 0) { 4156 for (var _iterator16 = entries, _isArray16 = true, _i17 = 0, _iterator16 = _isArray16 ? _iterator16 : _iterator16[Symbol.iterator]();;) { 4157 var _ref15; 4158 4159 if (_isArray16) { 4160 if (_i17 >= _iterator16.length) break; 4161 _ref15 = _iterator16[_i17++]; 4162 } else { 4163 _i17 = _iterator16.next(); 4164 if (_i17.done) break; 4165 _ref15 = _i17.value; 4166 } 4167 4168 var entry = _ref15; 4169 4170 if (entry.isFile) { 4171 entry.file(function (file) { 4172 if (_this6.options.ignoreHiddenFiles && file.name.substring(0, 1) === '.') { 4173 return; 4174 } 4175 file.fullPath = path + "/" + file.name; 4176 return _this6.addFile(file); 4177 }); 4178 } else if (entry.isDirectory) { 4179 _this6._addFilesFromDirectory(entry, path + "/" + entry.name); 4180 } 4181 } 4182 4183 // Recursively call readEntries() again, since browser only handle 4184 // the first 100 entries. 4185 // See: https://developer.mozilla.org/en-US/docs/Web/API/DirectoryReader#readEntries 4186 readEntries(); 4187 } 4188 return null; 4189 }, errorHandler); 4190 }; 4191 4192 return readEntries(); 4193 } 4194 4195 // If `done()` is called without argument the file is accepted 4196 // If you call it with an error message, the file is rejected 4197 // (This allows for asynchronous validation) 4198 // 4199 // This function checks the filesize, and if the file.type passes the 4200 // `acceptedFiles` check. 4201 4202 }, { 4203 key: "accept", 4204 value: function accept(file, done) { 4205 if (this.options.maxFilesize && file.size > this.options.maxFilesize * 1024 * 1024) { 4206 return done(this.options.dictFileTooBig.replace("{{filesize}}", Math.round(file.size / 1024 / 10.24) / 100).replace("{{maxFilesize}}", this.options.maxFilesize)); 4207 } else if (!Dropzone.isValidFile(file, this.options.acceptedFiles)) { 4208 return done(this.options.dictInvalidFileType); 4209 } else if (this.options.maxFiles != null && this.getAcceptedFiles().length >= this.options.maxFiles) { 4210 done(this.options.dictMaxFilesExceeded.replace("{{maxFiles}}", this.options.maxFiles));
4211 return this.emit("maxfilesexceeded", file); 4212 } else { 4213 return this.options.accept.call(this, file, done); 4214 } 4215 } 4216 }, { 4217 key: "addFile", 4218 value: function addFile(file) { 4219 var _this7 = this; 4220 4221 file.upload = { 4222 uuid: Dropzone.uuidv4(), 4223 progress: 0, 4224 // Setting the total upload size to file.size for the beginning 4225 // It's actual different than the size to be transmitted. 4226 total: file.size, 4227 bytesSent: 0, 4228 filename: this._renameFile(file), 4229 chunked: this.options.chunking && (this.options.forceChunking || file.size > this.options.chunkSize), 4230 totalChunkCount: Math.ceil(file.size / this.options.chunkSize) 4231 }; 4232 this.files.push(file); 4233 4234 file.status = Dropzone.ADDED; 4235 4236 this.emit("addedfile", file); 4237 4238 this._enqueueThumbnail(file); 4239 4240 return this.accept(file, function (error) { 4241 if (error) { 4242 file.accepted = false; 4243 _this7._errorProcessing([file], error); // Will set the file.status 4244 } else { 4245 file.accepted = true; 4246 if (_this7.options.autoQueue) { 4247 _this7.enqueueFile(file); 4248 } // Will set .accepted = true 4249 } 4250 return _this7._updateMaxFilesReachedClass(); 4251 }); 4252 } 4253 4254 // Wrapper for enqueueFile 4255 4256 }, { 4257 key: "enqueueFiles", 4258 value: function enqueueFiles(files) { 4259 for (var _iterator17 = files, _isArray17 = true, _i18 = 0, _iterator17 = _isArray17 ? _iterator17 : _iterator17[Symbol.iterator]();;) { 4260 var _ref16; 4261 4262 if (_isArray17) { 4263 if (_i18 >= _iterator17.length) break; 4264 _ref16 = _iterator17[_i18++]; 4265 } else { 4266 _i18 = _iterator17.next(); 4267 if (_i18.done) break; 4268 _ref16 = _i18.value; 4269 } 4270 4271 var file = _ref16; 4272 4273 this.enqueueFile(file); 4274 } 4275 return null; 4276 } 4277 }, { 4278 key: "enqueueFile", 4279 value: function enqueueFile(file) { 4280 var _this8 = this; 4281 4282 if (file.status === Dropzone.ADDED && file.accepted === true) { 4283 file.status = Dropzone.QUEUED; 4284 if (this.options.autoProcessQueue) { 4285 return setTimeout(function () { 4286 return _this8.processQueue(); 4287 }, 0); // Deferring the call 4288 } 4289 } else { 4290 throw new Error("This file can't be queued because it has already been processed or was rejected."); 4291 } 4292 } 4293 }, { 4294 key: "_enqueueThumbnail", 4295 value: function _enqueueThumbnail(file) { 4296 var _this9 = this; 4297 4298 if (this.options.createImageThumbnails && file.type.match(/image.*/) && file.size <= this.options.maxThumbnailFilesize * 1024 * 1024) { 4299 this._thumbnailQueue.push(file); 4300 return setTimeout(function () { 4301 return _this9._processThumbnailQueue(); 4302 }, 0); // Deferring the call 4303 } 4304 } 4305 }, { 4306 key: "_processThumbnailQueue", 4307 value: function _processThumbnailQueue() { 4308 var _this10 = this; 4309 4310 if (this._processingThumbnail || this._thumbnailQueue.length === 0) { 4311 return; 4312 } 4313 4314 this._processingThumbnail = true; 4315 var file = this._thumbnailQueue.shift(); 4316 return this.createThumbnail(file, this.options.thumbnailWidth, this.options.thumbnailHeight, this.options.thumbnailMethod, true, function (dataUrl) { 4317 _this10.emit("thumbnail", file, dataUrl); 4318 _this10._processingThumbnail = false; 4319 return _this10._processThumbnailQueue(); 4320 }); 4321 } 4322 4323 // Can be called by the user to remove a file 4324 4325 }, { 4326 key: "removeFile", 4327 value: function removeFile(file) { 4328 if (file.status === Dropzone.UPLOADING) { 4329 this.cancelUpload(file); 4330 } 4331 this.files = without(this.files, file); 4332 4333 this.emit("removedfile", file); 4334 if (this.files.length === 0) { 4335 return this.emit("reset"); 4336 } 4337 } 4338 4339 // Removes all files that aren't currently processed from the list 4340 4341 }, { 4342 key: "removeAllFiles", 4343 value: function removeAllFiles(cancelIfNecessary) { 4344 // Create a copy of files since removeFile() changes the @files array. 4345 if (cancelIfNecessary == null) { 4346 cancelIfNecessary = false;
4347 } 4348 for (var _iterator18 = this.files.slice(), _isArray18 = true, _i19 = 0, _iterator18 = _isArray18 ? _iterator18 : _iterator18[Symbol.iterator]();;) { 4349 var _ref17; 4350 4351 if (_isArray18) { 4352 if (_i19 >= _iterator18.length) break; 4353 _ref17 = _iterator18[_i19++]; 4354 } else { 4355 _i19 = _iterator18.next(); 4356 if (_i19.done) break; 4357 _ref17 = _i19.value; 4358 } 4359 4360 var file = _ref17; 4361 4362 if (file.status !== Dropzone.UPLOADING || cancelIfNecessary) { 4363 this.removeFile(file); 4364 } 4365 } 4366 return null; 4367 } 4368 4369 // Resizes an image before it gets sent to the server. This function is the default behavior of 4370 // `options.transformFile` if `resizeWidth` or `resizeHeight` are set. The callback is invoked with 4371 // the resized blob. 4372 4373 }, { 4374 key: "resizeImage", 4375 value: function resizeImage(file, width, height, resizeMethod, callback) { 4376 var _this11 = this; 4377 4378 return this.createThumbnail(file, width, height, resizeMethod, true, function (dataUrl, canvas) { 4379 if (canvas == null) { 4380 // The image has not been resized 4381 return callback(file); 4382 } else { 4383 var resizeMimeType = _this11.options.resizeMimeType; 4384 4385 if (resizeMimeType == null) { 4386 resizeMimeType = file.type; 4387 } 4388 var resizedDataURL = canvas.toDataURL(resizeMimeType, _this11.options.resizeQuality); 4389 if (resizeMimeType === 'image/jpeg' || resizeMimeType === 'image/jpg') { 4390 // Now add the original EXIF information 4391 resizedDataURL = ExifRestore.restore(file.dataURL, resizedDataURL); 4392 } 4393 return callback(Dropzone.dataURItoBlob(resizedDataURL)); 4394 } 4395 }); 4396 } 4397 }, { 4398 key: "createThumbnail", 4399 value: function createThumbnail(file, width, height, resizeMethod, fixOrientation, callback) { 4400 var _this12 = this; 4401 4402 var fileReader = new FileReader(); 4403 4404 fileReader.onload = function () { 4405 4406 file.dataURL = fileReader.result; 4407 4408 // Don't bother creating a thumbnail for SVG images since they're vector 4409 if (file.type === "image/svg+xml") { 4410 if (callback != null) { 4411 callback(fileReader.result); 4412 } 4413 return; 4414 } 4415 4416 return _this12.createThumbnailFromUrl(file, width, height, resizeMethod, fixOrientation, callback); 4417 }; 4418 4419 return fileReader.readAsDataURL(file); 4420 } 4421 }, { 4422 key: "createThumbnailFromUrl", 4423 value: function createThumbnailFromUrl(file, width, height, resizeMethod, fixOrientation, callback, crossOrigin) { 4424 var _this13 = this; 4425 4426 // Not using `new Image` here because of a bug in latest Chrome versions. 4427 // See https://github.com/enyo/dropzone/pull/226 4428 var img = document.createElement("img"); 4429 4430 if (crossOrigin) { 4431 img.crossOrigin = crossOrigin; 4432 } 4433 4434 img.onload = function () { 4435 var loadExif = function loadExif(callback) { 4436 return callback(1); 4437 }; 4438 if (typeof EXIF !== 'undefined' && EXIF !== null && fixOrientation) { 4439 loadExif = function loadExif(callback) { 4440 return EXIF.getData(img, function () { 4441 return callback(EXIF.getTag(this, 'Orientation')); 4442 }); 4443 }; 4444 } 4445 4446 return loadExif(function (orientation) { 4447 file.width = img.width; 4448 file.height = img.height; 4449 4450 var resizeInfo = _this13.options.resize.call(_this13, file, width, height, resizeMethod); 4451 4452 var canvas = document.createElement("canvas"); 4453 var ctx = canvas.getContext("2d"); 4454 4455 canvas.width = resizeInfo.trgWidth; 4456 canvas.height = resizeInfo.trgHeight; 4457 4458 if (orientation > 4) { 4459 canvas.width = resizeInfo.trgHeight; 4460 canvas.height = resizeInfo.trgWidth; 4461 } 4462 4463 switch (orientation) { 4464 case 2: 4465 // horizontal flip 4466 ctx.translate(canvas.width, 0); 4467 ctx.scale(-1, 1); 4468 break; 4469 case 3: 4470 // 180° rotate left 4471 ctx.translate(canvas.width, canvas.height); 4472 ctx.rotate(Math.PI); 4473 break; 4474 case 4: 4475 // vertical flip 4476 ctx.translate(0, canvas.height); 4477 ctx.scale(1, -1); 4478 break; 4479 case 5: 4480 // vertical flip + 90 rotate right 4481 ctx.rotate(0.5 * Math.PI); 4482 ctx.scale(1, -1); 4483 break; 4484 case 6: 4485 // 90° rotate right 4486 ctx.rotate(0.5 * Math.PI); 4487 ctx.translate(0, -canvas.width); 4488 break; 4489 case 7: 4490 // horizontal flip + 90 rotate right 4491 ctx.rotate(0.5 * Math.PI); 4492 ctx.translate(canvas.height, -canvas.width); 4493 ctx.scale(-1, 1); 4494 break; 4495 case 8: 4496 // 90° rotate left 4497 ctx.rotate(-0.5 * Math.PI); 4498 ctx.translate(-canvas.height, 0); 4499 break; 4500 } 4501 4502 // This is a bugfix for iOS' scaling bug. 4503 drawImageIOSFix(ctx, img, resizeInfo.srcX != null ? resizeInfo.srcX : 0, resizeInfo.srcY != null ? resizeInfo.srcY : 0, resizeInfo.srcWidth, resizeInfo.srcHeight, resizeInfo.trgX != null ? resizeInfo.trgX : 0, resizeInfo.trgY != null ? resizeInfo.trgY : 0, resizeInfo.trgWidth, resizeInfo.trgHeight); 4504 4505 var thumbnail = canvas.toDataURL("image/png"); 4506 4507 if (callback != null) {
4508 return callback(thumbnail, canvas); 4509 } 4510 }); 4511 }; 4512 4513 if (callback != null) { 4514 img.onerror = callback; 4515 } 4516 4517 return img.src = file.dataURL; 4518 } 4519 4520 // Goes through the queue and processes files if there aren't too many already. 4521 4522 }, { 4523 key: "processQueue", 4524 value: function processQueue() { 4525 var parallelUploads = this.options.parallelUploads; 4526 4527 var processingLength = this.getUploadingFiles().length; 4528 var i = processingLength; 4529 4530 // There are already at least as many files uploading than should be 4531 if (processingLength >= parallelUploads) { 4532 return; 4533 } 4534 4535 var queuedFiles = this.getQueuedFiles(); 4536 4537 if (!(queuedFiles.length > 0)) { 4538 return; 4539 } 4540 4541 if (this.options.uploadMultiple) { 4542 // The files should be uploaded in one request 4543 return this.processFiles(queuedFiles.slice(0, parallelUploads - processingLength)); 4544 } else { 4545 while (i < parallelUploads) { 4546 if (!queuedFiles.length) { 4547 return; 4548 } // Nothing left to process 4549 this.processFile(queuedFiles.shift()); 4550 i++; 4551 } 4552 } 4553 } 4554 4555 // Wrapper for `processFiles` 4556 4557 }, { 4558 key: "processFile", 4559 value: function processFile(file) { 4560 return this.processFiles([file]); 4561 } 4562 4563 // Loads the file, then calls finishedLoading() 4564 4565 }, { 4566 key: "processFiles", 4567 value: function processFiles(files) { 4568 for (var _iterator19 = files, _isArray19 = true, _i20 = 0, _iterator19 = _isArray19 ? _iterator19 : _iterator19[Symbol.iterator]();;) { 4569 var _ref18; 4570 4571 if (_isArray19) { 4572 if (_i20 >= _iterator19.length) break; 4573 _ref18 = _iterator19[_i20++]; 4574 } else { 4575 _i20 = _iterator19.next(); 4576 if (_i20.done) break; 4577 _ref18 = _i20.value; 4578 } 4579 4580 var file = _ref18; 4581 4582 file.processing = true; // Backwards compatibility 4583 file.status = Dropzone.UPLOADING; 4584 4585 this.emit("processing", file); 4586 } 4587 4588 if (this.options.uploadMultiple) { 4589 this.emit("processingmultiple", files); 4590 } 4591 4592 return this.uploadFiles(files); 4593 } 4594 }, { 4595 key: "_getFilesWithXhr", 4596 value: function _getFilesWithXhr(xhr) { 4597 var files = void 0; 4598 return files = this.files.filter(function (file) { 4599 return file.xhr === xhr; 4600 }).map(function (file) { 4601 return file; 4602 }); 4603 } 4604 4605 // Cancels the file upload and sets the status to CANCELED 4606 // **if** the file is actually being uploaded. 4607 // If it's still in the queue, the file is being removed from it and the status 4608 // set to CANCELED. 4609 4610 }, { 4611 key: "cancelUpload", 4612 value: function cancelUpload(file) { 4613 if (file.status === Dropzone.UPLOADING) { 4614 var groupedFiles = this._getFilesWithXhr(file.xhr); 4615 for (var _iterator20 = groupedFiles, _isArray20 = true, _i21 = 0, _iterator20 = _isArray20 ? _iterator20 : _iterator20[Symbol.iterator]();;) { 4616 var _ref19; 4617 4618 if (_isArray20) { 4619 if (_i21 >= _iterator20.length) break; 4620 _ref19 = _iterator20[_i21++]; 4621 } else { 4622 _i21 = _iterator20.next(); 4623 if (_i21.done) break; 4624 _ref19 = _i21.value; 4625 } 4626 4627 var groupedFile = _ref19; 4628 4629 groupedFile.status = Dropzone.CANCELED; 4630 } 4631 if (typeof file.xhr !== 'undefined') { 4632 file.xhr.abort(); 4633 } 4634 for (var _iterator21 = groupedFiles, _isArray21 = true, _i22 = 0, _iterator21 = _isArray21 ? _iterator21 : _iterator21[Symbol.iterator]();;) { 4635 var _ref20; 4636 4637 if (_isArray21) { 4638 if (_i22 >= _iterator21.length) break; 4639 _ref20 = _iterator21[_i22++]; 4640 } else { 4641 _i22 = _iterator21.next(); 4642 if (_i22.done) break; 4643 _ref20 = _i22.value; 4644 } 4645 4646 var _groupedFile = _ref20; 4647 4648 this.emit("canceled", _groupedFile); 4649 } 4650 if (this.options.uploadMultiple) { 4651 this.emit("canceledmultiple", groupedFiles); 4652 } 4653 } else if (file.status === Dropzone.ADDED || file.status === Dropzone.QUEUED) { 4654 file.status = Dropzone.CANCELED;
4655 this.emit("canceled", file); 4656 if (this.options.uploadMultiple) { 4657 this.emit("canceledmultiple", [file]); 4658 } 4659 } 4660 4661 if (this.options.autoProcessQueue) { 4662 return this.processQueue(); 4663 } 4664 } 4665 }, { 4666 key: "resolveOption", 4667 value: function resolveOption(option) { 4668 if (typeof option === 'function') { 4669 for (var _len3 = arguments.length, args = Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) { 4670 args[_key3 - 1] = arguments[_key3]; 4671 } 4672 4673 return option.apply(this, args); 4674 } 4675 return option; 4676 } 4677 }, { 4678 key: "uploadFile", 4679 value: function uploadFile(file) { 4680 return this.uploadFiles([file]); 4681 } 4682 }, { 4683 key: "uploadFiles", 4684 value: function uploadFiles(files) { 4685 var _this14 = this; 4686 4687 this._transformFiles(files, function (transformedFiles) { 4688 if (files[0].upload.chunked) { 4689 // This file should be sent in chunks! 4690 4691 // If the chunking option is set, we **know** that there can only be **one** file, since 4692 // uploadMultiple is not allowed with this option. 4693 var file = files[0]; 4694 var transformedFile = transformedFiles[0]; 4695 var startedChunkCount = 0; 4696 4697 file.upload.chunks = []; 4698 4699 var handleNextChunk = function handleNextChunk() { 4700 var chunkIndex = 0; 4701 4702 // Find the next item in file.upload.chunks that is not defined yet. 4703 while (file.upload.chunks[chunkIndex] !== undefined) { 4704 chunkIndex++; 4705 } 4706 4707 // This means, that all chunks have already been started. 4708 if (chunkIndex >= file.upload.totalChunkCount) return; 4709 4710 startedChunkCount++; 4711 4712 var start = chunkIndex * _this14.options.chunkSize; 4713 var end = Math.min(start + _this14.options.chunkSize, file.size); 4714 4715 var dataBlock = { 4716 name: _this14._getParamName(0), 4717 data: transformedFile.webkitSlice ? transformedFile.webkitSlice(start, end) : transformedFile.slice(start, end), 4718 filename: file.upload.filename, 4719 chunkIndex: chunkIndex 4720 }; 4721 4722 file.upload.chunks[chunkIndex] = { 4723 file: file, 4724 index: chunkIndex, 4725 dataBlock: dataBlock, // In case we want to retry. 4726 status: Dropzone.UPLOADING, 4727 progress: 0, 4728 retries: 0 // The number of times this block has been retried. 4729 }; 4730 4731 _this14._uploadData(files, [dataBlock]); 4732 }; 4733 4734 file.upload.finishedChunkUpload = function (chunk) { 4735 var allFinished = true; 4736 chunk.status = Dropzone.SUCCESS; 4737 4738 // Clear the data from the chunk 4739 chunk.dataBlock = null; 4740 // Leaving this reference to xhr intact here will cause memory leaks in some browsers 4741 chunk.xhr = null; 4742 4743 for (var i = 0; i < file.upload.totalChunkCount; i++) { 4744 if (file.upload.chunks[i] === undefined) { 4745 return handleNextChunk(); 4746 } 4747 if (file.upload.chunks[i].status !== Dropzone.SUCCESS) { 4748 allFinished = false; 4749 } 4750 } 4751 4752 if (allFinished) { 4753 _this14.options.chunksUploaded(file, function () { 4754 _this14._finished(files, '', null); 4755 }); 4756 } 4757 }; 4758 4759 if (_this14.options.parallelChunkUploads) { 4760 for (var i = 0; i < file.upload.totalChunkCount; i++) { 4761 handleNextChunk(); 4762 } 4763 } else { 4764 handleNextChunk(); 4765 } 4766 } else { 4767 var dataBlocks = []; 4768 for (var _i23 = 0; _i23 < files.length; _i23++) { 4769 dataBlocks[_i23] = { 4770 name: _this14._getParamName(_i23), 4771 data: transformedFiles[_i23], 4772 filename: files[_i23].upload.filename 4773 }; 4774 } 4775 _this14._uploadData(files, dataBlocks); 4776 } 4777 }); 4778 } 4779 4780 /// Returns the right chunk for given file and xhr 4781 4782 }, { 4783 key: "_getChunk", 4784 value: function _getChunk(file, xhr) { 4785 for (var i = 0; i < file.upload.totalChunkCount; i++) { 4786 if (file.upload.chunks[i] !== undefined && file.upload.chunks[i].xhr === xhr) { 4787 return file.upload.chunks[i]; 4788 } 4789 } 4790 } 4791 4792 // This function actually uploads the file(s) to the server. 4793 // If dataBlocks contains the actual data to upload (meaning, that this could either be transformed 4794 // files, or individual chunks for chunked upload). 4795 4796 }, { 4797 key: "_uploadData", 4798 value: function _uploadData(files, dataBlocks) { 4799 var _this15 = this; 4800 4801 var xhr = new XMLHttpRequest(); 4802 4803 // Put the xhr object in the file objects to be able to reference it later. 4804 for (var _iterator22 = files, _isArray22 = true, _i24 = 0, _iterator22 = _isArray22 ? _iterator22 : _iterator22[Symbol.iterator]();;) { 4805 var _ref21; 4806 4807 if (_isArray22) { 4808 if (_i24 >= _iterator22.length) break; 4809 _ref21 = _iterator22[_i24++]; 4810 } else { 4811 _i24 = _iterator22.next(); 4812 if (_i24.done) break; 4813 _ref21 = _i24.value; 4814 } 4815 4816 var file = _ref21; 4817 4818 file.xhr = xhr; 4819 } 4820 if (files[0].upload.chunked) { 4821 // Put the xhr object in the right chunk object, so it can be associated later, and found with _getChunk 4822 files[0].upload.chunks[dataBlocks[0].chunkIndex].xhr = xhr; 4823 } 4824 4825 var method = this.resolveOption(this.options.method, files); 4826 var url = this.resolveOption(this.options.url, files); 4827 xhr.open(method, url, true); 4828 4829 // Setting the timeout after open because of IE11 issue: https://gitlab.com/meno/dropzone/issues/8 4830 xhr.timeout = this.resolveOption(this.options.timeout, files); 4831 4832 // Has to be after `.open()`. See https://github.com/enyo/dropzone/issues/179 4833 xhr.withCredentials = !!this.options.withCredentials; 4834 4835 xhr.onload = function (e) { 4836 _this15._finishedUploading(files, xhr, e); 4837 }; 4838 4839 xhr.onerror = function () { 4840 _this15._handleUploadError(files, xhr); 4841 }; 4842 4843 // Some browsers do not have the .upload property 4844 var progressObj = xhr.upload != null ? xhr.upload : xhr; 4845 progressObj.onprogress = function (e) { 4846 return _this15._updateFilesUploadProgress(files, xhr, e); 4847 }; 4848 4849 var headers = { 4850 "Accept": "application/json", 4851 "Cache-Control": "no-cache", 4852 "X-Requested-With": "XMLHttpRequest" 4853 }; 4854 4855 if (this.options.headers) { 4856 Dropzone.extend(headers, this.options.headers); 4857 } 4858 4859 for (var headerName in headers) { 4860 var headerValue = headers[headerName]; 4861 if (headerValue) { 4862 xhr.setRequestHeader(headerName, headerValue); 4863 } 4864 } 4865 4866 var formData = new FormData(); 4867 4868 // Adding all @options parameters 4869 if (this.options.params) { 4870 var additionalParams = this.options.params; 4871 if (typeof additionalParams === 'function') { 4872 additionalParams = additionalParams.call(this, files, xhr, files[0].upload.chunked ? this._getChunk(files[0], xhr) : null); 4873 } 4874 4875 for (var key in additionalParams) { 4876 var value = additionalParams[key]; 4877 formData.append(key, value); 4878 } 4879 } 4880 4881 // Let the user add additional data if necessary
4882 for (var _iterator23 = files, _isArray23 = true, _i25 = 0, _iterator23 = _isArray23 ? _iterator23 : _iterator23[Symbol.iterator]();;) { 4883 var _ref22; 4884 4885 if (_isArray23) { 4886 if (_i25 >= _iterator23.length) break; 4887 _ref22 = _iterator23[_i25++]; 4888 } else { 4889 _i25 = _iterator23.next(); 4890 if (_i25.done) break; 4891 _ref22 = _i25.value; 4892 } 4893 4894 var _file = _ref22; 4895 4896 this.emit("sending", _file, xhr, formData); 4897 } 4898 if (this.options.uploadMultiple) { 4899 this.emit("sendingmultiple", files, xhr, formData); 4900 } 4901 4902 this._addFormElementData(formData); 4903 4904 // Finally add the files 4905 // Has to be last because some servers (eg: S3) expect the file to be the last parameter 4906 for (var i = 0; i < dataBlocks.length; i++) { 4907 var dataBlock = dataBlocks[i]; 4908 formData.append(dataBlock.name, dataBlock.data, dataBlock.filename); 4909 } 4910 4911 this.submitRequest(xhr, formData, files); 4912 } 4913 4914 // Transforms all files with this.options.transformFile and invokes done with the transformed files when done. 4915 4916 }, { 4917 key: "_transformFiles", 4918 value: function _transformFiles(files, done) { 4919 var _this16 = this; 4920 4921 var transformedFiles = []; 4922 // Clumsy way of handling asynchronous calls, until I get to add a proper Future library. 4923 var doneCounter = 0; 4924 4925 var _loop = function _loop(i) { 4926 _this16.options.transformFile.call(_this16, files[i], function (transformedFile) { 4927 transformedFiles[i] = transformedFile; 4928 if (++doneCounter === files.length) { 4929 done(transformedFiles); 4930 } 4931 }); 4932 }; 4933 4934 for (var i = 0; i < files.length; i++) { 4935 _loop(i); 4936 } 4937 } 4938 4939 // Takes care of adding other input elements of the form to the AJAX request 4940 4941 }, { 4942 key: "_addFormElementData", 4943 value: function _addFormElementData(formData) { 4944 // Take care of other input elements 4945 if (this.element.tagName === "FORM") { 4946 for (var _iterator24 = this.element.querySelectorAll("input, textarea, select, button"), _isArray24 = true, _i26 = 0, _iterator24 = _isArray24 ? _iterator24 : _iterator24[Symbol.iterator]();;) { 4947 var _ref23; 4948 4949 if (_isArray24) { 4950 if (_i26 >= _iterator24.length) break; 4951 _ref23 = _iterator24[_i26++]; 4952 } else { 4953 _i26 = _iterator24.next(); 4954 if (_i26.done) break; 4955 _ref23 = _i26.value; 4956 } 4957 4958 var input = _ref23; 4959 4960 var inputName = input.getAttribute("name"); 4961 var inputType = input.getAttribute("type"); 4962 if (inputType) inputType = inputType.toLowerCase(); 4963 4964 // If the input doesn't have a name, we can't use it. 4965 if (typeof inputName === 'undefined' || inputName === null) continue; 4966 4967 if (input.tagName === "SELECT" && input.hasAttribute("multiple")) { 4968 // Possibly multiple values 4969 for (var _iterator25 = input.options, _isArray25 = true, _i27 = 0, _iterator25 = _isArray25 ? _iterator25 : _iterator25[Symbol.iterator]();;) { 4970 var _ref24; 4971 4972 if (_isArray25) { 4973 if (_i27 >= _iterator25.length) break; 4974 _ref24 = _iterator25[_i27++]; 4975 } else { 4976 _i27 = _iterator25.next(); 4977 if (_i27.done) break; 4978 _ref24 = _i27.value; 4979 } 4980 4981 var option = _ref24; 4982 4983 if (option.selected) { 4984 formData.append(inputName, option.value); 4985 } 4986 } 4987 } else if (!inputType || inputType !== "checkbox" && inputType !== "radio" || input.checked) { 4988 formData.append(inputName, input.value); 4989 } 4990 } 4991 } 4992 } 4993 4994 // Invoked when there is new progress information about given files. 4995 // If e is not provided, it is assumed that the upload is finished. 4996 4997 }, { 4998 key: "_updateFilesUploadProgress", 4999 value: function _updateFilesUploadProgress(files, xhr, e) { 5000 var progress = void 0; 5001 if (typeof e !== 'undefined') { 5002 progress = 100 * e.loaded / e.total; 5003 5004 if (files[0].upload.chunked) { 5005 var file = files[0]; 5006 // Since this is a chunked upload, we need to update the appropriate chunk progress. 5007 var chunk = this._getChunk(file, xhr); 5008 chunk.progress = progress; 5009 chunk.total = e.total; 5010 chunk.bytesSent = e.loaded; 5011 var fileProgress = 0, 5012 fileTotal = void 0, 5013 fileBytesSent = void 0; 5014 file.upload.progress = 0; 5015 file.upload.total = 0;
5016 file.upload.bytesSent = 0; 5017 for (var i = 0; i < file.upload.totalChunkCount; i++) { 5018 if (file.upload.chunks[i] !== undefined && file.upload.chunks[i].progress !== undefined) { 5019 file.upload.progress += file.upload.chunks[i].progress; 5020 file.upload.total += file.upload.chunks[i].total; 5021 file.upload.bytesSent += file.upload.chunks[i].bytesSent; 5022 } 5023 } 5024 file.upload.progress = file.upload.progress / file.upload.totalChunkCount; 5025 } else { 5026 for (var _iterator26 = files, _isArray26 = true, _i28 = 0, _iterator26 = _isArray26 ? _iterator26 : _iterator26[Symbol.iterator]();;) { 5027 var _ref25; 5028 5029 if (_isArray26) { 5030 if (_i28 >= _iterator26.length) break; 5031 _ref25 = _iterator26[_i28++]; 5032 } else { 5033 _i28 = _iterator26.next(); 5034 if (_i28.done) break; 5035 _ref25 = _i28.value; 5036 } 5037 5038 var _file2 = _ref25; 5039 5040 _file2.upload.progress = progress; 5041 _file2.upload.total = e.total; 5042 _file2.upload.bytesSent = e.loaded; 5043 } 5044 } 5045 for (var _iterator27 = files, _isArray27 = true, _i29 = 0, _iterator27 = _isArray27 ? _iterator27 : _iterator27[Symbol.iterator]();;) { 5046 var _ref26; 5047 5048 if (_isArray27) { 5049 if (_i29 >= _iterator27.length) break; 5050 _ref26 = _iterator27[_i29++]; 5051 } else { 5052 _i29 = _iterator27.next(); 5053 if (_i29.done) break; 5054 _ref26 = _i29.value; 5055 } 5056 5057 var _file3 = _ref26; 5058 5059 this.emit("uploadprogress", _file3, _file3.upload.progress, _file3.upload.bytesSent); 5060 } 5061 } else { 5062 // Called when the file finished uploading 5063 5064 var allFilesFinished = true; 5065 5066 progress = 100; 5067 5068 for (var _iterator28 = files, _isArray28 = true, _i30 = 0, _iterator28 = _isArray28 ? _iterator28 : _iterator28[Symbol.iterator]();;) { 5069 var _ref27; 5070 5071 if (_isArray28) { 5072 if (_i30 >= _iterator28.length) break; 5073 _ref27 = _iterator28[_i30++]; 5074 } else { 5075 _i30 = _iterator28.next(); 5076 if (_i30.done) break; 5077 _ref27 = _i30.value; 5078 } 5079 5080 var _file4 = _ref27; 5081 5082 if (_file4.upload.progress !== 100 || _file4.upload.bytesSent !== _file4.upload.total) { 5083 allFilesFinished = false; 5084 } 5085 _file4.upload.progress = progress; 5086 _file4.upload.bytesSent = _file4.upload.total; 5087 } 5088 5089 // Nothing to do, all files already at 100% 5090 if (allFilesFinished) { 5091 return; 5092 } 5093 5094 for (var _iterator29 = files, _isArray29 = true, _i31 = 0, _iterator29 = _isArray29 ? _iterator29 : _iterator29[Symbol.iterator]();;) { 5095 var _ref28; 5096 5097 if (_isArray29) { 5098 if (_i31 >= _iterator29.length) break; 5099 _ref28 = _iterator29[_i31++]; 5100 } else { 5101 _i31 = _iterator29.next(); 5102 if (_i31.done) break; 5103 _ref28 = _i31.value; 5104 } 5105 5106 var _file5 = _ref28; 5107 5108 this.emit("uploadprogress", _file5, progress, _file5.upload.bytesSent); 5109 } 5110 } 5111 } 5112 }, { 5113 key: "_finishedUploading", 5114 value: function _finishedUploading(files, xhr, e) { 5115 var response = void 0; 5116 5117 if (files[0].status === Dropzone.CANCELED) { 5118 return; 5119 } 5120 5121 if (xhr.readyState !== 4) { 5122 return; 5123 } 5124 5125 if (xhr.responseType !== 'arraybuffer' && xhr.responseType !== 'blob') { 5126 response = xhr.responseText; 5127 5128 if (xhr.getResponseHeader("content-type") && ~xhr.getResponseHeader("content-type").indexOf("application/json")) { 5129 try { 5130 response = JSON.parse(response); 5131 } catch (error) { 5132 e = error; 5133 response = "Invalid JSON response from server."; 5134 } 5135 } 5136 } 5137 5138 this._updateFilesUploadProgress(files); 5139 5140 if (!(200 <= xhr.status && xhr.status < 300)) { 5141 this._handleUploadError(files, xhr, response); 5142 } else { 5143 if (files[0].upload.chunked) { 5144 files[0].upload.finishedChunkUpload(this._getChunk(files[0], xhr)); 5145 } else { 5146 this._finished(files, response, e); 5147 } 5148 } 5149 } 5150 }, { 5151 key: "_handleUploadError", 5152 value: function _handleUploadError(files, xhr, response) { 5153 if (files[0].status === Dropzone.CANCELED) { 5154 return; 5155 } 5156 5157 if (files[0].upload.chunked && this.options.retryChunks) { 5158 var chunk = this._getChunk(files[0], xhr); 5159 if (chunk.retries++ < this.options.retryChunksLimit) { 5160 this._uploadData(files, [chunk.dataBlock]); 5161 return; 5162 } else { 5163 console.warn('Retried this chunk too often. Giving up.'); 5164 } 5165 } 5166 5167 for (var _iterator30 = files, _isArray30 = true, _i32 = 0, _iterator30 = _isArray30 ? _iterator30 : _iterator30[Symbol.iterator]();;) { 5168 var _ref29; 5169 5170 if (_isArray30) { 5171 if (_i32 >= _iterator30.length) break; 5172 _ref29 = _iterator30[_i32++]; 5173 } else { 5174 _i32 = _iterator30.next(); 5175 if (_i32.done) break; 5176 _ref29 = _i32.value; 5177 } 5178 5179 var file = _ref29; 5180 5181 this._errorProcessing(files, response || this.options.dictResponseError.replace("{{statusCode}}", xhr.status), xhr); 5182 } 5183 } 5184 }, { 5185 key: "submitRequest", 5186 value: function submitRequest(xhr, formData, files) { 5187 xhr.send(formData); 5188 } 5189
5190 // Called internally when processing is finished. 5191 // Individual callbacks have to be called in the appropriate sections. 5192 5193 }, { 5194 key: "_finished", 5195 value: function _finished(files, responseText, e) { 5196 for (var _iterator31 = files, _isArray31 = true, _i33 = 0, _iterator31 = _isArray31 ? _iterator31 : _iterator31[Symbol.iterator]();;) { 5197 var _ref30; 5198 5199 if (_isArray31) { 5200 if (_i33 >= _iterator31.length) break; 5201 _ref30 = _iterator31[_i33++]; 5202 } else { 5203 _i33 = _iterator31.next(); 5204 if (_i33.done) break; 5205 _ref30 = _i33.value; 5206 } 5207 5208 var file = _ref30; 5209 5210 file.status = Dropzone.SUCCESS; 5211 this.emit("success", file, responseText, e); 5212 this.emit("complete", file); 5213 } 5214 if (this.options.uploadMultiple) { 5215 this.emit("successmultiple", files, responseText, e); 5216 this.emit("completemultiple", files); 5217 } 5218 5219 if (this.options.autoProcessQueue) { 5220 return this.processQueue(); 5221 } 5222 } 5223 5224 // Called internally when processing is finished. 5225 // Individual callbacks have to be called in the appropriate sections. 5226 5227 }, { 5228 key: "_errorProcessing", 5229 value: function _errorProcessing(files, message, xhr) { 5230 for (var _iterator32 = files, _isArray32 = true, _i34 = 0, _iterator32 = _isArray32 ? _iterator32 : _iterator32[Symbol.iterator]();;) { 5231 var _ref31; 5232 5233 if (_isArray32) { 5234 if (_i34 >= _iterator32.length) break; 5235 _ref31 = _iterator32[_i34++]; 5236 } else { 5237 _i34 = _iterator32.next(); 5238 if (_i34.done) break; 5239 _ref31 = _i34.value; 5240 } 5241 5242 var file = _ref31; 5243 5244 file.status = Dropzone.ERROR; 5245 this.emit("error", file, message, xhr); 5246 this.emit("complete", file); 5247 } 5248 if (this.options.uploadMultiple) { 5249 this.emit("errormultiple", files, message, xhr); 5250 this.emit("completemultiple", files); 5251 } 5252 5253 if (this.options.autoProcessQueue) { 5254 return this.processQueue(); 5255 } 5256 } 5257 }], [{ 5258 key: "uuidv4", 5259 value: function uuidv4() { 5260 return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { 5261 var r = Math.random() * 16 | 0, 5262 v = c === 'x' ? r : r & 0x3 | 0x8; 5263 return v.toString(16); 5264 }); 5265 } 5266 }]); 5267 5268 return Dropzone; 5269}(Emitter); 5270 5271Dropzone.initClass(); 5272 5273Dropzone.version = "5.5.0"; 5274 5275// This is a map of options for your different dropzones. Add configurations 5276// to this object for your different dropzone elemens. 5277// 5278// Example: 5279// 5280// Dropzone.options.myDropzoneElementId = { maxFilesize: 1 }; 5281// 5282// To disable autoDiscover for a specific element, you can set `false` as an option: 5283// 5284// Dropzone.options.myDisabledElementId = false; 5285// 5286// And in html: 5287// 5288// <form action="/upload" id="my-dropzone-element-id" class="dropzone"></form> 5289Dropzone.options = {}; 5290 5291// Returns the options for an element or undefined if none available. 5292Dropzone.optionsForElement = function (element) { 5293 // Get the `Dropzone.options.elementId` for this element if it exists 5294 if (element.getAttribute("id")) { 5295 return Dropzone.options[camelize(element.getAttribute("id"))]; 5296 } else { 5297 return undefined; 5298 } 5299}; 5300 5301// Holds a list of all dropzone instances 5302Dropzone.instances = []; 5303 5304// Returns the dropzone for given element if any 5305Dropzone.forElement = function (element) { 5306 if (typeof element === "string") { 5307 element = document.querySelector(element); 5308 } 5309 if ((element != null ? element.dropzone : undefined) == null) { 5310 throw new Error("No Dropzone found for given element. This is probably because you're trying to access it before Dropzone had the time to initialize. Use the `init` option to setup any additional observers on your Dropzone."); 5311 } 5312 return element.dropzone; 5313}; 5314 5315// Set to false if you don't want Dropzone to automatically find and attach to .dropzone elements. 5316Dropzone.autoDiscover = true; 5317 5318// Looks for all .dropzone elements and creates a dropzone for them 5319Dropzone.discover = function () { 5320 var dropzones = void 0; 5321 if (document.querySelectorAll) { 5322 dropzones = document.querySelectorAll(".dropzone"); 5323 } else { 5324 dropzones = []; 5325 // IE :( 5326 var checkElements = function checkElements(elements) { 5327 return function () { 5328 var result = []; 5329 for (var _iterator33 = elements, _isArray33 = true, _i35 = 0, _iterator33 = _isArray33 ? _iterator33 : _iterator33[Symbol.iterator]();;) { 5330 var _ref32; 5331 5332 if (_isArray33) { 5333 if (_i35 >= _iterator33.length) break; 5334 _ref32 = _iterator33[_i35++]; 5335 } else { 5336 _i35 = _iterator33.next(); 5337 if (_i35.done) break; 5338 _ref32 = _i35.value; 5339 } 5340 5341 var el = _ref32; 5342 5343 if (/(^| )dropzone($| )/.test(el.className)) { 5344 result.push(dropzones.push(el)); 5345 } else { 5346 result.push(undefined); 5347 } 5348 } 5349 return result; 5350 }(); 5351 }; 5352 checkElements(document.getElementsByTagName("div")); 5353 checkElements(document.getElementsByTagName("form")); 5354 } 5355 5356 return function () { 5357 var result = []; 5358 for (var _iterator34 = dropzones, _isArray34 = true, _i36 = 0, _iterator34 = _isArray34 ? _iterator34 : _iterator34[Symbol.iterator]();;) { 5359 var _ref33; 5360 5361 if (_isArray34) { 5362 if (_i36 >= _iterator34.length) break; 5363 _ref33 = _iterator34[_i36++]; 5364 } else { 5365 _i36 = _iterator34.next(); 5366 if (_i36.done) break; 5367 _ref33 = _i36.value; 5368 } 5369 5370 var dropzone = _ref33; 5371 5372 // Create a dropzone unless auto discover has been disabled for specific element 5373 if (Dropzone.optionsForElement(dropzone) !== false) { 5374 result.push(new Dropzone(dropzone)); 5375 } else { 5376 result.push(undefined); 5377 } 5378 } 5379 return result; 5380 }(); 5381}; 5382 5383// Since the whole Drag'n'Drop API is pretty new, some browsers implement it, 5384// but not correctly. 5385// So I created a blacklist of userAgents. Yes, yes. Browser sniffing, I know. 5386// But what to do when browsers *theoretically* support an API, but crash 5387// when using it. 5388// 5389// This is a list of regular expressions tested against navigator.userAgent 5390// 5391// ** It should only be used on browser that *do* support the API, but 5392// incorrectly ** 5393// 5394Dropzone.blacklistedBrowsers = [ 5395// The mac os and windows phone version of opera 12 seems to have a problem with the File drag'n'drop API. 5396/opera.*(Macintosh|Windows Phone).*version\/12/i]; 5397 5398// Checks if the browser is supported 5399Dropzone.isBrowserSupported = function () { 5400 var capableBrowser = true; 5401 5402 if (window.File && window.FileReader && window.FileList && window.Blob && window.FormData && document.querySelector) { 5403 if (!("classList" in document.createElement("a"))) { 5404 capableBrowser = false;
5405 } else { 5406 // The browser supports the API, but may be blacklisted. 5407 for (var _iterator35 = Dropzone.blacklistedBrowsers, _isArray35 = true, _i37 = 0, _iterator35 = _isArray35 ? _iterator35 : _iterator35[Symbol.iterator]();;) { 5408 var _ref34; 5409 5410 if (_isArray35) { 5411 if (_i37 >= _iterator35.length) break; 5412 _ref34 = _iterator35[_i37++]; 5413 } else { 5414 _i37 = _iterator35.next(); 5415 if (_i37.done) break; 5416 _ref34 = _i37.value; 5417 } 5418 5419 var regex = _ref34; 5420 5421 if (regex.test(navigator.userAgent)) { 5422 capableBrowser = false; 5423 continue; 5424 } 5425 } 5426 } 5427 } else { 5428 capableBrowser = false; 5429 } 5430 5431 return capableBrowser; 5432}; 5433 5434Dropzone.dataURItoBlob = function (dataURI) { 5435 // convert base64 to raw binary data held in a string 5436 // doesn't handle URLEncoded DataURIs - see SO answer #6850276 for code that does this 5437 var byteString = atob(dataURI.split(',')[1]); 5438 5439 // separate out the mime component 5440 var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0]; 5441 5442 // write the bytes of the string to an ArrayBuffer 5443 var ab = new ArrayBuffer(byteString.length); 5444 var ia = new Uint8Array(ab); 5445 for (var i = 0, end = byteString.length, asc = 0 <= end; asc ? i <= end : i >= end; asc ? i++ : i--) { 5446 ia[i] = byteString.charCodeAt(i); 5447 } 5448 5449 // write the ArrayBuffer to a blob 5450 return new Blob([ab], { type: mimeString }); 5451}; 5452 5453// Returns an array without the rejected item 5454var without = function without(list, rejectedItem) { 5455 return list.filter(function (item) { 5456 return item !== rejectedItem; 5457 }).map(function (item) { 5458 return item; 5459 }); 5460}; 5461 5462// abc-def_ghi -> abcDefGhi 5463var camelize = function camelize(str) { 5464 return str.replace(/[\-_](\w)/g, function (match) { 5465 return match.charAt(1).toUpperCase(); 5466 }); 5467}; 5468 5469// Creates an element from string 5470Dropzone.createElement = function (string) { 5471 var div = document.createElement("div"); 5472 div.innerHTML = string; 5473 return div.childNodes[0]; 5474}; 5475 5476// Tests if given element is inside (or simply is) the container 5477Dropzone.elementInside = function (element, container) { 5478 if (element === container) { 5479 return true; 5480 } // Coffeescript doesn't support do/while loops 5481 while (element = element.parentNode) { 5482 if (element === container) { 5483 return true; 5484 } 5485 } 5486 return false; 5487}; 5488 5489Dropzone.getElement = function (el, name) { 5490 var element = void 0; 5491 if (typeof el === "string") { 5492 element = document.querySelector(el); 5493 } else if (el.nodeType != null) { 5494 element = el; 5495 } 5496 if (element == null) { 5497 throw new Error("Invalid `" + name + "` option provided. Please provide a CSS selector or a plain HTML element."); 5498 } 5499 return element; 5500}; 5501 5502Dropzone.getElements = function (els, name) { 5503 var el = void 0, 5504 elements = void 0; 5505 if (els instanceof Array) { 5506 elements = []; 5507 try { 5508 for (var _iterator36 = els, _isArray36 = true, _i38 = 0, _iterator36 = _isArray36 ? _iterator36 : _iterator36[Symbol.iterator]();;) { 5509 if (_isArray36) { 5510 if (_i38 >= _iterator36.length) break; 5511 el = _iterator36[_i38++]; 5512 } else { 5513 _i38 = _iterator36.next(); 5514 if (_i38.done) break; 5515 el = _i38.value; 5516 } 5517 5518 elements.push(this.getElement(el, name)); 5519 } 5520 } catch (e) { 5521 elements = null; 5522 } 5523 } else if (typeof els === "string") { 5524 elements = [];
5525 for (var _iterator37 = document.querySelectorAll(els), _isArray37 = true, _i39 = 0, _iterator37 = _isArray37 ? _iterator37 : _iterator37[Symbol.iterator]();;) { 5526 if (_isArray37) { 5527 if (_i39 >= _iterator37.length) break; 5528 el = _iterator37[_i39++]; 5529 } else { 5530 _i39 = _iterator37.next(); 5531 if (_i39.done) break; 5532 el = _i39.value; 5533 } 5534 5535 elements.push(el); 5536 } 5537 } else if (els.nodeType != null) { 5538 elements = [els]; 5539 } 5540 5541 if (elements == null || !elements.length) { 5542 throw new Error("Invalid `" + name + "` option provided. Please provide a CSS selector, a plain HTML element or a list of those."); 5543 } 5544 5545 return elements; 5546}; 5547 5548// Asks the user the question and calls accepted or rejected accordingly 5549// 5550// The default implementation just uses `window.confirm` and then calls the 5551// appropriate callback. 5552Dropzone.confirm = function (question, accepted, rejected) { 5553 if (window.confirm(question)) { 5554 return accepted(); 5555 } else if (rejected != null) { 5556 return rejected(); 5557 } 5558}; 5559 5560// Validates the mime type like this: 5561// 5562// https://developer.mozilla.org/en-US/docs/HTML/Element/input#attr-accept 5563Dropzone.isValidFile = function (file, acceptedFiles) { 5564 if (!acceptedFiles) { 5565 return true; 5566 } // If there are no accepted mime types, it's OK 5567 acceptedFiles = acceptedFiles.split(","); 5568 5569 var mimeType = file.type; 5570 var baseMimeType = mimeType.replace(/\/.*$/, ""); 5571 5572 for (var _iterator38 = acceptedFiles, _isArray38 = true, _i40 = 0, _iterator38 = _isArray38 ? _iterator38 : _iterator38[Symbol.iterator]();;) { 5573 var _ref35; 5574 5575 if (_isArray38) { 5576 if (_i40 >= _iterator38.length) break; 5577 _ref35 = _iterator38[_i40++]; 5578 } else { 5579 _i40 = _iterator38.next(); 5580 if (_i40.done) break; 5581 _ref35 = _i40.value; 5582 } 5583 5584 var validType = _ref35; 5585 5586 validType = validType.trim(); 5587 if (validType.charAt(0) === ".") { 5588 if (file.name.toLowerCase().indexOf(validType.toLowerCase(), file.name.length - validType.length) !== -1) { 5589 return true; 5590 } 5591 } else if (/\/\*$/.test(validType)) { 5592 // This is something like a image/* mime type 5593 if (baseMimeType === validType.replace(/\/.*$/, "")) { 5594 return true; 5595 } 5596 } else { 5597 if (mimeType === validType) { 5598 return true; 5599 } 5600 } 5601 } 5602 5603 return false; 5604}; 5605 5606// Augment jQuery 5607if (typeof jQuery !== 'undefined' && jQuery !== null) { 5608 jQuery.fn.dropzone = function (options) { 5609 return this.each(function () { 5610 return new Dropzone(this, options); 5611 }); 5612 }; 5613} 5614 5615if (typeof module !== 'undefined' && module !== null) { 5616 module.exports = Dropzone; 5617} else { 5618 window.Dropzone = Dropzone; 5619} 5620 5621// Dropzone file status codes 5622Dropzone.ADDED = "added"; 5623 5624Dropzone.QUEUED = "queued"; 5625// For backwards compatibility. Now, if a file is accepted, it's either queued 5626// or uploading. 5627Dropzone.ACCEPTED = Dropzone.QUEUED; 5628 5629Dropzone.UPLOADING = "uploading"; 5630Dropzone.PROCESSING = Dropzone.UPLOADING; // alias 5631 5632Dropzone.CANCELED = "canceled"; 5633Dropzone.ERROR = "error"; 5634Dropzone.SUCCESS = "success"; 5635 5636/* 5637 5638 Bugfix for iOS 6 and 7 5639 Source: http://stackoverflow.com/questions/11929099/html5-canvas-drawimage-ratio-bug-ios 5640 based on the work of https://github.com/stomita/ios-imagefile-megapixel 5641 5642 */ 5643 5644// Detecting vertical squash in loaded image. 5645// Fixes a bug which squash image vertically while drawing into canvas for some images. 5646// This is a bug in iOS6 devices. This function from https://github.com/stomita/ios-imagefile-megapixel 5647var detectVerticalSquash = function detectVerticalSquash(img) { 5648 var iw = img.naturalWidth; 5649 var ih = img.naturalHeight; 5650 var canvas = document.createElement("canvas"); 5651 canvas.width = 1; 5652 canvas.height = ih; 5653 var ctx = canvas.getContext("2d"); 5654 ctx.drawImage(img, 0, 0); 5655 5656 var _ctx$getImageData = ctx.getImageData(1, 0, 1, ih), 5657 data = _ctx$getImageData.data; 5658 5659 // search image edge pixel position in case it is squashed vertically. 5660 5661 5662 var sy = 0; 5663 var ey = ih; 5664 var py = ih; 5665 while (py > sy) { 5666 var alpha = data[(py - 1) * 4 + 3]; 5667 5668 if (alpha === 0) { 5669 ey = py; 5670 } else { 5671 sy = py; 5672 } 5673 5674 py = ey + sy >> 1; 5675 } 5676 var ratio = py / ih; 5677 5678 if (ratio === 0) { 5679 return 1; 5680 } else { 5681 return ratio; 5682 } 5683}; 5684 5685// A replacement for context.drawImage 5686// (args are for source and destination). 5687var drawImageIOSFix = function drawImageIOSFix(ctx, img, sx, sy, sw, sh, dx, dy, dw, dh) { 5688 var vertSquashRatio = detectVerticalSquash(img); 5689 return ctx.drawImage(img, sx, sy, sw, sh, dx, dy, dw, dh / vertSquashRatio); 5690}; 5691 5692// Based on MinifyJpeg 5693// Source: http://www.perry.cz/files/ExifRestorer.js 5694// http://elicon.blog57.fc2.com/blog-entry-206.html 5695 5696var ExifRestore = function () { 5697 function ExifRestore() { 5698 _classCallCheck(this, ExifRestore); 5699 } 5700 5701 _createClass(ExifRestore, null, [{ 5702 key: "initClass", 5703 value: function initClass() { 5704 this.KEY_STR = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789
5704+/='; 5705 } 5706 }, { 5707 key: "encode64", 5708 value: function encode64(input) { 5709 var output = ''; 5710 var chr1 = undefined; 5711 var chr2 = undefined; 5712 var chr3 = ''; 5713 var enc1 = undefined; 5714 var enc2 = undefined; 5715 var enc3 = undefined; 5716 var enc4 = ''; 5717 var i = 0; 5718 while (true) { 5719 chr1 = input[i++]; 5720 chr2 = input[i++]; 5721 chr3 = input[i++]; 5722 enc1 = chr1 >> 2; 5723 enc2 = (chr1 & 3) << 4 | chr2 >> 4; 5724 enc3 = (chr2 & 15) << 2 | chr3 >> 6; 5725 enc4 = chr3 & 63; 5726 if (isNaN(chr2)) { 5727 enc3 = enc4 = 64; 5728 } else if (isNaN(chr3)) { 5729 enc4 = 64; 5730 } 5731 output = output + this.KEY_STR.charAt(enc1) + this.KEY_STR.charAt(enc2) + this.KEY_STR.charAt(enc3) + this.KEY_STR.charAt(enc4); 5732 chr1 = chr2 = chr3 = ''; 5733 enc1 = enc2 = enc3 = enc4 = ''; 5734 if (!(i < input.length)) { 5735 break; 5736 } 5737 } 5738 return output; 5739 } 5740 }, { 5741 key: "restore", 5742 value: function restore(origFileBase64, resizedFileBase64) { 5743 if (!origFileBase64.match('data:image/jpeg;base64,')) { 5744 return resizedFileBase64; 5745 } 5746 var rawImage = this.decode64(origFileBase64.replace('data:image/jpeg;base64,', '')); 5747 var segments = this.slice2Segments(rawImage); 5748 var image = this.exifManipulation(resizedFileBase64, segments); 5749 return "data:image/jpeg;base64," + this.encode64(image); 5750 } 5751 }, { 5752 key: "exifManipulation", 5753 value: function exifManipulation(resizedFileBase64, segments) { 5754 var exifArray = this.getExifArray(segments); 5755 var newImageArray = this.insertExif(resizedFileBase64, exifArray); 5756 var aBuffer = new Uint8Array(newImageArray); 5757 return aBuffer; 5758 } 5759 }, { 5760 key: "getExifArray", 5761 value: function getExifArray(segments) { 5762 var seg = undefined; 5763 var x = 0; 5764 while (x < segments.length) { 5765 seg = segments[x]; 5766 if (seg[0] === 255 & seg[1] === 225) { 5767 return seg; 5768 } 5769 x++; 5770 } 5771 return []; 5772 } 5773 }, { 5774 key: "insertExif", 5775 value: function insertExif(resizedFileBase64, exifArray) { 5776 var imageData = resizedFileBase64.replace('data:image/jpeg;base64,', ''); 5777 var buf = this.decode64(imageData); 5778 var separatePoint = buf.indexOf(255, 3); 5779 var mae = buf.slice(0, separatePoint); 5780 var ato = buf.slice(separatePoint); 5781 var array = mae; 5782 array = array.concat(exifArray); 5783 array = array.concat(ato); 5784 return array; 5785 } 5786 }, { 5787 key: "slice2Segments", 5788 value: function slice2Segments(rawImageArray) { 5789 var head = 0; 5790 var segments = []; 5791 while (true) { 5792 var length; 5793 if (rawImageArray[head] === 255 & rawImageArray[head + 1] === 218) { 5794 break; 5795 } 5796 if (rawImageArray[head] === 255 & rawImageArray[head + 1] === 216) { 5797 head += 2; 5798 } else { 5799 length = rawImageArray[head + 2] * 256 + rawImageArray[head + 3]; 5800 var endPoint = head + length + 2; 5801 var seg = rawImageArray.slice(head, endPoint); 5802 segments.push(seg); 5803 head = endPoint; 5804 } 5805 if (head > rawImageArray.length) { 5806 break; 5807 } 5808 } 5809 return segments; 5810 } 5811 }, { 5812 key: "decode64", 5813 value: function decode64(input) { 5814 var output = ''; 5815 var chr1 = undefined; 5816 var chr2 = undefined; 5817 var chr3 = ''; 5818 var enc1 = undefined; 5819 var enc2 = undefined; 5820 var enc3 = undefined; 5821 var enc4 = ''; 5822 var i = 0; 5823 var buf = []; 5824 // remove all characters that are not A-Z, a-z, 0-9, +, /, or = 5825 var base64test = /[^A-Za-z0-9\+\/\=]/g; 5826 if (base64test.exec(input)) { 5827 console.warn('There were invalid base64 characters in the input text.\nValid base64 characters are A-Z, a-z, 0-9, \'+\', \'/\',and \'=\'\nExpect errors in decoding.'); 5828 } 5829 input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ''); 5830 while (true) { 5831 enc1 = this.KEY_STR.indexOf(input.charAt(i++)); 5832 enc2 = this.KEY_STR.indexOf(input.charAt(i++)); 5833 enc3 = this.KEY_STR.indexOf(input.charAt(i++)); 5834 enc4 = this.KEY_STR.indexOf(input.charAt(i++)); 5835 chr1 = enc1 << 2 | enc2 >> 4; 5836 chr2 = (enc2 & 15) << 4 | enc3 >> 2; 5837 chr3 = (enc3 & 3) << 6 | enc4; 5838 buf.push(chr1); 5839 if (enc3 !== 64) { 5840 buf.push(chr2); 5841 } 5842 if (enc4 !== 64) { 5843 buf.push(chr3); 5844 } 5845 chr1 = chr2 = chr3 = ''; 5846 enc1 = enc2 = enc3 = enc4 = ''; 5847 if (!(i < input.length)) { 5848 break; 5849 } 5850 } 5851 return buf; 5852 } 5853 }]); 5854 5855 return ExifRestore; 5856}(); 5857 5858ExifRestore.initClass(); 5859 5860/* 5861 * contentloaded.js 5862 * 5863 * Author: Diego Perini (diego.perini at gmail.com) 5864 * Summary: cross-browser wrapper for DOMContentLoaded 5865 * Updated: 20101020 5866 * License: MIT 5867 * Version: 1.2 5868 * 5869 * URL: 5870 * http://javascript.nwbox.com/ContentLoaded/ 5871 * http://javascript.nwbox.com/ContentLoaded/MIT-LICENSE 5872 */ 5873 5874// @win window reference 5875// @fn function reference 5876var contentLoaded = function contentLoaded(win, fn) { 5877 var done = false;
5878 var top = true; 5879 var doc = win.document; 5880 var root = doc.documentElement; 5881 var add = doc.addEventListener ? "addEventListener" : "attachEvent"; 5882 var rem = doc.addEventListener ? "removeEventListener" : "detachEvent"; 5883 var pre = doc.addEventListener ? "" : "on"; 5884 var init = function init(e) { 5885 if (e.type === "readystatechange" && doc.readyState !== "complete") { 5886 return; 5887 } 5888 (e.type === "load" ? win : doc)[rem](pre + e.type, init, false); 5889 if (!done && (done = true)) { 5890 return fn.call(win, e.type || e); 5891 } 5892 }; 5893 5894 var poll = function poll() { 5895 try { 5896 root.doScroll("left"); 5897 } catch (e) { 5898 setTimeout(poll, 50); 5899 return; 5900 } 5901 return init("poll"); 5902 }; 5903 5904 if (doc.readyState !== "complete") { 5905 if (doc.createEventObject && root.doScroll) { 5906 try { 5907 top = !win.frameElement; 5908 } catch (error) {} 5909 if (top) { 5910 poll(); 5911 } 5912 } 5913 doc[add](pre + "DOMContentLoaded", init, false); 5914 doc[add](pre + "readystatechange", init, false); 5915 return win[add](pre + "load", init, false); 5916 } 5917}; 5918 5919// As a single function to be able to write tests. 5920Dropzone._autoDiscoverFunction = function () { 5921 if (Dropzone.autoDiscover) { 5922 return Dropzone.discover(); 5923 } 5924}; 5925contentLoaded(window, Dropzone._autoDiscoverFunction); 5926 5927function __guard__(value, transform) { 5928 return typeof value !== 'undefined' && value !== null ? transform(value) : undefined; 5929} 5930function __guardMethod__(obj, methodName, transform) { 5931 if (typeof obj !== 'undefined' && obj !== null && typeof obj[methodName] === 'function') { 5932 return transform(obj, methodName); 5933 } else { 5934 return undefined; 5935 } 5936}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.