vendor: 2,731 bytes, lines 1-3
1 2/*! jQuery v3.2.1 | (c) JS Foundation and other contributors | jquery.org/license */ 3!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.2.1",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null==a?f.call(this):a<0?this[a+this.length]:this[a]},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c<b?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:h,sort:c.sort,splice:c.splice},r.extend=r.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||r.isFunction(g)||(g={}),h===i&&(g=this,h--);h<i;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(r.isPlainObject(d)||(e=Array.isArray(d)))?(e?(e=!1,f=c&&Array.isArray(c)?c:[]):f=c&&r.isPlainObject(c)?c:{},g[b]=r.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},r.extend({expando:"jQuery"+(q+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===r.type(a)},isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){var b=r.type(a);return("number"===b||"string"===b)&&!isNaN(a-parseFloat(a))},isPlainObject:function(a){var b,c;return!(!a||"[object Object]"!==k.call(a))&&(!(b=e(a))||(c=l.call(b,"constructor")&&b.constructor,"function"==typeof c&&m.call(c)===n))},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?j[k.call(a)]||"object":typeof a},globalEval:function(a){p(a)},camelCase:function(a){return a.replace(t,"ms-").replace(u,v
vendor: 19,680 bytes, line 3
3)},each:function(a,b){var c,d=0;if(w(a)){for(c=a.length;d<c;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(s,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(w(Object(a))?r.merge(c,"string"==typeof a?[a]:a):h.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:i.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;d<c;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;f<g;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,f=0,h=[];if(w(a))for(d=a.length;f<d;f++)e=b(a[f],f,c),null!=e&&h.push(e);else for(f in a)e=b(a[f],f,c),null!=e&&h.push(e);return g.apply([],h)},guid:1,proxy:function(a,b){var c,d,e;if("string"==typeof b&&(c=a[b],b=a,a=c),r.isFunction(a))return d=f.call(arguments,2),e=function(){return a.apply(b||this,d.concat(f.call(arguments)))},e.guid=a.guid=a.guid||r.guid++,e},now:Date.now,support:o}),"function"==typeof Symbol&&(r.fn[Symbol.iterator]=c[Symbol.iterator]),r.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){j["[object "+b+"]"]=b.toLowerCase()});function w(a){var b=!!a&&"length"in a&&a.length,c=r.type(a);return"function"!==c&&!r.isWindow(a)&&("array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c<d;c++)if(a[c]===b)return c;return-1},J="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",K="[\\x20\\t\\r\\n\\f]",L="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",M="\\["+K+"*("+L+")(?:"+K+"*([*^$|!~]?=)"+K+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+L+"))|)"+K+"*\\]",N=":("+L+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+M+")*)|.*)\\)|)",O=new RegExp(K+"+","g"),P=new RegExp("^"+K+"+|((?:^|[^\\\\])(?:\\\\.)*)"+K+"+$","g"),Q=new RegExp("^"+K+"*,"+K+"*"),R=new RegExp("^"+K+"*([>+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\r\\' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c<b;c+=2)a.push(c);return a}),odd:pa(function(a,b){for(var c=1;c<b;c+=2)a.push(c);return a}),lt:pa(function(a,b,c){for(var d=c<0?c+b:c;--d>=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function ra(){}ra.prototype=d.filters=d.pseudos,d.setFilters=new ra,g=ga.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){c&&!(e=Q.exec(h))||(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=R.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(P," ")}),h=h.slice(c.length));for(g in d.filter)!(e=V[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?ga.error(a):z(a,i).slice(0)};function sa(a){for(var b=0,c=a.length,d="";b<c;b++)d+=a[b].value;return d}function ta(a,b,c){var d=b.dir,e=b.next,f=e||d,g=c&&"parentNode"===f,h=x++;return b.first?function(b,c,e){while(b=b[d])if(1===b.nodeType||g)return a(b,c,e);return!1}:function(b,c,i){var j,k,l,m=[w,h];if(i){while(b=b[d])if((1===b.nodeType||g)&&a(b,c,i))return!0}else while(b=b[d])if(1===b.nodeType||g)if(l=b[u]||(b[u]={}),k=l[b.uniqueID]||(l[b.uniqueID]={}),e&&e===b.nodeName.toLowerCase())b=b[d]||b;else{if((j=k[f])&&j[0]===w&&j[1]===h)return m[2]=j[2];if(k[f]=m,m[2]=a(b,c,i))return!0}return!1}}function ua(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d<e;d++)ga(a,b[d],c);return c}function wa(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;h<i;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function xa(a,b,c,d,e,f){return d&&!d[u]&&(d=xa(d)),e&&!e[u]&&(e=xa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||va(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:wa(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=wa(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?I(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i<f;i++)if(c=d.relative[a[i].type])m=[ta(ua(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;e<f;e++)if(d.relative[a[e].type])break;return xa(i>1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i<e&&ya(a.slice(i,e)),e<f&&ya(a=a.slice(e)),e<f&&sa(a))}m.push(c)}return ua(m)}function za(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>
vendor: 64,249 bytes, lines 3-5
32&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext;function B(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()}var C=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,D=/^.[^:#\[\.,]*$/;function E(a,b,c){return r.isFunction(b)?r.grep(a,function(a,d){return!!b.call(a,d,a)!==c}):b.nodeType?r.grep(a,function(a){return a===b!==c}):"string"!=typeof b?r.grep(a,function(a){return i.call(b,a)>-1!==c}):D.test(b)?r.filter(b,a,c):(b=r.filter(b,a),r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType}))}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b<d;b++)if(r.contains(e[b],this))return!0}));for(c=this.pushStack([]),b=0;b<d;b++)r.find(a,e[b],c);return d>1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(E(this,a||[],!1))},not:function(a){return this.pushStack(E(this,a||[],!0))},is:function(a){return!!E(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var F,G=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,H=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||F,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:G.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),C.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};H.prototype=r.fn,F=r(d);var I=/^(?:parents|prev(?:Until|All))/,J={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a<c;a++)if(r.contains(this,b[a]))return!0})},closest:function(a,b){var c,d=0,e=this.length,f=[],g="string"!=typeof a&&r(a);if(!A.test(a))for(;d<e;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function K(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return K(a,"nextSibling")},prev:function(a){return K(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return B(a,"iframe")?a.contentDocument:(B(a,"template")&&(a=a.content||a),r.merge([],a.childNodes))}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(J[a]||r.uniqueSort(e),I.test(a)&&e.reverse()),this.pushStack(e)}});var L=/[^\x20\t\r\n\f]+/g;function M(a){var b={};return r.each(a.match(L)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?M(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=e||a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h<f.length)f[h].apply(c[0],c[1])===!1&&a.stopOnFalse&&(h=f.length,c=!1)}a.memory||(c=!1),b=!1,e&&(f=c?[]:"")},j={add:function(){return f&&(c&&!b&&(h=f.length-1,g.push(c)),function d(b){r.each(b,function(b,c){r.isFunction(c)?a.unique&&j.has(c)||f.push(c):c&&c.length&&"string"!==r.type(c)&&d(c)})}(arguments),c&&!b&&i()),this},remove:function(){return r.each(arguments,function(a,b){var c;while((c=r.inArray(b,f,c))>-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function N(a){return a}function O(a){throw a}function P(a,b,c,d){var e;try{a&&r.isFunction(e=a.promise)?e.call(a).done(b).fail(c):a&&r.isFunction(e=a.then)?e.call(a,b,c):b.apply(void 0,[a].slice(d))}catch(a){c.apply(void 0,[a])}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b<f)){if(a=d.apply(h,i),a===c.promise())throw new TypeError("Thenable self-resolution");j=a&&("object"==typeof a||"function"==typeof a)&&a.then,r.isFunction(j)?e?j.call(a,g(f,c,N,e),g(f,c,O,e)):(f++,j.call(a,g(f,c,N,e),g(f,c,O,e),g(f,c,N,c.notifyWith))):(d!==N&&(h=void 0,i=[a]),(e||c.resolveWith)(h,i))}},k=e?j:function(){try{j()}catch(a){r.Deferred.exceptionHook&&r.Deferred.exceptionHook(a,k.stackTrace),b+1>=f&&(d!==O&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:N,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:N)),c[2][3].add(g(0,a,r.isFunction(d)?d:O))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(P(a,g.done(h(c)).resolve,g.reject,!b),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)P(e[c],h(c),g.reject);return g.promise()}});var Q=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&Q.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var R=r.Deferred();r.fn.ready=function(a){return R.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||R.resolveWith(d,[r]))}}),r.ready.then=R.then;function S(){d.removeEventListener("DOMContentLoaded",S), 4a.removeEventListener("load",S),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",S),a.addEventListener("load",S));var T=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)T(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h<i;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},U=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function V(){this.expando=r.expando+V.uid++}V.uid=1,V.prototype={cache:function(a){var b=a[this.expando];return b||(b={},U(a)&&(a.nodeType?a[this.expando]=b:Object.defineProperty(a,this.expando,{value:b,configurable:!0}))),b},set:function(a,b,c){var d,e=this.cache(a);if("string"==typeof b)e[r.camelCase(b)]=c;else for(d in b)e[r.camelCase(d)]=b[d];return e},get:function(a,b){return void 0===b?this.cache(a):a[this.expando]&&a[this.expando][r.camelCase(b)]},access:function(a,b,c){return void 0===b||b&&"string"==typeof b&&void 0===c?this.get(a,b):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d=a[this.expando];if(void 0!==d){if(void 0!==b){Array.isArray(b)?b=b.map(r.camelCase):(b=r.camelCase(b),b=b in d?[b]:b.match(L)||[]),c=b.length;while(c--)delete d[b[c]]}(void 0===b||r.isEmptyObject(d))&&(a.nodeType?a[this.expando]=void 0:delete a[this.expando])}},hasData:function(a){var b=a[this.expando];return void 0!==b&&!r.isEmptyObject(b)}};var W=new V,X=new V,Y=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function $(a){return"true"===a||"false"!==a&&("null"===a?null:a===+a+""?+a:Y.test(a)?JSON.parse(a):a)}function _(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(Z,"-$&").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c=$(c)}catch(e){}X.set(a,b,c)}else c=void 0;return c}r.extend({hasData:function(a){return X.hasData(a)||W.hasData(a)},data:function(a,b,c){return X.access(a,b,c)},removeData:function(a,b){X.remove(a,b)},_data:function(a,b,c){return W.access(a,b,c)},_removeData:function(a,b){W.remove(a,b)}}),r.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=X.get(f),1===f.nodeType&&!W.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=r.camelCase(d.slice(5)),_(f,d,e[d])));W.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){X.set(this,a)}):T(this,function(b){var c;if(f&&void 0===b){if(c=X.get(f,a),void 0!==c)return c;if(c=_(f,a),void 0!==c)return c}else this.each(function(){X.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){X.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=W.get(a,b),c&&(!d||Array.isArray(c)?d=W.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return W.get(a,c)||W.access(a,c,{empty:r.Callbacks("once memory").add(function(){W.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?r.queue(this[0],a):void 0===b?this:this.each(function(){var c=r.queue(this,a,b);r._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&r.dequeue(this,a)})},dequeue:function(a){return this.each(function(){r.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=r.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=W.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var aa=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ba=new RegExp("^(?:([+-])=|)("+aa+")([a-z%]*)$","i"),ca=["Top","Right","Bottom","Left"],da=function(a,b){return a=b||a,"none"===a.style.display||""===a.style.display&&r.contains(a.ownerDocument,a)&&"none"===r.css(a,"display")},ea=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};function fa(a,b,c,d){var e,f=1,g=20,h=d?function(){return d.cur()}:function(){return r.css(a,b,"")},i=h(),j=c&&c[3]||(r.cssNumber[b]?"":"px"),k=(r.cssNumber[b]||"px"!==j&&+i)&&ba.exec(r.css(a,b));if(k&&k[3]!==j){j=j||k[3],c=c||[],k=+i||1;do f=f||".5",k/=f,r.style(a,b,k+j);while(f!==(f=h()/i)&&1!==f&&--g)}return c&&(k=+k||+i||0,e=c[1]?k+(c[1]+1)*c[2]:+c[2],d&&(d.unit=j,d.start=k,d.end=e)),e}var ga={};function ha(a){var b,c=a.ownerDocument,d=a.nodeName,e=ga[d];return e?e:(b=c.body.appendChild(c.createElement(d)),e=r.css(b,"display"),b.parentNode.removeChild(b),"none"===e&&(e="block"),ga[d]=e,e)}function ia(a,b){for(var c,d,e=[],f=0,g=a.length;f<g;f++)d=a[f],d.style&&(c=d.style.display,b?("none"===c&&(e[f]=W.get(d,"display")||null,e[f]||(d.style.display="")),""===d.style.display&&da(d)&&(e[f]=ha(d))):"none"!==c&&(e[f]="none",W.set(d,"display",c)));for(f=0;f<g;f++)null!=e[f]&&(a[f].style.display=e[f]);return a}r.fn.extend({show:function(){return ia(this,!0)},hide:function(){return ia(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){da(this)?r(this).show():r(this).hide()})}});var ja=/^(?:checkbox|radio)$/i,ka=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,la=/^$|\/(?:java|ecma)script/i,ma={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,"",""]};ma.optgroup=ma.option,ma.tbody=ma.tfoot=ma.colgroup=ma.caption=ma.thead,ma.th=ma.td;function na(a,b){var c;return c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[],void 0===b||b&&B(a,b)?r.merge([a],c):c}function oa(a,b){for(var c=0,d=a.length;c<d;c++)W.set(a[c],"globalEval",!b||W.get(b[c],"globalEval"))}var pa=/<|&#?\w+;/;function qa(a,b,c,d,e){for(var f,g,h,i,j,k,l=b.createDocumentFragment(),m=[],n=0,o=a.length;n<o;n++)if(f=a[n],f||0===f)if("object"===r.type(f))r.merge(m,f.nodeType?[f]:f);else if(pa.test(f)){g=g||l.appendChild(b.createElement("div")),h=(ka.exec(f)||["",""])[1].toLowerCase(),i=ma[h]||ma._default,g.innerHTML=i[1]+r.htmlPrefilter(f)+i[2],k=i[0];while(k--)g=g.lastChild;r.merge(m,g.childNodes),g=l.firstChild,g.textContent=""}else m.push(b.createTextNode(f));l.textContent="",n=0;while(f=m[n++])if(d&&r.inArray(f,d)>-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=na(l.appendChild(f),"script"),j&&oa(g),c){k=0;while(f=g[k++])la.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var ra=d.documentElement,sa=/^key/,ta=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ua=/^([^.]*)(?:\.(.+)|)/;function va(){return!0}function wa(){return!1}function xa(){try{return d.activeElement}catch(a){}}function ya(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)ya(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=wa;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(ra,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(L)||[""],j=b.length;while(j--)h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.hasData(a)&&W.get(a);if(q&&(i=q.events)){b=(b||"").match(L)||[""],j=b.length;while(j--)if(h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&W.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(W.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c<arguments.length;c++)i[c]=arguments[c];if(b.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,b)!==!1){h=r.event.handlers.call(this,b,j),c=0;while((f=h[c++])&&!b.isPropagationStopped()){b.currentTarget=f.elem,d=0;while((g=f.handlers[d++])&&!b.isImmediatePropagationStopped())b.rnamespace&&!b.rnamespace.test(g.namespace)||(b.handleObj=g,b.data=g.data,e=((r.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(b.result=e)===!1&&(b.preventDefault(),b.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,b),b.result}},handlers:function(a,b){var c,d,e,f,g,h=[],i=b.delegateCount,j=a.target;if(i&&j.nodeType&&!("click"===a.type&&a.button>=1))for(;j!==this;j=j.parentNode||this)if(1===j.nodeType&&("click"!==a.type||j.disabled!==!0)){for(f=[],g={},c=0;c<i;c++)d=b[c],e=d.selector+" ",void 0===g[e]&&(g[e]=d.needsContext?r(e,this).index(j)>-1:r.find(e,this,null,[j]).length),g[e]&&f.push(d);f.length&&h.push({elem:j,handlers:f})}return j=this,i<b.length&&h.push({elem:j,handlers:b.slice(i)}),h},addProp:function(a,b){Object.defineProperty(r.Event.prototype,a,{enumerable:!0,configurable:!0,get:r.isFunction(b)?function(){if(this.originalEvent)return b(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[a]},set:function(b){Object.defineProperty(this,a,{enumerable:!0,configurable:!0,writable:!0,value:b})}})},fix:function(a){return a[r.expando]?a:new r.Event(a)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==xa()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===xa()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&B(this,"input"))return this.click(),!1},_default:function(a){return B(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}}},r.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c)},r.Event=function(a,b){return this instanceof r.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?va:wa,this.target=a.target&&3===a.target.nodeType?a.target.parentNode:a.target,this.currentTarget=a.currentTarget,this.relatedTarget=a.relatedTarget):this.type=a,b&&r.extend(this,b),this.timeStamp=a&&a.timeStamp||r.now(),void(this[r.expando]=!0)):new r.Event(a,b)},r.Event.prototype={constructor:r.Event,isDefaultPrevented:wa,isPropagationStopped:wa,isImmediatePropagationStopped:wa,isSimulated:!1,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=va,a&&!this.isSimulated&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=va,a&&!this.isSimulated&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=va,a&&!this.isSimulated&&a.stopImmediatePropagation(),this.stopPropagation()}},r.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(a){var b=a.button;return null==a.which&&sa.test(a.type)?null!=a.charCode?a.charCode:a.keyCode:!a.which&&void 0!==b&&ta.test(a.type)?1&b?1:2&b?3:4&b?2:0:a.which}},r.event.addProp),r.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){r.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return e&&(e===d||r.contains(d,e))||(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),r.fn.extend({on:function(a,b,c,d){return ya(this,a,b,c,d)},one:function(a,b,c,d){return ya(this,a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,r(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return b!==!1&&"function"!=typeof b||(c=b,b=void 0),c===!1&&(c=wa),this.each(function(){r.event.remove(this,a,c,b)})}});var za=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,Aa=/<script|<style|<link/i,Ba=/checked\s*(?:[^=]|=\s*.checked.)/i,Ca=/^true\/(.*)/,Da=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Ea(a,b){return B(a,"table")&&B(11!==b.nodeType?b:b.firstChild,"tr")?r(">tbody",a)[0]||a:a}function Fa(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Ga(a){var b=Ca.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ha(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(W.hasData(a)&&(f=W.access(a),g=W.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c<d;c++)r.event.add(b,e,j[e][c])}X.hasData(a)&&(h=X.access(a),i=r.extend({},h),X.set(b,i))}}function Ia(a,b){var c=b.nodeName.toLowerCase();"input"===c&&ja.test(a.type)?b.checked=a.checked:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}function Ja(a,b,c,d){b=g.apply([],b);var e,f,h,i,j,k,l=0,m=a.length,n=m-1,q=b[0],s=r.isFunction(q);if(s||m>1&&"string"==typeof q&&!o.checkClone&&Ba.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ja(f,b,c,d)});if(m&&(e=qa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(na(e,"script"),Fa),i=h.length;l<m;l++)j=e,l!==n&&(j=r.clone(j,!0,!0),i&&r.merge(h,na(j,"script"))),c.call(a[l],j,l);if(i)for(k=h[h.length-1].ownerDocument,r.map(h,Ga),l=0;l<i;l++)j=h[l],la.test(j.type||"")&&!W.access(j,"globalEval")&&r.contains(k,j)&&(j.src?r._evalUrl&&r._evalUrl(j.src):p(j.textContent.replace(Da,""),k))}return a}function Ka(a,b,c){for(var d,e=b?r.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||r.cleanData(na(d)),d.parentNode&&(c&&r.contains(d.ownerDocument,d)&&oa(na(d,"script")),d.parentNode.removeChild(d));return a}r.extend({htmlPrefilter:function(a){return a.replace(za,"<$1></$2>")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=na(h),f=na(a),d=0,e=f.length;d<e;d++)Ia(f[d],g[d]);if(b)if(c)for(f=f||na(a),g=g||na(h),d=0,e=f.length;d<e;d++)Ha(f[d],g[d]);else Ha(a,h);return g=na(h,"script"),g.length>0&&oa(g,!i&&na(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(U(c)){if(b=c[W.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[W.expando]=void 0}c[X.expando]&&(c[X.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ka(this,a,!0)},remove:function(a){return Ka(this,a)},text:function(a){return T(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.appendChild(a)}})},prepend:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(na(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return T(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!Aa.test(a)&&!ma[(ka.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c<d;c++)b=this[c]||{},1===b.nodeType&&(r.cleanData(na(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return Ja(this,arguments,function(b){var c=this.parentNode;r.inArray(this,a)<0&&(r.cleanData(na(this)),c&&c.replaceChild(b,this))},a)}}),r.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){r.fn[a]=function(a){for(var c,d=[],e=r(a),f=e.length-1,g=0;g<=f;g++)c=g===f?this:this.clone(!0),r(e[g])[b](c),h.apply(d,c.get());return this.pushStack(d)}});var La=/^margin/,Ma=new RegExp("^("+aa+")(?!px)[a-z%]+$","i"),Na=function(b){var c=b.ownerDocument.defaultView;return c&&c.opener||(c=a),c.getComputedStyle(b)};!function(){function b(){if(i){i.style.cssText="box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",i.innerHTML="",ra.appendChild(h);var b=a.getComputedStyle(i);c="1%"!==b.top,g="2px"===b.marginLeft,e="4px"===b.width,i.style.marginRight="50%",f="4px"===b.marginRight,ra.removeChild(h),i=null}}var c,e,f,g,h=d.createElement("div"),i=d.createElement("div");i.style&&(i.style.backgroundClip="content-box",i.cloneNode(!0).style.backgroundClip="",o.clearCloneStyle="content-box"===i.style.backgroundClip,h.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",h.appendChild(i),r.extend(o,{pixelPosition:function(){return b(),c},boxSizingReliable:function(){return b(),e},pixelMarginRight:function(){return b(),f},reliableMarginLeft:function(){return b(),g}}))}();function Oa(a,b,c){var d,e,f,g,h=a.style;return c=c||Na(a),c&&(g=c.getPropertyValue(b)||c[b],""!==g||r.contains(a.ownerDocument,a)||(g=r.style(a,b)),!o.pixelMarginRight()&&Ma.test(g)&&La.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function Pa(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}var Qa=/^(none|table(?!-c[ea]).+)/,Ra=/^--/,Sa={position:"absolute",visibility:"hidden",display:"block"},Ta={letterSpacing:"0",fontWeight:"400"},Ua=["Webkit","Moz","ms"],Va=d.createElement("div").style;function Wa(a){if(a in Va)return a;var b=a[0].toUpperCase()+a.slice(1),c=Ua.length;while(c--)if(a=Ua[c]+b,a in Va)return a}function Xa(a){var b=r.cssProps[a];return b||(b=r.cssProps[a]=Wa(a)||a),b}function Ya(a,b,c){var d=ba.exec(b);return d?Math.max(0,d[2]-(c||0))+(d[3]||"px"):b}function Za(a,b,c,d,e){var f,g=0;for(f=c===(d?"border":"content")?4:"width"===b?1:0;f<4;f+=2)"margin"===c&&(g+=r.css(a,c+ca[f],!0,e)),d?("content"===c&&(g-=r.css(a,"padding"+ca[f],!0,e)),"margin"!==c&&(g-=r.css(a,"border"+ca[f]+"Width",!0,e))):(g+=r.css(a,"padding"+ca[f],!0,e),"padding"!==c&&(g+=r.css(a,"border"+ca[f]+"Width",!0,e)));return g}function $a(a,b,c){var d,e=Na(a),f=Oa(a,b,e),g="border-box"===r.css(a,"boxSizing",!1,e);return Ma.test(f)?f:(d=g&&(o.boxSizingReliable()||f===a.style[b]),"auto"===f&&(f=a["offset"+b[0].toUpperCase()+b.slice(1)]),f=parseFloat(f)||0,f+Za(a,b,c||(g?"border":"content"),d,e)+"px")}r.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Oa(a,"opacity");return""===c?"1":c}}}},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:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=r.camelCase(b),i=Ra.test(b),j=a.style;return i||(b=Xa(h)),g=r.cssHooks[b]||r.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:j[b]:(f=typeof c,"string"===f&&(e=ba.exec(c))&&e[1]&&(c=fa(a,b,e),f="number"),null!=c&&c===c&&("number"===f&&(c+=e&&e[3]||(r.cssNumber[h]?"":"px")),o.clearCloneStyle||""!==c||0!==b.indexOf("background")||(j[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i?j.setProperty(b,c):j[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=r.camelCase(b),i=Ra.test(b);return i||(b=Xa(h)),g=r.cssHooks[b]||r.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=Oa(a,b,d)),"normal"===e&&b in Ta&&(e=Ta[b]),""===c||c?(f=parseFloat(e),c===!0||isFinite(f)?f||0:e):e}}),r.each(["height","width"],function(a,b){r.cssHooks[b]={get:function(a,c,d){if(c)return!Qa.test(r.css(a,"display"))||a.getClientRects().length&&a.getBoundingClientRect().width?$a(a,b,d):ea(a,Sa,function(){return $a(a,b,d)})},set:function(a,c,d){var e,f=d&&Na(a),g=d&&Za(a,b,d,"border-box"===r.css(a,"boxSizing",!1,f),f);return g&&(e=ba.exec(c))&&"px"!==(e[3]||"px")&&(a.style[b]=c,c=r.css(a,b)),Ya(a,c,g)}}}),r.cssHooks.marginLeft=Pa(o.reliableMarginLeft,function(a,b){if(b)return(parseFloat(Oa(a,"marginLeft"))||a.getBoundingClientRect().left-ea(a,{marginLeft:0},function(){return a.getBoundingClientRect().left}))+"px"}),r.each({margin:"",padding:"",border:"Width"},function(a,b){r.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];d<4;d++)e[a+ca[d]+b]=f[d]||f[d-2]||f[0];return e}},La.test(a)||(r.cssHooks[a+b].set=Ya)}),r.fn.extend({css:function(a,b){return T(this,function(a,b,c){var d,e,f={},g=0;if(Array.isArray(b)){for(d=Na(a),e=b.length;g<e;g++)f[b[g]]=r.css(a,b[g],!1,d);return f}return void 0!==c?r.style(a,b,c):r.css(a,b)},a,b,arguments.length>1)}});function _a(a,b,c,d,e){return new _a.prototype.init(a,b,c,d,e)}r.Tween=_a,_a.prototype={constructor:_a,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||r.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(r.cssNumber[c]?"":"px")},cur:function(){var a=_a.propHooks[this.prop];return a&&a.get?a.get(this):_a.propHooks._default.get(this)},run:function(a){var b,c=_a.propHooks[this.prop];return this.options.duration?this.pos=b=r.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):_a.propHooks._default.set(this),this}},_a.prototype.init.prototype=_a.prototype,_a.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=r.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){r.fx.step[a.prop]?r.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[r.cssProps[a.prop]]&&!r.cssHooks[a.prop]?a.elem[a.prop]=a.now:r.style(a.elem,a.prop,a.now+a.unit)}}},_a.propHooks.scrollTop=_a.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},r.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},r.fx=_a.prototype.init,r.fx.step={};var ab,bb,cb=/^(?:toggle|show|hide)$/,db=/queueHooks$/;function eb(){bb&&(d.hidden===!1&&a.requestAnimationFrame?a.requestAnimationFrame(eb):a.setTimeout(eb,r.fx.interval),r.fx.tick())}function fb(){return a.setTimeout(function(){ab=void 0}),ab=r.now()}function gb(a,b){var c,d=0,e={height:a};for(b=b?1:0;d<4;d+=2-b)c=ca[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function hb(a,b,c){for(var d,e=(kb.tweeners[b]||[]).concat(kb.tweeners["*"]),f=0,g=e.length;f<g;f++)if(d=e[f].call(c,b,a))return d}function ib(a,b,c){var d,e,f,g,h,i,j,k,l="width"in b||"height"in b,m=this,n={},o=a.style,p=a.nodeType&&da(a),q=W.get(a,"fxshow");c.queue||(g=r._queueHooks(a,"fx"),null==g.unqueued&&(g.unqueued=0,h=g.empty.fire,g.empty.fire=function(){g.unqueued||h()}),g.unqueued++,m.always(function(){m.always(function(){g.unqueued--,r.queue(a,"fx").length||g.empty.fire()})}));for(d in b)if(e=b[d],cb.test(e)){if(delete b[d],f=f||"toggle"===e,e===(p?"hide":"show")){if("show"!==e||!q||void 0===q[d])continue;p=!0}n[d]=q&&q[d]||r.style(a,d)}if(i=!r.isEmptyObject(b),i||!r.isEmptyObject(n)){l&&1===a.nodeType&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=q&&q.display,null==j&&(j=W.get(a,"display")),k=r.css(a,"display"),"none"===k&&(j?k=j:(ia([a],!0),j=a.style.display||j,k=r.css(a,"display"),ia([a]))),("inline"===k||"inline-block"===k&&null!=j)&&"none"===r.css(a,"float")&&(i||(m.done(function(){o.display=j}),null==j&&(k=o.display,j="none"===k?"":k)),o.display="inline-block")),c.overflow&&(o.overflow="hidden",m.always(function(){o.overflow=c.overflow[0],o.overflowX=c.overflow[1],o.overflowY=c.overflow[2]})),i=!1;for(d in n)i||(q?"hidden"in q&&(p=q.hidden):q=W.access(a,"fxshow",{display:j}),f&&(q.hidden=!p),p&&ia([a],!0),m.done(function(){p||ia([a]),W.remove(a,"fxshow");for(d in n)r.style(a,d,n[d])})),i=hb(p?q[d]:0,d,m),d in q||(q[d]=i.start,p&&(i.end=i.start,i.start=0))}}function jb(a,b){var c,d,e,f,g;for(c in a)if(d=r.camelCase(c),e=b[d],f=a[c],Array.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=r.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function kb(a,b,c){var d,e,f=0,g=kb.prefilters.length,h=r.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=ab||fb(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;g<i;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),f<1&&i?c:(i||h.notifyWith(a,[j,1,0]),h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:r.extend({},b),opts:r.extend(!0,{specialEasing:{},easing:r.easing._default},c),originalProperties:b,originalOptions:c,startTime:ab||fb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=r.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;c<d;c++)j.tweens[c].run(1);return b?(h.notifyWith(a,[j,1,0]),h.resolveWith(a,[j,b])):h.rejectWith(a,[j,b]),this}}),k=j.props;for(jb(k,j.opts.specialEasing);f<g;f++)if(d=kb.prefilters[f].call(j,a,k,j.opts))return r.isFunction(d.stop)&&(r._queueHooks(j.elem,j.opts.queue).stop=r.proxy(d.stop,d)),d;return r.map(k,hb,j),r.isFunction(j.opts.start)&&j.opts.start.call(a,j),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always),r.fx.timer(r.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j}r.Animation=r.extend(kb,{tweeners:{"*":[function(a,b){var c=this.createTween(a,b);return fa(c.elem,a,ba.exec(b),c),c}]},tweener:function(a,b){r.isFunction(a)?(b=a,a=["*"]):a=a.match(L);for(var c,d=0,e=a.length;d<e;d++)c=a[d],kb.tweeners[c]=kb.tweeners[c]||[],kb.tweeners[c].unshift(b)},prefilters:[ib],prefilter:function(a,b){b?kb.prefilters.unshift(a):kb.prefilters.push(a)}}),r.speed=function(a,b,c){var d=a&&"object"==typeof a?r.extend({},a):{complete:c||!c&&b||r.isFunction(a)&&a,duration:a,easing:c&&b||b&&!r.isFunction(b)&&b};return r.fx.off?d.duration=0:"number"!=typeof d.duration&&(d.duration in r.fx.speeds?d.duration=r.fx.speeds[d.duration]:d.duration=r.fx.speeds._default),null!=d.queue&&d.queue!==!0||(d.queue="fx"),d.old=d.complete,d.complete=function(){r.isFunction(d.old)&&d.old.call(this),d.queue&&r.dequeue(this,d.queue)},d},r.fn.extend({fadeTo:function(a,b,c,d){return this.filter(da).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=r.isEmptyObject(a),f=r.speed(b,c,d),g=function(){var b=kb(this,r.extend({},a),f);(e||W.get(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=r.timers,g=W.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&db.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));!b&&c||r.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=W.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=r.timers,g=d?d.length:0;for(c.finish=!0,r.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;b<g;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),r.each(["toggle","show","hide"],function(a,b){var c=r.fn[b];r.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(gb(b,!0),a,d,e)}}),r.each({slideDown:gb("show"),slideUp:gb("hide"),slideToggle:gb("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){r.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),r.timers=[],r.fx.tick=function(){var a,b=0,c=r.timers;for(ab=r.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||r.fx.stop(),ab=void 0},r.fx.timer=function(a){r.timers.push(a),r.fx.start()},r.fx.interval=13,r.fx.start=function(){bb||(bb=!0,eb())},r.fx.stop=function(){bb=null},r.fx.speeds={slow:600,fast:200,_default:400},r.fn.delay=function(b,c){return b=r.fx?r.fx.speeds[b]||b:b,c=c||"fx",this.queue(c,function(c,d){var e=a.setTimeout(c,b);d.stop=function(){a.clearTimeout(e)}})},function(){var a=d.createElement("input"),b=d.createElement("select"),c=b.appendChild(d.createElement("option"));a.type="checkbox",o.checkOn=""!==a.value,o.optSelected=c.selected,a=d.createElement("input"),a.value="t",a.type="radio",o.radioValue="t"===a.value}();var lb,mb=r.expr.attrHandle;r.fn.extend({attr:function(a,b){return T(this,r.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?lb:void 0)),void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b), 5null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&B(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(L);if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),lb={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=mb[b]||r.find.attr;mb[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=mb[g],mb[g]=e,e=null!=c(a,b,d)?g:null,mb[g]=f),e}});var nb=/^(?:input|select|textarea|button)$/i,ob=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return T(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):nb.test(a.nodeName)||ob.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});function pb(a){var b=a.match(L)||[];return b.join(" ")}function qb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,qb(this)))});if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=qb(c),d=1===c.nodeType&&" "+pb(e)+" "){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=pb(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,qb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=qb(c),d=1===c.nodeType&&" "+pb(e)+" "){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=pb(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,qb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(L)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=qb(this),b&&W.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":W.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+pb(qb(c))+" ").indexOf(b)>-1)return!0;return!1}});var rb=/\r/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":Array.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(rb,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:pb(r.text(a))}},select:{get:function(a){var b,c,d,e=a.options,f=a.selectedIndex,g="select-one"===a.type,h=g?null:[],i=g?f+1:e.length;for(d=f<0?i:g?f:0;d<i;d++)if(c=e[d],(c.selected||d===f)&&!c.disabled&&(!c.parentNode.disabled||!B(c.parentNode,"optgroup"))){if(b=r(c).val(),g)return b;h.push(b)}return h},set:function(a,b){var c,d,e=a.options,f=r.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=r.inArray(r.valHooks.option.get(d),f)>-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(Array.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var sb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!sb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,sb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(W.get(h,"events")||{})[b.type]&&W.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&U(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!U(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.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(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=W.access(d,b);e||d.addEventListener(a,c,!0),W.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=W.access(d,b)-1;e?W.access(d,b,e):(d.removeEventListener(a,c,!0),W.remove(d,b))}}});var tb=a.location,ub=r.now(),vb=/\?/;r.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||r.error("Invalid XML: "+b),c};var wb=/\[\]$/,xb=/\r?\n/g,yb=/^(?:submit|button|image|reset|file)$/i,zb=/^(?:input|select|textarea|keygen)/i;function Ab(a,b,c,d){var e;if(Array.isArray(b))r.each(b,function(b,e){c||wb.test(a)?d(a,e):Ab(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)Ab(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(Array.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)Ab(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&zb.test(this.nodeName)&&!yb.test(a)&&(this.checked||!ja.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:Array.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(xb,"\r\n")}}):{name:b.name,value:c.replace(xb,"\r\n")}}).get()}});var Bb=/%20/g,Cb=/#.*$/,Db=/([?&])_=[^&]*/,Eb=/^(.*?):[ \t]*([^\r\n]*)$/gm,Fb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Gb=/^(?:GET|HEAD)$/,Hb=/^\/\//,Ib={},Jb={},Kb="*/".concat("*"),Lb=d.createElement("a");Lb.href=tb.href;function Mb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(L)||[];if(r.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Nb(a,b,c,d){var e={},f=a===Jb;function g(h){var i;return e[h]=!0,r.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Ob(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function Pb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}if(f)return f!==i[0]&&i.unshift(f),c[f]}function Qb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:tb.href,type:"GET",isLocal:Fb.test(tb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Kb,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":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Ob(Ob(a,r.ajaxSettings),b):Ob(r.ajaxSettings,a)},ajaxPrefilter:Mb(Ib),ajaxTransport:Mb(Jb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks("once memory"),u=o.statusCode||{},v={},w={},x="canceled",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Eb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||tb.href)+"").replace(Hb,tb.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(L)||[""],null==o.crossDomain){j=d.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=Lb.protocol+"//"+Lb.host!=j.protocol+"//"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),Nb(Ib,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Gb.test(o.type),f=o.url.replace(Cb,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(Bb,"+")):(n=o.url.slice(f.length),o.data&&(f+=(vb.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Db,"$1"),n=(vb.test(f)?"&":"?")+"_="+ub++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader("If-Modified-Since",r.lastModified[f]),r.etag[f]&&y.setRequestHeader("If-None-Match",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader("Content-Type",o.contentType),y.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+Kb+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x="abort",t.add(o.complete),y.done(o.success),y.fail(o.error),e=Nb(Jb,o,c,y)){if(y.readyState=1,l&&q.trigger("ajaxSend",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort("timeout")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,"No Transport");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",y.readyState=b>0?4:0,j=b>=200&&b<300||304===b,d&&(v=Pb(o,y,d)),v=Qb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader("Last-Modified"),w&&(r.lastModified[f]=w),w=y.getResponseHeader("etag"),w&&(r.etag[f]=w)),204===b||"HEAD"===o.type?x="nocontent":304===b?x="notmodified":(x=v.state,m=v.data,n=v.error,j=!n)):(n=x,!b&&x||(x="error",b<0&&(b=0))),y.status=b,y.statusText=(c||x)+"",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger("ajaxComplete",[y,o]),--r.active||r.event.trigger("ajaxStop")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,"json")},getScript:function(a,b){return r.get(a,void 0,b,"script")}}),r.each(["get","post"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d,d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Rb={0:200,1223:204},Sb=r.ajaxSettings.xhr();o.cors=!!Sb&&"withCredentials"in Sb,o.ajax=Sb=!!Sb,r.ajaxTransport(function(b){var c,d;if(o.cors||Sb&&!b.crossDomain)return{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Rb[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),r.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r("<script>").prop({charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&f("error"===a.type?404:200,a.type)}),d.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Tb=[],Ub=/(=)\?(?=&|$)|\?\?/;r.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Tb.pop()||r.expando+"_"+ub++;return this[a]=!0,a}}),r.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Ub.test(b.url)?"url":"string"==typeof b.data&&0===(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ub.test(b.data)&&"data");if(h||"jsonp"===b.dataTypes[0])return e=b.jsonpCallback=r.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Ub,"$1"+e):b.jsonp!==!1&&(b.url+=(vb.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||r.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){void 0===f?r(a).removeProp(e):a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Tb.push(e)),g&&r.isFunction(f)&&f(g[0]),g=f=void 0}),"script"}),o.createHTMLDocument=function(){var a=d.implementation.createHTMLDocument("").body;return a.innerHTML="<form></form><form></form>",2===a.childNodes.length}(),r.parseHTML=function(a,b,c){if("string"!=typeof a)return[];"boolean"==typeof b&&(c=b,b=!1);var e,f,g;return b||(o.createHTMLDocument?(b=d.implementation.createHTMLDocument(""),e=b.createElement("base"),e.href=d.location.href,b.head.appendChild(e)):b=d),f=C.exec(a),g=!c&&[],f?[b.createElement(f[1])]:(f=qa([a],b,g),g&&g.length&&r(g).remove(),r.merge([],f.childNodes))},r.fn.load=function(a,b,c){var d,e,f,g=this,h=a.indexOf(" ");return h>-1&&(d=pb(a.slice(h)),a=a.slice(0,h)),r.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&r.ajax({url:a,type:e||"GET",dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?r("<div>").append(r.parseHTML(a)).find(d):a)}).always(c&&function(a,b){g.each(function(){c.apply(this,f||[a.responseText,b,a])})}),this},r.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){r.fn[b]=function(a){return this.on(b,a)}}),r.expr.pseudos.animated=function(a){return r.grep(r.timers,function(b){return a===b.elem}).length},r.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=r.css(a,"position"),l=r(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=r.css(a,"top"),i=r.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),r.isFunction(b)&&(b=b.call(a,c,r.extend({},h))),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},r.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){r.offset.setOffset(this,a,b)});var b,c,d,e,f=this[0];if(f)return f.getClientRects().length?(d=f.getBoundingClientRect(),b=f.ownerDocument,c=b.documentElement,e=b.defaultView,{top:d.top+e.pageYOffset-c.clientTop,left:d.left+e.pageXOffset-c.clientLeft}):{top:0,left:0}},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===r.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),B(a[0],"html")||(d=a.offset()),d={top:d.top+r.css(a[0],"borderTopWidth",!0),left:d.left+r.css(a[0],"borderLeftWidth",!0)}),{top:b.top-d.top-r.css(c,"marginTop",!0),left:b.left-d.left-r.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent;while(a&&"static"===r.css(a,"position"))a=a.offsetParent;return a||ra})}}),r.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c="pageYOffset"===b;r.fn[a]=function(d){return T(this,function(a,d,e){var f;return r.isWindow(a)?f=a:9===a.nodeType&&(f=a.defaultView),void 0===e?f?f[b]:a[d]:void(f?f.scrollTo(c?f.pageXOffset:e,c?e:f.pageYOffset):a[d]=e)},a,d,arguments.length)}}),r.each(["top","left"],function(a,b){r.cssHooks[b]=Pa(o.pixelPosition,function(a,c){if(c)return c=Oa(a,b),Ma.test(c)?r(a).position()[b]+"px":c})}),r.each({Height:"height",Width:"width"},function(a,b){r.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){r.fn[d]=function(e,f){var g=arguments.length&&(c||"boolean"!=typeof e),h=c||(e===!0||f===!0?"margin":"border");return T(this,function(b,c,e){var f;return r.isWindow(b)?0===d.indexOf("outer")?b["inner"+a]:b.document.documentElement["client"+a]:9===b.nodeType?(f=b.documentElement,Math.max(b.body["scroll"+a],f["scroll"+a],b.body["offset"+a],f["offset"+a],f["client"+a])):void 0===e?r.css(b,c,h):r.style(b,c,e,h)},b,g?e:void 0,g)}})}),r.fn.extend({bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}}),r.holdReady=function(a){a?r.readyWait++:r.ready(!0)},r.isArray=Array.isArray,r.parseJSON=JSON.parse,r.nodeName=B,"function"==typeof define&&define.amd&&define("jquery",[],function(){return r});var Vb=a.jQuery,Wb=a.$;return r.noConflict=function(b){return a.$===r&&(a.$=Wb),b&&a.jQuery===r&&(a.jQuery=Vb),r},b||(a.jQuery=a.$=r),r});
vendor: 1,249 bytes, lines 6-48
6 7//! moment.js 8//! version : 2.19.3 9//! authors : Tim Wood, Iskren Chernev, Moment.js contributors 10//! license : MIT 11//! momentjs.com 12 13;(function (global, factory) { 14 typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 15 typeof define === 'function' && define.amd ? define(factory) : 16 global.moment = factory() 17}(this, (function () { 'use strict'; 18 19var hookCallback; 20 21function hooks () { 22 return hookCallback.apply(null, arguments); 23} 24 25// This is done to register the method called with moment() 26// without creating circular dependencies. 27function setHookCallback (callback) { 28 hookCallback = callback; 29} 30 31function isArray(input) { 32 return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]'; 33} 34 35function isObject(input) { 36 // IE8 will treat undefined and null as object if it wasn't for 37 // input != null 38 return input != null && Object.prototype.toString.call(input) === '[object Object]'; 39} 40 41function isObjectEmpty(obj) { 42 if (Object.getOwnPropertyNames) { 43 return (Object.getOwnPropertyNames(obj).length === 0); 44 } else { 45 var k; 46 for (k in obj) { 47 if (obj.hasOwnProperty(k)) { 48 return false;
vendor: 22,938 bytes, lines 49-926
49 } 50 } 51 return true; 52 } 53} 54 55function isUndefined(input) { 56 return input === void 0; 57} 58 59function isNumber(input) { 60 return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]'; 61} 62 63function isDate(input) { 64 return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]'; 65} 66 67function map(arr, fn) { 68 var res = [], i; 69 for (i = 0; i < arr.length; ++i) { 70 res.push(fn(arr[i], i)); 71 } 72 return res; 73} 74 75function hasOwnProp(a, b) { 76 return Object.prototype.hasOwnProperty.call(a, b); 77} 78 79function extend(a, b) { 80 for (var i in b) { 81 if (hasOwnProp(b, i)) { 82 a[i] = b[i]; 83 } 84 } 85 86 if (hasOwnProp(b, 'toString')) { 87 a.toString = b.toString; 88 } 89 90 if (hasOwnProp(b, 'valueOf')) { 91 a.valueOf = b.valueOf; 92 } 93 94 return a; 95} 96 97function createUTC (input, format, locale, strict) { 98 return createLocalOrUTC(input, format, locale, strict, true).utc(); 99} 100 101function defaultParsingFlags() { 102 // We need to deep clone this object. 103 return { 104 empty : false, 105 unusedTokens : [], 106 unusedInput : [], 107 overflow : -2, 108 charsLeftOver : 0, 109 nullInput : false, 110 invalidMonth : null, 111 invalidFormat : false, 112 userInvalidated : false, 113 iso : false, 114 parsedDateParts : [], 115 meridiem : null, 116 rfc2822 : false, 117 weekdayMismatch : false 118 }; 119} 120 121function getParsingFlags(m) { 122 if (m._pf == null) { 123 m._pf = defaultParsingFlags(); 124 } 125 return m._pf; 126} 127 128var some; 129if (Array.prototype.some) { 130 some = Array.prototype.some; 131} else { 132 some = function (fun) { 133 var t = Object(this); 134 var len = t.length >>> 0; 135 136 for (var i = 0; i < len; i++) { 137 if (i in t && fun.call(this, t[i], i, t)) { 138 return true; 139 } 140 } 141 142 return false; 143 }; 144} 145 146function isValid(m) { 147 if (m._isValid == null) { 148 var flags = getParsingFlags(m); 149 var parsedParts = some.call(flags.parsedDateParts, function (i) { 150 return i != null; 151 }); 152 var isNowValid = !isNaN(m._d.getTime()) && 153 flags.overflow < 0 && 154 !flags.empty && 155 !flags.invalidMonth && 156 !flags.invalidWeekday && 157 !flags.weekdayMismatch && 158 !flags.nullInput && 159 !flags.invalidFormat && 160 !flags.userInvalidated && 161 (!flags.meridiem || (flags.meridiem && parsedParts)); 162 163 if (m._strict) { 164 isNowValid = isNowValid && 165 flags.charsLeftOver === 0 && 166 flags.unusedTokens.length === 0 && 167 flags.bigHour === undefined; 168 } 169 170 if (Object.isFrozen == null || !Object.isFrozen(m)) { 171 m._isValid = isNowValid; 172 } 173 else { 174 return isNowValid; 175 } 176 } 177 return m._isValid; 178} 179 180function createInvalid (flags) { 181 var m = createUTC(NaN); 182 if (flags != null) { 183 extend(getParsingFlags(m), flags); 184 } 185 else { 186 getParsingFlags(m).userInvalidated = true; 187 } 188 189 return m; 190} 191 192// Plugins that add properties should also add the key here (null value), 193// so we can properly clone ourselves. 194var momentProperties = hooks.momentProperties = []; 195 196function copyConfig(to, from) { 197 var i, prop, val; 198 199 if (!isUndefined(from._isAMomentObject)) { 200 to._isAMomentObject = from._isAMomentObject; 201 } 202 if (!isUndefined(from._i)) { 203 to._i = from._i; 204 } 205 if (!isUndefined(from._f)) { 206 to._f = from._f; 207 } 208 if (!isUndefined(from._l)) { 209 to._l = from._l; 210 } 211 if (!isUndefined(from._strict)) { 212 to._strict = from._strict; 213 } 214 if (!isUndefined(from._tzm)) { 215 to._tzm = from._tzm; 216 } 217 if (!isUndefined(from._isUTC)) { 218 to._isUTC = from._isUTC; 219 } 220 if (!isUndefined(from._offset)) { 221 to._offset = from._offset; 222 } 223 if (!isUndefined(from._pf)) { 224 to._pf = getParsingFlags(from); 225 } 226 if (!isUndefined(from._locale)) { 227 to._locale = from._locale; 228 } 229 230 if (momentProperties.length > 0) { 231 for (i = 0; i < momentProperties.length; i++) { 232 prop = momentProperties[i]; 233 val = from[prop]; 234 if (!isUndefined(val)) { 235 to[prop] = val; 236 } 237 } 238 } 239 240 return to; 241} 242 243var updateInProgress = false; 244 245// Moment prototype object 246function Moment(config) { 247 copyConfig(this, config); 248 this._d = new Date(config._d != null ? config._d.getTime() : NaN); 249 if (!this.isValid()) { 250 this._d = new Date(NaN); 251 } 252 // Prevent infinite loop in case updateOffset creates new moment 253 // objects. 254 if (updateInProgress === false) { 255 updateInProgress = true; 256 hooks.updateOffset(this); 257 updateInProgress = false; 258 } 259} 260 261function isMoment (obj) { 262 return obj instanceof Moment || (obj != null && obj._isAMomentObject != null); 263} 264 265function absFloor (number) { 266 if (number < 0) { 267 // -0 -> 0 268 return Math.ceil(number) || 0; 269 } else { 270 return Math.floor(number); 271 } 272} 273 274function toInt(argumentForCoercion) { 275 var coercedNumber = +argumentForCoercion, 276 value = 0; 277 278 if (coercedNumber !== 0 && isFinite(coercedNumber)) { 279 value = absFloor(coercedNumber); 280 } 281 282 return value; 283} 284 285// compare two arrays, return the number of differences 286function compareArrays(array1, array2, dontConvert) { 287 var len = Math.min(array1.length, array2.length), 288 lengthDiff = Math.abs(array1.length - array2.length), 289 diffs = 0, 290 i; 291 for (i = 0; i < len; i++) { 292 if ((dontConvert && array1[i] !== array2[i]) || 293 (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) { 294 diffs++; 295 } 296 } 297 return diffs + lengthDiff; 298} 299 300function warn(msg) { 301 if (hooks.suppressDeprecationWarnings === false && 302 (typeof console !== 'undefined') && console.warn) { 303 console.warn('Deprecation warning: ' + msg); 304 } 305} 306 307function deprecate(msg, fn) { 308 var firstTime = true; 309 310 return extend(function () { 311 if (hooks.deprecationHandler != null) { 312 hooks.deprecationHandler(null, msg); 313 } 314 if (firstTime) { 315 var args = []; 316 var arg; 317 for (var i = 0; i < arguments.length; i++) { 318 arg = ''; 319 if (typeof arguments[i] === 'object') { 320 arg += '\n[' + i + '] '; 321 for (var key in arguments[0]) { 322 arg += key + ': ' + arguments[0][key] + ', '; 323 } 324 arg = arg.slice(0, -2); // Remove trailing comma and space 325 } else { 326 arg = arguments[i]; 327 } 328 args.push(arg); 329 } 330 warn(msg + '\nArguments: ' + Array.prototype.slice.call(args).join('') + '\n' + (new Error()).stack); 331 firstTime = false; 332 } 333 return fn.apply(this, arguments); 334 }, fn); 335} 336 337var deprecations = {}; 338 339function deprecateSimple(name, msg) { 340 if (hooks.deprecationHandler != null) { 341 hooks.deprecationHandler(name, msg); 342 } 343 if (!deprecations[name]) { 344 warn(msg); 345 deprecations[name] = true; 346 } 347} 348 349hooks.suppressDeprecationWarnings = false; 350hooks.deprecationHandler = null; 351 352function isFunction(input) { 353 return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]'; 354} 355 356function set (config) { 357 var prop, i; 358 for (i in config) { 359 prop = config[i]; 360 if (isFunction(prop)) { 361 this[i] = prop; 362 } else { 363 this['_' + i] = prop; 364 } 365 } 366 this._config = config; 367 // Lenient ordinal parsing accepts just a number in addition to 368 // number + (possibly) stuff coming from _dayOfMonthOrdinalParse. 369 // TODO: Remove "ordinalParse" fallback in next major release. 370 this._dayOfMonthOrdinalParseLenient = new RegExp( 371 (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + 372 '|' + (/\d{1,2}/).source); 373} 374 375function mergeConfigs(parentConfig, childConfig) { 376 var res = extend({}, parentConfig), prop; 377 for (prop in childConfig) { 378 if (hasOwnProp(childConfig, prop)) { 379 if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) { 380 res[prop] = {}; 381 extend(res[prop], parentConfig[prop]); 382 extend(res[prop], childConfig[prop]); 383 } else if (childConfig[prop] != null) { 384 res[prop] = childConfig[prop]; 385 } else { 386 delete res[prop]; 387 } 388 } 389 } 390 for (prop in parentConfig) { 391 if (hasOwnProp(parentConfig, prop) && 392 !hasOwnProp(childConfig, prop) && 393 isObject(parentConfig[prop])) { 394 // make sure changes to properties don't modify parent config 395 res[prop] = extend({}, res[prop]); 396 } 397 } 398 return res; 399} 400 401function Locale(config) { 402 if (config != null) { 403 this.set(config); 404 } 405} 406 407var keys; 408 409if (Object.keys) { 410 keys = Object.keys; 411} else { 412 keys = function (obj) { 413 var i, res = []; 414 for (i in obj) { 415 if (hasOwnProp(obj, i)) { 416 res.push(i); 417 } 418 } 419 return res; 420 }; 421} 422 423var defaultCalendar = { 424 sameDay : '[Today at] LT', 425 nextDay : '[Tomorrow at] LT', 426 nextWeek : 'dddd [at] LT', 427 lastDay : '[Yesterday at] LT', 428 lastWeek : '[Last] dddd [at] LT', 429 sameElse : 'L' 430}; 431 432function calendar (key, mom, now) { 433 var output = this._calendar[key] || this._calendar['sameElse']; 434 return isFunction(output) ? output.call(mom, now) : output; 435} 436 437var defaultLongDateFormat = { 438 LTS : 'h:mm:ss A', 439 LT : 'h:mm A', 440 L : 'MM/DD/YYYY', 441 LL : 'MMMM D, YYYY', 442 LLL : 'MMMM D, YYYY h:mm A', 443 LLLL : 'dddd, MMMM D, YYYY h:mm A' 444}; 445 446function longDateFormat (key) { 447 var format = this._longDateFormat[key], 448 formatUpper = this._longDateFormat[key.toUpperCase()]; 449 450 if (format || !formatUpper) { 451 return format; 452 } 453 454 this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) { 455 return val.slice(1); 456 }); 457 458 return this._longDateFormat[key]; 459} 460 461var defaultInvalidDate = 'Invalid date'; 462 463function invalidDate () { 464 return this._invalidDate; 465} 466 467var defaultOrdinal = '%d'; 468var defaultDayOfMonthOrdinalParse = /\d{1,2}/; 469 470function ordinal (number) { 471 return this._ordinal.replace('%d', number); 472} 473 474var defaultRelativeTime = { 475 future : 'in %s', 476 past : '%s ago', 477 s : 'a few seconds', 478 ss : '%d seconds', 479 m : 'a minute', 480 mm : '%d minutes', 481 h : 'an hour', 482 hh : '%d hours', 483 d : 'a day', 484 dd : '%d days', 485 M : 'a month', 486 MM : '%d months', 487 y : 'a year', 488 yy : '%d years' 489}; 490 491function relativeTime (number, withoutSuffix, string, isFuture) { 492 var output = this._relativeTime[string]; 493 return (isFunction(output)) ? 494 output(number, withoutSuffix, string, isFuture) : 495 output.replace(/%d/i, number); 496} 497 498function pastFuture (diff, output) { 499 var format = this._relativeTime[diff > 0 ? 'future' : 'past']; 500 return isFunction(format) ? format(output) : format.replace(/%s/i, output); 501} 502 503var aliases = {}; 504 505function addUnitAlias (unit, shorthand) { 506 var lowerCase = unit.toLowerCase(); 507 aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit; 508} 509 510function normalizeUnits(units) { 511 return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined; 512} 513 514function normalizeObjectUnits(inputObject) { 515 var normalizedInput = {}, 516 normalizedProp, 517 prop; 518 519 for (prop in inputObject) { 520 if (hasOwnProp(inputObject, prop)) { 521 normalizedProp = normalizeUnits(prop); 522 if (normalizedProp) { 523 normalizedInput[normalizedProp] = inputObject[prop]; 524 } 525 } 526 } 527 528 return normalizedInput; 529} 530 531var priorities = {}; 532 533function addUnitPriority(unit, priority) { 534 priorities[unit] = priority; 535} 536 537function getPrioritizedUnits(unitsObj) { 538 var units = []; 539 for (var u in unitsObj) { 540 units.push({unit: u, priority: priorities[u]}); 541 } 542 units.sort(function (a, b) { 543 return a.priority - b.priority; 544 }); 545 return units; 546} 547 548function zeroFill(number, targetLength, forceSign) { 549 var absNumber = '' + Math.abs(number), 550 zerosToFill = targetLength - absNumber.length, 551 sign = number >= 0; 552 return (sign ? (forceSign ? '+' : '') : '-') + 553 Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber; 554} 555 556var formattingTokens = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g; 557 558var localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g; 559 560var formatFunctions = {}; 561 562var formatTokenFunctions = {}; 563 564// token: 'M' 565// padded: ['MM', 2] 566// ordinal: 'Mo' 567// callback: function () { this.month() + 1 } 568function addFormatToken (token, padded, ordinal, callback) { 569 var func = callback; 570 if (typeof callback === 'string') { 571 func = function () { 572 return this[callback](); 573 }; 574 } 575 if (token) { 576 formatTokenFunctions[token] = func; 577 } 578 if (padded) { 579 formatTokenFunctions[padded[0]] = function () { 580 return zeroFill(func.apply(this, arguments), padded[1], padded[2]); 581 }; 582 } 583 if (ordinal) { 584 formatTokenFunctions[ordinal] = function () { 585 return this.localeData().ordinal(func.apply(this, arguments), token); 586 }; 587 } 588} 589 590function removeFormattingTokens(input) { 591 if (input.match(/\[[\s\S]/)) { 592 return input.replace(/^\[|\]$/g, ''); 593 } 594 return input.replace(/\\/g, ''); 595} 596 597function makeFormatFunction(format) { 598 var array = format.match(formattingTokens), i, length; 599 600 for (i = 0, length = array.length; i < length; i++) { 601 if (formatTokenFunctions[array[i]]) { 602 array[i] = formatTokenFunctions[array[i]]; 603 } else { 604 array[i] = removeFormattingTokens(array[i]); 605 } 606 } 607 608 return function (mom) { 609 var output = '', i; 610 for (i = 0; i < length; i++) { 611 output += isFunction(array[i]) ? array[i].call(mom, format) : array[i]; 612 } 613 return output; 614 }; 615} 616 617// format date using native date object 618function formatMoment(m, format) { 619 if (!m.isValid()) { 620 return m.localeData().invalidDate(); 621 } 622 623 format = expandFormat(format, m.localeData()); 624 formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format); 625 626 return formatFunctions[format](m); 627} 628 629function expandFormat(format, locale) { 630 var i = 5; 631 632 function replaceLongDateFormatTokens(input) { 633 return locale.longDateFormat(input) || input; 634 } 635 636 localFormattingTokens.lastIndex = 0; 637 while (i >= 0 && localFormattingTokens.test(format)) { 638 format = format.replace(localFormattingTokens, replaceLongDateFormatTokens); 639 localFormattingTokens.lastIndex = 0; 640 i -= 1; 641 } 642 643 return format; 644} 645 646var match1 = /\d/; // 0 - 9 647var match2 = /\d\d/; // 00 - 99 648var match3 = /\d{3}/; // 000 - 999 649var match4 = /\d{4}/; // 0000 - 9999 650var match6 = /[+-]?\d{6}/; // -999999 - 999999 651var match1to2 = /\d\d?/; // 0 - 99 652var match3to4 = /\d\d\d\d?/; // 999 - 9999 653var match5to6 = /\d\d\d\d\d\d?/; // 99999 - 999999 654var match1to3 = /\d{1,3}/; // 0 - 999 655var match1to4 = /\d{1,4}/; // 0 - 9999 656var match1to6 = /[+-]?\d{1,6}/; // -999999 - 999999 657 658var matchUnsigned = /\d+/; // 0 - inf 659var matchSigned = /[+-]?\d+/; // -inf - inf 660 661var matchOffset = /Z|[+-]\d\d:?\d\d/gi; // +00:00 -00:00 +0000 -0000 or Z 662var matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z 663 664var matchTimestamp = /[+-]?\d+(\.\d{1,3})?/; // 123456789 123456789.123 665 666// any word (or two) characters or numbers including two/three word month in arabic. 667// includes scottish gaelic two word and hyphenated months 668var matchWord = /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i; 669 670 671var regexes = {}; 672 673function addRegexToken (token, regex, strictRegex) { 674 regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) { 675 return (isStrict && strictRegex) ? strictRegex : regex; 676 }; 677} 678 679function getParseRegexForToken (token, config) { 680 if (!hasOwnProp(regexes, token)) { 681 return new RegExp(unescapeFormat(token)); 682 } 683 684 return regexes[token](config._strict, config._locale); 685} 686 687// Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript 688function unescapeFormat(s) { 689 return regexEscape(s.replace('\\', '').replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (matched, p1, p2, p3, p4) { 690 return p1 || p2 || p3 || p4; 691 })); 692} 693 694function regexEscape(s) { 695 return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); 696} 697 698var tokens = {}; 699 700function addParseToken (token, callback) { 701 var i, func = callback; 702 if (typeof token === 'string') { 703 token = [token]; 704 } 705 if (isNumber(callback)) { 706 func = function (input, array) { 707 array[callback] = toInt(input); 708 }; 709 } 710 for (i = 0; i < token.length; i++) { 711 tokens[token[i]] = func; 712 } 713} 714 715function addWeekParseToken (token, callback) { 716 addParseToken(token, function (input, array, config, token) { 717 config._w = config._w || {}; 718 callback(input, config._w, config, token); 719 }); 720} 721 722function addTimeToArrayFromToken(token, input, config) { 723 if (input != null && hasOwnProp(tokens, token)) { 724 tokens[token](input, config._a, config, token); 725 } 726} 727 728var YEAR = 0; 729var MONTH = 1; 730var DATE = 2; 731var HOUR = 3; 732var MINUTE = 4; 733var SECOND = 5; 734var MILLISECOND = 6; 735var WEEK = 7; 736var WEEKDAY = 8; 737 738// FORMATTING 739 740addFormatToken('Y', 0, 0, function () { 741 var y = this.year(); 742 return y <= 9999 ? '' + y : '+' + y; 743}); 744 745addFormatToken(0, ['YY', 2], 0, function () { 746 return this.year() % 100; 747}); 748 749addFormatToken(0, ['YYYY', 4], 0, 'year'); 750addFormatToken(0, ['YYYYY', 5], 0, 'year'); 751addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); 752 753// ALIASES 754 755addUnitAlias('year', 'y'); 756 757// PRIORITIES 758 759addUnitPriority('year', 1); 760 761// PARSING 762 763addRegexToken('Y', matchSigned); 764addRegexToken('YY', match1to2, match2); 765addRegexToken('YYYY', match1to4, match4); 766addRegexToken('YYYYY', match1to6, match6); 767addRegexToken('YYYYYY', match1to6, match6); 768 769addParseToken(['YYYYY', 'YYYYYY'], YEAR); 770addParseToken('YYYY', function (input, array) { 771 array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input); 772}); 773addParseToken('YY', function (input, array) { 774 array[YEAR] = hooks.parseTwoDigitYear(input); 775}); 776addParseToken('Y', function (input, array) { 777 array[YEAR] = parseInt(input, 10); 778}); 779 780// HELPERS 781 782function daysInYear(year) { 783 return isLeapYear(year) ? 366 : 365; 784} 785 786function isLeapYear(year) { 787 return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; 788} 789 790// HOOKS 791 792hooks.parseTwoDigitYear = function (input) { 793 return toInt(input) + (toInt(input) > 68 ? 1900 : 2000); 794}; 795 796// MOMENTS 797 798var getSetYear = makeGetSet('FullYear', true); 799 800function getIsLeapYear () { 801 return isLeapYear(this.year()); 802} 803 804function makeGetSet (unit, keepTime) { 805 return function (value) { 806 if (value != null) { 807 set$1(this, unit, value); 808 hooks.updateOffset(this, keepTime); 809 return this; 810 } else { 811 return get(this, unit); 812 } 813 }; 814} 815 816function get (mom, unit) { 817 return mom.isValid() ? 818 mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN; 819} 820 821function set$1 (mom, unit, value) { 822 if (mom.isValid() && !isNaN(value)) { 823 if (unit === 'FullYear' && isLeapYear(mom.year()) && mom.month() === 1 && mom.date() === 29) { 824 mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value, mom.month(), daysInMonth(value, mom.month())); 825 } 826 else { 827 mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value); 828 } 829 } 830} 831 832// MOMENTS 833 834function stringGet (units) { 835 units = normalizeUnits(units); 836 if (isFunction(this[units])) { 837 return this[units](); 838 } 839 return this; 840} 841 842 843function stringSet (units, value) { 844 if (typeof units === 'object') { 845 units = normalizeObjectUnits(units); 846 var prioritized = getPrioritizedUnits(units); 847 for (var i = 0; i < prioritized.length; i++) { 848 this[prioritized[i].unit](units[prioritized[i].unit]); 849 } 850 } else { 851 units = normalizeUnits(units); 852 if (isFunction(this[units])) { 853 return this[units](value); 854 } 855 } 856 return this; 857} 858 859function mod(n, x) { 860 return ((n % x) + x) % x; 861} 862 863var indexOf; 864 865if (Array.prototype.indexOf) { 866 indexOf = Array.prototype.indexOf; 867} else { 868 indexOf = function (o) { 869 // I know 870 var i; 871 for (i = 0; i < this.length; ++i) { 872 if (this[i] === o) { 873 return i; 874 } 875 } 876 return -1; 877 }; 878} 879 880function daysInMonth(year, month) { 881 if (isNaN(year) || isNaN(month)) { 882 return NaN; 883 } 884 var modMonth = mod(month, 12); 885 year += (month - modMonth) / 12; 886 return modMonth === 1 ? (isLeapYear(year) ? 29 : 28) : (31 - modMonth % 7 % 2); 887} 888 889// FORMATTING 890 891addFormatToken('M', ['MM', 2], 'Mo', function () { 892 return this.month() + 1; 893}); 894 895addFormatToken('MMM', 0, 0, function (format) { 896 return this.localeData().monthsShort(this, format); 897}); 898 899addFormatToken('MMMM', 0, 0, function (format) { 900 return this.localeData().months(this, format); 901}); 902 903// ALIASES 904 905addUnitAlias('month', 'M'); 906 907// PRIORITY 908 909addUnitPriority('month', 8); 910 911// PARSING 912 913addRegexToken('M', match1to2); 914addRegexToken('MM', match1to2, match2); 915addRegexToken('MMM', function (isStrict, locale) { 916 return locale.monthsShortRegex(isStrict); 917}); 918addRegexToken('MMMM', function (isStrict, locale) { 919 return locale.monthsRegex(isStrict); 920}); 921 922addParseToken(['M', 'MM'], function (input, array) { 923 array[MONTH] = toInt(input) - 1; 924}); 925 926addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {
vendor: 24,090 bytes, lines 927-1711
927 var month = config._locale.monthsParse(input, token, config._strict); 928 // if we didn't find a month name, mark the date as invalid. 929 if (month != null) { 930 array[MONTH] = month; 931 } else { 932 getParsingFlags(config).invalidMonth = input; 933 } 934}); 935 936// LOCALES 937 938var MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/; 939var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'); 940function localeMonths (m, format) { 941 if (!m) { 942 return isArray(this._months) ? this._months : 943 this._months['standalone']; 944 } 945 return isArray(this._months) ? this._months[m.month()] : 946 this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()]; 947} 948 949var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'); 950function localeMonthsShort (m, format) { 951 if (!m) { 952 return isArray(this._monthsShort) ? this._monthsShort : 953 this._monthsShort['standalone']; 954 } 955 return isArray(this._monthsShort) ? this._monthsShort[m.month()] : 956 this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()]; 957} 958 959function handleStrictParse(monthName, format, strict) { 960 var i, ii, mom, llc = monthName.toLocaleLowerCase(); 961 if (!this._monthsParse) { 962 // this is not used 963 this._monthsParse = []; 964 this._longMonthsParse = []; 965 this._shortMonthsParse = []; 966 for (i = 0; i < 12; ++i) { 967 mom = createUTC([2000, i]); 968 this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase(); 969 this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase(); 970 } 971 } 972 973 if (strict) { 974 if (format === 'MMM') { 975 ii = indexOf.call(this._shortMonthsParse, llc); 976 return ii !== -1 ? ii : null; 977 } else { 978 ii = indexOf.call(this._longMonthsParse, llc); 979 return ii !== -1 ? ii : null; 980 } 981 } else { 982 if (format === 'MMM') { 983 ii = indexOf.call(this._shortMonthsParse, llc); 984 if (ii !== -1) { 985 return ii; 986 } 987 ii = indexOf.call(this._longMonthsParse, llc); 988 return ii !== -1 ? ii : null; 989 } else { 990 ii = indexOf.call(this._longMonthsParse, llc); 991 if (ii !== -1) { 992 return ii; 993 } 994 ii = indexOf.call(this._shortMonthsParse, llc); 995 return ii !== -1 ? ii : null; 996 } 997 } 998} 999 1000function localeMonthsParse (monthName, format, strict) { 1001 var i, mom, regex; 1002 1003 if (this._monthsParseExact) { 1004 return handleStrictParse.call(this, monthName, format, strict); 1005 } 1006 1007 if (!this._monthsParse) { 1008 this._monthsParse = []; 1009 this._longMonthsParse = []; 1010 this._shortMonthsParse = []; 1011 } 1012 1013 // TODO: add sorting 1014 // Sorting makes sure if one month (or abbr) is a prefix of another 1015 // see sorting in computeMonthsParse 1016 for (i = 0; i < 12; i++) { 1017 // make the regex if we don't have it already 1018 mom = createUTC([2000, i]); 1019 if (strict && !this._longMonthsParse[i]) { 1020 this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i'); 1021 this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i'); 1022 } 1023 if (!strict && !this._monthsParse[i]) { 1024 regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, ''); 1025 this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i'); 1026 } 1027 // test the regex 1028 if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) { 1029 return i; 1030 } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) { 1031 return i; 1032 } else if (!strict && this._monthsParse[i].test(monthName)) { 1033 return i; 1034 } 1035 } 1036} 1037 1038// MOMENTS 1039 1040function setMonth (mom, value) { 1041 var dayOfMonth; 1042 1043 if (!mom.isValid()) { 1044 // No op 1045 return mom; 1046 } 1047 1048 if (typeof value === 'string') { 1049 if (/^\d+$/.test(value)) { 1050 value = toInt(value); 1051 } else { 1052 value = mom.localeData().monthsParse(value); 1053 // TODO: Another silent failure? 1054 if (!isNumber(value)) { 1055 return mom; 1056 } 1057 } 1058 } 1059 1060 dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value)); 1061 mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth); 1062 return mom; 1063} 1064 1065function getSetMonth (value) { 1066 if (value != null) { 1067 setMonth(this, value); 1068 hooks.updateOffset(this, true); 1069 return this; 1070 } else { 1071 return get(this, 'Month'); 1072 } 1073} 1074 1075function getDaysInMonth () { 1076 return daysInMonth(this.year(), this.month()); 1077} 1078 1079var defaultMonthsShortRegex = matchWord; 1080function monthsShortRegex (isStrict) { 1081 if (this._monthsParseExact) { 1082 if (!hasOwnProp(this, '_monthsRegex')) { 1083 computeMonthsParse.call(this); 1084 } 1085 if (isStrict) { 1086 return this._monthsShortStrictRegex; 1087 } else { 1088 return this._monthsShortRegex; 1089 } 1090 } else { 1091 if (!hasOwnProp(this, '_monthsShortRegex')) { 1092 this._monthsShortRegex = defaultMonthsShortRegex; 1093 } 1094 return this._monthsShortStrictRegex && isStrict ? 1095 this._monthsShortStrictRegex : this._monthsShortRegex; 1096 } 1097} 1098 1099var defaultMonthsRegex = matchWord; 1100function monthsRegex (isStrict) { 1101 if (this._monthsParseExact) { 1102 if (!hasOwnProp(this, '_monthsRegex')) { 1103 computeMonthsParse.call(this); 1104 } 1105 if (isStrict) { 1106 return this._monthsStrictRegex; 1107 } else { 1108 return this._monthsRegex; 1109 } 1110 } else { 1111 if (!hasOwnProp(this, '_monthsRegex')) { 1112 this._monthsRegex = defaultMonthsRegex; 1113 } 1114 return this._monthsStrictRegex && isStrict ? 1115 this._monthsStrictRegex : this._monthsRegex; 1116 } 1117} 1118 1119function computeMonthsParse () { 1120 function cmpLenRev(a, b) { 1121 return b.length - a.length; 1122 } 1123 1124 var shortPieces = [], longPieces = [], mixedPieces = [], 1125 i, mom; 1126 for (i = 0; i < 12; i++) { 1127 // make the regex if we don't have it already 1128 mom = createUTC([2000, i]); 1129 shortPieces.push(this.monthsShort(mom, '')); 1130 longPieces.push(this.months(mom, '')); 1131 mixedPieces.push(this.months(mom, '')); 1132 mixedPieces.push(this.monthsShort(mom, '')); 1133 } 1134 // Sorting makes sure if one month (or abbr) is a prefix of another it 1135 // will match the longer piece. 1136 shortPieces.sort(cmpLenRev); 1137 longPieces.sort(cmpLenRev); 1138 mixedPieces.sort(cmpLenRev); 1139 for (i = 0; i < 12; i++) { 1140 shortPieces[i] = regexEscape(shortPieces[i]); 1141 longPieces[i] = regexEscape(longPieces[i]); 1142 } 1143 for (i = 0; i < 24; i++) { 1144 mixedPieces[i] = regexEscape(mixedPieces[i]); 1145 } 1146 1147 this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); 1148 this._monthsShortRegex = this._monthsRegex; 1149 this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i'); 1150 this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i'); 1151} 1152 1153function createDate (y, m, d, h, M, s, ms) { 1154 // can't just apply() to create a date: 1155 // http://stackoverflow.com/q/181348 1156 var date = new Date(y, m, d, h, M, s, ms); 1157 1158 // the date constructor remaps years 0-99 to 1900-1999 1159 if (y < 100 && y >= 0 && isFinite(date.getFullYear())) { 1160 date.setFullYear(y); 1161 } 1162 return date; 1163} 1164 1165function createUTCDate (y) { 1166 var date = new Date(Date.UTC.apply(null, arguments)); 1167 1168 // the Date.UTC function remaps years 0-99 to 1900-1999 1169 if (y < 100 && y >= 0 && isFinite(date.getUTCFullYear())) { 1170 date.setUTCFullYear(y); 1171 } 1172 return date; 1173} 1174 1175// start-of-first-week - start-of-year 1176function firstWeekOffset(year, dow, doy) { 1177 var // first-week day -- which january is always in the first week (4 for iso, 1 for other) 1178 fwd = 7 + dow - doy, 1179 // first-week day local weekday -- which local weekday is fwd 1180 fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7; 1181 1182 return -fwdlw + fwd - 1; 1183} 1184 1185// http://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday 1186function dayOfYearFromWeeks(year, week, weekday, dow, doy) { 1187 var localWeekday = (7 + weekday - dow) % 7, 1188 weekOffset = firstWeekOffset(year, dow, doy), 1189 dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset, 1190 resYear, resDayOfYear; 1191 1192 if (dayOfYear <= 0) { 1193 resYear = year - 1; 1194 resDayOfYear = daysInYear(resYear) + dayOfYear; 1195 } else if (dayOfYear > daysInYear(year)) { 1196 resYear = year + 1; 1197 resDayOfYear = dayOfYear - daysInYear(year); 1198 } else { 1199 resYear = year; 1200 resDayOfYear = dayOfYear; 1201 } 1202 1203 return { 1204 year: resYear, 1205 dayOfYear: resDayOfYear 1206 }; 1207} 1208 1209function weekOfYear(mom, dow, doy) { 1210 var weekOffset = firstWeekOffset(mom.year(), dow, doy), 1211 week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1, 1212 resWeek, resYear; 1213 1214 if (week < 1) { 1215 resYear = mom.year() - 1; 1216 resWeek = week + weeksInYear(resYear, dow, doy); 1217 } else if (week > weeksInYear(mom.year(), dow, doy)) { 1218 resWeek = week - weeksInYear(mom.year(), dow, doy); 1219 resYear = mom.year() + 1; 1220 } else { 1221 resYear = mom.year(); 1222 resWeek = week; 1223 } 1224 1225 return { 1226 week: resWeek, 1227 year: resYear 1228 }; 1229} 1230 1231function weeksInYear(year, dow, doy) { 1232 var weekOffset = firstWeekOffset(year, dow, doy), 1233 weekOffsetNext = firstWeekOffset(year + 1, dow, doy); 1234 return (daysInYear(year) - weekOffset + weekOffsetNext) / 7; 1235} 1236 1237// FORMATTING 1238 1239addFormatToken('w', ['ww', 2], 'wo', 'week'); 1240addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); 1241 1242// ALIASES 1243 1244addUnitAlias('week', 'w'); 1245addUnitAlias('isoWeek', 'W'); 1246 1247// PRIORITIES 1248 1249addUnitPriority('week', 5); 1250addUnitPriority('isoWeek', 5); 1251 1252// PARSING 1253 1254addRegexToken('w', match1to2); 1255addRegexToken('ww', match1to2, match2); 1256addRegexToken('W', match1to2); 1257addRegexToken('WW', match1to2, match2); 1258 1259addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) { 1260 week[token.substr(0, 1)] = toInt(input); 1261}); 1262 1263// HELPERS 1264 1265// LOCALES 1266 1267function localeWeek (mom) { 1268 return weekOfYear(mom, this._week.dow, this._week.doy).week; 1269} 1270 1271var defaultLocaleWeek = { 1272 dow : 0, // Sunday is the first day of the week. 1273 doy : 6 // The week that contains Jan 1st is the first week of the year. 1274}; 1275 1276function localeFirstDayOfWeek () { 1277 return this._week.dow; 1278} 1279 1280function localeFirstDayOfYear () { 1281 return this._week.doy; 1282} 1283 1284// MOMENTS 1285 1286function getSetWeek (input) { 1287 var week = this.localeData().week(this); 1288 return input == null ? week : this.add((input - week) * 7, 'd'); 1289} 1290 1291function getSetISOWeek (input) { 1292 var week = weekOfYear(this, 1, 4).week; 1293 return input == null ? week : this.add((input - week) * 7, 'd'); 1294} 1295 1296// FORMATTING 1297 1298addFormatToken('d', 0, 'do', 'day'); 1299 1300addFormatToken('dd', 0, 0, function (format) { 1301 return this.localeData().weekdaysMin(this, format); 1302}); 1303 1304addFormatToken('ddd', 0, 0, function (format) { 1305 return this.localeData().weekdaysShort(this, format); 1306}); 1307 1308addFormatToken('dddd', 0, 0, function (format) { 1309 return this.localeData().weekdays(this, format); 1310}); 1311 1312addFormatToken('e', 0, 0, 'weekday'); 1313addFormatToken('E', 0, 0, 'isoWeekday'); 1314 1315// ALIASES 1316 1317addUnitAlias('day', 'd'); 1318addUnitAlias('weekday', 'e'); 1319addUnitAlias('isoWeekday', 'E'); 1320 1321// PRIORITY 1322addUnitPriority('day', 11); 1323addUnitPriority('weekday', 11); 1324addUnitPriority('isoWeekday', 11); 1325 1326// PARSING 1327 1328addRegexToken('d', match1to2); 1329addRegexToken('e', match1to2); 1330addRegexToken('E', match1to2); 1331addRegexToken('dd', function (isStrict, locale) { 1332 return locale.weekdaysMinRegex(isStrict); 1333}); 1334addRegexToken('ddd', function (isStrict, locale) { 1335 return locale.weekdaysShortRegex(isStrict); 1336}); 1337addRegexToken('dddd', function (isStrict, locale) { 1338 return locale.weekdaysRegex(isStrict); 1339}); 1340 1341addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) { 1342 var weekday = config._locale.weekdaysParse(input, token, config._strict); 1343 // if we didn't get a weekday name, mark the date as invalid 1344 if (weekday != null) { 1345 week.d = weekday; 1346 } else { 1347 getParsingFlags(config).invalidWeekday = input; 1348 } 1349}); 1350 1351addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) { 1352 week[token] = toInt(input); 1353}); 1354 1355// HELPERS 1356 1357function parseWeekday(input, locale) { 1358 if (typeof input !== 'string') { 1359 return input; 1360 } 1361 1362 if (!isNaN(input)) { 1363 return parseInt(input, 10); 1364 } 1365 1366 input = locale.weekdaysParse(input); 1367 if (typeof input === 'number') { 1368 return input; 1369 } 1370 1371 return null; 1372} 1373 1374function parseIsoWeekday(input, locale) { 1375 if (typeof input === 'string') { 1376 return locale.weekdaysParse(input) % 7 || 7; 1377 } 1378 return isNaN(input) ? null : input; 1379} 1380 1381// LOCALES 1382 1383var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'); 1384function localeWeekdays (m, format) { 1385 if (!m) { 1386 return isArray(this._weekdays) ? this._weekdays : 1387 this._weekdays['standalone']; 1388 } 1389 return isArray(this._weekdays) ? this._weekdays[m.day()] : 1390 this._weekdays[this._weekdays.isFormat.test(format) ? 'format' : 'standalone'][m.day()]; 1391} 1392 1393var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'); 1394function localeWeekdaysShort (m) { 1395 return (m) ? this._weekdaysShort[m.day()] : this._weekdaysShort; 1396} 1397 1398var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'); 1399function localeWeekdaysMin (m) { 1400 return (m) ? this._weekdaysMin[m.day()] : this._weekdaysMin; 1401} 1402 1403function handleStrictParse$1(weekdayName, format, strict) { 1404 var i, ii, mom, llc = weekdayName.toLocaleLowerCase(); 1405 if (!this._weekdaysParse) { 1406 this._weekdaysParse = []; 1407 this._shortWeekdaysParse = []; 1408 this._minWeekdaysParse = []; 1409 1410 for (i = 0; i < 7; ++i) { 1411 mom = createUTC([2000, 1]).day(i); 1412 this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase(); 1413 this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase(); 1414 this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase(); 1415 } 1416 } 1417 1418 if (strict) { 1419 if (format === 'dddd') { 1420 ii = indexOf.call(this._weekdaysParse, llc); 1421 return ii !== -1 ? ii : null; 1422 } else if (format === 'ddd') { 1423 ii = indexOf.call(this._shortWeekdaysParse, llc); 1424 return ii !== -1 ? ii : null; 1425 } else { 1426 ii = indexOf.call(this._minWeekdaysParse, llc); 1427 return ii !== -1 ? ii : null; 1428 } 1429 } else { 1430 if (format === 'dddd') { 1431 ii = indexOf.call(this._weekdaysParse, llc); 1432 if (ii !== -1) { 1433 return ii; 1434 } 1435 ii = indexOf.call(this._shortWeekdaysParse, llc); 1436 if (ii !== -1) { 1437 return ii; 1438 } 1439 ii = indexOf.call(this._minWeekdaysParse, llc); 1440 return ii !== -1 ? ii : null; 1441 } else if (format === 'ddd') { 1442 ii = indexOf.call(this._shortWeekdaysParse, llc); 1443 if (ii !== -1) { 1444 return ii; 1445 } 1446 ii = indexOf.call(this._weekdaysParse, llc); 1447 if (ii !== -1) { 1448 return ii; 1449 } 1450 ii = indexOf.call(this._minWeekdaysParse, llc); 1451 return ii !== -1 ? ii : null; 1452 } else { 1453 ii = indexOf.call(this._minWeekdaysParse, llc); 1454 if (ii !== -1) { 1455 return ii; 1456 } 1457 ii = indexOf.call(this._weekdaysParse, llc); 1458 if (ii !== -1) { 1459 return ii; 1460 } 1461 ii = indexOf.call(this._shortWeekdaysParse, llc); 1462 return ii !== -1 ? ii : null; 1463 } 1464 } 1465} 1466 1467function localeWeekdaysParse (weekdayName, format, strict) { 1468 var i, mom, regex; 1469 1470 if (this._weekdaysParseExact) { 1471 return handleStrictParse$1.call(this, weekdayName, format, strict); 1472 } 1473 1474 if (!this._weekdaysParse) { 1475 this._weekdaysParse = []; 1476 this._minWeekdaysParse = []; 1477 this._shortWeekdaysParse = []; 1478 this._fullWeekdaysParse = []; 1479 } 1480 1481 for (i = 0; i < 7; i++) { 1482 // make the regex if we don't have it already 1483 1484 mom = createUTC([2000, 1]).day(i); 1485 if (strict && !this._fullWeekdaysParse[i]) { 1486 this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\.?') + '$', 'i'); 1487 this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\.?') + '$', 'i'); 1488 this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\.?') + '$', 'i'); 1489 } 1490 if (!this._weekdaysParse[i]) { 1491 regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, ''); 1492 this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i'); 1493 } 1494 // test the regex 1495 if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) { 1496 return i; 1497 } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) { 1498 return i; 1499 } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) { 1500 return i; 1501 } else if (!strict && this._weekdaysParse[i].test(weekdayName)) { 1502 return i; 1503 } 1504 } 1505} 1506 1507// MOMENTS 1508 1509function getSetDayOfWeek (input) { 1510 if (!this.isValid()) { 1511 return input != null ? this : NaN; 1512 } 1513 var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); 1514 if (input != null) { 1515 input = parseWeekday(input, this.localeData()); 1516 return this.add(input - day, 'd'); 1517 } else { 1518 return day; 1519 } 1520} 1521 1522function getSetLocaleDayOfWeek (input) { 1523 if (!this.isValid()) { 1524 return input != null ? this : NaN; 1525 } 1526 var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; 1527 return input == null ? weekday : this.add(input - weekday, 'd'); 1528} 1529 1530function getSetISODayOfWeek (input) { 1531 if (!this.isValid()) { 1532 return input != null ? this : NaN; 1533 } 1534 1535 // behaves the same as moment#day except 1536 // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) 1537 // as a setter, sunday should belong to the previous week. 1538 1539 if (input != null) { 1540 var weekday = parseIsoWeekday(input, this.localeData()); 1541 return this.day(this.day() % 7 ? weekday : weekday - 7); 1542 } else { 1543 return this.day() || 7; 1544 } 1545} 1546 1547var defaultWeekdaysRegex = matchWord; 1548function weekdaysRegex (isStrict) { 1549 if (this._weekdaysParseExact) { 1550 if (!hasOwnProp(this, '_weekdaysRegex')) { 1551 computeWeekdaysParse.call(this); 1552 } 1553 if (isStrict) { 1554 return this._weekdaysStrictRegex; 1555 } else { 1556 return this._weekdaysRegex; 1557 } 1558 } else { 1559 if (!hasOwnProp(this, '_weekdaysRegex')) { 1560 this._weekdaysRegex = defaultWeekdaysRegex; 1561 } 1562 return this._weekdaysStrictRegex && isStrict ? 1563 this._weekdaysStrictRegex : this._weekdaysRegex; 1564 } 1565} 1566 1567var defaultWeekdaysShortRegex = matchWord; 1568function weekdaysShortRegex (isStrict) { 1569 if (this._weekdaysParseExact) { 1570 if (!hasOwnProp(this, '_weekdaysRegex')) { 1571 computeWeekdaysParse.call(this); 1572 } 1573 if (isStrict) { 1574 return this._weekdaysShortStrictRegex; 1575 } else { 1576 return this._weekdaysShortRegex; 1577 } 1578 } else { 1579 if (!hasOwnProp(this, '_weekdaysShortRegex')) { 1580 this._weekdaysShortRegex = defaultWeekdaysShortRegex; 1581 } 1582 return this._weekdaysShortStrictRegex && isStrict ? 1583 this._weekdaysShortStrictRegex : this._weekdaysShortRegex; 1584 } 1585} 1586 1587var defaultWeekdaysMinRegex = matchWord; 1588function weekdaysMinRegex (isStrict) { 1589 if (this._weekdaysParseExact) { 1590 if (!hasOwnProp(this, '_weekdaysRegex')) { 1591 computeWeekdaysParse.call(this); 1592 } 1593 if (isStrict) { 1594 return this._weekdaysMinStrictRegex; 1595 } else { 1596 return this._weekdaysMinRegex; 1597 } 1598 } else { 1599 if (!hasOwnProp(this, '_weekdaysMinRegex')) { 1600 this._weekdaysMinRegex = defaultWeekdaysMinRegex; 1601 } 1602 return this._weekdaysMinStrictRegex && isStrict ? 1603 this._weekdaysMinStrictRegex : this._weekdaysMinRegex; 1604 } 1605} 1606 1607 1608function computeWeekdaysParse () { 1609 function cmpLenRev(a, b) { 1610 return b.length - a.length; 1611 } 1612 1613 var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [], 1614 i, mom, minp, shortp, longp; 1615 for (i = 0; i < 7; i++) { 1616 // make the regex if we don't have it already 1617 mom = createUTC([2000, 1]).day(i); 1618 minp = this.weekdaysMin(mom, ''); 1619 shortp = this.weekdaysShort(mom, ''); 1620 longp = this.weekdays(mom, ''); 1621 minPieces.push(minp); 1622 shortPieces.push(shortp); 1623 longPieces.push(longp); 1624 mixedPieces.push(minp); 1625 mixedPieces.push(shortp); 1626 mixedPieces.push(longp); 1627 } 1628 // Sorting makes sure if one weekday (or abbr) is a prefix of another it 1629 // will match the longer piece. 1630 minPieces.sort(cmpLenRev); 1631 shortPieces.sort(cmpLenRev); 1632 longPieces.sort(cmpLenRev); 1633 mixedPieces.sort(cmpLenRev); 1634 for (i = 0; i < 7; i++) { 1635 shortPieces[i] = regexEscape(shortPieces[i]); 1636 longPieces[i] = regexEscape(longPieces[i]); 1637 mixedPieces[i] = regexEscape(mixedPieces[i]); 1638 } 1639 1640 this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); 1641 this._weekdaysShortRegex = this._weekdaysRegex; 1642 this._weekdaysMinRegex = this._weekdaysRegex; 1643 1644 this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i'); 1645 this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i'); 1646 this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i'); 1647} 1648 1649// FORMATTING 1650 1651function hFormat() { 1652 return this.hours() % 12 || 12; 1653} 1654 1655function kFormat() { 1656 return this.hours() || 24; 1657} 1658 1659addFormatToken('H', ['HH', 2], 0, 'hour'); 1660addFormatToken('h', ['hh', 2], 0, hFormat); 1661addFormatToken('k', ['kk', 2], 0, kFormat); 1662 1663addFormatToken('hmm', 0, 0, function () { 1664 return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2); 1665}); 1666 1667addFormatToken('hmmss', 0, 0, function () { 1668 return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) + 1669 zeroFill(this.seconds(), 2); 1670}); 1671 1672addFormatToken('Hmm', 0, 0, function () { 1673 return '' + this.hours() + zeroFill(this.minutes(), 2); 1674}); 1675 1676addFormatToken('Hmmss', 0, 0, function () { 1677 return '' + this.hours() + zeroFill(this.minutes(), 2) + 1678 zeroFill(this.seconds(), 2); 1679}); 1680 1681function meridiem (token, lowercase) { 1682 addFormatToken(token, 0, 0, function () { 1683 return this.localeData().meridiem(this.hours(), this.minutes(), lowercase); 1684 }); 1685} 1686 1687meridiem('a', true); 1688meridiem('A', false); 1689 1690// ALIASES 1691 1692addUnitAlias('hour', 'h'); 1693 1694// PRIORITY 1695addUnitPriority('hour', 13); 1696 1697// PARSING 1698 1699function matchMeridiem (isStrict, locale) { 1700 return locale._meridiemParse; 1701} 1702 1703addRegexToken('a', matchMeridiem); 1704addRegexToken('A', matchMeridiem); 1705addRegexToken('H', match1to2); 1706addRegexToken('h', match1to2); 1707addRegexToken('k', match1to2); 1708addRegexToken('HH', match1to2, match2); 1709addRegexToken('hh', match1to2, match2); 1710addRegexToken('kk', match1to2, match2); 1711
vendor: 18,300 bytes, lines 1712-2282
1712addRegexToken('hmm', match3to4); 1713addRegexToken('hmmss', match5to6); 1714addRegexToken('Hmm', match3to4); 1715addRegexToken('Hmmss', match5to6); 1716 1717addParseToken(['H', 'HH'], HOUR); 1718addParseToken(['k', 'kk'], function (input, array, config) { 1719 var kInput = toInt(input); 1720 array[HOUR] = kInput === 24 ? 0 : kInput; 1721}); 1722addParseToken(['a', 'A'], function (input, array, config) { 1723 config._isPm = config._locale.isPM(input); 1724 config._meridiem = input; 1725}); 1726addParseToken(['h', 'hh'], function (input, array, config) { 1727 array[HOUR] = toInt(input); 1728 getParsingFlags(config).bigHour = true; 1729}); 1730addParseToken('hmm', function (input, array, config) { 1731 var pos = input.length - 2; 1732 array[HOUR] = toInt(input.substr(0, pos)); 1733 array[MINUTE] = toInt(input.substr(pos)); 1734 getParsingFlags(config).bigHour = true; 1735}); 1736addParseToken('hmmss', function (input, array, config) { 1737 var pos1 = input.length - 4; 1738 var pos2 = input.length - 2; 1739 array[HOUR] = toInt(input.substr(0, pos1)); 1740 array[MINUTE] = toInt(input.substr(pos1, 2)); 1741 array[SECOND] = toInt(input.substr(pos2)); 1742 getParsingFlags(config).bigHour = true; 1743}); 1744addParseToken('Hmm', function (input, array, config) { 1745 var pos = input.length - 2; 1746 array[HOUR] = toInt(input.substr(0, pos)); 1747 array[MINUTE] = toInt(input.substr(pos)); 1748}); 1749addParseToken('Hmmss', function (input, array, config) { 1750 var pos1 = input.length - 4; 1751 var pos2 = input.length - 2; 1752 array[HOUR] = toInt(input.substr(0, pos1)); 1753 array[MINUTE] = toInt(input.substr(pos1, 2)); 1754 array[SECOND] = toInt(input.substr(pos2)); 1755}); 1756 1757// LOCALES 1758 1759function localeIsPM (input) { 1760 // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays 1761 // Using charAt should be more compatible. 1762 return ((input + '').toLowerCase().charAt(0) === 'p'); 1763} 1764 1765var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i; 1766function localeMeridiem (hours, minutes, isLower) { 1767 if (hours > 11) { 1768 return isLower ? 'pm' : 'PM'; 1769 } else { 1770 return isLower ? 'am' : 'AM'; 1771 } 1772} 1773 1774 1775// MOMENTS 1776 1777// Setting the hour should keep the time, because the user explicitly 1778// specified which hour he wants. So trying to maintain the same hour (in 1779// a new timezone) makes sense. Adding/subtracting hours does not follow 1780// this rule. 1781var getSetHour = makeGetSet('Hours', true); 1782 1783// months 1784// week 1785// weekdays 1786// meridiem 1787var baseConfig = { 1788 calendar: defaultCalendar, 1789 longDateFormat: defaultLongDateFormat, 1790 invalidDate: defaultInvalidDate, 1791 ordinal: defaultOrdinal, 1792 dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse, 1793 relativeTime: defaultRelativeTime, 1794 1795 months: defaultLocaleMonths, 1796 monthsShort: defaultLocaleMonthsShort, 1797 1798 week: defaultLocaleWeek, 1799 1800 weekdays: defaultLocaleWeekdays, 1801 weekdaysMin: defaultLocaleWeekdaysMin, 1802 weekdaysShort: defaultLocaleWeekdaysShort, 1803 1804 meridiemParse: defaultLocaleMeridiemParse 1805}; 1806 1807// internal storage for locale config files 1808var locales = {}; 1809var localeFamilies = {}; 1810var globalLocale; 1811 1812function normalizeLocale(key) { 1813 return key ? key.toLowerCase().replace('_', '-') : key; 1814} 1815 1816// pick the locale from the array 1817// try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each 1818// substring from most specific to least, but move to the next array item if it's a more specific variant than the current root 1819function chooseLocale(names) { 1820 var i = 0, j, next, locale, split; 1821 1822 while (i < names.length) { 1823 split = normalizeLocale(names[i]).split('-'); 1824 j = split.length; 1825 next = normalizeLocale(names[i + 1]); 1826 next = next ? next.split('-') : null; 1827 while (j > 0) { 1828 locale = loadLocale(split.slice(0, j).join('-')); 1829 if (locale) { 1830 return locale; 1831 } 1832 if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) { 1833 //the next array item is better than a shallower substring of this one 1834 break; 1835 } 1836 j--; 1837 } 1838 i++; 1839 } 1840 return null; 1841} 1842 1843function loadLocale(name) { 1844 var oldLocale = null; 1845 // TODO: Find a better way to register and load all the locales in Node 1846 if (!locales[name] && (typeof module !== 'undefined') && 1847 module && module.exports) { 1848 try { 1849 oldLocale = globalLocale._abbr; 1850 var aliasedRequire = require; 1851 aliasedRequire('./locale/' + name); 1852 getSetGlobalLocale(oldLocale); 1853 } catch (e) {} 1854 } 1855 return locales[name]; 1856} 1857 1858// This function will load locale and then set the global locale. If 1859// no arguments are passed in, it will simply return the current global 1860// locale key. 1861function getSetGlobalLocale (key, values) { 1862 var data; 1863 if (key) { 1864 if (isUndefined(values)) { 1865 data = getLocale(key); 1866 } 1867 else { 1868 data = defineLocale(key, values); 1869 } 1870 1871 if (data) { 1872 // moment.duration._locale = moment._locale = data; 1873 globalLocale = data; 1874 } 1875 } 1876 1877 return globalLocale._abbr; 1878} 1879 1880function defineLocale (name, config) { 1881 if (config !== null) { 1882 var parentConfig = baseConfig; 1883 config.abbr = name; 1884 if (locales[name] != null) { 1885 deprecateSimple('defineLocaleOverride', 1886 'use moment.updateLocale(localeName, config) to change ' + 1887 'an existing locale. moment.defineLocale(localeName, ' + 1888 'config) should only be used for creating a new locale ' + 1889 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'); 1890 parentConfig = locales[name]._config; 1891 } else if (config.parentLocale != null) { 1892 if (locales[config.parentLocale] != null) { 1893 parentConfig = locales[config.parentLocale]._config; 1894 } else { 1895 if (!localeFamilies[config.parentLocale]) { 1896 localeFamilies[config.parentLocale] = []; 1897 } 1898 localeFamilies[config.parentLocale].push({ 1899 name: name, 1900 config: config 1901 }); 1902 return null; 1903 } 1904 } 1905 locales[name] = new Locale(mergeConfigs(parentConfig, config)); 1906 1907 if (localeFamilies[name]) { 1908 localeFamilies[name].forEach(function (x) { 1909 defineLocale(x.name, x.config); 1910 }); 1911 } 1912 1913 // backwards compat for now: also set the locale 1914 // make sure we set the locale AFTER all child locales have been 1915 // created, so we won't end up with the child locale set. 1916 getSetGlobalLocale(name); 1917 1918 1919 return locales[name]; 1920 } else { 1921 // useful for testing 1922 delete locales[name]; 1923 return null; 1924 } 1925} 1926 1927function updateLocale(name, config) { 1928 if (config != null) { 1929 var locale, tmpLocale, parentConfig = baseConfig; 1930 // MERGE 1931 tmpLocale = loadLocale(name); 1932 if (tmpLocale != null) { 1933 parentConfig = tmpLocale._config; 1934 } 1935 config = mergeConfigs(parentConfig, config); 1936 locale = new Locale(config); 1937 locale.parentLocale = locales[name]; 1938 locales[name] = locale; 1939 1940 // backwards compat for now: also set the locale 1941 getSetGlobalLocale(name); 1942 } else { 1943 // pass null for config to unupdate, useful for tests 1944 if (locales[name] != null) { 1945 if (locales[name].parentLocale != null) { 1946 locales[name] = locales[name].parentLocale; 1947 } else if (locales[name] != null) { 1948 delete locales[name]; 1949 } 1950 } 1951 } 1952 return locales[name]; 1953} 1954 1955// returns locale data 1956function getLocale (key) { 1957 var locale; 1958 1959 if (key && key._locale && key._locale._abbr) { 1960 key = key._locale._abbr; 1961 } 1962 1963 if (!key) { 1964 return globalLocale; 1965 } 1966 1967 if (!isArray(key)) { 1968 //short-circuit everything else 1969 locale = loadLocale(key); 1970 if (locale) { 1971 return locale; 1972 } 1973 key = [key]; 1974 } 1975 1976 return chooseLocale(key); 1977} 1978 1979function listLocales() { 1980 return keys(locales); 1981} 1982 1983function checkOverflow (m) { 1984 var overflow; 1985 var a = m._a; 1986 1987 if (a && getParsingFlags(m).overflow === -2) { 1988 overflow = 1989 a[MONTH] < 0 || a[MONTH] > 11 ? MONTH : 1990 a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE : 1991 a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR : 1992 a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE : 1993 a[SECOND] < 0 || a[SECOND] > 59 ? SECOND : 1994 a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND : 1995 -1; 1996 1997 if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) { 1998 overflow = DATE; 1999 } 2000 if (getParsingFlags(m)._overflowWeeks && overflow === -1) { 2001 overflow = WEEK; 2002 } 2003 if (getParsingFlags(m)._overflowWeekday && overflow === -1) { 2004 overflow = WEEKDAY; 2005 } 2006 2007 getParsingFlags(m).overflow = overflow; 2008 } 2009 2010 return m; 2011} 2012 2013// Pick the first defined of two or three arguments. 2014function defaults(a, b, c) { 2015 if (a != null) { 2016 return a; 2017 } 2018 if (b != null) { 2019 return b; 2020 } 2021 return c; 2022} 2023 2024function currentDateArray(config) { 2025 // hooks is actually the exported moment object 2026 var nowValue = new Date(hooks.now()); 2027 if (config._useUTC) { 2028 return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()]; 2029 } 2030 return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()]; 2031} 2032 2033// convert an array to a date. 2034// the array should mirror the parameters below 2035// note: all values past the year are optional and will default to the lowest possible value. 2036// [year, month, day , hour, minute, second, millisecond] 2037function configFromArray (config) { 2038 var i, date, input = [], currentDate, yearToUse; 2039 2040 if (config._d) { 2041 return; 2042 } 2043 2044 currentDate = currentDateArray(config); 2045 2046 //compute day of the year from weeks and weekdays 2047 if (config._w && config._a[DATE] == null && config._a[MONTH] == null) { 2048 dayOfYearFromWeekInfo(config); 2049 } 2050 2051 //if the day of the year is set, figure out what it is 2052 if (config._dayOfYear != null) { 2053 yearToUse = defaults(config._a[YEAR], currentDate[YEAR]); 2054 2055 if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) { 2056 getParsingFlags(config)._overflowDayOfYear = true; 2057 } 2058 2059 date = createUTCDate(yearToUse, 0, config._dayOfYear); 2060 config._a[MONTH] = date.getUTCMonth(); 2061 config._a[DATE] = date.getUTCDate(); 2062 } 2063 2064 // Default to current date. 2065 // * if no year, month, day of month are given, default to today 2066 // * if day of month is given, default month and year 2067 // * if month is given, default only year 2068 // * if year is given, don't default anything 2069 for (i = 0; i < 3 && config._a[i] == null; ++i) { 2070 config._a[i] = input[i] = currentDate[i]; 2071 } 2072 2073 // Zero out whatever was not defaulted, including time 2074 for (; i < 7; i++) { 2075 config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i]; 2076 } 2077 2078 // Check for 24:00:00.000 2079 if (config._a[HOUR] === 24 && 2080 config._a[MINUTE] === 0 && 2081 config._a[SECOND] === 0 && 2082 config._a[MILLISECOND] === 0) { 2083 config._nextDay = true; 2084 config._a[HOUR] = 0; 2085 } 2086 2087 config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input); 2088 // Apply timezone offset from input. The actual utcOffset can be changed 2089 // with parseZone. 2090 if (config._tzm != null) { 2091 config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); 2092 } 2093 2094 if (config._nextDay) { 2095 config._a[HOUR] = 24; 2096 } 2097 2098 // check for mismatching day of week 2099 if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== config._d.getDay()) { 2100 getParsingFlags(config).weekdayMismatch = true; 2101 } 2102} 2103 2104function dayOfYearFromWeekInfo(config) { 2105 var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow; 2106 2107 w = config._w; 2108 if (w.GG != null || w.W != null || w.E != null) { 2109 dow = 1; 2110 doy = 4; 2111 2112 // TODO: We need to take the current isoWeekYear, but that depends on 2113 // how we interpret now (local, utc, fixed offset). So create 2114 // a now version of current config (take local/utc/offset flags, and 2115 // create now). 2116 weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year); 2117 week = defaults(w.W, 1); 2118 weekday = defaults(w.E, 1); 2119 if (weekday < 1 || weekday > 7) { 2120 weekdayOverflow = true; 2121 } 2122 } else { 2123 dow = config._locale._week.dow; 2124 doy = config._locale._week.doy; 2125 2126 var curWeek = weekOfYear(createLocal(), dow, doy); 2127 2128 weekYear = defaults(w.gg, config._a[YEAR], curWeek.year); 2129 2130 // Default to current week. 2131 week = defaults(w.w, curWeek.week); 2132 2133 if (w.d != null) { 2134 // weekday -- low day numbers are considered next week 2135 weekday = w.d; 2136 if (weekday < 0 || weekday > 6) { 2137 weekdayOverflow = true; 2138 } 2139 } else if (w.e != null) { 2140 // local weekday -- counting starts from begining of week 2141 weekday = w.e + dow; 2142 if (w.e < 0 || w.e > 6) { 2143 weekdayOverflow = true; 2144 } 2145 } else { 2146 // default to begining of week 2147 weekday = dow; 2148 } 2149 } 2150 if (week < 1 || week > weeksInYear(weekYear, dow, doy)) { 2151 getParsingFlags(config)._overflowWeeks = true; 2152 } else if (weekdayOverflow != null) { 2153 getParsingFlags(config)._overflowWeekday = true; 2154 } else { 2155 temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy); 2156 config._a[YEAR] = temp.year; 2157 config._dayOfYear = temp.dayOfYear; 2158 } 2159} 2160 2161// iso 8601 regex 2162// 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00) 2163var extendedIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/; 2164var basicIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/; 2165 2166var tzRegex = /Z|[+-]\d\d(?::?\d\d)?/; 2167 2168var isoDates = [ 2169 ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/], 2170 ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/], 2171 ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/], 2172 ['GGGG-[W]WW', /\d{4}-W\d\d/, false], 2173 ['YYYY-DDD', /\d{4}-\d{3}/], 2174 ['YYYY-MM', /\d{4}-\d\d/, false], 2175 ['YYYYYYMMDD', /[+-]\d{10}/], 2176 ['YYYYMMDD', /\d{8}/], 2177 // YYYYMM is NOT allowed by the standard 2178 ['GGGG[W]WWE', /\d{4}W\d{3}/], 2179 ['GGGG[W]WW', /\d{4}W\d{2}/, false], 2180 ['YYYYDDD', /\d{7}/] 2181]; 2182 2183// iso time formats and regexes 2184var isoTimes = [ 2185 ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/], 2186 ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/], 2187 ['HH:mm:ss', /\d\d:\d\d:\d\d/], 2188 ['HH:mm', /\d\d:\d\d/], 2189 ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/], 2190 ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/], 2191 ['HHmmss', /\d\d\d\d\d\d/], 2192 ['HHmm', /\d\d\d\d/], 2193 ['HH', /\d\d/] 2194]; 2195 2196var aspNetJsonRegex = /^\/?Date\((\-?\d+)/i; 2197 2198// date from iso format 2199function configFromISO(config) { 2200 var i, l, 2201 string = config._i, 2202 match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string), 2203 allowTime, dateFormat, timeFormat, tzFormat; 2204 2205 if (match) { 2206 getParsingFlags(config).iso = true; 2207 2208 for (i = 0, l = isoDates.length; i < l; i++) { 2209 if (isoDates[i][1].exec(match[1])) { 2210 dateFormat = isoDates[i][0]; 2211 allowTime = isoDates[i][2] !== false; 2212 break; 2213 } 2214 } 2215 if (dateFormat == null) { 2216 config._isValid = false; 2217 return; 2218 } 2219 if (match[3]) { 2220 for (i = 0, l = isoTimes.length; i < l; i++) { 2221 if (isoTimes[i][1].exec(match[3])) { 2222 // match[2] should be 'T' or space 2223 timeFormat = (match[2] || ' ') + isoTimes[i][0]; 2224 break; 2225 } 2226 } 2227 if (timeFormat == null) { 2228 config._isValid = false; 2229 return; 2230 } 2231 } 2232 if (!allowTime && timeFormat != null) { 2233 config._isValid = false; 2234 return; 2235 } 2236 if (match[4]) { 2237 if (tzRegex.exec(match[4])) { 2238 tzFormat = 'Z'; 2239 } else { 2240 config._isValid = false; 2241 return; 2242 } 2243 } 2244 config._f = dateFormat + (timeFormat || '') + (tzFormat || ''); 2245 configFromStringAndFormat(config); 2246 } else { 2247 config._isValid = false; 2248 } 2249} 2250 2251// RFC 2822 regex: For details see http://tools.ietf.org/html/rfc2822#section-3.3 2252var rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/; 2253 2254function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) { 2255 var result = [ 2256 untruncateYear(yearStr), 2257 defaultLocaleMonthsShort.indexOf(monthStr), 2258 parseInt(dayStr, 10), 2259 parseInt(hourStr, 10), 2260 parseInt(minuteStr, 10) 2261 ]; 2262 2263 if (secondStr) { 2264 result.push(parseInt(secondStr, 10)); 2265 } 2266 2267 return result; 2268} 2269 2270function untruncateYear(yearStr) { 2271 var year = parseInt(yearStr, 10); 2272 if (year <= 49) { 2273 return 2000 + year; 2274 } else if (year <= 999) { 2275 return 1900 + year; 2276 } 2277 return year; 2278} 2279 2280function preprocessRFC2822(s) { 2281 // Remove comments and folding whitespace and replace multiple-spaces with a single space 2282 return s.replace(/\([^)]*\)|[\n\t]/g, ' ').replace(/(\s\s+)/g, ' ').trim(
vendor: 6,917 bytes, lines 2282-2511
2282); 2283} 2284 2285function checkWeekday(weekdayStr, parsedInput, config) { 2286 if (weekdayStr) { 2287 // TODO: Replace the vanilla JS Date object with an indepentent day-of-week check. 2288 var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr), 2289 weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay(); 2290 if (weekdayProvided !== weekdayActual) { 2291 getParsingFlags(config).weekdayMismatch = true; 2292 config._isValid = false; 2293 return false; 2294 } 2295 } 2296 return true; 2297} 2298 2299var obsOffsets = { 2300 UT: 0, 2301 GMT: 0, 2302 EDT: -4 * 60, 2303 EST: -5 * 60, 2304 CDT: -5 * 60, 2305 CST: -6 * 60, 2306 MDT: -6 * 60, 2307 MST: -7 * 60, 2308 PDT: -7 * 60, 2309 PST: -8 * 60 2310}; 2311 2312function calculateOffset(obsOffset, militaryOffset, numOffset) { 2313 if (obsOffset) { 2314 return obsOffsets[obsOffset]; 2315 } else if (militaryOffset) { 2316 // the only allowed military tz is Z 2317 return 0; 2318 } else { 2319 var hm = parseInt(numOffset, 10); 2320 var m = hm % 100, h = (hm - m) / 100; 2321 return h * 60 + m; 2322 } 2323} 2324 2325// date and time from ref 2822 format 2326function configFromRFC2822(config) { 2327 var match = rfc2822.exec(preprocessRFC2822(config._i)); 2328 if (match) { 2329 var parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]); 2330 if (!checkWeekday(match[1], parsedArray, config)) { 2331 return; 2332 } 2333 2334 config._a = parsedArray; 2335 config._tzm = calculateOffset(match[8], match[9], match[10]); 2336 2337 config._d = createUTCDate.apply(null, config._a); 2338 config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); 2339 2340 getParsingFlags(config).rfc2822 = true; 2341 } else { 2342 config._isValid = false; 2343 } 2344} 2345 2346// date from iso format or fallback 2347function configFromString(config) { 2348 var matched = aspNetJsonRegex.exec(config._i); 2349 2350 if (matched !== null) { 2351 config._d = new Date(+matched[1]); 2352 return; 2353 } 2354 2355 configFromISO(config); 2356 if (config._isValid === false) { 2357 delete config._isValid; 2358 } else { 2359 return; 2360 } 2361 2362 configFromRFC2822(config); 2363 if (config._isValid === false) { 2364 delete config._isValid; 2365 } else { 2366 return; 2367 } 2368 2369 // Final attempt, use Input Fallback 2370 hooks.createFromInputFallback(config); 2371} 2372 2373hooks.createFromInputFallback = deprecate( 2374 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' + 2375 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' + 2376 'discouraged and will be removed in an upcoming major release. Please refer to ' + 2377 'http://momentjs.com/guides/#/warnings/js-date/ for more info.', 2378 function (config) { 2379 config._d = new Date(config._i + (config._useUTC ? ' UTC' : '')); 2380 } 2381); 2382 2383// constant that refers to the ISO standard 2384hooks.ISO_8601 = function () {}; 2385 2386// constant that refers to the RFC 2822 form 2387hooks.RFC_2822 = function () {}; 2388 2389// date from string and format string 2390function configFromStringAndFormat(config) { 2391 // TODO: Move this to another part of the creation flow to prevent circular deps 2392 if (config._f === hooks.ISO_8601) { 2393 configFromISO(config); 2394 return; 2395 } 2396 if (config._f === hooks.RFC_2822) { 2397 configFromRFC2822(config); 2398 return; 2399 } 2400 config._a = []; 2401 getParsingFlags(config).empty = true; 2402 2403 // This array is used to make a Date, either with `new Date` or `Date.UTC` 2404 var string = '' + config._i, 2405 i, parsedInput, tokens, token, skipped, 2406 stringLength = string.length, 2407 totalParsedInputLength = 0; 2408 2409 tokens = expandFormat(config._f, config._locale).match(formattingTokens) || []; 2410 2411 for (i = 0; i < tokens.length; i++) { 2412 token = tokens[i]; 2413 parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0]; 2414 // console.log('token', token, 'parsedInput', parsedInput, 2415 // 'regex', getParseRegexForToken(token, config)); 2416 if (parsedInput) { 2417 skipped = string.substr(0, string.indexOf(parsedInput)); 2418 if (skipped.length > 0) { 2419 getParsingFlags(config).unusedInput.push(skipped); 2420 } 2421 string = string.slice(string.indexOf(parsedInput) + parsedInput.length); 2422 totalParsedInputLength += parsedInput.length; 2423 } 2424 // don't parse if it's not a known token 2425 if (formatTokenFunctions[token]) { 2426 if (parsedInput) { 2427 getParsingFlags(config).empty = false; 2428 } 2429 else { 2430 getParsingFlags(config).unusedTokens.push(token); 2431 } 2432 addTimeToArrayFromToken(token, parsedInput, config); 2433 } 2434 else if (config._strict && !parsedInput) { 2435 getParsingFlags(config).unusedTokens.push(token); 2436 } 2437 } 2438 2439 // add remaining unparsed input length to the string 2440 getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength; 2441 if (string.length > 0) { 2442 getParsingFlags(config).unusedInput.push(string); 2443 } 2444 2445 // clear _12h flag if hour is <= 12 2446 if (config._a[HOUR] <= 12 && 2447 getParsingFlags(config).bigHour === true && 2448 config._a[HOUR] > 0) { 2449 getParsingFlags(config).bigHour = undefined; 2450 } 2451 2452 getParsingFlags(config).parsedDateParts = config._a.slice(0); 2453 getParsingFlags(config).meridiem = config._meridiem; 2454 // handle meridiem 2455 config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem); 2456 2457 configFromArray(config); 2458 checkOverflow(config); 2459} 2460 2461 2462function meridiemFixWrap (locale, hour, meridiem) { 2463 var isPm; 2464 2465 if (meridiem == null) { 2466 // nothing to do 2467 return hour; 2468 } 2469 if (locale.meridiemHour != null) { 2470 return locale.meridiemHour(hour, meridiem); 2471 } else if (locale.isPM != null) { 2472 // Fallback 2473 isPm = locale.isPM(meridiem); 2474 if (isPm && hour < 12) { 2475 hour += 12; 2476 } 2477 if (!isPm && hour === 12) { 2478 hour = 0; 2479 } 2480 return hour; 2481 } else { 2482 // this is not supposed to happen 2483 return hour; 2484 } 2485} 2486 2487// date from string and array of format strings 2488function configFromStringAndArray(config) { 2489 var tempConfig, 2490 bestMoment, 2491 2492 scoreToBeat, 2493 i, 2494 currentScore; 2495 2496 if (config._f.length === 0) { 2497 getParsingFlags(config).invalidFormat = true; 2498 config._d = new Date(NaN); 2499 return; 2500 } 2501 2502 for (i = 0; i < config._f.length; i++) { 2503 currentScore = 0; 2504 tempConfig = copyConfig({}, config); 2505 if (config._useUTC != null) { 2506 tempConfig._useUTC = config._useUTC; 2507 } 2508 tempConfig._f = config._f[i]; 2509 configFromStringAndFormat(tempConfig); 2510 2511 if (!isValid
vendor: 9,911 bytes, lines 2511-2867
2511(tempConfig)) { 2512 continue; 2513 } 2514 2515 // if there is any input that was not parsed add a penalty for that format 2516 currentScore += getParsingFlags(tempConfig).charsLeftOver; 2517 2518 //or tokens 2519 currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10; 2520 2521 getParsingFlags(tempConfig).score = currentScore; 2522 2523 if (scoreToBeat == null || currentScore < scoreToBeat) { 2524 scoreToBeat = currentScore; 2525 bestMoment = tempConfig; 2526 } 2527 } 2528 2529 extend(config, bestMoment || tempConfig); 2530} 2531 2532function configFromObject(config) { 2533 if (config._d) { 2534 return; 2535 } 2536 2537 var i = normalizeObjectUnits(config._i); 2538 config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) { 2539 return obj && parseInt(obj, 10); 2540 }); 2541 2542 configFromArray(config); 2543} 2544 2545function createFromConfig (config) { 2546 var res = new Moment(checkOverflow(prepareConfig(config))); 2547 if (res._nextDay) { 2548 // Adding is smart enough around DST 2549 res.add(1, 'd'); 2550 res._nextDay = undefined; 2551 } 2552 2553 return res; 2554} 2555 2556function prepareConfig (config) { 2557 var input = config._i, 2558 format = config._f; 2559 2560 config._locale = config._locale || getLocale(config._l); 2561 2562 if (input === null || (format === undefined && input === '')) { 2563 return createInvalid({nullInput: true}); 2564 } 2565 2566 if (typeof input === 'string') { 2567 config._i = input = config._locale.preparse(input); 2568 } 2569 2570 if (isMoment(input)) { 2571 return new Moment(checkOverflow(input)); 2572 } else if (isDate(input)) { 2573 config._d = input; 2574 } else if (isArray(format)) { 2575 configFromStringAndArray(config); 2576 } else if (format) { 2577 configFromStringAndFormat(config); 2578 } else { 2579 configFromInput(config); 2580 } 2581 2582 if (!isValid(config)) { 2583 config._d = null; 2584 } 2585 2586 return config; 2587} 2588 2589function configFromInput(config) { 2590 var input = config._i; 2591 if (isUndefined(input)) { 2592 config._d = new Date(hooks.now()); 2593 } else if (isDate(input)) { 2594 config._d = new Date(input.valueOf()); 2595 } else if (typeof input === 'string') { 2596 configFromString(config); 2597 } else if (isArray(input)) { 2598 config._a = map(input.slice(0), function (obj) { 2599 return parseInt(obj, 10); 2600 }); 2601 configFromArray(config); 2602 } else if (isObject(input)) { 2603 configFromObject(config); 2604 } else if (isNumber(input)) { 2605 // from milliseconds 2606 config._d = new Date(input); 2607 } else { 2608 hooks.createFromInputFallback(config); 2609 } 2610} 2611 2612function createLocalOrUTC (input, format, locale, strict, isUTC) { 2613 var c = {}; 2614 2615 if (locale === true || locale === false) { 2616 strict = locale; 2617 locale = undefined; 2618 } 2619 2620 if ((isObject(input) && isObjectEmpty(input)) || 2621 (isArray(input) && input.length === 0)) { 2622 input = undefined; 2623 } 2624 // object construction must be done this way. 2625 // http://github.com/moment/moment/issues/1423 2626 c._isAMomentObject = true; 2627 c._useUTC = c._isUTC = isUTC; 2628 c._l = locale; 2629 c._i = input; 2630 c._f = format; 2631 c._strict = strict; 2632 2633 return createFromConfig(c); 2634} 2635 2636function createLocal (input, format, locale, strict) { 2637 return createLocalOrUTC(input, format, locale, strict, false); 2638} 2639 2640var prototypeMin = deprecate( 2641 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', 2642 function () { 2643 var other = createLocal.apply(null, arguments); 2644 if (this.isValid() && other.isValid()) { 2645 return other < this ? this : other; 2646 } else { 2647 return createInvalid(); 2648 } 2649 } 2650); 2651 2652var prototypeMax = deprecate( 2653 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', 2654 function () { 2655 var other = createLocal.apply(null, arguments); 2656 if (this.isValid() && other.isValid()) { 2657 return other > this ? this : other; 2658 } else { 2659 return createInvalid(); 2660 } 2661 } 2662); 2663 2664// Pick a moment m from moments so that m[fn](other) is true for all 2665// other. This relies on the function fn to be transitive. 2666// 2667// moments should either be an array of moment objects or an array, whose 2668// first element is an array of moment objects. 2669function pickBy(fn, moments) { 2670 var res, i; 2671 if (moments.length === 1 && isArray(moments[0])) { 2672 moments = moments[0]; 2673 } 2674 if (!moments.length) { 2675 return createLocal(); 2676 } 2677 res = moments[0]; 2678 for (i = 1; i < moments.length; ++i) { 2679 if (!moments[i].isValid() || moments[i][fn](res)) { 2680 res = moments[i]; 2681 } 2682 } 2683 return res; 2684} 2685 2686// TODO: Use [].sort instead? 2687function min () { 2688 var args = [].slice.call(arguments, 0); 2689 2690 return pickBy('isBefore', args); 2691} 2692 2693function max () { 2694 var args = [].slice.call(arguments, 0); 2695 2696 return pickBy('isAfter', args); 2697} 2698 2699var now = function () { 2700 return Date.now ? Date.now() : +(new Date()); 2701}; 2702 2703var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond']; 2704 2705function isDurationValid(m) { 2706 for (var key in m) { 2707 if (!(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) { 2708 return false; 2709 } 2710 } 2711 2712 var unitHasDecimal = false; 2713 for (var i = 0; i < ordering.length; ++i) { 2714 if (m[ordering[i]]) { 2715 if (unitHasDecimal) { 2716 return false; // only allow non-integers for smallest unit 2717 } 2718 if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) { 2719 unitHasDecimal = true; 2720 } 2721 } 2722 } 2723 2724 return true; 2725} 2726 2727function isValid$1() { 2728 return this._isValid; 2729} 2730 2731function createInvalid$1() { 2732 return createDuration(NaN); 2733} 2734 2735function Duration (duration) { 2736 var normalizedInput = normalizeObjectUnits(duration), 2737 years = normalizedInput.year || 0, 2738 quarters = normalizedInput.quarter || 0, 2739 months = normalizedInput.month || 0, 2740 weeks = normalizedInput.week || 0, 2741 days = normalizedInput.day || 0, 2742 hours = normalizedInput.hour || 0, 2743 minutes = normalizedInput.minute || 0, 2744 seconds = normalizedInput.second || 0, 2745 milliseconds = normalizedInput.millisecond || 0; 2746 2747 this._isValid = isDurationValid(normalizedInput); 2748 2749 // representation for dateAddRemove 2750 this._milliseconds = +milliseconds + 2751 seconds * 1e3 + // 1000 2752 minutes * 6e4 + // 1000 * 60 2753 hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors http://github.com/moment/moment/issues/2978 2754 // Because of dateAddRemove treats 24 hours as different from a 2755 // day when working around DST, we need to store them separately 2756 this._days = +days + 2757 weeks * 7; 2758 // It is impossible to translate months into days without knowing 2759 // which months you are are talking about, so we have to store 2760 // it separately. 2761 this._months = +months + 2762 quarters * 3 + 2763 years * 12; 2764 2765 this._data = {}; 2766 2767 this._locale = getLocale(); 2768 2769 this._bubble(); 2770} 2771 2772function isDuration (obj) { 2773 return obj instanceof Duration; 2774} 2775 2776function absRound (number) { 2777 if (number < 0) { 2778 return Math.round(-1 * number) * -1; 2779 } else { 2780 return Math.round(number); 2781 } 2782} 2783 2784// FORMATTING 2785 2786function offset (token, separator) { 2787 addFormatToken(token, 0, 0, function () { 2788 var offset = this.utcOffset(); 2789 var sign = '+'; 2790 if (offset < 0) { 2791 offset = -offset; 2792 sign = '-'; 2793 } 2794 return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2); 2795 }); 2796} 2797 2798offset('Z', ':'); 2799offset('ZZ', ''); 2800 2801// PARSING 2802 2803addRegexToken('Z', matchShortOffset); 2804addRegexToken('ZZ', matchShortOffset); 2805addParseToken(['Z', 'ZZ'], function (input, array, config) { 2806 config._useUTC = true; 2807 config._tzm = offsetFromString(matchShortOffset, input); 2808}); 2809 2810// HELPERS 2811 2812// timezone chunker 2813// '+10:00' > ['10', '00'] 2814// '-1530' > ['-15', '30'] 2815var chunkOffset = /([\+\-]|\d\d)/gi; 2816 2817function offsetFromString(matcher, string) { 2818 var matches = (string || '').match(matcher); 2819 2820 if (matches === null) { 2821 return null; 2822 } 2823 2824 var chunk = matches[matches.length - 1] || []; 2825 var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0]; 2826 var minutes = +(parts[1] * 60) + toInt(parts[2]); 2827 2828 return minutes === 0 ? 2829 0 : 2830 parts[0] === '+' ? minutes : -minutes; 2831} 2832 2833// Return a moment from input, that is local/utc/zone equivalent to model. 2834function cloneWithOffset(input, model) { 2835 var res, diff; 2836 if (model._isUTC) { 2837 res = model.clone(); 2838 diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf(); 2839 // Use low-level api, because this fn is low-level api. 2840 res._d.setTime(res._d.valueOf() + diff); 2841 hooks.updateOffset(res, false); 2842 return res; 2843 } else { 2844 return createLocal(input).local(); 2845 } 2846} 2847 2848function getDateOffset (m) { 2849 // On Firefox.24 Date#getTimezoneOffset returns a floating point. 2850 // http://github.com/moment/moment/pull/1871 2851 return -Math.round(m._d.getTimezoneOffset() / 15) * 15; 2852} 2853 2854// HOOKS 2855 2856// This function will be called whenever a moment is mutated. 2857// It is intended to keep the offset in sync with the timezone. 2858hooks.updateOffset = function () {}; 2859 2860// MOMENTS 2861 2862// keepLocalTime = true means only change the timezone, without 2863// affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]--> 2864// 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset 2865// +0200, so we adjust the time as needed, to be valid. 2866// 2867// Keeping the time actually adds/subtracts (one hour)
vendor: 19,215 bytes, lines 2868-3514
2868// from the actual represented time. That is why we call updateOffset 2869// a second time. In case it wants us to change the offset again 2870// _changeInProgress == true case, then we have to adjust, because 2871// there is no such time in the given timezone. 2872function getSetOffset (input, keepLocalTime, keepMinutes) { 2873 var offset = this._offset || 0, 2874 localAdjust; 2875 if (!this.isValid()) { 2876 return input != null ? this : NaN; 2877 } 2878 if (input != null) { 2879 if (typeof input === 'string') { 2880 input = offsetFromString(matchShortOffset, input); 2881 if (input === null) { 2882 return this; 2883 } 2884 } else if (Math.abs(input) < 16 && !keepMinutes) { 2885 input = input * 60; 2886 } 2887 if (!this._isUTC && keepLocalTime) { 2888 localAdjust = getDateOffset(this); 2889 } 2890 this._offset = input; 2891 this._isUTC = true; 2892 if (localAdjust != null) { 2893 this.add(localAdjust, 'm'); 2894 } 2895 if (offset !== input) { 2896 if (!keepLocalTime || this._changeInProgress) { 2897 addSubtract(this, createDuration(input - offset, 'm'), 1, false); 2898 } else if (!this._changeInProgress) { 2899 this._changeInProgress = true; 2900 hooks.updateOffset(this, true); 2901 this._changeInProgress = null; 2902 } 2903 } 2904 return this; 2905 } else { 2906 return this._isUTC ? offset : getDateOffset(this); 2907 } 2908} 2909 2910function getSetZone (input, keepLocalTime) { 2911 if (input != null) { 2912 if (typeof input !== 'string') { 2913 input = -input; 2914 } 2915 2916 this.utcOffset(input, keepLocalTime); 2917 2918 return this; 2919 } else { 2920 return -this.utcOffset(); 2921 } 2922} 2923 2924function setOffsetToUTC (keepLocalTime) { 2925 return this.utcOffset(0, keepLocalTime); 2926} 2927 2928function setOffsetToLocal (keepLocalTime) { 2929 if (this._isUTC) { 2930 this.utcOffset(0, keepLocalTime); 2931 this._isUTC = false; 2932 2933 if (keepLocalTime) { 2934 this.subtract(getDateOffset(this), 'm'); 2935 } 2936 } 2937 return this; 2938} 2939 2940function setOffsetToParsedOffset () { 2941 if (this._tzm != null) { 2942 this.utcOffset(this._tzm, false, true); 2943 } else if (typeof this._i === 'string') { 2944 var tZone = offsetFromString(matchOffset, this._i); 2945 if (tZone != null) { 2946 this.utcOffset(tZone); 2947 } 2948 else { 2949 this.utcOffset(0, true); 2950 } 2951 } 2952 return this; 2953} 2954 2955function hasAlignedHourOffset (input) { 2956 if (!this.isValid()) { 2957 return false; 2958 } 2959 input = input ? createLocal(input).utcOffset() : 0; 2960 2961 return (this.utcOffset() - input) % 60 === 0; 2962} 2963 2964function isDaylightSavingTime () { 2965 return ( 2966 this.utcOffset() > this.clone().month(0).utcOffset() || 2967 this.utcOffset() > this.clone().month(5).utcOffset() 2968 ); 2969} 2970 2971function isDaylightSavingTimeShifted () { 2972 if (!isUndefined(this._isDSTShifted)) { 2973 return this._isDSTShifted; 2974 } 2975 2976 var c = {}; 2977 2978 copyConfig(c, this); 2979 c = prepareConfig(c); 2980 2981 if (c._a) { 2982 var other = c._isUTC ? createUTC(c._a) : createLocal(c._a); 2983 this._isDSTShifted = this.isValid() && 2984 compareArrays(c._a, other.toArray()) > 0; 2985 } else { 2986 this._isDSTShifted = false; 2987 } 2988 2989 return this._isDSTShifted; 2990} 2991 2992function isLocal () { 2993 return this.isValid() ? !this._isUTC : false; 2994} 2995 2996function isUtcOffset () { 2997 return this.isValid() ? this._isUTC : false; 2998} 2999 3000function isUtc () { 3001 return this.isValid() ? this._isUTC && this._offset === 0 : false; 3002} 3003 3004// ASP.NET json date format regex 3005var aspNetRegex = /^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/; 3006 3007// from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html 3008// somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere 3009// and further modified to allow for strings containing both week and day 3010var isoRegex = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/; 3011 3012function createDuration (input, key) { 3013 var duration = input, 3014 // matching against regexp is expensive, do it on demand 3015 match = null, 3016 sign, 3017 ret, 3018 diffRes; 3019 3020 if (isDuration(input)) { 3021 duration = { 3022 ms : input._milliseconds, 3023 d : input._days, 3024 M : input._months 3025 }; 3026 } else if (isNumber(input)) { 3027 duration = {}; 3028 if (key) { 3029 duration[key] = input; 3030 } else { 3031 duration.milliseconds = input; 3032 } 3033 } else if (!!(match = aspNetRegex.exec(input))) { 3034 sign = (match[1] === '-') ? -1 : 1; 3035 duration = { 3036 y : 0, 3037 d : toInt(match[DATE]) * sign, 3038 h : toInt(match[HOUR]) * sign, 3039 m : toInt(match[MINUTE]) * sign, 3040 s : toInt(match[SECOND]) * sign, 3041 ms : toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match 3042 }; 3043 } else if (!!(match = isoRegex.exec(input))) { 3044 sign = (match[1] === '-') ? -1 : (match[1] === '+') ? 1 : 1; 3045 duration = { 3046 y : parseIso(match[2], sign), 3047 M : parseIso(match[3], sign), 3048 w : parseIso(match[4], sign), 3049 d : parseIso(match[5], sign), 3050 h : parseIso(match[6], sign), 3051 m : parseIso(match[7], sign), 3052 s : parseIso(match[8], sign) 3053 }; 3054 } else if (duration == null) {// checks for null or undefined 3055 duration = {}; 3056 } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) { 3057 diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to)); 3058 3059 duration = {}; 3060 duration.ms = diffRes.milliseconds; 3061 duration.M = diffRes.months; 3062 } 3063 3064 ret = new Duration(duration); 3065 3066 if (isDuration(input) && hasOwnProp(input, '_locale')) { 3067 ret._locale = input._locale; 3068 } 3069 3070 return ret; 3071} 3072 3073createDuration.fn = Duration.prototype; 3074createDuration.invalid = createInvalid$1; 3075 3076function parseIso (inp, sign) { 3077 // We'd normally use ~~inp for this, but unfortunately it also 3078 // converts floats to ints. 3079 // inp may be undefined, so careful calling replace on it. 3080 var res = inp && parseFloat(inp.replace(',', '.')); 3081 // apply sign while we're at it 3082 return (isNaN(res) ? 0 : res) * sign; 3083} 3084 3085function positiveMomentsDifference(base, other) { 3086 var res = {milliseconds: 0, months: 0}; 3087 3088 res.months = other.month() - base.month() + 3089 (other.year() - base.year()) * 12; 3090 if (base.clone().add(res.months, 'M').isAfter(other)) { 3091 --res.months; 3092 } 3093 3094 res.milliseconds = +other - +(base.clone().add(res.months, 'M')); 3095 3096 return res; 3097} 3098 3099function momentsDifference(base, other) { 3100 var res; 3101 if (!(base.isValid() && other.isValid())) { 3102 return {milliseconds: 0, months: 0}; 3103 } 3104 3105 other = cloneWithOffset(other, base); 3106 if (base.isBefore(other)) { 3107 res = positiveMomentsDifference(base, other); 3108 } else { 3109 res = positiveMomentsDifference(other, base); 3110 res.milliseconds = -res.milliseconds; 3111 res.months = -res.months; 3112 } 3113 3114 return res; 3115} 3116 3117// TODO: remove 'name' arg after deprecation is removed 3118function createAdder(direction, name) { 3119 return function (val, period) { 3120 var dur, tmp; 3121 //invert the arguments, but complain about it 3122 if (period !== null && !isNaN(+period)) { 3123 deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' + 3124 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'); 3125 tmp = val; val = period; period = tmp; 3126 } 3127 3128 val = typeof val === 'string' ? +val : val; 3129 dur = createDuration(val, period); 3130 addSubtract(this, dur, direction); 3131 return this; 3132 }; 3133} 3134 3135function addSubtract (mom, duration, isAdding, updateOffset) { 3136 var milliseconds = duration._milliseconds, 3137 days = absRound(duration._days), 3138 months = absRound(duration._months); 3139 3140 if (!mom.isValid()) { 3141 // No op 3142 return; 3143 } 3144 3145 updateOffset = updateOffset == null ? true : updateOffset; 3146 3147 if (months) { 3148 setMonth(mom, get(mom, 'Month') + months * isAdding); 3149 } 3150 if (days) { 3151 set$1(mom, 'Date', get(mom, 'Date') + days * isAdding); 3152 } 3153 if (milliseconds) { 3154 mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding); 3155 } 3156 if (updateOffset) { 3157 hooks.updateOffset(mom, days || months); 3158 } 3159} 3160 3161var add = createAdder(1, 'add'); 3162var subtract = createAdder(-1, 'subtract'); 3163 3164function getCalendarFormat(myMoment, now) { 3165 var diff = myMoment.diff(now, 'days', true); 3166 return diff < -6 ? 'sameElse' : 3167 diff < -1 ? 'lastWeek' : 3168 diff < 0 ? 'lastDay' : 3169 diff < 1 ? 'sameDay' : 3170 diff < 2 ? 'nextDay' : 3171 diff < 7 ? 'nextWeek' : 'sameElse'; 3172} 3173 3174function calendar$1 (time, formats) { 3175 // We want to compare the start of today, vs this. 3176 // Getting start-of-today depends on whether we're local/utc/offset or not. 3177 var now = time || createLocal(), 3178 sod = cloneWithOffset(now, this).startOf('day'), 3179 format = hooks.calendarFormat(this, sod) || 'sameElse'; 3180 3181 var output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]); 3182 3183 return this.format(output || this.localeData().calendar(format, this, createLocal(now))); 3184} 3185 3186function clone () { 3187 return new Moment(this); 3188} 3189 3190function isAfter (input, units) { 3191 var localInput = isMoment(input) ? input : createLocal(input); 3192 if (!(this.isValid() && localInput.isValid())) { 3193 return false; 3194 } 3195 units = normalizeUnits(!isUndefined(units) ? units : 'millisecond'); 3196 if (units === 'millisecond') { 3197 return this.valueOf() > localInput.valueOf(); 3198 } else { 3199 return localInput.valueOf() < this.clone().startOf(units).valueOf(); 3200 } 3201} 3202 3203function isBefore (input, units) { 3204 var localInput = isMoment(input) ? input : createLocal(input); 3205 if (!(this.isValid() && localInput.isValid())) { 3206 return false; 3207 } 3208 units = normalizeUnits(!isUndefined(units) ? units : 'millisecond'); 3209 if (units === 'millisecond') { 3210 return this.valueOf() < localInput.valueOf(); 3211 } else { 3212 return this.clone().endOf(units).valueOf() < localInput.valueOf(); 3213 } 3214} 3215 3216function isBetween (from, to, units, inclusivity) { 3217 inclusivity = inclusivity || '()'; 3218 return (inclusivity[0] === '(' ? this.isAfter(from, units) : !this.isBefore(from, units)) && 3219 (inclusivity[1] === ')' ? this.isBefore(to, units) : !this.isAfter(to, units)); 3220} 3221 3222function isSame (input, units) { 3223 var localInput = isMoment(input) ? input : createLocal(input), 3224 inputMs; 3225 if (!(this.isValid() && localInput.isValid())) { 3226 return false; 3227 } 3228 units = normalizeUnits(units || 'millisecond'); 3229 if (units === 'millisecond') { 3230 return this.valueOf() === localInput.valueOf(); 3231 } else { 3232 inputMs = localInput.valueOf(); 3233 return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf(); 3234 } 3235} 3236 3237function isSameOrAfter (input, units) { 3238 return this.isSame(input, units) || this.isAfter(input,units); 3239} 3240 3241function isSameOrBefore (input, units) { 3242 return this.isSame(input, units) || this.isBefore(input,units); 3243} 3244 3245function diff (input, units, asFloat) { 3246 var that, 3247 zoneDelta, 3248 delta, output; 3249 3250 if (!this.isValid()) { 3251 return NaN; 3252 } 3253 3254 that = cloneWithOffset(input, this); 3255 3256 if (!that.isValid()) { 3257 return NaN; 3258 } 3259 3260 zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4; 3261 3262 units = normalizeUnits(units); 3263 3264 switch (units) { 3265 case 'year': output = monthDiff(this, that) / 12; break; 3266 case 'month': output = monthDiff(this, that); break; 3267 case 'quarter': output = monthDiff(this, that) / 3; break; 3268 case 'second': output = (this - that) / 1e3; break; // 1000 3269 case 'minute': output = (this - that) / 6e4; break; // 1000 * 60 3270 case 'hour': output = (this - that) / 36e5; break; // 1000 * 60 * 60 3271 case 'day': output = (this - that - zoneDelta) / 864e5; break; // 1000 * 60 * 60 * 24, negate dst 3272 case 'week': output = (this - that - zoneDelta) / 6048e5; break; // 1000 * 60 * 60 * 24 * 7, negate dst 3273 default: output = this - that; 3274 } 3275 3276 return asFloat ? output : absFloor(output); 3277} 3278 3279function monthDiff (a, b) { 3280 // difference in months 3281 var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()), 3282 // b is in (anchor - 1 month, anchor + 1 month) 3283 anchor = a.clone().add(wholeMonthDiff, 'months'), 3284 anchor2, adjust; 3285 3286 if (b - anchor < 0) { 3287 anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); 3288 // linear across the month 3289 adjust = (b - anchor) / (anchor - anchor2); 3290 } else { 3291 anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); 3292 // linear across the month 3293 adjust = (b - anchor) / (anchor2 - anchor); 3294 } 3295 3296 //check for negative zero, return zero if negative zero 3297 return -(wholeMonthDiff + adjust) || 0; 3298} 3299 3300hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ'; 3301hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]'; 3302 3303function toString () { 3304 return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ'); 3305} 3306 3307function toISOString() { 3308 if (!this.isValid()) { 3309 return null; 3310 } 3311 var m = this.clone().utc(); 3312 if (m.year() < 0 || m.year() > 9999) { 3313 return formatMoment(m, 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'); 3314 } 3315 if (isFunction(Date.prototype.toISOString)) { 3316 // native implementation is ~50x faster, use it when we can 3317 return this.toDate().toISOString(); 3318 } 3319 return formatMoment(m, 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]'); 3320} 3321 3322/** 3323 * Return a human readable representation of a moment that can 3324 * also be evaluated to get a new moment which is the same 3325 * 3326 * @link http://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects 3327 */ 3328function inspect () { 3329 if (!this.isValid()) { 3330 return 'moment.invalid(/* ' + this._i + ' */)'; 3331 } 3332 var func = 'moment'; 3333 var zone = ''; 3334 if (!this.isLocal()) { 3335 func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone'; 3336 zone = 'Z'; 3337 } 3338 var prefix = '[' + func + '("]'; 3339 var year = (0 <= this.year() && this.year() <= 9999) ? 'YYYY' : 'YYYYYY'; 3340 var datetime = '-MM-DD[T]HH:mm:ss.SSS'; 3341 var suffix = zone + '[")]'; 3342 3343 return this.format(prefix + year + datetime + suffix); 3344} 3345 3346function format (inputString) { 3347 if (!inputString) { 3348 inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat; 3349 } 3350 var output = formatMoment(this, inputString); 3351 return this.localeData().postformat(output); 3352} 3353 3354function from (time, withoutSuffix) { 3355 if (this.isValid() && 3356 ((isMoment(time) && time.isValid()) || 3357 createLocal(time).isValid())) { 3358 return createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix); 3359 } else { 3360 return this.localeData().invalidDate(); 3361 } 3362} 3363 3364function fromNow (withoutSuffix) { 3365 return this.from(createLocal(), withoutSuffix); 3366} 3367 3368function to (time, withoutSuffix) { 3369 if (this.isValid() && 3370 ((isMoment(time) && time.isValid()) || 3371 createLocal(time).isValid())) { 3372 return createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix); 3373 } else { 3374 return this.localeData().invalidDate(); 3375 } 3376} 3377 3378function toNow (withoutSuffix) { 3379 return this.to(createLocal(), withoutSuffix); 3380} 3381 3382// If passed a locale key, it will set the locale for this 3383// instance. Otherwise, it will return the locale configuration 3384// variables for this instance. 3385function locale (key) { 3386 var newLocaleData; 3387 3388 if (key === undefined) { 3389 return this._locale._abbr; 3390 } else { 3391 newLocaleData = getLocale(key); 3392 if (newLocaleData != null) { 3393 this._locale = newLocaleData; 3394 } 3395 return this; 3396 } 3397} 3398 3399var lang = deprecate( 3400 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', 3401 function (key) { 3402 if (key === undefined) { 3403 return this.localeData(); 3404 } else { 3405 return this.locale(key); 3406 } 3407 } 3408); 3409 3410function localeData () { 3411 return this._locale; 3412} 3413 3414function startOf (units) { 3415 units = normalizeUnits(units); 3416 // the following switch intentionally omits break keywords 3417 // to utilize falling through the cases. 3418 switch (units) { 3419 case 'year': 3420 this.month(0); 3421 /* falls through */ 3422 case 'quarter': 3423 case 'month': 3424 this.date(1); 3425 /* falls through */ 3426 case 'week': 3427 case 'isoWeek': 3428 case 'day': 3429 case 'date': 3430 this.hours(0); 3431 /* falls through */ 3432 case 'hour': 3433 this.minutes(0); 3434 /* falls through */ 3435 case 'minute': 3436 this.seconds(0); 3437 /* falls through */ 3438 case 'second': 3439 this.milliseconds(0); 3440 } 3441 3442 // weeks are a special case 3443 if (units === 'week') { 3444 this.weekday(0); 3445 } 3446 if (units === 'isoWeek') { 3447 this.isoWeekday(1); 3448 } 3449 3450 // quarters are also special 3451 if (units === 'quarter') { 3452 this.month(Math.floor(this.month() / 3) * 3); 3453 } 3454 3455 return this; 3456} 3457 3458function endOf (units) { 3459 units = normalizeUnits(units); 3460 if (units === undefined || units === 'millisecond') { 3461 return this; 3462 } 3463 3464 // 'date' is an alias for 'day', so it should be considered as such. 3465 if (units === 'date') { 3466 units = 'day'; 3467 } 3468 3469 return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms'); 3470} 3471 3472function valueOf () { 3473 return this._d.valueOf() - ((this._offset || 0) * 60000); 3474} 3475 3476function unix () { 3477 return Math.floor(this.valueOf() / 1000); 3478} 3479 3480function toDate () { 3481 return new Date(this.valueOf()); 3482} 3483 3484function toArray () { 3485 var m = this; 3486 return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()]; 3487} 3488 3489function toObject () { 3490 var m = this; 3491 return { 3492 years: m.year(), 3493 months: m.month(), 3494 date: m.date(), 3495 hours: m.hours(), 3496 minutes: m.minutes(), 3497 seconds: m.seconds(), 3498 milliseconds: m.milliseconds() 3499 }; 3500} 3501 3502function toJSON () { 3503 // new Date(NaN).toJSON() === null 3504 return this.isValid() ? this.toISOString() : null; 3505} 3506 3507function isValid$2 () { 3508 return isValid(this); 3509} 3510 3511function parsingFlags () { 3512 return extend({}, getParsingFlags(this)); 3513} 3514
vendor: 11,965 bytes, lines 3515-3986
3515function invalidAt () { 3516 return getParsingFlags(this).overflow; 3517} 3518 3519function creationData() { 3520 return { 3521 input: this._i, 3522 format: this._f, 3523 locale: this._locale, 3524 isUTC: this._isUTC, 3525 strict: this._strict 3526 }; 3527} 3528 3529// FORMATTING 3530 3531addFormatToken(0, ['gg', 2], 0, function () { 3532 return this.weekYear() % 100; 3533}); 3534 3535addFormatToken(0, ['GG', 2], 0, function () { 3536 return this.isoWeekYear() % 100; 3537}); 3538 3539function addWeekYearFormatToken (token, getter) { 3540 addFormatToken(0, [token, token.length], 0, getter); 3541} 3542 3543addWeekYearFormatToken('gggg', 'weekYear'); 3544addWeekYearFormatToken('ggggg', 'weekYear'); 3545addWeekYearFormatToken('GGGG', 'isoWeekYear'); 3546addWeekYearFormatToken('GGGGG', 'isoWeekYear'); 3547 3548// ALIASES 3549 3550addUnitAlias('weekYear', 'gg'); 3551addUnitAlias('isoWeekYear', 'GG'); 3552 3553// PRIORITY 3554 3555addUnitPriority('weekYear', 1); 3556addUnitPriority('isoWeekYear', 1); 3557 3558 3559// PARSING 3560 3561addRegexToken('G', matchSigned); 3562addRegexToken('g', matchSigned); 3563addRegexToken('GG', match1to2, match2); 3564addRegexToken('gg', match1to2, match2); 3565addRegexToken('GGGG', match1to4, match4); 3566addRegexToken('gggg', match1to4, match4); 3567addRegexToken('GGGGG', match1to6, match6); 3568addRegexToken('ggggg', match1to6, match6); 3569 3570addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) { 3571 week[token.substr(0, 2)] = toInt(input); 3572}); 3573 3574addWeekParseToken(['gg', 'GG'], function (input, week, config, token) { 3575 week[token] = hooks.parseTwoDigitYear(input); 3576}); 3577 3578// MOMENTS 3579 3580function getSetWeekYear (input) { 3581 return getSetWeekYearHelper.call(this, 3582 input, 3583 this.week(), 3584 this.weekday(), 3585 this.localeData()._week.dow, 3586 this.localeData()._week.doy); 3587} 3588 3589function getSetISOWeekYear (input) { 3590 return getSetWeekYearHelper.call(this, 3591 input, this.isoWeek(), this.isoWeekday(), 1, 4); 3592} 3593 3594function getISOWeeksInYear () { 3595 return weeksInYear(this.year(), 1, 4); 3596} 3597 3598function getWeeksInYear () { 3599 var weekInfo = this.localeData()._week; 3600 return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); 3601} 3602 3603function getSetWeekYearHelper(input, week, weekday, dow, doy) { 3604 var weeksTarget; 3605 if (input == null) { 3606 return weekOfYear(this, dow, doy).year; 3607 } else { 3608 weeksTarget = weeksInYear(input, dow, doy); 3609 if (week > weeksTarget) { 3610 week = weeksTarget; 3611 } 3612 return setWeekAll.call(this, input, week, weekday, dow, doy); 3613 } 3614} 3615 3616function setWeekAll(weekYear, week, weekday, dow, doy) { 3617 var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy), 3618 date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear); 3619 3620 this.year(date.getUTCFullYear()); 3621 this.month(date.getUTCMonth()); 3622 this.date(date.getUTCDate()); 3623 return this; 3624} 3625 3626// FORMATTING 3627 3628addFormatToken('Q', 0, 'Qo', 'quarter'); 3629 3630// ALIASES 3631 3632addUnitAlias('quarter', 'Q'); 3633 3634// PRIORITY 3635 3636addUnitPriority('quarter', 7); 3637 3638// PARSING 3639 3640addRegexToken('Q', match1); 3641addParseToken('Q', function (input, array) { 3642 array[MONTH] = (toInt(input) - 1) * 3; 3643}); 3644 3645// MOMENTS 3646 3647function getSetQuarter (input) { 3648 return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3); 3649} 3650 3651// FORMATTING 3652 3653addFormatToken('D', ['DD', 2], 'Do', 'date'); 3654 3655// ALIASES 3656 3657addUnitAlias('date', 'D'); 3658 3659// PRIOROITY 3660addUnitPriority('date', 9); 3661 3662// PARSING 3663 3664addRegexToken('D', match1to2); 3665addRegexToken('DD', match1to2, match2); 3666addRegexToken('Do', function (isStrict, locale) { 3667 // TODO: Remove "ordinalParse" fallback in next major release. 3668 return isStrict ? 3669 (locale._dayOfMonthOrdinalParse || locale._ordinalParse) : 3670 locale._dayOfMonthOrdinalParseLenient; 3671}); 3672 3673addParseToken(['D', 'DD'], DATE); 3674addParseToken('Do', function (input, array) { 3675 array[DATE] = toInt(input.match(match1to2)[0], 10); 3676}); 3677 3678// MOMENTS 3679 3680var getSetDayOfMonth = makeGetSet('Date', true); 3681 3682// FORMATTING 3683 3684addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); 3685 3686// ALIASES 3687 3688addUnitAlias('dayOfYear', 'DDD'); 3689 3690// PRIORITY 3691addUnitPriority('dayOfYear', 4); 3692 3693// PARSING 3694 3695addRegexToken('DDD', match1to3); 3696addRegexToken('DDDD', match3); 3697addParseToken(['DDD', 'DDDD'], function (input, array, config) { 3698 config._dayOfYear = toInt(input); 3699}); 3700 3701// HELPERS 3702 3703// MOMENTS 3704 3705function getSetDayOfYear (input) { 3706 var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1; 3707 return input == null ? dayOfYear : this.add((input - dayOfYear), 'd'); 3708} 3709 3710// FORMATTING 3711 3712addFormatToken('m', ['mm', 2], 0, 'minute'); 3713 3714// ALIASES 3715 3716addUnitAlias('minute', 'm'); 3717 3718// PRIORITY 3719 3720addUnitPriority('minute', 14); 3721 3722// PARSING 3723 3724addRegexToken('m', match1to2); 3725addRegexToken('mm', match1to2, match2); 3726addParseToken(['m', 'mm'], MINUTE); 3727 3728// MOMENTS 3729 3730var getSetMinute = makeGetSet('Minutes', false); 3731 3732// FORMATTING 3733 3734addFormatToken('s', ['ss', 2], 0, 'second'); 3735 3736// ALIASES 3737 3738addUnitAlias('second', 's'); 3739 3740// PRIORITY 3741 3742addUnitPriority('second', 15); 3743 3744// PARSING 3745 3746addRegexToken('s', match1to2); 3747addRegexToken('ss', match1to2, match2); 3748addParseToken(['s', 'ss'], SECOND); 3749 3750// MOMENTS 3751 3752var getSetSecond = makeGetSet('Seconds', false); 3753 3754// FORMATTING 3755 3756addFormatToken('S', 0, 0, function () { 3757 return ~~(this.millisecond() / 100); 3758}); 3759 3760addFormatToken(0, ['SS', 2], 0, function () { 3761 return ~~(this.millisecond() / 10); 3762}); 3763 3764addFormatToken(0, ['SSS', 3], 0, 'millisecond'); 3765addFormatToken(0, ['SSSS', 4], 0, function () { 3766 return this.millisecond() * 10; 3767}); 3768addFormatToken(0, ['SSSSS', 5], 0, function () { 3769 return this.millisecond() * 100; 3770}); 3771addFormatToken(0, ['SSSSSS', 6], 0, function () { 3772 return this.millisecond() * 1000; 3773}); 3774addFormatToken(0, ['SSSSSSS', 7], 0, function () { 3775 return this.millisecond() * 10000; 3776}); 3777addFormatToken(0, ['SSSSSSSS', 8], 0, function () { 3778 return this.millisecond() * 100000; 3779}); 3780addFormatToken(0, ['SSSSSSSSS', 9], 0, function () { 3781 return this.millisecond() * 1000000; 3782}); 3783 3784 3785// ALIASES 3786 3787addUnitAlias('millisecond', 'ms'); 3788 3789// PRIORITY 3790 3791addUnitPriority('millisecond', 16); 3792 3793// PARSING 3794 3795addRegexToken('S', match1to3, match1); 3796addRegexToken('SS', match1to3, match2); 3797addRegexToken('SSS', match1to3, match3); 3798 3799var token; 3800for (token = 'SSSS'; token.length <= 9; token += 'S') { 3801 addRegexToken(token, matchUnsigned); 3802} 3803 3804function parseMs(input, array) { 3805 array[MILLISECOND] = toInt(('0.' + input) * 1000); 3806} 3807 3808for (token = 'S'; token.length <= 9; token += 'S') { 3809 addParseToken(token, parseMs); 3810} 3811// MOMENTS 3812 3813var getSetMillisecond = makeGetSet('Milliseconds', false); 3814 3815// FORMATTING 3816 3817addFormatToken('z', 0, 0, 'zoneAbbr'); 3818addFormatToken('zz', 0, 0, 'zoneName'); 3819 3820// MOMENTS 3821 3822function getZoneAbbr () { 3823 return this._isUTC ? 'UTC' : ''; 3824} 3825 3826function getZoneName () { 3827 return this._isUTC ? 'Coordinated Universal Time' : ''; 3828} 3829 3830var proto = Moment.prototype; 3831 3832proto.add = add; 3833proto.calendar = calendar$1; 3834proto.clone = clone; 3835proto.diff = diff; 3836proto.endOf = endOf; 3837proto.format = format; 3838proto.from = from; 3839proto.fromNow = fromNow; 3840proto.to = to; 3841proto.toNow = toNow; 3842proto.get = stringGet; 3843proto.invalidAt = invalidAt; 3844proto.isAfter = isAfter; 3845proto.isBefore = isBefore; 3846proto.isBetween = isBetween; 3847proto.isSame = isSame; 3848proto.isSameOrAfter = isSameOrAfter; 3849proto.isSameOrBefore = isSameOrBefore; 3850proto.isValid = isValid$2; 3851proto.lang = lang; 3852proto.locale = locale; 3853proto.localeData = localeData; 3854proto.max = prototypeMax; 3855proto.min = prototypeMin; 3856proto.parsingFlags = parsingFlags; 3857proto.set = stringSet; 3858proto.startOf = startOf; 3859proto.subtract = subtract; 3860proto.toArray = toArray; 3861proto.toObject = toObject; 3862proto.toDate = toDate; 3863proto.toISOString = toISOString; 3864proto.inspect = inspect; 3865proto.toJSON = toJSON; 3866proto.toString = toString; 3867proto.unix = unix; 3868proto.valueOf = valueOf; 3869proto.creationData = creationData; 3870 3871// Year 3872proto.year = getSetYear; 3873proto.isLeapYear = getIsLeapYear; 3874 3875// Week Year 3876proto.weekYear = getSetWeekYear; 3877proto.isoWeekYear = getSetISOWeekYear; 3878 3879// Quarter 3880proto.quarter = proto.quarters = getSetQuarter; 3881 3882// Month 3883proto.month = getSetMonth; 3884proto.daysInMonth = getDaysInMonth; 3885 3886// Week 3887proto.week = proto.weeks = getSetWeek; 3888proto.isoWeek = proto.isoWeeks = getSetISOWeek; 3889proto.weeksInYear = getWeeksInYear; 3890proto.isoWeeksInYear = getISOWeeksInYear; 3891 3892// Day 3893proto.date = getSetDayOfMonth; 3894proto.day = proto.days = getSetDayOfWeek; 3895proto.weekday = getSetLocaleDayOfWeek; 3896proto.isoWeekday = getSetISODayOfWeek; 3897proto.dayOfYear = getSetDayOfYear; 3898 3899// Hour 3900proto.hour = proto.hours = getSetHour; 3901 3902// Minute 3903proto.minute = proto.minutes = getSetMinute; 3904 3905// Second 3906proto.second = proto.seconds = getSetSecond; 3907 3908// Millisecond 3909proto.millisecond = proto.milliseconds = getSetMillisecond; 3910 3911// Offset 3912proto.utcOffset = getSetOffset; 3913proto.utc = setOffsetToUTC; 3914proto.local = setOffsetToLocal; 3915proto.parseZone = setOffsetToParsedOffset; 3916proto.hasAlignedHourOffset = hasAlignedHourOffset; 3917proto.isDST = isDaylightSavingTime; 3918proto.isLocal = isLocal; 3919proto.isUtcOffset = isUtcOffset; 3920proto.isUtc = isUtc; 3921proto.isUTC = isUtc; 3922 3923// Timezone 3924proto.zoneAbbr = getZoneAbbr; 3925proto.zoneName = getZoneName; 3926 3927// Deprecations 3928proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth); 3929proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth); 3930proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear); 3931proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone); 3932proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted); 3933 3934function createUnix (input) { 3935 return createLocal(input * 1000); 3936} 3937 3938function createInZone () { 3939 return createLocal.apply(null, arguments).parseZone(); 3940} 3941 3942function preParsePostFormat (string) { 3943 return string; 3944} 3945 3946var proto$1 = Locale.prototype; 3947 3948proto$1.calendar = calendar; 3949proto$1.longDateFormat = longDateFormat; 3950proto$1.invalidDate = invalidDate; 3951proto$1.ordinal = ordinal; 3952proto$1.preparse = preParsePostFormat; 3953proto$1.postformat = preParsePostFormat; 3954proto$1.relativeTime = relativeTime; 3955proto$1.pastFuture = pastFuture; 3956proto$1.set = set; 3957 3958// Month 3959proto$1.months = localeMonths; 3960proto$1.monthsShort = localeMonthsShort; 3961proto$1.monthsParse = localeMonthsParse; 3962proto$1.monthsRegex = monthsRegex; 3963proto$1.monthsShortRegex = monthsShortRegex; 3964 3965// Week 3966proto$1.week = localeWeek; 3967proto$1.firstDayOfYear = localeFirstDayOfYear; 3968proto$1.firstDayOfWeek = localeFirstDayOfWeek; 3969 3970// Day of Week 3971proto$1.weekdays = localeWeekdays; 3972proto$1.weekdaysMin = localeWeekdaysMin; 3973proto$1.weekdaysShort = localeWeekdaysShort; 3974proto$1.weekdaysParse = localeWeekdaysParse; 3975 3976proto$1.weekdaysRegex = weekdaysRegex; 3977proto$1.weekdaysShortRegex = weekdaysShortRegex; 3978proto$1.weekdaysMinRegex = weekdaysMinRegex; 3979 3980// Hours 3981proto$1.isPM = localeIsPM; 3982proto$1.meridiem = localeMeridiem; 3983 3984function get$1 (format, index, field, setter) { 3985 var locale = getLocale(); 3986 var utc = createUTC().set(setter, index);
vendor: 7,930 bytes, lines 3987-4279
3987 return locale[field](utc, format); 3988} 3989 3990function listMonthsImpl (format, index, field) { 3991 if (isNumber(format)) { 3992 index = format; 3993 format = undefined; 3994 } 3995 3996 format = format || ''; 3997 3998 if (index != null) { 3999 return get$1(format, index, field, 'month'); 4000 } 4001 4002 var i; 4003 var out = []; 4004 for (i = 0; i < 12; i++) { 4005 out[i] = get$1(format, i, field, 'month'); 4006 } 4007 return out; 4008} 4009 4010// () 4011// (5) 4012// (fmt, 5) 4013// (fmt) 4014// (true) 4015// (true, 5) 4016// (true, fmt, 5) 4017// (true, fmt) 4018function listWeekdaysImpl (localeSorted, format, index, field) { 4019 if (typeof localeSorted === 'boolean') { 4020 if (isNumber(format)) { 4021 index = format; 4022 format = undefined; 4023 } 4024 4025 format = format || ''; 4026 } else { 4027 format = localeSorted; 4028 index = format; 4029 localeSorted = false; 4030 4031 if (isNumber(format)) { 4032 index = format; 4033 format = undefined; 4034 } 4035 4036 format = format || ''; 4037 } 4038 4039 var locale = getLocale(), 4040 shift = localeSorted ? locale._week.dow : 0; 4041 4042 if (index != null) { 4043 return get$1(format, (index + shift) % 7, field, 'day'); 4044 } 4045 4046 var i; 4047 var out = []; 4048 for (i = 0; i < 7; i++) { 4049 out[i] = get$1(format, (i + shift) % 7, field, 'day'); 4050 } 4051 return out; 4052} 4053 4054function listMonths (format, index) { 4055 return listMonthsImpl(format, index, 'months'); 4056} 4057 4058function listMonthsShort (format, index) { 4059 return listMonthsImpl(format, index, 'monthsShort'); 4060} 4061 4062function listWeekdays (localeSorted, format, index) { 4063 return listWeekdaysImpl(localeSorted, format, index, 'weekdays'); 4064} 4065 4066function listWeekdaysShort (localeSorted, format, index) { 4067 return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort'); 4068} 4069 4070function listWeekdaysMin (localeSorted, format, index) { 4071 return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin'); 4072} 4073 4074getSetGlobalLocale('en', { 4075 dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, 4076 ordinal : function (number) { 4077 var b = number % 10, 4078 output = (toInt(number % 100 / 10) === 1) ? 'th' : 4079 (b === 1) ? 'st' : 4080 (b === 2) ? 'nd' : 4081 (b === 3) ? 'rd' : 'th'; 4082 return number + output; 4083 } 4084}); 4085 4086// Side effect imports 4087hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale); 4088hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale); 4089 4090var mathAbs = Math.abs; 4091 4092function abs () { 4093 var data = this._data; 4094 4095 this._milliseconds = mathAbs(this._milliseconds); 4096 this._days = mathAbs(this._days); 4097 this._months = mathAbs(this._months); 4098 4099 data.milliseconds = mathAbs(data.milliseconds); 4100 data.seconds = mathAbs(data.seconds); 4101 data.minutes = mathAbs(data.minutes); 4102 data.hours = mathAbs(data.hours); 4103 data.months = mathAbs(data.months); 4104 data.years = mathAbs(data.years); 4105 4106 return this; 4107} 4108 4109function addSubtract$1 (duration, input, value, direction) { 4110 var other = createDuration(input, value); 4111 4112 duration._milliseconds += direction * other._milliseconds; 4113 duration._days += direction * other._days; 4114 duration._months += direction * other._months; 4115 4116 return duration._bubble(); 4117} 4118 4119// supports only 2.0-style add(1, 's') or add(duration) 4120function add$1 (input, value) { 4121 return addSubtract$1(this, input, value, 1); 4122} 4123 4124// supports only 2.0-style subtract(1, 's') or subtract(duration) 4125function subtract$1 (input, value) { 4126 return addSubtract$1(this, input, value, -1); 4127} 4128 4129function absCeil (number) { 4130 if (number < 0) { 4131 return Math.floor(number); 4132 } else { 4133 return Math.ceil(number); 4134 } 4135} 4136 4137function bubble () { 4138 var milliseconds = this._milliseconds; 4139 var days = this._days; 4140 var months = this._months; 4141 var data = this._data; 4142 var seconds, minutes, hours, years, monthsFromDays; 4143 4144 // if we have a mix of positive and negative values, bubble down first 4145 // check: http://github.com/moment/moment/issues/2166 4146 if (!((milliseconds >= 0 && days >= 0 && months >= 0) || 4147 (milliseconds <= 0 && days <= 0 && months <= 0))) { 4148 milliseconds += absCeil(monthsToDays(months) + days) * 864e5; 4149 days = 0; 4150 months = 0; 4151 } 4152 4153 // The following code bubbles up values, see the tests for 4154 // examples of what that means. 4155 data.milliseconds = milliseconds % 1000; 4156 4157 seconds = absFloor(milliseconds / 1000); 4158 data.seconds = seconds % 60; 4159 4160 minutes = absFloor(seconds / 60); 4161 data.minutes = minutes % 60; 4162 4163 hours = absFloor(minutes / 60); 4164 data.hours = hours % 24; 4165 4166 days += absFloor(hours / 24); 4167 4168 // convert days to months 4169 monthsFromDays = absFloor(daysToMonths(days)); 4170 months += monthsFromDays; 4171 days -= absCeil(monthsToDays(monthsFromDays)); 4172 4173 // 12 months -> 1 year 4174 years = absFloor(months / 12); 4175 months %= 12; 4176 4177 data.days = days; 4178 data.months = months; 4179 data.years = years; 4180 4181 return this; 4182} 4183 4184function daysToMonths (days) { 4185 // 400 years have 146097 days (taking into account leap year rules) 4186 // 400 years have 12 months === 4800 4187 return days * 4800 / 146097; 4188} 4189 4190function monthsToDays (months) { 4191 // the reverse of daysToMonths 4192 return months * 146097 / 4800; 4193} 4194 4195function as (units) { 4196 if (!this.isValid()) { 4197 return NaN; 4198 } 4199 var days; 4200 var months; 4201 var milliseconds = this._milliseconds; 4202 4203 units = normalizeUnits(units); 4204 4205 if (units === 'month' || units === 'year') { 4206 days = this._days + milliseconds / 864e5; 4207 months = this._months + daysToMonths(days); 4208 return units === 'month' ? months : months / 12; 4209 } else { 4210 // handle milliseconds separately because of floating point math errors (issue #1867) 4211 days = this._days + Math.round(monthsToDays(this._months)); 4212 switch (units) { 4213 case 'week' : return days / 7 + milliseconds / 6048e5; 4214 case 'day' : return days + milliseconds / 864e5; 4215 case 'hour' : return days * 24 + milliseconds / 36e5; 4216 case 'minute' : return days * 1440 + milliseconds / 6e4; 4217 case 'second' : return days * 86400 + milliseconds / 1000; 4218 // Math.floor prevents floating point math errors here 4219 case 'millisecond': return Math.floor(days * 864e5) + milliseconds; 4220 default: throw new Error('Unknown unit ' + units); 4221 } 4222 } 4223} 4224 4225// TODO: Use this.as('ms')? 4226function valueOf$1 () { 4227 if (!this.isValid()) { 4228 return NaN; 4229 } 4230 return ( 4231 this._milliseconds + 4232 this._days * 864e5 + 4233 (this._months % 12) * 2592e6 + 4234 toInt(this._months / 12) * 31536e6 4235 ); 4236} 4237 4238function makeAs (alias) { 4239 return function () { 4240 return this.as(alias); 4241 }; 4242} 4243 4244var asMilliseconds = makeAs('ms'); 4245var asSeconds = makeAs('s'); 4246var asMinutes = makeAs('m'); 4247var asHours = makeAs('h'); 4248var asDays = makeAs('d'); 4249var asWeeks = makeAs('w'); 4250var asMonths = makeAs('M'); 4251var asYears = makeAs('y'); 4252 4253function clone$1 () { 4254 return createDuration(this); 4255} 4256 4257function get$2 (units) { 4258 units = normalizeUnits(units); 4259 return this.isValid() ? this[units + 's']() : NaN; 4260} 4261 4262function makeGetter(name) { 4263 return function () { 4264 return this.isValid() ? this._data[name] : NaN; 4265 }; 4266} 4267 4268var milliseconds = makeGetter('milliseconds'); 4269var seconds = makeGetter('seconds'); 4270var minutes = makeGetter('minutes'); 4271var hours = makeGetter('hours'); 4272var days = makeGetter('days'); 4273var months = makeGetter('months'); 4274var years = makeGetter('years'); 4275 4276function weeks () { 4277 return absFloor(this.days() / 7); 4278} 4279
vendor: 6,284 bytes, lines 4280-4476
4280var round = Math.round; 4281var thresholds = { 4282 ss: 44, // a few seconds to seconds 4283 s : 45, // seconds to minute 4284 m : 45, // minutes to hour 4285 h : 22, // hours to day 4286 d : 26, // days to month 4287 M : 11 // months to year 4288}; 4289 4290// helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize 4291function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) { 4292 return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture); 4293} 4294 4295function relativeTime$1 (posNegDuration, withoutSuffix, locale) { 4296 var duration = createDuration(posNegDuration).abs(); 4297 var seconds = round(duration.as('s')); 4298 var minutes = round(duration.as('m')); 4299 var hours = round(duration.as('h')); 4300 var days = round(duration.as('d')); 4301 var months = round(duration.as('M')); 4302 var years = round(duration.as('y')); 4303 4304 var a = seconds <= thresholds.ss && ['s', seconds] || 4305 seconds < thresholds.s && ['ss', seconds] || 4306 minutes <= 1 && ['m'] || 4307 minutes < thresholds.m && ['mm', minutes] || 4308 hours <= 1 && ['h'] || 4309 hours < thresholds.h && ['hh', hours] || 4310 days <= 1 && ['d'] || 4311 days < thresholds.d && ['dd', days] || 4312 months <= 1 && ['M'] || 4313 months < thresholds.M && ['MM', months] || 4314 years <= 1 && ['y'] || ['yy', years]; 4315 4316 a[2] = withoutSuffix; 4317 a[3] = +posNegDuration > 0; 4318 a[4] = locale; 4319 return substituteTimeAgo.apply(null, a); 4320} 4321 4322// This function allows you to set the rounding function for relative time strings 4323function getSetRelativeTimeRounding (roundingFunction) { 4324 if (roundingFunction === undefined) { 4325 return round; 4326 } 4327 if (typeof(roundingFunction) === 'function') { 4328 round = roundingFunction; 4329 return true; 4330 } 4331 return false; 4332} 4333 4334// This function allows you to set a threshold for relative time strings 4335function getSetRelativeTimeThreshold (threshold, limit) { 4336 if (thresholds[threshold] === undefined) { 4337 return false; 4338 } 4339 if (limit === undefined) { 4340 return thresholds[threshold]; 4341 } 4342 thresholds[threshold] = limit; 4343 if (threshold === 's') { 4344 thresholds.ss = limit - 1; 4345 } 4346 return true; 4347} 4348 4349function humanize (withSuffix) { 4350 if (!this.isValid()) { 4351 return this.localeData().invalidDate(); 4352 } 4353 4354 var locale = this.localeData(); 4355 var output = relativeTime$1(this, !withSuffix, locale); 4356 4357 if (withSuffix) { 4358 output = locale.pastFuture(+this, output); 4359 } 4360 4361 return locale.postformat(output); 4362} 4363 4364var abs$1 = Math.abs; 4365 4366function sign(x) { 4367 return ((x > 0) - (x < 0)) || +x; 4368} 4369 4370function toISOString$1() { 4371 // for ISO strings we do not use the normal bubbling rules: 4372 // * milliseconds bubble up until they become hours 4373 // * days do not bubble at all 4374 // * months bubble up until they become years 4375 // This is because there is no context-free conversion between hours and days 4376 // (think of clock changes) 4377 // and also not between days and months (28-31 days per month) 4378 if (!this.isValid()) { 4379 return this.localeData().invalidDate(); 4380 } 4381 4382 var seconds = abs$1(this._milliseconds) / 1000; 4383 var days = abs$1(this._days); 4384 var months = abs$1(this._months); 4385 var minutes, hours, years; 4386 4387 // 3600 seconds -> 60 minutes -> 1 hour 4388 minutes = absFloor(seconds / 60); 4389 hours = absFloor(minutes / 60); 4390 seconds %= 60; 4391 minutes %= 60; 4392 4393 // 12 months -> 1 year 4394 years = absFloor(months / 12); 4395 months %= 12; 4396 4397 4398 // inspired by http://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js 4399 var Y = years; 4400 var M = months; 4401 var D = days; 4402 var h = hours; 4403 var m = minutes; 4404 var s = seconds ? seconds.toFixed(3).replace(/\.?0+$/, '') : ''; 4405 var total = this.asSeconds(); 4406 4407 if (!total) { 4408 // this is the same as C#'s (Noda) and python (isodate)... 4409 // but not other JS (goog.date) 4410 return 'P0D'; 4411 } 4412 4413 var totalSign = total < 0 ? '-' : ''; 4414 var ymSign = sign(this._months) !== sign(total) ? '-' : ''; 4415 var daysSign = sign(this._days) !== sign(total) ? '-' : ''; 4416 var hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : ''; 4417 4418 return totalSign + 'P' + 4419 (Y ? ymSign + Y + 'Y' : '') + 4420 (M ? ymSign + M + 'M' : '') + 4421 (D ? daysSign + D + 'D' : '') + 4422 ((h || m || s) ? 'T' : '') + 4423 (h ? hmsSign + h + 'H' : '') + 4424 (m ? hmsSign + m + 'M' : '') + 4425 (s ? hmsSign + s + 'S' : ''); 4426} 4427 4428var proto$2 = Duration.prototype; 4429 4430proto$2.isValid = isValid$1; 4431proto$2.abs = abs; 4432proto$2.add = add$1; 4433proto$2.subtract = subtract$1; 4434proto$2.as = as; 4435proto$2.asMilliseconds = asMilliseconds; 4436proto$2.asSeconds = asSeconds; 4437proto$2.asMinutes = asMinutes; 4438proto$2.asHours = asHours; 4439proto$2.asDays = asDays; 4440proto$2.asWeeks = asWeeks; 4441proto$2.asMonths = asMonths; 4442proto$2.asYears = asYears; 4443proto$2.valueOf = valueOf$1; 4444proto$2._bubble = bubble; 4445proto$2.clone = clone$1; 4446proto$2.get = get$2; 4447proto$2.milliseconds = milliseconds; 4448proto$2.seconds = seconds; 4449proto$2.minutes = minutes; 4450proto$2.hours = hours; 4451proto$2.days = days; 4452proto$2.weeks = weeks; 4453proto$2.months = months; 4454proto$2.years = years; 4455proto$2.humanize = humanize; 4456proto$2.toISOString = toISOString$1; 4457proto$2.toString = toISOString$1; 4458proto$2.toJSON = toISOString$1; 4459proto$2.locale = locale; 4460proto$2.localeData = localeData; 4461 4462// Deprecations 4463proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1); 4464proto$2.lang = lang; 4465 4466// Side effect imports 4467 4468// FORMATTING 4469 4470addFormatToken('X', 0, 0, 'unix'); 4471addFormatToken('x', 0, 0, 'valueOf'); 4472 4473// PARSING 4474 4475addRegexToken('x', matchSigned); 4476addRegexToken('X', matchTimestamp);
4477addParseToken('X', function (input, array, config) { 4478 config._d = new Date(parseFloat(input, 10) * 1000); 4479}); 4480addParseToken('x', function (input, array, config) { 4481 config._d = new Date(toInt(input)); 4482}); 4483 4484// Side effect imports 4485 4486 4487hooks.version = '2.19.3'; 4488 4489setHookCallback(createLocal); 4490 4491hooks.fn = proto; 4492hooks.min = min; 4493hooks.max = max; 4494hooks.now = now; 4495hooks.utc = createUTC; 4496hooks.unix = createUnix; 4497hooks.months = listMonths; 4498hooks.isDate = isDate; 4499hooks.locale = getSetGlobalLocale; 4500hooks.invalid = createInvalid; 4501hooks.duration = createDuration; 4502hooks.isMoment = isMoment; 4503hooks.weekdays = listWeekdays; 4504hooks.parseZone = createInZone; 4505hooks.localeData = getLocale; 4506hooks.isDuration = isDuration; 4507hooks.monthsShort = listMonthsShort; 4508hooks.weekdaysMin = listWeekdaysMin; 4509hooks.defineLocale = defineLocale; 4510hooks.updateLocale = updateLocale; 4511hooks.locales = listLocales; 4512hooks.weekdaysShort = listWeekdaysShort; 4513hooks.normalizeUnits = normalizeUnits; 4514hooks.relativeTimeRounding = getSetRelativeTimeRounding; 4515hooks.relativeTimeThreshold = getSetRelativeTimeThreshold; 4516hooks.calendarFormat = getCalendarFormat; 4517hooks.prototype = proto; 4518 4519return hooks; 4520 4521}))); 4522
vendor: 37,045 bytes, lines 4523-4529
4523/*! 4524 * Bootstrap v3.3.7 (http://getbootstrap.com) 4525 * Copyright 2011-2016 Twitter, Inc. 4526 * Licensed under the MIT license 4527 */ 4528if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1||b[0]>3)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){if(a(b.target).is(this))return b.handleObj.handler.apply(this,arguments)}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.7",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a("#"===f?[]:f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.7",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c).prop(c,!0)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c).prop(c,!1))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target).closest(".btn");b.call(d,"toggle"),a(c.target).is('input[type="radio"], input[type="checkbox"]')||(c.preventDefault(),d.is("input,button")?d.trigger("focus"):d.find("input:visible,button:visible").first().trigger("focus"))}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.7",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));if(!(a>this.$items.length-1||a<0))return this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){if(!this.sliding)return this.slide("next")},c.prototype.prev=function(){if(!this.sliding)return this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.7",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger(a.Event("hidden.bs.dropdown",f)))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.7",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger(a.Event("shown.bs.dropdown",h))}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&j<i.length-1&&j++,~j||(j=0),i.eq(j).trigger("focus")}}}};var h=a.fn.dropdown;a.fn.dropdown=d,a.fn.dropdown.Constructor=g,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=h,this},a(document).on("click.bs.dropdown.data-api",c).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",f,g.prototype.toggle).on("keydown.bs.dropdown.data-api",f,g.prototype.keydown).on("keydown.bs.dropdown.data-api",".dropdown-menu",g.prototype.keydown)}(jQuery),+function(a){"use strict";function b(b,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},c.DEFAULTS,e.data(),"object"==typeof b&&b);f||e.data("bs.modal",f=new c(this,g)),"string"==typeof b?f[b](d):g.show&&f.show(d)})}var c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};c.VERSION="3.3.7",c.TRANSITION_DURATION=300,c.BACKDROP_TRANSITION_DURATION=150,c.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},c.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)},c.prototype.show=function(b){var d=this,e=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(e),this.isShown||e.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",function(){d.$element.one("mouseup.dismiss.bs.modal",function(b){a(b.target).is(d.$element)&&(d.ignoreBackdropClick=!0)})}),this.backdrop(function(){var e=a.support.transition&&d.$element.hasClass("fade");d.$element.parent().length||d.$element.appendTo(d.$body),d.$element.show().scrollTop(0),d.adjustDialog(),e&&d.$element[0].offsetWidth,d.$element.addClass("in"),d.enforceFocus();var f=a.Event("shown.bs.modal",{relatedTarget:b});e?d.$dialog.one("bsTransitionEnd",function(){d.$element.trigger("focus").trigger(f)}).emulateTransitionEnd(c.TRANSITION_DURATION):d.$element.trigger("focus").trigger(f)}))},c.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(c.TRANSITION_DURATION):this.hideModal())},c.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){document===a.target||this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.trigger("focus")},this))},c.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},c.prototype.resize=function(){this.isShown?a(window).on("resize.bs.modal",a.proxy(this.handleUpdate,this)):a(window).off("resize.bs.modal")},c.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.$body.removeClass("modal-open"),a.resetAdjustments(),a.resetScrollbar(),a.$element.trigger("hidden.bs.modal")})},c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var d=this,e=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var f=a.support.transition&&e;if(this.$backdrop=a(document.createElement("div")).addClass("modal-backdrop "+e).appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",a.proxy(function(a){return this.ignoreBackdropClick?void(this.ignoreBackdropClick=!1):void(a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide()))},this)),f&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;f?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var g=function(){d.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):g()}else b&&b()},c.prototype.handleUpdate=function(){this.adjustDialog()},c.prototype.adjustDialog=function(){var a=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth<a,this.scrollbarWidth=this.measureScrollbar()},c.prototype.setScrollbar=function(){var a=parseInt(this.$body.css("padding-right")||0,10);this.originalBodyPad=document.body.style.paddingRight||"",this.bodyIsOverflowing&&this.$body.css("padding-right",a+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css("padding-right",this.originalBodyPad)},c.prototype.measureScrollbar=function(){var a=document.createElement("div");a.className="modal-scrollbar-measure",this.$body.append(a);var b=a.offsetWidth-a.clientWidth;return this.$body[0].removeChild(a),b};var d=a.fn.modal;a.fn.modal=b,a.fn.modal.Constructor=c,a.fn.modal.noConflict=function(){return a.fn.modal=d,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(c){var d=a(this),e=d.attr("href"),f=a(d.attr("data-target")||e&&e.replace(/.*(?=#[^\s]+$)/,"")),g=f.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(e)&&e},f.data(),d.data());d.is("a")&&c.preventDefault(),f.one("show.bs.modal",function(a){a.isDefaultPrevented()||f.one("hidden.bs.modal",function(){d.is(":visible")&&d.trigger("focus")})}),b.call(f,g,this)})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.tooltip",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.hoverState=null,this.$element=null,this.inState=null,this.init("tooltip",a,b)};c.VERSION="3.3.7",c.TRANSITION_DURATION=150,c.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);if(c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),!c.isInStateTrue())return clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-m<o.top?"bottom":"right"==h&&k.right+l>o.width?"left":"left"==h&&k.left-l<o.left?"right":h,f.removeClass(n).addClass(h)}var p=this.getCalculatedOffset(h,k,l,m);this.applyPlacement(p,h);var q=function(){var a=e.hoverState;e.$element.trigger("shown.bs."+e.type),e.hoverState=null,"out"==a&&e.leave(e)};a.support.transition&&this.$tip.hasClass("fade")?f.one("bsTransitionEnd",q).emulateTransitionEnd(c.TRANSITION_DURATION):q()}},c.prototype.applyPlacement=function(b,c){var d=this.tip(),e=d[0].offsetWidth,f=d[0].offsetHeight,g=parseInt(d.css("margin-top"),10),h=parseInt(d.css("margin-left"),10);isNaN(g)&&(g=0),isNaN(h)&&(h=0),b.top+=g,b.left+=h,a.offset.setOffset(d[0],a.extend({using:function(a){d.css({top:Math.round(a.top),left:Math.round(a.left)})}},b),0),d.addClass("in");var i=d[0].offsetWidth,j=d[0].offsetHeight;"top"==c&&j!=f&&(b.top=b.top+f-j);var k=this.getViewportAdjustedDelta(c,b,i,j);k.left?b.left+=k.left:b.top+=k.top;var l=/top|bottom/.test(c),m=l?2*k.left-e+i:2*k.top-f+j,n=l?"offsetWidth":"offsetHeight";d.offset(b),this.replaceArrow(m,d[0][n],l)},c.prototype.replaceArrow=function(a,b,c){this.arrow().css(c?"left":"top",50*(1-a/b)+"%").css(c?"top":"left","")},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},c.prototype.hide=function(b){function d(){"in"!=e.hoverState&&f.detach(),e.$element&&e.$element.removeAttr("aria-describedby").trigger("hidden.bs."+e.type),b&&b()}var e=this,f=a(this.$tip),g=a.Event("hide.bs."+this.type);if(this.$element.trigger(g),!g.isDefaultPrevented())return f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one("bsTransitionEnd",d).emulateTransitionEnd(c.TRANSITION_DURATION):d(),this.hoverState=null,this},c.prototype.fixTitle=function(){var a=this.$element;(a.attr("title")||"string"!=typeof a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},c.prototype.hasContent=function(){return this.getTitle()},c.prototype.getPosition=function(b){b=b||this.$element;var c=b[0],d="BODY"==c.tagName,e=c.getBoundingClientRect();null==e.width&&(e=a.extend({},e,{width:e.right-e.left,height:e.bottom-e.top}));var f=window.SVGElement&&c instanceof window.SVGElement,g=d?{top:0,left:0}:f?null:b.offset(),h={scroll:d?document.documentElement.scrollTop||document.body.scrollTop:b.scrollTop()},i=d?{width:a(window).width(),height:a(window).height()}:null;return a.extend({},e,h,i,g)},c.prototype.getCalculatedOffset=function(a,b,c,d){return"bottom"==a?{top:b.top+b.height,left:b.left+b.width/2-c/2}:"top"==a?{top:b.top-d,left:b.left+b.width/2-c/2}:"left"==a?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},c.prototype.getViewportAdjustedDelta=function(a,b,c,d){var e={top:0,left:0};if(!this.$viewport)return e;var f=this.options.viewport&&this.options.viewport.padding||0,g=this.getPosition(this.$viewport);if(/right|left/.test(a)){var h=b.top-f-g.scroll,i=b.top+f-g.scroll+d;h<g.top?e.top=g.top-h:i>g.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;j<g.left?e.left=g.left-j:k>g.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null,a.$element=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.7",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.7",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b<e[0])return this.activeTarget=null,this.clear();for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(void 0===e[a+1]||b<e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){ 4529this.activeTarget=b,this.clear();var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")},b.prototype.clear=function(){a(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.VERSION="3.3.7",c.TRANSITION_DURATION=150,c.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a"),f=a.Event("hide.bs.tab",{relatedTarget:b[0]}),g=a.Event("show.bs.tab",{relatedTarget:e[0]});if(e.trigger(f),b.trigger(g),!g.isDefaultPrevented()&&!f.isDefaultPrevented()){var h=a(d);this.activate(b.closest("li"),c),this.activate(h,h.parent(),function(){e.trigger({type:"hidden.bs.tab",relatedTarget:b[0]}),b.trigger({type:"shown.bs.tab",relatedTarget:e[0]})})}}},c.prototype.activate=function(b,d,e){function f(){g.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.7",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return e<c&&"top";if("bottom"==this.affixed)return null!=c?!(e+this.unpin<=f.top)&&"bottom":!(e+g<=a-d)&&"bottom";var h=null==this.affixed,i=h?e:f.top,j=h?g:b;return null!=c&&e<=c?"top":null!=d&&i+j>=a-d&&"bottom"},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery);
vendor: 15,518 bytes, lines 4529-4539
4529 4530/*! 4531 * Datepicker v0.6.4 4532 * http://github.com/fengyuanchen/datepicker 4533 * 4534 * Copyright (c) 2014-2017 Chen Fengyuan 4535 * Released under the MIT license 4536 * 4537 * Date: 2017-11-24T14:38:23.820Z 4538 */ 4539!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("jquery")):"function"==typeof define&&define.amd?define(["jquery"],t):t(e.jQuery)}(this,function(e){"use strict";function t(e){return"string"==typeof e}function i(e){return"number"==typeof e&&!v(e)}function a(e){return void 0===e}function s(e){return"date"===function(e){return y.call(e).slice(8,-1).toLowerCase()}(e)}function n(e,t){for(var i=arguments.length,a=Array(i>2?i-2:0),s=2;s<i;s++)a[s-2]=arguments[s];return function(){for(var i=arguments.length,s=Array(i),n=0;n<i;n++)s[n]=arguments[n];return e.apply(t,a.concat(s))}}function r(e){return'[data-view="'+e+'"]'}function h(e,t){return[31,function(e){return e%4==0&&e%100!=0||e%400==0}(e)?29:28,31,30,31,30,31,31,30,31,30,31][t]}function o(e,t,i){return Math.min(i,h(e,t))}e=e&&e.hasOwnProperty("default")?e.default:e;var l={autoShow:!1,autoHide:!1,autoPick:!1,inline:!1,container:null,trigger:null,language:"",format:"mm/dd/yyyy",date:null,startDate:null,endDate:null,startView:0,weekStart:0,yearFirst:!1,yearSuffix:"",days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],itemTag:"li",mutedClass:"muted",pickedClass:"picked",disabledClass:"disabled",highlightedClass:"highlighted",template:'<div class="datepicker-container"><div class="datepicker-panel" data-view="years picker"><ul><li data-view="years prev">‹</li><li data-view="years current"></li><li data-view="years next">›</li></ul><ul data-view="years"></ul></div><div class="datepicker-panel" data-view="months picker"><ul><li data-view="year prev">‹</li><li data-view="year current"></li><li data-view="year next">›</li></ul><ul data-view="months"></ul></div><div class="datepicker-panel" data-view="days picker"><ul><li data-view="month prev">‹</li><li data-view="month current"></li><li data-view="month next">›</li></ul><ul data-view="week"></ul><ul data-view="days"></ul></div></div>',offset:10,zIndex:1e3,filter:null,show:null,hide:null,pick:null},d="undefined"!=typeof window?window:{},u="datepicker",c="click.datepicker",p="datepicker-hide",f={},g={DAYS:0,MONTHS:1,YEARS:2},y=Object.prototype.toString,v=Number.isNaN||d.isNaN,m=/(y|m|d)+/g,w=/\d+/g,k={show:function(){this.built||this.build(),this.shown||this.trigger("show.datepicker").isDefaultPrevented()||(this.shown=!0,this.$picker.removeClass(p).on(c,e.proxy(this.click,this)),this.showView(this.options.startView),this.inline||(e(window).on("resize.datepicker",this.onResize=n(this.place,this)),e(document).on(c,this.onGlobalClick=n(this.globalClick,this)),e(document).on("keyup.datepicker",this.onGlobalKeyup=n(this.globalKeyup,this)),this.place()))},hide:function(){this.shown&&(this.trigger("hide.datepicker").isDefaultPrevented()||(this.shown=!1,this.$picker.addClass(p).off(c,this.click),this.inline||(e(window).off("resize.datepicker",this.onResize),e(document).off(c,this.onGlobalClick),e(document).off("keyup.datepicker",this.onGlobalKeyup))))},toggle:function(){this.shown?this.hide():this.show()},update:function(){var e=this.getValue();e!==this.oldValue&&(this.setDate(e,!0),this.oldValue=e)},pick:function(e){var t=this.$element,i=this.date;this.trigger("pick.datepicker",{view:e||"",date:i}).isDefaultPrevented()||(i=this.formatDate(this.date),this.setValue(i),this.isInput&&(t.trigger("input"),t.trigger("change")))},reset:function(){this.setDate(this.initialDate,!0),this.setValue(this.initialValue),this.shown&&this.showView(this.options.startView)},getMonthName:function(t,s){var n=this.options,r=n.monthsShort,h=n.months;return e.isNumeric(t)?t=Number(t):a(s)&&(s=t),!0===s&&(h=r),h[i(t)?t:this.date.getMonth()]},getDayName:function(t,s,n){var r=this.options,h=r.days;return e.isNumeric(t)?t=Number(t):(a(n)&&(n=s),a(s)&&(s=t)),n?h=r.daysMin:s&&(h=r.daysShort),h[i(t)?t:this.date.getDay()]},getDate:function(e){var t=this.date;return e?this.formatDate(t):new Date(t)},setDate:function(i,a){var n=this.options.filter;if(s(i)||t(i)){if(i=this.parseDate(i),e.isFunction(n)&&!1===n.call(this.$element,i))return;this.date=i,this.viewDate=new Date(i),a||this.pick(),this.built&&this.render()}},setStartDate:function(e){(s(e)||t(e))&&(this.startDate=this.parseDate(e),this.built&&this.render())},setEndDate:function(e){(s(e)||t(e))&&(this.endDate=this.parseDate(e),this.built&&this.render())},parseDate:function(i){var a=this.format,n=[];if(s(i))return new Date(i.getFullYear(),i.getMonth(),i.getDate());t(i)&&(n=i.match(w)||[]),i=new Date;var r=a.parts.length,h=i.getFullYear(),o=i.getDate(),l=i.getMonth();return n.length===r&&e.each(n,function(e,t){var i=parseInt(t,10)||1;switch(a.parts[e]){case"dd":case"d":o=i;break;case"mm":case"m":l=i-1;break;case"yy":h=2e3+i;break;case"yyyy":h=i}}),new Date(h,l,o)},formatDate:function(t){var i=this.format,a="";if(s(t)){var n=t.getFullYear(),r={d:t.getDate(),m:t.getMonth()+1,yy:n.toString().substring(2),yyyy:n};r.dd=(r.d<10?"0":"")+r.d,r.mm=(r.m<10?"0":"")+r.m,a=i.source,e.each(i.parts,function(e,t){a=a.replace(t,r[t])})}return a},destroy:function(){this.unbind(),this.unbuild(),this.$element.removeData(u)}},D={click:function(t){var i=e(t.target),a=this.options,s=this.viewDate,n=this.format;if(t.stopPropagation(),t.preventDefault(),!i.hasClass("disabled")){var r=i.data("view"),h=s.getFullYear(),l=s.getMonth(),d=s.getDate();switch(r){case"years prev":case"years next":h="years prev"===r?h-10:h+10,this.viewDate=new Date(h,l,o(h,l,d)),this.renderYears();break;case"year prev":case"year next":h="year prev"===r?h-1:h+1,this.viewDate=new Date(h,l,o(h,l,d)),this.renderMonths();break;case"year current":n.hasYear&&this.showView(g.YEARS);break;case"year picked":n.hasMonth?this.showView(g.MONTHS):(i.addClass(a.pickedClass).siblings().removeClass(a.pickedClass),this.hideView()),this.pick("year");break;case"year":h=parseInt(i.text(),10),this.date=new Date(h,l,o(h,l,d)),n.hasMonth?(this.viewDate=new Date(this.date),this.showView(g.MONTHS)):(i.addClass(a.pickedClass).siblings().removeClass(a.pickedClass),this.hideView()),this.pick("year");break;case"month prev":case"month next":(l="month prev"===r?l-1:l+1)<0?(h-=1,l+=12):l>11&&(h+=1,l-=12),this.viewDate=new Date(h,l,o(h,l,d)),this.renderDays();break;case"month current":n.hasMonth&&this.showView(g.MONTHS);break;case"month picked":n.hasDay?this.showView(g.DAYS):(i.addClass(a.pickedClass).siblings().removeClass(a.pickedClass),this.hideView()),this.pick("month");break;case"month":l=e.inArray(i.text(),a.monthsShort),this.date=new Date(h,l,o(h,l,d)),n.hasDay?(this.viewDate=new Date(h,l,o(h,l,d)),this.showView(g.DAYS)):(i.addClass(a.pickedClass).siblings().removeClass(a.pickedClass),this.hideView()),this.pick("month");break;case"day prev":case"day next":case"day":"day prev"===r?l-=1:"day next"===r&&(l+=1),d=parseInt(i.text(),10),this.date=new Date(h,l,d),this.viewDate=new Date(h,l,d),this.renderDays(),"day"===r&&this.hideView(),this.pick("day");break;case"day picked":this.hideView(),this.pick("day")}}},globalClick:function(e){for(var t=e.target,i=this.element,a=this.$trigger[0],s=!0;t!==document;){if(t===a||t===i){s=!1;break}t=t.parentNode}s&&this.hide()},keyup:function(){this.update()},globalKeyup:function(e){var t=e.target,i=e.key,a=e.keyCode;this.isInput&&t!==this.element&&this.shown&&("Tab"===i||9===a)&&this.hide()}},b={render:function(){this.renderYears(),this.renderMonths(),this.renderDays()},renderWeek:function(){var t=this,i=[],a=this.options,s=a.weekStart,n=a.daysMin;s=parseInt(s,10)%7,n=n.slice(s).concat(n.slice(0,s)),e.each(n,function(e,a){i.push(t.createItem({text:a}))}),this.$week.html(i.join(""))},renderYears:function(){var e=this.options,t=this.startDate,i=this.endDate,a=e.disabledClass,s=e.filter,n=e.yearSuffix,r=this.viewDate.getFullYear(),h=(new Date).getFullYear(),o=this.date.getFullYear(),l=[],d=!1,u=!1,c=void 0;for(c=-5;c<=6;c+=1){var p=new Date(r+c,1,1),f=!1;t&&(f=p.getFullYear()<t.getFullYear(),-5===c&&(d=f)),!f&&i&&(f=p.getFullYear()>i.getFullYear(),6===c&&(u=f)),!f&&s&&(f=!1===s.call(this.$element,p));var g=r+c===o,y=g?"year picked":"year";l.push(this.createItem({picked:g,disabled:f,muted:-5===c||6===c,text:r+c,view:f?"year disabled":y,highlighted:p.getFullYear()===h}))}this.$yearsPrev.toggleClass(a,d),this.$yearsNext.toggleClass(a,u),this.$yearsCurrent.toggleClass(a,!0).html(r+-5+n+" - "+(r+6)+n),this.$years.html(l.join(""))},renderMonths:function(){var t=this.options,i=this.startDate,a=this.endDate,s=this.viewDate,n=t.disabledClass||"",r=t.monthsShort,h=e.isFunction(t.filter)&&t.filter,o=s.getFullYear(),l=new Date,d=l.getFullYear(),u=l.getMonth(),c=this.date.getFullYear(),p=this.date.getMonth(),f=[],g=!1,y=!1,v=void 0;for(v=0;v<=11;v+=1){var m=new Date(o,v,1),w=!1;i&&(w=(g=m.getFullYear()===i.getFullYear())&&m.getMonth()<i.getMonth()),!w&&a&&(w=(y=m.getFullYear()===a.getFullYear())&&m.getMonth()>a.getMonth()),!w&&h&&(w=!1===h.call(this.$element,m));var k=o===c&&v===p,D=k?"month picked":"month";f.push(this.createItem({disabled:w,picked:k,highlighted:o===d&&m.getMonth()===u,index:v,text:r[v],view:w?"month disabled":D}))}this.$yearPrev.toggleClass(n,g),this.$yearNext.toggleClass(n,y),this.$yearCurrent.toggleClass(n,g&&y).html(o+t.yearSuffix||""),this.$months.html(f.join(""))},renderDays:function(){var e=this.$element,t=this.options,i=this.startDate,a=this.endDate,s=this.viewDate,n=this.date,r=t.disabledClass,o=t.filter,l=t.monthsShort,d=t.weekStart,u=t.yearSuffix,c=s.getFullYear(),p=s.getMonth(),f=new Date,g=f.getFullYear(),y=f.getMonth(),v=f.getDate(),m=n.getFullYear(),w=n.getMonth(),k=n.getDate(),D=void 0,b=void 0,C=void 0,$=[],x=c,M=p,S=!1;0===p?(x-=1,M=11):M-=1,D=h(x,M);var F=new Date(c,p,1);for((C=F.getDay()-parseInt(d,10)%7)<=0&&(C+=7),i&&(S=F.getTime()<=i.getTime()),b=D-(C-1);b<=D;b+=1){var Y=new Date(x,M,b),T=!1;i&&(T=Y.getTime()<i.getTime()),!T&&o&&(T=!1===o.call(e,Y)),$.push(this.createItem({disabled:T,highlighted:x===g&&M===y&&Y.getDate()===v,muted:!0,picked:x===m&&M===w&&b===k,text:b,view:"day prev"}))}var V=[],I=c,N=p,P=!1;11===p?(I+=1,N=0):N+=1,D=h(c,p),C=42-($.length+D);var A=new Date(c,p,D);for(a&&(P=A.getTime()>=a.getTime()),b=1;b<=C;b+=1){var j=new Date(I,N,b),O=I===m&&N===w&&b===k,H=!1;a&&(H=j.getTime()>a.getTime()),!H&&o&&(H=!1===o.call(e,j)),V.push(this.createItem({disabled:H,picked:O,highlighted:I===g&&N===y&&j.getDate()===v,muted:!0,text:b,view:"day next"}))}var q=[];for(b=1;b<=D;b+=1){var E=new Date(c,p,b),z=!1;i&&(z=E.getTime()<i.getTime()),!z&&a&&(z=E.getTime()>a.getTime()),!z&&o&&(z=!1===o.call(e,E));var W=c===m&&p===w&&b===k,J=W?"day picked":"day";q.push(this.createItem({disabled:z,picked:W,highlighted:c===g&&p===y&&E.getDate()===v,text:b,view:z?"day disabled":J}))}this.$monthPrev.toggleClass(r,S),this.$monthNext.toggleClass(r,P),this.$monthCurrent.toggleClass(r,S&&P).html(t.yearFirst?c+u+" "+l[p]:l[p]+" "+c+u),this.$days.html($.join("")+q.join("")+V.join(""))}},C=function(){function e(e,t){for(var i=0;i<t.length;i++){var a=t[i];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,i,a){return i&&e(t.prototype,i),a&&e(t,a),t}}(),$="datepicker-top-left",x="datepicker-bottom-left",M=[$,"datepicker-top-right",x,"datepicker-bottom-right"].join(" "),S=function(){function t(i){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),this.$element=e(i),this.element=i,this.options=e.extend({},l,f[a.language],a),this.built=!1,this.shown=!1,this.isInput=!1,this.inline=!1,this.initialValue="",this.initialDate=null,this.startDate=null,this.endDate=null,this.init()}return C(t,[{key:"init",value:function(){var t=this.$element,i=this.options,a=i.startDate,s=i.endDate,n=i.date;this.$trigger=e(i.trigger),this.isInput=t.is("input")||t.is("textarea"),this.inline=i.inline&&(i.container||!this.isInput),this.format=function(t){var i=String(t).toLowerCase(),a=i.match(m);if(!a||0===a.length)throw new Error("Invalid date format.");return t={source:i,parts:a},e.each(a,function(e,i){switch(i){case"dd":case"d":t.hasDay=!0;break;case"mm":case"m":t.hasMonth=!0;break;case"yyyy":case"yy":t.hasYear=!0}}),t}(i.format);var r=this.getValue();this.initialValue=r,this.oldValue=r,n=this.parseDate(n||r),a&&(a=this.parseDate(a),n.getTime()<a.getTime()&&(n=new Date(a)),this.startDate=a),s&&(s=this.parseDate(s),a&&s.getTime()<a.getTime()&&(s=new Date(a)),n.getTime()>s.getTime()&&(n=new Date(s)),this.endDate=s),this.date=n,this.viewDate=new Date(n),this.initialDate=new Date(this.date),this.bind(),(i.autoShow||this.inline)&&this.show(),i.autoPick&&this.pick()}},{key:"build",value:function(){if(!this.built){this.built=!0;var t=this.$element,i=this.options,a=e(i.template);this.$picker=a,this.$week=a.find(r("week")),this.$yearsPicker=a.find(r("years picker")),this.$yearsPrev=a.find(r("years prev")),this.$yearsNext=a.find(r("years next")),this.$yearsCurrent=a.find(r("years current")),this.$years=a.find(r("years")),this.$monthsPicker=a.find(r("months picker")),this.$yearPrev=a.find(r("year prev")),this.$yearNext=a.find(r("year next")),this.$yearCurrent=a.find(r("year current")),this.$months=a.find(r("months")),this.$daysPicker=a.find(r("days picker")),this.$monthPrev=a.find(r("month prev")),this.$monthNext=a.find(r("month next")),this.$monthCurrent=a.find(r("month current")),this.$days=a.find(r("days")),this.inline?e(i.container||t).append(a.addClass("datepicker-inline")):(e(document.body).append(a.addClass("datepicker-dropdown")),a.addClass(p)),this.renderWeek()}}},{key:"unbuild",value:function(){this.built&&(this.built=!1,this.$picker.remove())}},{key:"bind",value:function(){var t=this.options,i=this.$element;e.isFunction(t.show)&&i.on("show.datepicker",t.show),e.isFunction(t.hide)&&i.on("hide.datepicker",t.hide),e.isFunction(t.pick)&&i.on("pick.datepicker",t.pick),this.isInput&&i.on("keyup.datepicker",e.proxy(this.keyup,this)),this.inline||(t.trigger?this.$trigger.on(c,e.proxy(this.toggle,this)):this.isInput?i.on("focus.datepicker",e.proxy(this.show,this)):i.on(c,e.proxy(this.show,this)))}},{key:"unbind",value:function(){var t=this.$element,i=this.options;e.isFunction(i.show)&&t.off("show.datepicker",i.show),e.isFunction(i.hide)&&t.off("hide.datepicker",i.hide),e.isFunction(i.pick)&&t.off("pick.datepicker",i.pick),this.isInput&&t.off("keyup.datepicker",this.keyup),this.inline||(i.trigger?this.$trigger.off(c,this.toggle):this.isInput?t.off("focus.datepicker",this.show):t.off(c,this.show))}},{key:"showView",value:function(e){var t=this.$yearsPicker,i=this.$monthsPicker,a=this.$daysPicker,s=this.format;if(s.hasYear||s.hasMonth||s.hasDay)switch(Number(e)){case g.YEARS:i.addClass(p),a.addClass(p),s.hasYear?(this.renderYears(),t.removeClass(p),this.place()):this.showView(g.DAYS);break;case g.MONTHS:t.addClass(p),a.addClass(p),s.hasMonth?(this.renderMonths(),i.removeClass(p),this.place()):this.showView(g.YEARS);break;default:t.addClass(p),i.addClass(p),s.hasDay?(this.renderDays(),a.removeClass(p),this.place()):this.showView(g.MONTHS)}}}
4539,{key:"hideView",value:function(){!this.inline&&this.options.autoHide&&this.hide()}},{key:"place",value:function(){if(!this.inline){var t=this.$element,i=this.options,a=this.$picker,s=e(document).outerWidth(),n=e(document).outerHeight(),r=t.outerWidth(),h=t.outerHeight(),o=a.width(),l=a.height(),d=t.offset(),u=d.left,c=d.top,p=parseFloat(i.offset),f=$;v(p)&&(p=10),c>l&&c+h+l>n?(c-=l+p,f=x):c+=h+p,u+o>s&&(u+=r-o,f=f.replace("left","right")),a.removeClass(M).addClass(f).css({top:c,left:u,zIndex:parseInt(i.zIndex,10)})}}},{key:"trigger",value:function(t,i){var a=e.Event(t,i);return this.$element.trigger(a),a}},{key:"createItem",value:function(t){var i=this.options,a=i.itemTag,s={text:"",view:"",muted:!1,picked:!1,disabled:!1,highlighted:!1},n=[];return e.extend(s,t),s.muted&&n.push(i.mutedClass),s.highlighted&&n.push(i.highlightedClass),s.picked&&n.push(i.pickedClass),s.disabled&&n.push(i.disabledClass),"<"+a+' class="'+n.join(" ")+'" data-view="'+s.view+'">'+s.text+"</"+a+">"}},{key:"getValue",value:function(){var e=this.$element;return this.isInput?e.val():e.text()}},{key:"setValue",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=this.$element;this.isInput?t.val(e):t.text(e)}}],[{key:"setDefaults",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e.extend(l,f[t.language],t)}}]),t}();if(e.extend&&e.extend(S.prototype,b,D,k),e.fn){var F=e.fn.datepicker;e.fn.datepicker=function(i){for(var s=arguments.length,n=Array(s>1?s-1:0),r=1;r<s;r++)n[r-1]=arguments[r];var h=void 0;return this.each(function(a,s){var r=e(s),o=r.data(u);if(!o){if(/destroy/.test(i))return;var l=e.extend({},r.data(),e.isPlainObject(i)&&i);o=new S(s,l),r.data(u,o)}if(t(i)){var d=o[i];e.isFunction(d)&&(h=d.apply(o,n))}}),a(h)?this:h},e.fn.datepicker.Constructor=S,e.fn.datepicker.languages=f,e.fn.datepicker.setDefaults=S.setDefaults,e.fn.datepicker.noConflict=function(){return e.fn.datepicker=F,this}}}); 4540/*! 4541 * Isotope PACKAGED v3.0.4 4542 * 4543 * Licensed GPLv3 for open source use 4544 * or Isotope Commercial License for commercial use 4545 * 4546 * http://isotope.metafizzy.co 4547 * Copyright 2017 Metafizzy 4548 */ 4549 4550!function(t,e){"function"==typeof define&&define.amd?define("jquery-bridget/jquery-bridget",["jquery"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("jquery")):t.jQueryBridget=e(t,t.jQuery)}(window,function(t,e){"use strict";function i(i,s,a){function u(t,e,o){var n,s="$()."+i+'("'+e+'")';return t.each(function(t,u){var h=a.data(u,i);if(!h)return void r(i+" not initialized. Cannot call methods, i.e. "+s);var d=h[e];if(!d||"_"==e.charAt(0))return void r(s+" is not a valid method");var l=d.apply(h,o);n=void 0===n?l:n}),void 0!==n?n:t}function h(t,e){t.each(function(t,o){var n=a.data(o,i);n?(n.option(e),n._init()):(n=new s(o,e),a.data(o,i,n))})}a=a||e||t.jQuery,a&&(s.prototype.option||(s.prototype.option=function(t){a.isPlainObject(t)&&(this.options=a.extend(!0,this.options,t))}),a.fn[i]=function(t){if("string"==typeof t){var e=n.call(arguments,1);return u(this,t,e)}return h(this,t),this},o(a))}function o(t){!t||t&&t.bridget||(t.bridget=i)}var n=Array.prototype.slice,s=t.console,r="undefined"==typeof s?function(){}:function(t){s.error(t)};return o(e||t.jQuery),i}),function(t,e){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",e):"object"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}("undefined"!=typeof window?window:this,function(){function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var i=this._events=this._events||{},o=i[t]=i[t]||[];return o.indexOf(e)==-1&&o.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var i=this._onceEvents=this._onceEvents||{},o=i[t]=i[t]||{};return o[e]=!0,this}},e.off=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var o=i.indexOf(e);return o!=-1&&i.splice(o,1),this}},e.emitEvent=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var o=0,n=i[o];e=e||[];for(var s=this._onceEvents&&this._onceEvents[t];n;){var r=s&&s[n];r&&(this.off(t,n),delete s[n]),n.apply(this,e),o+=r?0:1,n=i[o]}return this}},t}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("get-size/get-size",[],function(){return e()}):"object"==typeof module&&module.exports?module.exports=e():t.getSize=e()}(window,function(){"use strict";function t(t){var e=parseFloat(t),i=t.indexOf("%")==-1&&!isNaN(e);return i&&e}function e(){}function i(){for(var t={width:0,height:0,innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0},e=0;e<h;e++){var i=u[e];t[i]=0}return t}function o(t){var e=getComputedStyle(t);return e||a("Style returned "+e+". Are you running this code in a hidden iframe on Firefox? See http://bit.ly/getsizebug1"),e}function n(){if(!d){d=!0;var e=document.createElement("div");e.style.width="200px",e.style.padding="1px 2px 3px 4px",e.style.borderStyle="solid",e.style.borderWidth="1px 2px 3px 4px",e.style.boxSizing="border-box";var i=document.body||document.documentElement;i.appendChild(e);var n=o(e);s.isBoxSizeOuter=r=200==t(n.width),i.removeChild(e)}}function s(e){if(n(),"string"==typeof e&&(e=document.querySelector(e)),e&&"object"==typeof e&&e.nodeType){var s=o(e);if("none"==s.display)return i();var a={};a.width=e.offsetWidth,a.height=e.offsetHeight;for(var d=a.isBorderBox="border-box"==s.boxSizing,l=0;l<h;l++){var f=u[l],c=s[f],m=parseFloat(c);a[f]=isNaN(m)?0:m}var p=a.paddingLeft+a.paddingRight,y=a.paddingTop+a.paddingBottom,g=a.marginLeft+a.marginRight,v=a.marginTop+a.marginBottom,_=a.borderLeftWidth+a.borderRightWidth,I=a.borderTopWidth+a.borderBottomWidth,z=d&&r,x=t(s.width);x!==!1&&(a.width=x+(z?0:p+_));var S=t(s.height);return S!==!1&&(a.height=S+(z?0:y+I)),a.innerWidth=a.width-(p+_),a.innerHeight=a.height-(y+I),a.outerWidth=a.width+g,a.outerHeight=a.height+v,a}}var r,a="undefined"==typeof console?e:function(t){console.error(t)},u=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"],h=u.length,d=!1;return s}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("desandro-matches-selector/matches-selector",e):"object"==typeof module&&module.exports?module.exports=e():t.matchesSelector=e()}(window,function(){"use strict";var t=function(){var t=window.Element.prototype;if(t.matches)return"matches";if(t.matchesSelector)return"matchesSelector";for(var e=["webkit","moz","ms","o"],i=0;i<e.length;i++){var o=e[i],n=o+"MatchesSelector";if(t[n])return n}}();return function(e,i){return e[t](i)}}),function(t,e){"function"==typeof define&&define.amd?define("fizzy-ui-utils/utils",["de
4550sandro-matches-selector/matches-selector"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("desandro-matches-selector")):t.fizzyUIUtils=e(t,t.matchesSelector)}(window,function(t,e){var i={};i.extend=function(t,e){for(var i in e)t[i]=e[i];return t},i.modulo=function(t,e){return(t%e+e)%e},i.makeArray=function(t){var e=[];if(Array.isArray(t))e=t;else if(t&&"object"==typeof t&&"number"==typeof t.length)for(var i=0;i<t.length;i++)e.push(t[i]);else e.push(t);return e},i.removeFrom=function(t,e){var i=t.indexOf(e);i!=-1&&t.splice(i,1)},i.getParent=function(t,i){for(;t.parentNode&&t!=document.body;)if(t=t.parentNode,e(t,i))return t},i.getQueryElement=function(t){return"string"==typeof t?document.querySelector(t):t},i.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},i.filterFindElements=function(t,o){t=i.makeArray(t);var n=[];return t.forEach(function(t){if(t instanceof HTMLElement){if(!o)return void n.push(t);e(t,o)&&n.push(t);for(var i=t.querySelectorAll(o),s=0;s<i.length;s++)n.push(i[s])}}),n},i.debounceMethod=function(t,e,i){var o=t.prototype[e],n=e+"Timeout";t.prototype[e]=function(){var t=this[n];t&&clearTimeout(t);var e=arguments,s=this;this[n]=setTimeout(function(){o.apply(s,e),delete s[n]},i||100)}},i.docReady=function(t){var e=document.readyState;"complete"==e||"interactive"==e?setTimeout(t):document.addEventListener("DOMContentLoaded",t)},i.toDashed=function(t){return t.replace(/(.)([A-Z])/g,function(t,e,i){return e+"-"+i}).toLowerCase()};var o=t.console;return i.htmlInit=function(e,n){i.docReady(function(){var s=i.toDashed(n),r="data-"+s,a=document.querySelectorAll("["+r+"]"),u=document.querySelectorAll(".js-"+s),h=i.makeArray(a).concat(i.makeArray(u)),d=r+"-options",l=t.jQuery;h.forEach(function(t){var i,s=t.getAttribute(r)||t.getAttribute(d);try{i=s&&JSON.parse(s)}catch(a){return void(o&&o.error("Error parsing "+r+" on "+t.className+": "+a))}var u=new e(t,i);l&&l.data(t,n,u)})})},i}),function(t,e){"function"==typeof define&&define.amd?define("outlayer/item",["ev-emitter/ev-emitter","get-size/get-size"],e):"object"==typeof module&&module.exports?module.exports=e(require("ev-emitter"),require("get-size")):(t.Outlayer={},t.Outlayer.Item=e(t.EvEmitter,t.getSize))}(window,function(t,e){"use strict";function i(t){for(var e in t)return!1;return e=null,!0}function o(t,e){t&&(this.element=t,this.layout=e,this.position={x:0,y:0},this._create())}function n(t){return t.replace(/([A-Z])/g,function(t){return"-"+t.toLowerCase()})}var s=document.documentElement.style,r="string"==typeof s.transition?"transition":"WebkitTransition",a="string"==typeof s.transform?"transform":"WebkitTransform",u={WebkitTransition:"webkitTransitionEnd",transition:"transitionend"}[r],h={transform:a,transition:r,transitionDuration:r+"Duration",transitionProperty:r+"Property",transitionDelay:r+"Delay"},d=o.prototype=Object.create(t.prototype);d.constructor=o,d._create=function(){this._transn={ingProperties:{},clean:{},onEnd:{}},this.css({position:"absolute"})},d.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},d.getSize=function(){this.size=e(this.element)},d.css=function(t){var e=this.element.style;for(var i in t){var o=h[i]||i;e[o]=t[i]}},d.getPosition=function(){var t=getComputedStyle(this.element),e=this.layout._getOption("originLeft"),i=this.layout._getOption("originTop"),o=t[e?"left":"right"],n=t[i?"top":"bottom"],s=this.layout.size,r=o.indexOf("%")!=-1?parseFloat(o)/100*s.width:parseInt(o,10),a=n.indexOf("%")!=-1?parseFloat(n)/100*s.height:parseInt(n,10);r=isNaN(r)?0:r,a=isNaN(a)?0:a,r-=e?s.paddingLeft:s.paddingRight,a-=i?s.paddingTop:s.paddingBottom,this.position.x=r,this.position.y=a},d.layoutPosition=function(){var t=this.layout.size,e={},i=this.layout._getOption("originLeft"),o=this.layout._getOption("originTop"),n=i?"paddingLeft":"paddingRight",s=i?"left":"right",r=i?"right":"left",a=this.position.x+t[n];e[s]=this.getXValue(a),e[r]="";var u=o?"paddingTop":"paddingBottom",h=o?"top":"bottom",d=o?"bottom":"top",l=this.position.y+t[u];e[h]=this.getYValue(l),e[d]="",this.css(e),this.emitEvent("layout",[this])},d.getXValue=function(t){var e=this.layout._getOption("horizontal");return this.layout.options.percentPosition&&!e?t/this.layout.size.width*100+"%":t+"px"},d.getYValue=function(t){var e=this.layout._getOption("horizontal");return this.layout.options.percentPosition&&e?t/this.layout.size.height*100+"%":t+"px"},d._transitionTo=function(t,e){this.getPosition();var i=this.position.x,o=this.position.y,n=parseInt(t,10),s=parseInt(e,10),r=n===this.position.x&&s===this.position.y;if(this.setPosition(t,e),r&&!this.isTransitioning)return void this.layoutPosition();var a=t-i,u=e-o,h={};
4550h.transform=this.getTranslate(a,u),this.transition({to:h,onTransitionEnd:{transform:this.layoutPosition},isCleaning:!0})},d.getTranslate=function(t,e){var i=this.layout._getOption("originLeft"),o=this.layout._getOption("originTop");return t=i?t:-t,e=o?e:-e,"translate3d("+t+"px, "+e+"px, 0)"},d.goTo=function(t,e){this.setPosition(t,e),this.layoutPosition()},d.moveTo=d._transitionTo,d.setPosition=function(t,e){this.position.x=parseInt(t,10),this.position.y=parseInt(e,10
vendor: 11,351 bytes, line 4550
4550)},d._nonTransition=function(t){this.css(t.to),t.isCleaning&&this._removeStyles(t.to);for(var e in t.onTransitionEnd)t.onTransitionEnd[e].call(this)},d.transition=function(t){if(!parseFloat(this.layout.options.transitionDuration))return void this._nonTransition(t);var e=this._transn;for(var i in t.onTransitionEnd)e.onEnd[i]=t.onTransitionEnd[i];for(i in t.to)e.ingProperties[i]=!0,t.isCleaning&&(e.clean[i]=!0);if(t.from){this.css(t.from);var o=this.element.offsetHeight;o=null}this.enableTransition(t.to),this.css(t.to),this.isTransitioning=!0};var l="opacity,"+n(a);d.enableTransition=function(){if(!this.isTransitioning){var t=this.layout.options.transitionDuration;t="number"==typeof t?t+"ms":t,this.css({transitionProperty:l,transitionDuration:t,transitionDelay:this.staggerDelay||0}),this.element.addEventListener(u,this,!1)}},d.onwebkitTransitionEnd=function(t){this.ontransitionend(t)},d.onotransitionend=function(t){this.ontransitionend(t)};var f={"-webkit-transform":"transform"};d.ontransitionend=function(t){if(t.target===this.element){var e=this._transn,o=f[t.propertyName]||t.propertyName;if(delete e.ingProperties[o],i(e.ingProperties)&&this.disableTransition(),o in e.clean&&(this.element.style[t.propertyName]="",delete e.clean[o]),o in e.onEnd){var n=e.onEnd[o];n.call(this),delete e.onEnd[o]}this.emitEvent("transitionEnd",[this])}},d.disableTransition=function(){this.removeTransitionStyles(),this.element.removeEventListener(u,this,!1),this.isTransitioning=!1},d._removeStyles=function(t){var e={};for(var i in t)e[i]="";this.css(e)};var c={transitionProperty:"",transitionDuration:"",transitionDelay:""};return d.removeTransitionStyles=function(){this.css(c)},d.stagger=function(t){t=isNaN(t)?0:t,this.staggerDelay=t+"ms"},d.removeElem=function(){this.element.parentNode.removeChild(this.element),this.css({display:""}),this.emitEvent("remove",[this])},d.remove=function(){return r&&parseFloat(this.layout.options.transitionDuration)?(this.once("transitionEnd",function(){this.removeElem()}),void this.hide()):void this.removeElem()},d.reveal=function(){delete this.isHidden,this.css({display:""});var t=this.layout.options,e={},i=this.getHideRevealTransitionEndProperty("visibleStyle");e[i]=this.onRevealTransitionEnd,this.transition({from:t.hiddenStyle,to:t.visibleStyle,isCleaning:!0,onTransitionEnd:e})},d.onRevealTransitionEnd=function(){this.isHidden||this.emitEvent("reveal")},d.getHideRevealTransitionEndProperty=function(t){var e=this.layout.options[t];if(e.opacity)return"opacity";for(var i in e)return i},d.hide=function(){this.isHidden=!0,this.css({display:""});var t=this.layout.options,e={},i=this.getHideRevealTransitionEndProperty("hiddenStyle");e[i]=this.onHideTransitionEnd,this.transition({from:t.visibleStyle,to:t.hiddenStyle,isCleaning:!0,onTransitionEnd:e})},d.onHideTransitionEnd=function(){this.isHidden&&(this.css({display:"none"}),this.emitEvent("hide"))},d.destroy=function(){this.css({position:"",left:"",right:"",top:"",bottom:"",transition:"",transform:""})},o}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("outlayer/outlayer",["ev-emitter/ev-emitter","get-size/get-size","fizzy-ui-utils/utils","./item"],function(i,o,n,s){return e(t,i,o,n,s)}):"object"==typeof module&&module.exports?module.exports=e(t,require("ev-emitter"),require("get-size"),require("fizzy-ui-utils"),require("./item")):t.Outlayer=e(t,t.EvEmitter,t.getSize,t.fizzyUIUtils,t.Outlayer.Item)}(window,function(t,e,i,o,n){"use strict";function s(t,e){var i=o.getQueryElement(t);if(!i)return void(u&&u.error("Bad element for "+this.constructor.namespace+": "+(i||t)));this.element=i,h&&(this.$element=h(this.element)),this.options=o.extend({},this.constructor.defaults),this.option(e);var n=++l;this.element.outlayerGUID=n,f[n]=this,this._create();var s=this._getOption("initLayout");s&&this.layout()}function r(t){function e(){t.apply(this,arguments)}return e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e}function a(t){if("number"==typeof t)return t;var e=t.match(/(^\d*\.?\d*)(\w*)/),i=e&&e[1],o=e&&e[2];if(!i.length)return 0;i=parseFloat(i);var n=m[o]||1;return i*n}var u=t.console,h=t.jQuery,d=function(){},l=0,f={};s.namespace="outlayer",s.Item=n,s.defaults={containerStyle:{position:"relative"},initLayout:!0,originLeft:!0,originTop:!0,resize:!0,resizeContainer:!0,transitionDuration:"0.4s",hiddenStyle:{opacity:0,transform:"scale(0.001)"},visibleStyle:{opacity:1,transform:"scale(1)"}};var c=s.prototype;o.extend(c,e.prototype),c.option=function(t){o.extend(this.options,t)},c._getOption=function(t){var e=this.constructor.compatOptions[t];return e&&void 0!==this.options[e]?this.options[e]:this.options[t]},s.compatOptions={initLayout:"isInitLayout",horizontal:"isHorizontal",layoutInstant:"isLayoutInstant",originLeft:"isOriginLeft",originTop:"isOriginTop",resize:"isResizeBound",resizeContainer:"isResizingContainer"},c._create=function(){this.reloadItems(),this.stamps=[],this.stamp(this.options.stamp),o.extend(this.element.style,this.options.containerStyle);var t=this._getOption("resize");t&&this.bindResize()},c.reloadItems=function(){this.items=this._itemize(this.element.children)},c._itemize=function(t){for(var e=this._filterFindItemElements(t),i=this.constructor.Item,o=[],n=0;n<e.length;n++){var s=e[n],r=new i(s,this);o.push(r)}return o},c._filterFindItemElements=function(t){return o.filterFindElements(t,this.options.itemSelector)},c.getItemElements=function(){return this.items.map(function(t){return t.element})},c.layout=function(){this._resetLayout(),this._manageStamps();var t=this._getOption("layoutInstant"),e=void 0!==t?t:!this._isLayoutInited;this.layoutItems(this.items,e),this._isLayoutInited=!0},c._init=c.layout,c._resetLayout=function(){this.getSize()},c.getSize=function(){this.size=i(this.element)},c._getMeasurement=function(t,e){var o,n=this.options[t];n?("string"==typeof n?o=this.element.querySelector(n):n instanceof HTMLElement&&(o=n),this[t]=o?i(o)[e]:n):this[t]=0},c.layoutItems=function(t,e){t=this._getItemsForLayout(t),this._layoutItems(t,e),this._postLayout()},c._getItemsForLayout=function(t){return t.filter(function(t){return!t.isIgnored})},c._layoutItems=function(t,e){if(this._emitCompleteOnItems("layout",t),t&&t.length){var i=[];t.forEach(function(t){var o=this._getItemLayoutPosition(t);o.item=t,o.isInstant=e||t.isLayoutInstant,i.push(o)},this),this._processLayoutQueue(i)}},c._getItemLayoutPosition=function(){return{x:0,y:0}},c._processLayoutQueue=function(t){this.updateStagger(),t.forEach(function(t,e){this._positionItem(t.item,t.x,t.y,t.isInstant,e)},this)},c.updateStagger=function(){var t=this.options.stagger;return null===t||void 0===t?void(this.stagger=0):(this.stagger=a(t),this.stagger)},c._positionItem=function(t,e,i,o,n){o?t.goTo(e,i):(t.stagger(n*this.stagger),t.moveTo(e,i))},c._postLayout=function(){this.resizeContainer()},c.resizeContainer=function(){var t=this._getOption("resizeContainer");if(t){var e=this._getContainerSize();e&&(this._setContainerMeasure(e.width,!0),this._setContainerMeasure(e.height,!1))}},c._getContainerSize=d,c._setContainerMeasure=function(t,e){if(void 0!==t){var i=this.size;i.isBorderBox&&(t+=e?i.paddingLeft+i.paddingRight+i.borderLeftWidth+i.borderRightWidth:i.paddingBottom+i.paddingTop+i.borderTopWidth+i.borderBottomWidth),t=Math.max(t,0),this.element.style[e?"width":"height"]=t+"px"}},c._emitCompleteOnItems=function(t,e){function i(){n.dispatchEvent(t+"Complete",null,[e])}function o(){r++,r==s&&i()}var n=this,s=e.length;if(!e||!s)return void i();var r=0;e.forEach(function(e){e.once(t,o)})},c.dispatchEvent=function(t,e,i){var o=e?[e].concat(i):i;if(this.emitEvent(t,o),h)if(this.$element=this.$element||h(this.element),e){var n=h.Event(e);n.type=t,this.$element.trigger(n,i)}else this.$element.trigger(t,i)},c.ignore=function(t){var e=this.getItem(t);e&&(e.isIgnored=!0)},c.unignore=function(t){var e=this.getItem(t);e&&delete e.isIgnored},c.stamp=function(t){t=this._find(t),t&&(this.stamps=this.stamps.concat(t),t.forEach(this.ignore,this))},c.unstamp=function(t){t=this._find(t),t&&t.forEach(function(t){o.removeFrom(this.stamps,t),this.unignore(t)},this)},c._find=function(t){if(t)return"string"==typeof t&&(t=this.element.querySelectorAll(t)),t=o.makeArray(t)},c._manageStamps=function(){this.stamps&&this.stamps.length&&(this._getBoundingRect(),this.stamps.forEach(this._manageStamp,this))},c._getBoundingRect=function(){var t=this.element.getBoundingClientRect(),e=this.size;this._boundingRect={left:t.left+e.paddingLeft+e.borderLeftWidth,top:t.top+e.paddingTop+e.borderTopWidth,right:t.right-(e.paddingRight+e.borderRightWidth),bottom:t.bottom-(e.paddingBottom+e.borderBottomWidth)}},c._manageStamp=d,c._getElementOffset=function(t){var e=t.getBoundingClientRect(),o=this._boundingRect,n=i(t),s={left:e.left-o.left-n.marginLeft,top:e.top-o.top-n.marginTop,right:o.right-e.right-n.marginRight,bottom:o.bottom-e.bottom-n.marginBottom};return s},c.handleEvent=o.handleEvent,c.bindResize=function(){t.addEventListener("resize",this),this.isResizeBound=!0},c.unbindResize=function(){t.removeEventListener("resize",this),this.isResizeBound=!1},c.onresize=function(){this.resize()},o.debounceMethod(s,"onresize",100),c.resize=function(){this.isResizeBound&&this.needsResizeLayout()&&this.layout()},c.needsResizeLayout=function(){var t=i(this.element),e=this.size&&t;return e&&t.innerWidth!==this.size.innerWidth},c.addItems=function(t){var e=this._itemize(t);return e.length&&(this.items=this.items.concat(e)),e},c.appended=function(t){var e=this.addItems(t);e.length&&(this.layoutItems(e,!0),this.reveal(e))},c.prepended=function(t){var e=this._itemize(t);if(e.length){var i=this.items.slice(0);this.items=e.concat(i),this._resetLayout(),this._manageStamps(),this.layoutItems(e,!0),this.reveal(e),this.layoutItems(i)}},c.reveal=function(t){if(this._emitCompleteOnItems("reveal",t),t&&t.length){var e=this.updateStagger();t.forEach(function(t,i){t.stagger(i*e),t.reveal()})}},c.hide=function(t){if(this._emitCompleteOnItems("hide",t),t&&t.length){var e=this.updateStagger();t.forEach(function(t,i){t.stagger(i*e),t.hide()})}},c.revealItemElements=function(t){var e=this.getItems(t);this.reveal(e)},c.hideItemElements=function(t){var e=this.getItems(t);this.hide(e)},c.getItem=function(t){for(var e=0;e<this.items.length;e++){var i=this.items[e];if(i.element==t)return i}},c.getItems=function(t){t=o.makeArray(t);var e=[];return t.forEach(function(t){var i=this.getItem(t);i&&e.push(i)},this),e},c.remove=function(t){var e=this.getItems(t);this._emitCompleteOnItems("remove",e),e&&e.length&&e.forEach(function(t){t.remove(),o.removeFrom(this.items,t)},this)},c.destroy=function(){var t=this.element.style;t.height="",t.position="",t.width="",this.items.forEach(function(t){t.destroy()}),this.unbindResize();var e=this.element.outlayerGUID;delete f[e],delete this.element.outlayerGUID,h&&h.removeData(this.element,this.constructor.namespace)},s.data=function(t){t=o.getQueryElement(t);var e=t&&t.outlayerGUID;return e&&f[e]},s.create=function(t,e){var i=r(s);return i.defaults=o.extend({},s.defaults),o.extend(i.defaults,e),i.compatOptions=o.extend({},s.compatOptions),i.namespace=t,i.data=s.data,i.Item=r(n),o.htmlInit(i,t),h&&h.bridget&&h.bridget(t,i),i};var m={ms:1,s:1e3};return s.Item=n,s}),function(t,e){"function"==typeof define&&define.amd?define("isotope
4550/js/item",["outlayer/outlayer"],e):"object"==typeof module&&module.exports?module.exports=e(require("outlayer")):(t.Isotope=t.Isotope||{},t.Isotope.Item=e(t.Outlayer))}(window,function(t){"use strict";function e(){t.Item.apply(this,arguments)}var i=e.prototype=Object.create(t.Item.prototype),o=i._create;i._create=function(){this.id=this.layout.itemGUID++,o.call(this),this.sortData={}},i.updateSortData=function(){if(!this.isIgnored){this.sortData.id=this.id,this.sortData["original-order"]=this.id,this.sortData.random=Math.random();var t=this.layout.options.getSortData,e=this.layout._sorters;for(var i in t){var o=e[i];this.sortData[i]=o(this.element,this)}}};var n=i.destroy;return i.destroy=function(){n.apply(this,arguments),this.css({display:""})},e}),function(t,e){"function"==typeof define&&define.amd?define("isotope/js/layout-mode",["get-size/get-size","outlayer/outlayer"],e):"object"==typeof module&&module.exports?module.exports=e(require("get-size"),require("outlayer")):(t.Isotope=t.Isotope||{},t.Isotope.LayoutMode=e(t.getSize,t.Outlayer))}(window,function(t,e){"use strict";function i(t){this.isotope=t,t&&(this.options=t.options[this.namespace],this.element=t.element,this.items=t.filteredItems,this.size=t.size)}var o=i.prototype,n=["_resetLayout","_getItemLayoutPosition","_manageStamp","_getContainerSize","_getElementOffset","needsResizeLayout","_getOption"];
vendor: 12,466 bytes, lines 4550-4551
4550return n.forEach(function(t){o[t]=function(){return e.prototype[t].apply(this.isotope,arguments)}}),o.needsVerticalResizeLayout=function(){var e=t(this.isotope.element),i=this.isotope.size&&e;return i&&e.innerHeight!=this.isotope.size.innerHeight},o._getMeasurement=function(){this.isotope._getMeasurement.apply(this,arguments)},o.getColumnWidth=function(){this.getSegmentSize("column","Width")},o.getRowHeight=function(){this.getSegmentSize("row","Height")},o.getSegmentSize=function(t,e){var i=t+e,o="outer"+e;if(this._getMeasurement(i,o),!this[i]){var n=this.getFirstItemSize();this[i]=n&&n[o]||this.isotope.size["inner"+e]}},o.getFirstItemSize=function(){var e=this.isotope.filteredItems[0];return e&&e.element&&t(e.element)},o.layout=function(){this.isotope.layout.apply(this.isotope,arguments)},o.getSize=function(){this.isotope.getSize(),this.size=this.isotope.size},i.modes={},i.create=function(t,e){function n(){i.apply(this,arguments)}return n.prototype=Object.create(o),n.prototype.constructor=n,e&&(n.options=e),n.prototype.namespace=t,i.modes[t]=n,n},i}),function(t,e){"function"==typeof define&&define.amd?define("masonry/masonry",["outlayer/outlayer","get-size/get-size"],e):"object"==typeof module&&module.exports?module.exports=e(require("outlayer"),require("get-size")):t.Masonry=e(t.Outlayer,t.getSize)}(window,function(t,e){var i=t.create("masonry");i.compatOptions.fitWidth="isFitWidth";var o=i.prototype;return o._resetLayout=function(){this.getSize(),this._getMeasurement("columnWidth","outerWidth"),this._getMeasurement("gutter","outerWidth"),this.measureColumns(),this.colYs=[];for(var t=0;t<this.cols;t++)this.colYs.push(0);this.maxY=0,this.horizontalColIndex=0},o.measureColumns=function(){if(this.getContainerWidth(),!this.columnWidth){var t=this.items[0],i=t&&t.element;this.columnWidth=i&&e(i).outerWidth||this.containerWidth}var o=this.columnWidth+=this.gutter,n=this.containerWidth+this.gutter,s=n/o,r=o-n%o,a=r&&r<1?"round":"floor";s=Math[a](s),this.cols=Math.max(s,1)},o.getContainerWidth=function(){var t=this._getOption("fitWidth"),i=t?this.element.parentNode:this.element,o=e(i);this.containerWidth=o&&o.innerWidth},o._getItemLayoutPosition=function(t){t.getSize();var e=t.size.outerWidth%this.columnWidth,i=e&&e<1?"round":"ceil",o=Math[i](t.size.outerWidth/this.columnWidth);o=Math.min(o,this.cols);for(var n=this.options.horizontalOrder?"_getHorizontalColPosition":"_getTopColPosition",s=this[n](o,t),r={x:this.columnWidth*s.col,y:s.y},a=s.y+t.size.outerHeight,u=o+s.col,h=s.col;h<u;h++)this.colYs[h]=a;return r},o._getTopColPosition=function(t){var e=this._getTopColGroup(t),i=Math.min.apply(Math,e);return{col:e.indexOf(i),y:i}},o._getTopColGroup=function(t){if(t<2)return this.colYs;for(var e=[],i=this.cols+1-t,o=0;o<i;o++)e[o]=this._getColGroupY(o,t);return e},o._getColGroupY=function(t,e){if(e<2)return this.colYs[t];var i=this.colYs.slice(t,t+e);return Math.max.apply(Math,i)},o._getHorizontalColPosition=function(t,e){var i=this.horizontalColIndex%this.cols,o=t>1&&i+t>this.cols;i=o?0:i;var n=e.size.outerWidth&&e.size.outerHeight;return this.horizontalColIndex=n?i+t:this.horizontalColIndex,{col:i,y:this._getColGroupY(i,t)}},o._manageStamp=function(t){var i=e(t),o=this._getElementOffset(t),n=this._getOption("originLeft"),s=n?o.left:o.right,r=s+i.outerWidth,a=Math.floor(s/this.columnWidth);a=Math.max(0,a);var u=Math.floor(r/this.columnWidth);u-=r%this.columnWidth?0:1,u=Math.min(this.cols-1,u);for(var h=this._getOption("originTop"),d=(h?o.top:o.bottom)+i.outerHeight,l=a;l<=u;l++)this.colYs[l]=Math.max(d,this.colYs[l])},o._getContainerSize=function(){this.maxY=Math.max.apply(Math,this.colYs);var t={height:this.maxY};return this._getOption("fitWidth")&&(t.width=this._getContainerFitWidth()),t},o._getContainerFitWidth=function(){for(var t=0,e=this.cols;--e&&0===this.colYs[e];)t++;return(this.cols-t)*this.columnWidth-this.gutter},o.needsResizeLayout=function(){var t=this.containerWidth;return this.getContainerWidth(),t!=this.containerWidth},i}),function(t,e){"function"==typeof define&&define.amd?define("isotope/js/layout-modes/masonry",["../layout-mode","masonry/masonry"],e):"object"==typeof module&&module.exports?module.exports=e(require("../layout-mode"),require("masonry-layout")):e(t.Isotope.LayoutMode,t.Masonry)}(window,function(t,e){"use strict";var i=t.create("masonry"),o=i.prototype,n={_getElementOffset:!0,layout:!0,_getMeasurement:!0};for(var s in e.prototype)n[s]||(o[s]=e.prototype[s]);var r=o.measureColumns;o.measureColumns=function(){this.items=this.isotope.filteredItems,r.call(this)};var a=o._getOption;return o._getOption=function(t){return"fitWidth"==t?void 0!==this.options.isFitWidth?this.options.isFitWidth:this.options.fitWidth:a.apply(this.isotope,arguments)},i}),function(t,e){"function"==typeof define&&define.amd?define("isotope/js/layout-modes/fit-rows",["../layout-mode"],e):"object"==typeof exports?module.exports=e(require("../layout-mode")):e(t.Isotope.LayoutMode)}(window,function(t){"use strict";var e=t.create("fitRows"),i=e.prototype;return i._resetLayout=function(){this.x=0,this.y=0,this.maxY=0,this._getMeasurement("gutter","outerWidth")},i._getItemLayoutPosition=function(t){t.getSize();var e=t.size.outerWidth+this.gutter,i=this.isotope.size.innerWidth+this.gutter;0!==this.x&&e+this.x>i&&(this.x=0,this.y=this.maxY);var o={x:this.x,y:this.y};return this.maxY=Math.max(this.maxY,this.y+t.size.outerHeight),this.x+=e,o},i._getContainerSize=function(){return{height:this.maxY}},e}),function(t,e){"function"==typeof define&&define.amd?define("isotope/js/layout-modes/vertical",["../layout-mode"],e):"object"==typeof module&&module.exports?module.exports=e(require("../layout-mode")):e(t.Isotope.LayoutMode)}(window,function(t){"use strict";var e=t.create("vertical",{horizontalAlignment:0}),i=e.prototype;return i._resetLayout=function(){this.y=0},i._getItemLayoutPosition=function(t){t.getSize();var e=(this.isotope.size.innerWidth-t.size.outerWidth)*this.options.horizontalAlignment,i=this.y;return this.y+=t.size.outerHeight,{x:e,y:i}},i._getContainerSize=function(){return{height:this.y}},e}),function(t,e){"function"==typeof define&&define.amd?define(["outlayer/outlayer","get-size/get-size","desandro-matches-selector/matches-selector","fizzy-ui-utils/utils","isotope/js/item","isotope/js/layout-mode","isotope/js/layout-modes/masonry","isotope/js/layout-modes/fit-rows","isotope/js/layout-modes/vertical"],function(i,o,n,s,r,a){return e(t,i,o,n,s,r,a)}):"object"==typeof module&&module.exports?module.exports=e(t,require("outlayer"),require("get-size"),require("desandro-matches-selector"),require("fizzy-ui-utils"),require("isotope/js/item"),require("isotope/js/layout-mode"),require("isotope/js/layout-modes/masonry"),require("isotope/js/layout-modes/fit-rows"),require("isotope/js/layout-modes/vertical")):t.Isotope=e(t,t.Outlayer,t.getSize,t.matchesSelector,t.fizzyUIUtils,t.Isotope.Item,t.Isotope.LayoutMode)}(window,function(t,e,i,o,n,s,r){function a(t,e){return function(i,o){for(var n=0;n<t.length;n++){var s=t[n],r=i.sortData[s],a=o.sortData[s];if(r>a||r<a){var u=void 0!==e[s]?e[s]:e,h=u?1:-1;return(r>a?1:-1)*h}}return 0}}var u=t.jQuery,h=String.prototype.trim?function(t){return t.trim()}:function(t){return t.replace(/^\s+|\s+$/g,"")},d=e.create("isotope",{layoutMode:"masonry",isJQueryFiltering:!0,sortAscending:!0});d.Item=s,d.LayoutMode=r;var l=d.prototype;l._create=function(){this.itemGUID=0,this._sorters={},this._getSorters(),e.prototype._create.call(this),this.modes={},this.filteredItems=this.items,this.sortHistory=["original-order"];for(var t in r.modes)this._initLayoutMode(t)},l.reloadItems=function(){this.itemGUID=0,e.prototype.reloadItems.call(this)},l._itemize=function(){for(var t=e.prototype._itemize.apply(this,arguments),i=0;i<t.length;i++){var o=t[i];o.id=this.itemGUID++}return this._updateItemsSortData(t),t},l._initLayoutMode=function(t){var e=r.modes[t],i=this.options[t]||{};this.options[t]=e.options?n.extend(e.options,i):i,this.modes[t]=new e(this)},l.layout=function(){return!this._isLayoutInited&&this._getOption("initLayout")?void this.arrange():void this._layout()},l._layout=function(){var t=this._getIsInstant();this._resetLayout(),this._manageStamps(),this.layoutItems(this.filteredItems,t),this._isLayoutInited=!0},l.arrange=function(t){this.option(t),this._getIsInstant();var e=this._filter(this.items);this.filteredItems=e.matches,this._bindArrangeComplete(),this._isInstant?this._noTransition(this._hideReveal,[e]):this._hideReveal(e),this._sort(),this._layout()},l._init=l.arrange,l._hideReveal=function(t){this.reveal(t.needReveal),this.hide(t.needHide)},l._getIsInstant=function(){var t=this._getOption("layoutInstant"),e=void 0!==t?t:!this._isLayoutInited;return this._isInstant=e,e},l._bindArrangeComplete=function(){function t(){e&&i&&o&&n.dispatchEvent("arrangeComplete",null,[n.filteredItems])}var e,i,o,n=this;this.once("layoutComplete",function(){e=!0,t()}),this.once("hideComplete",function(){i=!0,t()}),this.once("revealComplete",function(){o=!0,t()})},l._filter=function(t){var e=this.options.filter;e=e||"*";for(var i=[],o=[],n=[],s=this._getFilterTest(e),r=0;r<t.length;r++){var a=t[r];if(!a.isIgnored){var u=s(a);u&&i.push(a),u&&a.isHidden?o.push(a):u||a.isHidden||n.push(a)}}return{matches:i,needReveal:o,needHide:n}},l._getFilterTest=function(t){return u&&this.options.isJQueryFiltering?function(e){return u(e.element).is(t)}:"function"==typeof t?function(e){return t(e.element)}:function(e){return o(e.element,t)}},l.updateSortData=function(t){ 4551var e;t?(t=n.makeArray(t),e=this.getItems(t)):e=this.items,this._getSorters(),this._updateItemsSortData(e)},l._getSorters=function(){var t=this.options.getSortData;for(var e in t){var i=t[e];this._sorters[e]=f(i)}},l._updateItemsSortData=function(t){for(var e=t&&t.length,i=0;e&&i<e;i++){var o=t[i];o.updateSortData()}};var f=function(){function t(t){if("string"!=typeof t)return t;var i=h(t).split(" "),o=i[0],n=o.match(/^\[(.+)\]$/),s=n&&n[1],r=e(s,o),a=d.sortDataParsers[i[1]];return t=a?function(t){return t&&a(r(t))}:function(t){return t&&r(t)}}function e(t,e){return t?function(e){return e.getAttribute(t)}:function(t){var i=t.querySelector(e);return i&&i.textContent}}return t}();d.sortDataParsers={parseInt:function(t){return parseInt(t,10)},parseFloat:function(t){return parseFloat(t)}},l._sort=function(){if(this.options.sortBy){var t=n.makeArray(this.options.sortBy);this._getIsSameSortBy(t)||(this.sortHistory=t.concat(this.sortHistory));var e=a(this.sortHistory,this.options.sortAscending);this.filteredItems.sort(e)}},l._getIsSameSortBy=function(t){for(var e=0;e<t.length;e++)if(t[e]!=this.sortHistory[e])return!1;return!0},l._mode=function(){var t=this.options.layoutMode,e=this.modes[t];if(!e)throw new Error("No layout mode: "+t);return e.options=this.options[t],e},l._resetLayout=function(){e.prototype._resetLayout.call(this),this._mode()._resetLayout()},l._getItemLayoutPosition=function(t){return this._mode()._getItemLayoutPosition(t)},l._manageStamp=function(t){this._mode()._manageStamp(t)},l._getContainerSize=function(){return this._mode()._getContainerSize()},l.needsResizeLayout=function(){return this._mode().needsResizeLayout()},l.appended=function(t){var e=this.addItems(t);if(e.length){var i=this._filterRevealAdded(e);this.filteredItems=this.filteredItems.concat(i)}},l.prepended=function(t){var e=this._itemize(t);if(e.length){this._resetLayout(),this._manageStamps();var i=this._filterRevealAdded(e);this.layoutItems(this.filteredItems),this.filteredItems=i.concat(this.filteredItems),this.items=e.concat(this.items)}},l._filterRevealAdded=function(t){var e=this._filter(t);return this.hide(e.needHide),this.reveal(e.matches),this.layoutItems(e.matches,!0),e.matches},l.insert=function(t){var e=this.addItems(t);if(e.length){var i,o,n=e.length;for(i=0;i<n;i++)o=e[i],this.element.appendChild(o.element);var s=this._filter(e).matches;for(i=0;i<n;i++)e[i].isLayoutInstant=!0;for(this.arrange(),i=0;i<n;i++)delete e[i].isLayoutInstant;this.reveal(s)}};var c=l.remove;return l.remove=function(t){t=n.makeArray(t);var e=this.getItems(t);c.call(this,t);for(var i=e&&e.length,o=0;i&&o<i;o++){var s=e[o];n.removeFrom(this.filteredItems,s)}},l.shuffle=function(){for(var t=0;t<this.items.length;t++){var e=this.items[t];e.sortData.random=Math.random()}this.options.sortBy="random",this._sort(),this._layout()},l._noTransition=function(t,e){var i=this.options.transitionDuration;this.options.transitionDuration=0;
4551var o=t.apply(this,e);return this.options.transitionDuration=i,o},l.getFilteredItemElements=function(){return this.filteredItems.map(function(t){return t.element})},d}); 4552$(document).ready(function () { 4553 4554 var windowHeight = $(window).height(), 4555 navWindow = $(".navbar-collapse"), 4556 searchSubmitBtn = $('.stellungnahmen .search-submit'), 4557 carouselPause = $(".carousel.carouselPause"), 4558 carouselNoLoop = $(".carousel.carouselNoLoop"), 4559 navBlock = $(".nav_block"), 4560 searchResultLink = $(".search_result_block a"), 4561 openLink = "<base target=\"_parent\">"; 4562 $(carouselNoLoop).carousel({ 4563 wrap: false 4564 }); 4565 if (navigator.userAgent.toLowerCase().indexOf('firefox') > -1) { 4566 $(".search-field").css("padding", "15px 0 13px 20px"); 4567 } 4568 4569// Carousel disable arrows on first and last items 4570 detectIE(); 4571 carouselPause.carousel().on('slid.bs.carousel', function () { 4572 disableArrows(carouselPause.attr('id')); 4573 if(carouselNoLoop.hasClass("mobile")){ 4574 carouselNoLoop = $(".mobile.carousel.carouselPause"); 4575 disableArrows(carouselNoLoop.attr('id')); 4576 } 4577 }); 4578 if($(".slider.download")){ 4579 $('.carousel-inner').each(function() { 4580 if ($(this).children('div').length === 1) $(this).siblings('.carousel-control, .carousel-indicators').addClass('disabled'); 4581 }); 4582 } 4583 $(window).scroll(function () { 4584 var nav = $('.navbar'); 4585 var top = 10; 4586 if ($(window).scrollTop() >= top) { 4587 nav.addClass('sticky'); 4588 } else { 4589 nav.removeClass('sticky'); 4590 } 4591 }); 4592 4593// Navigation Menu Open 4594 $("a.collapsed.x").on("click", function (e) { 4595 // Firefox menu not appearing fix 4596 let navstuff = $('nav.navbar-transition'); 4597 navstuff.removeClass('navbar-transition'); 4598 navstuff.removeClass('sticky'); 4599 4600 $("body").toggleClass("modal-open"); 4601 $("#carousel-example-generic").carousel('pause'); 4602 4603 if (window.innerWidth >= 768) { 4604 $(navWindow).css("max-height", windowHeight - 30); 4605 } 4606 if (window.innerWidth <= 768) { 4607 $(navWindow).css("min-height", windowHeight); 4608 } 4609 e.preventDefault(); 4610 return true; 4611 }); 4612 $(".navbar-toggle.close").click(function () { 4613 $("#carousel-example-generic").carousel('cycle'); 4614 }); 4615 4616// Search 4617 $(".search-btn").click(function () { 4618 $(".search_block").addClass("open"); 4619 $(".search-field").focus(); 4620 $("body").addClass("modal-open"); 4621 $(".navbar-toggle").hide(); 4622 $("#carousel-example-generic").carousel('pause'); 4623 }); 4624 $(".form_close").click(function () { 4625 searchClose(); 4626 }); 4627 4628 $('.search-field').keyup(function() { 4629 if ($(this).val().length != 0) { 4630 $(searchSubmitBtn).removeClass('disabled'); 4631 }else{ 4632 $(searchSubmitBtn).addClass('disabled'); 4633 } 4634 }); 4635 4636 $('#searchModal').on('show.bs.modal', function () { 4637 if (window.innerWidth <= 768) { 4638 $('#searchModal iframe').css("height", windowHeight - 50); 4639 }else{ 4640 $('#searchModal iframe').css("height", windowHeight - 265); 4641 } 4642 }); 4643 4644 if($("#p938")){ 4645 searchResultLink.click(function () { 4646 $('head', window.frames['p938']).append(openLink); 4647 searchClose(); 4648 }); 4649 } 4650 4651 if($("#p970")){ 4652 searchResultLink.click(function () { 4653 $('head', window.frames['p970']).append(openLink); 4654 searchClose(); 4655 }); 4656 } 4657 4658// Calender 4659 $('[data-toggle="datepicker"]').datepicker({ 4660 language: 'de-DE', 4661 format: 'dd-mm-yyyy', 4662 weekStart: '1' 4663 }); 4664 $('.calendar_von').on('pick.datepicker', function (e) { 4665 $('.calendar_von').datepicker('hide'); 4666 $('.calendar_bis').datepicker('show'); 4667 }); 4668 $('.calendar_bis').on('pick.datepicker', function (e) { 4669 $('.calendar_bis').datepicker('hide'); 4670 $('.search-field').focus(); 4671 }); 4672 4673// Stellungnahmen search results (bubbles) 4674 $('.grid').isotope({ 4675 itemSelector: '.grid-item', 4676 percentPosition: true, 4677 masonry: { 4678 gutter: 20, 4679 columnWidth: '.grid-sizer', 4680 horizontalOrder: true 4681 } 4682 }); 4683 window.dispatchEvent(new Event('resize')); 4684 4685 4686// Scroll to top 4687 if (window.innerWidth <= 768) { 4688 $(window).scroll(function () { 4689 var scrollToTopBtn = $('.scrollToTop'), 4690 bodyHeight = $("body").height(), 4691 footerHeight = $("footer").height(), 4692 scrollingHeight = bodyHeight - footerHeight - windowHeight + 20; 4693 if ($(this).scrollTop() > 100) { 4694 scrollToTopBtn.fadeIn(); 4695 } 4696 if ($(this).scrollTop() < 100) { 4697 scrollToTopBtn.fadeOut(); 4698 } 4699 if ($(this).scrollTop() > scrollingHeight) { 4700 scrollToTopBtn.css({ 4701 "position": "absolute", 4702 "bottom": footerHeight 4703 }); 4704 } 4705 if ($(this).scrollTop() < scrollingHeight) { 4706 scrollToTopBtn.css({ 4707 "position": "fixed", 4708 "bottom": "20px" 4709 }); 4710 } 4711 }); 4712 4713//Click event scroll to top 4714 $('.scrollToTop').click(function () { 4715 $('html, body').animate({scrollTop: 0}, 500); 4716 return false;
4717 }); 4718 4719// Table responsive 4720 $(".contenttable").parents(".frame-inner").css("overflow-y", "scroll"); 4721 4722 } 4723 4724// More/Less Documents function 4725 var documentItem = $(".documente li"), 4726 linkItem = $(".links li"), 4727 hiddenDocumentsItems = documentItem.length - 4, 4728 hiddenLinkItems = linkItem.length - 4, 4729 showMoreBtn, 4730 showMoreLinksBtn, 4731 showMoreText, 4732 showLessText = "weniger Dokumente", 4733 showMoreLinksText, 4734 showLessLinksText = "weniger Links"; 4735 if (hiddenDocumentsItems === 1) { 4736 showMoreText = "Ein weiteres Dokument"; 4737 } else { 4738 showMoreText = hiddenDocumentsItems + " weitere Dokumente anzeigen"; 4739 } 4740 if (hiddenLinkItems === 1) { 4741 showMoreLinksText = "Ein weiterer Link"; 4742 } else { 4743 showMoreLinksText = hiddenLinkItems + " weitere Links anzeigen"; 4744 } 4745 if (documentItem.length > 4) { 4746 var additionalDocuments = $(".documente li:not(:nth-child(1)):not(:nth-child(2)):not(:nth-child(3)):not(:nth-child(4))").hide(); 4747 $(".documente").append('<div class="show_all_documents"><a role="button">' + showMoreText + '</a></div>'); 4748 showMoreBtn = $(".show_all_documents a"); 4749 $(showMoreBtn).click(function () { 4750 additionalDocuments.slideToggle(200); 4751 if (showMoreBtn.html() === showLessText) { 4752 $(showMoreBtn).html(showMoreText); 4753 } else { 4754 $(showMoreBtn).html(showLessText); 4755 } 4756 }); 4757 } 4758 if (linkItem.length > 4) { 4759 var additionaLinks = $(".links li:not(:nth-child(1)):not(:nth-child(2)):not(:nth-child(3)):not(:nth-child(4))").hide(); 4760 $(".links").append('<div class="show_all_links"><a role="button">' + showMoreLinksText + '</a></div>'); 4761 showMoreLinksBtn = $(".show_all_links a"); 4762 $(showMoreLinksBtn).click(function () { 4763 additionaLinks.slideToggle(200); 4764 if (showMoreLinksBtn.html() === showLessLinksText) { 4765 $(showMoreLinksBtn).html(showMoreLinksText); 4766 } else { 4767 $(showMoreLinksBtn).html(showLessLinksText); 4768 } 4769 }); 4770 } 4771 $("#carousel-example-generic").carousel({ 4772 interval: 7000 4773 }); 4774 4775// Hide empty nav_block 4776 if(navBlock.is(':empty')){ 4777 $("section.nav_block2").hide(); 4778 } 4779 4780// Parallax fix IE 4781 $('.parallax-window').parallax({ 4782 overScrollFix: true 4783 }); 4784 4785}); 4786 4787function searchClose() { 4788 $(".search_block").removeClass("open"); 4789 $("body").removeClass("modal-open"); 4790 $(".navbar-toggle").show(); 4791 $("#carousel-example-generic").carousel('cycle'); 4792} 4793 4794function disableArrows(name) { 4795 var slides = $("#" + name + " .item"); 4796 var slidesArray = Array.from(slides); 4797 var slidesArrayLength = slidesArray.length; 4798 slidesArray.forEach(function (item, index) { 4799 if ($(item).hasClass("active") && index !== 0) { 4800 $(".left[href='#" + name + "']").removeClass("disabled"); 4801 } else if ($(item).hasClass("active") && index === 0) { 4802 $(".left[href='#" + name + "']").addClass("disabled"); 4803 } 4804 4805 if ($(item).hasClass("active") && index === slidesArrayLength - 1) { 4806 $(".right[href='#" + name + "']").addClass("disabled"); 4807 } else { 4808 $(".right[href='#" + name + "']").removeClass("disabled"); 4809 } 4810 }); 4811} 4812 4813function Print() { 4814 if (navigator.userAgent.toLowerCase().indexOf('firefox') > -1) { 4815 4816 4817 var printHtml = document.querySelector(".page .row").innerHTML; 4818 var openWindow = window.open("", "title", "attributes"); 4819 4820 var elem = document.createElement('div'); 4821 elem.innerHTML += '<img src="http://www.drb.de/fileadmin/images/logo/logo_print.jpeg"/>'; 4822
4823 openWindow.document.write('<html><head><style>img{width: 250px; height: auto;} .print{display: none;}</style></head><body>'); 4824 openWindow.document.write(printHtml); 4825 openWindow.document.body.prepend(elem); 4826 openWindow.document.write('</body></html>'); 4827 openWindow.print(); 4828 openWindow.close(); 4829 4830 }else{ 4831 window.print(); 4832 } 4833 if (window.innerWidth <= 768) { 4834 window.print(); 4835 } 4836} 4837 4838window.addEventListener("load", function (ev) { 4839 var printB = document.querySelector(".shariff-button.print"); 4840 if (printB) { 4841 printB.querySelector("a").setAttribute("href", ""); 4842 printB.addEventListener("click", function (e) { 4843 e.stopImmediatePropagation(); 4844 e.stopPropagation(); 4845 console.log("printing"); 4846 Print(); 4847 }, true) 4848 } 4849}); 4850 4851/** 4852 * detect IE 4853 * returns version of IE or false, if browser is not Internet Explorer 4854 */ 4855function detectIE() { 4856 var ua = window.navigator.userAgent, 4857 msie = ua.indexOf('MSIE '), 4858 imageSrc = $(".verband_ubersicht.parallax-window").attr("data-image-src"); 4859 if (msie > 0) { 4860 // IE 10 or older 4861 $(".carousel-control .arrow").css("color", "#004aff"); 4862 $(".verband_ubersicht.parallax-window").removeClass("parallax-window").attr("data-parallax", "none"); 4863 $(".verband_ubersicht").css({'background-image': 'url(' + imageSrc + ')', 'background-size': 'cover'}); 4864 } 4865 var trident = ua.indexOf('Trident/'); 4866 if (trident > 0) { 4867 // IE 11 4868 $(".carousel-control .arrow").css("color", "#004aff"); 4869 $(".verband_ubersicht.parallax-window").removeClass("parallax-window").attr("data-parallax", "none"); 4870 $(".verband_ubersicht").css({'background-image': 'url(' + imageSrc + ')', 'background-size': 'cover'}); 4871 } 4872 if (document.documentMode || /Edge/.test(navigator.userAgent)) { 4873 // Edge 4874 $(".verband_ubersicht.parallax-window").removeClass("parallax-window").attr("data-parallax", "none"); 4875 $(".verband_ubersicht").css({'background-image': 'url(' + imageSrc + ')', 'background-size': 'cover'}); 4876 } 4877} 4878 4879// GET search result 4880function getSearch(e) { 4881 e.preventDefault(); 4882 var url = "/suche/ergebnisse/?tx_indexedsearch_pi2%5Baction%5D=search&tx_indexedsearch_pi2%5Bcontroller%5D=Search&tx_indexedsearch_pi2[search][sword]="; 4883 var search = $("#tx-indexedsearch-searchbox-sword").val(); 4884 top.window.location.href=url + search; 4885} 4886/*! 4887 * parallax.js v1.5.0 (http://pixelcog.github.io/parallax.js/) 4888 * @copyright 2016 PixelCog, Inc. 4889 * @license MIT (https://github.com/pixelcog/parallax.js/blob/master/LICENSE) 4890 */ 4891!function(t,i,e,s){function o(i,e){var h=this;"object"==typeof e&&(delete e.refresh,delete e.render,t.extend(this,e)),this.$element=t(i),!this.imageSrc&&this.$element.is("img")&&(this.imageSrc=this.$element.attr("src"));var r=(this.position+"").toLowerCase().match(/\S+/g)||[];if(r.length<1&&r.push("center"),1==r.length&&r.push(r[0]),"top"!=r[0]&&"bottom"!=r[0]&&"left"!=r[1]&&"right"!=r[1]||(r=[r[1],r[0]]),this.positionX!==s&&(r[0]=this.positionX.toLowerCase()),this.positionY!==s&&(r[1]=this.positionY.toLowerCase()),h.positionX=r[0],h.positionY=r[1],"left"!=this.positionX&&"right"!=this.positionX&&(isNaN(parseInt(this.positionX))?this.positionX="center":this.positionX=parseInt(this.positionX)),"top"!=this.positionY&&"bottom"!=this.positionY&&(isNaN(parseInt(this.positionY))?this.positionY="center"
vendor: 552 bytes, line 4891
4891:this.positionY=parseInt(this.positionY)),this.position=this.positionX+(isNaN(this.positionX)?"":"px")+" "+this.positionY+(isNaN(this.positionY)?"":"px"),navigator.userAgent.match(/(iPod|iPhone|iPad)/))return this.imageSrc&&this.iosFix&&!this.$element.is("img")&&this.$element.css({backgroundImage:"url("+this.imageSrc+")",backgroundSize:"cover",backgroundPosition:this.position}),this;if(navigator.userAgent.match(/(Android)/))return this.imageSrc&&this.androidFix&&!this.$element.is("img")&&this.$element.css({backgroundImage:"url("+this.imageSrc+")"
vendor: 5,322 bytes, line 4891
4891,backgroundSize:"cover",backgroundPosition:this.position}),this;this.$mirror=t("<div />").prependTo(this.mirrorContainer);var a=this.$element.find(">.parallax-slider"),n=!1;0==a.length?this.$slider=t("<img />").prependTo(this.$mirror):(this.$slider=a.prependTo(this.$mirror),n=!0),this.$mirror.addClass("parallax-mirror").css({visibility:"hidden",zIndex:this.zIndex,position:"fixed",top:0,left:0,overflow:"hidden"}),this.$slider.addClass("parallax-slider").one("load",function(){h.naturalHeight&&h.naturalWidth||(h.naturalHeight=this.naturalHeight||this.height||1,h.naturalWidth=this.naturalWidth||this.width||1),h.aspectRatio=h.naturalWidth/h.naturalHeight,o.isSetup||o.setup(),o.sliders.push(h),o.isFresh=!1,o.requestRender()}),n||(this.$slider[0].src=this.imageSrc),(this.naturalHeight&&this.naturalWidth||this.$slider[0].complete||a.length>0)&&this.$slider.trigger("load")}!function(){for(var t=0,e=["ms","moz","webkit","o"],s=0;s<e.length&&!i.requestAnimationFrame;++s)i.requestAnimationFrame=i[e[s]+"RequestAnimationFrame"],i.cancelAnimationFrame=i[e[s]+"CancelAnimationFrame"]||i[e[s]+"CancelRequestAnimationFrame"];i.requestAnimationFrame||(i.requestAnimationFrame=function(e){var s=(new Date).getTime(),o=Math.max(0,16-(s-t)),h=i.setTimeout(function(){e(s+o)},o);return t=s+o,h}),i.cancelAnimationFrame||(i.cancelAnimationFrame=function(t){clearTimeout(t)})}(),t.extend(o.prototype,{speed:.2,bleed:0,zIndex:-100,iosFix:!0,androidFix:!0,position:"center",overScrollFix:!1,mirrorContainer:"body",refresh:function(){this.boxWidth=this.$element.outerWidth(),this.boxHeight=this.$element.outerHeight()+2*this.bleed,this.boxOffsetTop=this.$element.offset().top-this.bleed,this.boxOffsetLeft=this.$element.offset().left,this.boxOffsetBottom=this.boxOffsetTop+this.boxHeight;var t,i=o.winHeight,e=o.docHeight,s=Math.min(this.boxOffsetTop,e-i),h=Math.max(this.boxOffsetTop+this.boxHeight-i,0),r=this.boxHeight+(s-h)*(1-this.speed)|0,a=(this.boxOffsetTop-s)*(1-this.speed)|0;r*this.aspectRatio>=this.boxWidth?(this.imageWidth=r*this.aspectRatio|0,this.imageHeight=r,this.offsetBaseTop=a,t=this.imageWidth-this.boxWidth,"left"==this.positionX?this.offsetLeft=0:"right"==this.positionX?this.offsetLeft=-t:isNaN(this.positionX)?this.offsetLeft=-t/2|0:this.offsetLeft=Math.max(this.positionX,-t)):(this.imageWidth=this.boxWidth,this.imageHeight=this.boxWidth/this.aspectRatio|0,this.offsetLeft=0,t=this.imageHeight-r,"top"==this.positionY?this.offsetBaseTop=a:"bottom"==this.positionY?this.offsetBaseTop=a-t:isNaN(this.positionY)?this.offsetBaseTop=a-t/2|0:this.offsetBaseTop=a+Math.max(this.positionY,-t))},render:function(){var t=o.scrollTop,i=o.scrollLeft,e=this.overScrollFix?o.overScroll:0,s=t+o.winHeight;this.boxOffsetBottom>t&&this.boxOffsetTop<=s?(this.visibility="visible",this.mirrorTop=this.boxOffsetTop-t,this.mirrorLeft=this.boxOffsetLeft-i,this.offsetTop=this.offsetBaseTop-this.mirrorTop*(1-this.speed)):this.visibility="hidden",this.$mirror.css({transform:"translate3d("+this.mirrorLeft+"px, "+(this.mirrorTop-e)+"px, 0px)",visibility:this.visibility,height:this.boxHeight,width:this.boxWidth}),this.$slider.css({transform:"translate3d("+this.offsetLeft+"px, "+this.offsetTop+"px, 0px)",position:"absolute",height:this.imageHeight,width:this.imageWidth,maxWidth:"none"})}}),t.extend(o,{scrollTop:0,scrollLeft:0,winHeight:0,winWidth:0,docHeight:1<<30,docWidth:1<<30,sliders:[],isReady:!1,isFresh:!1,isBusy:!1,setup:function(){function s(){if(p==i.pageYOffset)return i.requestAnimationFrame(s),!1;p=i.pageYOffset,h.render(),i.requestAnimationFrame(s)}if(!this.isReady){var h=this,r=t(e),a=t(i),n=function(){o.winHeight=a.height(),o.winWidth=a.width(),o.docHeight=r.height(),o.docWidth=r.width()},l=function(){var t=a.scrollTop(),i=o.docHeight-o.winHeight,e=o.docWidth-o.winWidth;o.scrollTop=Math.max(0,Math.min(i,t)),o.scrollLeft=Math.max(0,Math.min(e,a.scrollLeft())),o.overScroll=Math.max(t-i,Math.min(t,0))};a.on("resize.px.parallax load.px.parallax",function(){n(),h.refresh(),o.isFresh=!1,o.requestRender()}).on("scroll.px.parallax load.px.parallax",function(){l(),o.requestRender()}),n(),l(),this.isReady=!0;var p=-1;s()}},configure:function(i){"object"==typeof i&&(delete i.refresh,delete i.render,t.extend(this.prototype,i))},refresh:function(){t.each(this.sliders,function(){this.refresh()}),this.isFresh=!0},render:function(){this.isFresh||this.refresh(),t.each(this.sliders,function(){this.render()})},requestRender:function(){var t=this;t.render(),t.isBusy=!1},destroy:function(e){var s,h=t(e).data("px.parallax");for(h.$mirror.remove(),s=0;s<this.sliders.length;s+=1)this.sliders[s]==h&&this.sliders.splice(s,1);t(e).data("px.parallax",!1),0===this.sliders.length&&(t(i).off("scroll.px.parallax resize.px.parallax load.px.parallax"),this.isReady=!1,o.isSetup=!1)}});var h=t.fn.parallax;t.fn.parallax=function(s){return this.each(function(){var h=t(this),r="object"==typeof s&&s;this==i||this==e||h.is("body")?o.configure(r):h.data("px.parallax")?"object"==typeof s&&t.extend(h.data("px.parallax"),r):(r=t.extend({},h.data(),r),h.data("px.parallax",new o(this,r))),"string"==typeof s&&("destroy"==s?o.destroy(this):o[s]())})},t.fn.parallax.Constructor=o,t.fn.parallax.noConflict=function(){return t.fn.parallax=h,this},t(function(){t('[data-parallax="scroll"]').parallax()})}(jQuery,window,document);
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.