1!function(t){"use strict";var n=Element.prototype,e=NodeList.prototype,r=String.prototype;function o(t,e){e=e||{bubbles:!1,cancelable:!1,detail:null};var n=document.createEvent("CustomEvent");return n.initCustomEvent(t,e.bubbles,e.cancelable,e.detail),n}n.matches||(n.matches=n.msMatchesSelector||n.webkitMatchesSelector),n.closest||(n.closest=function(t){var e=this;do{if(n.matches.call(e,t))return e}while(null!==(e=e.parentElement||e.parentNode)&&1===e.nodeType);return null}),t.NodeList&&!e.forEach&&(e.forEach=Array.prototype.forEach),"function"!=typeof Object.assign&&Object.defineProperty(Object,"assign",{value:function(t,e){if(null===t||"undefined"===t)throw new TypeError("Cannot convert undefined or null to object");for(var n=Object(t),r=1;r<arguments.length;r++){var o=arguments[r];if(null!==o&&"undefined"!==o)for(var c in o)Object.prototype.hasOwnProperty.call(o,c)&&(n[c]=o[c])}return n},writable:!0,configurable:!0}),r.startsWith||Object.defineProperty(r,"startsWith",{value:function(t,e){e=0<e?0|e:0;return this.substring(e,e+t.length)===t}}),"function"!=typeof t.CustomEvent&&(o.prototype=t.Event.prototype,t.CustomEvent=o)}(this); 2;
vendor: 89,947 bytes, lines 3-4
3/*! jQuery v3.6.3 | (c) OpenJS Foundation and other contributors | jquery.org/license */ 4!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,y=n.hasOwnProperty,a=y.toString,l=a.call(Object),v={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},S=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||S).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.3",E=function(e,t){return new E.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}E.fn=E.prototype={jquery:f,constructor:E,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=E.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return E.each(this,e)},map:function(n){return this.pushStack(E.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(E.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(E.grep(this,function(e,t){return t%2}))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},E.extend=E.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(E.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||E.isPlainObject(n)?n:{},i=!1,a[t]=E.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},E.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=y.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t,n){b(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,r=0;if(p(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},makeArray:function(e,t){var n=t||[];return null!=e&&(p(Object(e))?E.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(p(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g(a)},guid:1,support:v}),"function"==typeof Symbol&&(E.fn[Symbol.iterator]=t[Symbol.iterator]),E.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var d=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,S,y,s,c,v,E="sizzle"+1*new Date,p=n.document,k=0,r=0,m=ue(),x=ue(),A=ue(),N=ue(),j=function(e,t){return e===t&&(l=!0),0},D={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",F=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",$=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,S)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&v(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!y||!y.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ve(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=E)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{if(d.cssSupportsSelector&&!CSS.supports("selector(:is("+c+"))"))throw new Error;return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===E&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[E]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ye(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ve(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,S=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.cssSupportsSelector=ce(function(){return CSS.supports("selector(*)")&&C.querySelectorAll(":is(:jqfake)")&&!CSS.supports("selector(:is(*,:jqfake))")}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=E,!C.getElementsByName||!C.getElementsByName(E).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&S){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&S){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&S)return t.getElementsByClassName(e)},s=[],y=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="<a id='"+E+"'></a><select id='"+E+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+E+"-]").length||y.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||y.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+E+"+*").length||y.push(".#.+[+~]"),e.querySelectorAll("\\\f"),y.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),d.cssSupportsSelector||y.push(":has"),y=y.length&&new RegExp(y.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),v=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType&&e.documentElement||e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&v(p,e)?-1:t==C||t.ownerDocument==p&&v(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&S&&!N[t+" "]&&(!s||!s.test(t))&&(!y||!y.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!=C&&T(e),v(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!=C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&D.call(b.attrHandle,t.toLowerCase())?n(e,t,!S):void 0;return void 0!==r?r:d.attributes||!S?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(j),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace($," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,y){var v="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===y?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=v!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(v){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[E]||(a[E]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[k,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[E]||(a[E]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[E]||(a[E]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[k,d]),a===e))break;return(d-=y)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[E]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace(B,"$1"));return s[E]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=S?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ye(function(){return[0]}),last:ye(function(e,t){return[t-1]}),eq:ye(function(e,t,n){return[n<0?n+t:n]}),even:ye(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ye(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ye(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ye(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[k,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[E]||(e[E]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===k&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,y,v,e){return y&&!y[E]&&(y=Ce(y)),v&&!v[E]&&(v=Ce(v,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?v||(e?d:l||y)?[]:t:f;if(g&&g(f,p,n,r),y){i=Te(p,u),y(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(v||d){if(v){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);v(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=v?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),v?v(null,t,p,r):H.apply(t,p)})}function Se(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[E]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(B,"$1"),t,s<n&&Se(e.slice(s,n)),n<r&&Se(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(B," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,y,v,m,x,r,i=[],o=[],a=A[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Se(t[n]))[E]?i.push(a):o.push(a);(a=A(e,(y=o,m=0<(v=i).length,x=0<y.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=k+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t==C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument==C||(T(o),n=!S);while(s=y[a++])if(s(o,t||C,n)){r.push(o);break}i&&(k=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=v[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+v.length&&se.uniqueSort(r)}return i&&(k=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&S&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ve(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!S,n,!t||ee.test(e)&&ve(t.parentNode)||t),n},d.sortStable=E.split("").sort(j).join("")===E,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);E.find=d,E.expr=d.selectors,E.expr[":"]=E.expr.pseudos,E.uniqueSort=E.unique=d.uniqueSort,E.text=d.getText,E.isXMLDoc=d.isXML,E.contains=d.contains,E.escapeSelector=d.escape;var h=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&E(e).is(n))break;r.push(e)}return r},T=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},k=E.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var N=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?E.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?E.grep(e,function(e){return e===n!==r}):"string"!=typeof n?E.grep(e,function(e){return-1<i.call(n,e)!==r}):E.filter(n,e,r)}E.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?E.find.matchesSelector(r,e)?[r]:[]:E.find.matches(e,E.grep(t,function(e){return 1===e.nodeType}))},E.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(E(e).filter(function(){for(t=0;t<r;t++)if(E.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)E.find(e,i[t],n);return 1<r?E.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&k.test(e)?E(e):e||[],!1).length}});var D,q=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(E.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof E?t[0]:t,E.merge(this,E.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:S,!0)),N.test(r[1])&&E.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=S.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(E):E.makeArray(e,this)}).prototype=E.fn,D=E(S);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}E.fn.extend({has:function(e){var t=E(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(E.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&E(e);if(!k.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&E.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?E.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(E(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(E.uniqueSort(E.merge(this.get(),E(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),E.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return h(e,"parentNode")},parentsUntil:function(e,t,n){return h(e,"parentNode",n)},next:function(e){return O(e,"nextSibling")},prev:function(e){return O(e,"previousSibling")},nextAll:function(e){return h(e,"nextSibling")},prevAll:function(e){return h(e,"previousSibling")},nextUntil:function(e,t,n){return h(e,"nextSibling",n)},prevUntil:function(e,t,n){return h(e,"previousSibling",n)},siblings:function(e){return T((e.parentNode||{}).firstChild,e)},children:function(e){return T(e.firstChild)},contents:function(e){return null!=e.contentDocument&&r(e.contentDocument)?e.contentDocument:(A(e,"template")&&(e=e.content||e),E.merge([],e.childNodes))}},function(r,i){E.fn[r]=function(e,t){var n=E.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=E.filter(t,n)),1<this.length&&(H[r]||E.uniqueSort(n),L.test(r)&&n.reverse()),this.pushStack(n)}});var P=/[^\x20\t\r\n\f]+/g;function R(e){return e}function M(e){throw e}function I(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}E.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},E.each(e.match(P)||[],function(e,t){n[t]=!0}),n):E.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){E.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return E.each(arguments,function(e,t){var n;while(-1<(n=E.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<E.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},E.extend({Deferred:function(e){var o=[["notify","progress",E.Callbacks("memory"),E.Callbacks("memory"),2],["resolve","done",E.Callbacks("once memory"),E.Callbacks("once memory"),0,"resolved"],["reject","fail",E.Callbacks("once memory"),E.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return E.Deferred(function(r){E.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,R,s),l(u,o,M,s)):(u++,t.call(e,l(u,o,R,s),l(u,o,M,s),l(u,o,R,o.notifyWith))):(a!==R&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){E.Deferred.exceptionHook&&E.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==M&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(E.Deferred.getStackHook&&(t.stackTrace=E.Deferred.getStackHook()),C.setTimeout(t))}}return E.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:R,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:R)),o[2][3].add(l(0,e,m(n)?n:M))}).promise()},promise:function(e){return null!=e?E.extend(e,a):a}},s={};return E.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=E.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(I(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)I(i[t],a(t),o.reject);return o.promise()}});var W=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;E.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&W.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},E.readyException=function(e){C.setTimeout(function(){throw e})};var F=E.Deferred();function $(){S.removeEventListener("DOMContentLoaded",$),C.removeEventListener("load",$),E.ready()}E.fn.ready=function(e){return F.then(e)["catch"](function(e){E.readyException(e)}),this},E.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--E.readyWait:E.isReady)||(E.isReady=!0)!==e&&0<--E.readyWait||F.resolveWith(S,[E])}}),E.ready.then=F.then,"complete"===S.readyState||"loading"!==S.readyState&&!S.documentElement.doScroll?C.setTimeout(E.ready):(S.addEventListener("DOMContentLoaded",$),C.addEventListener("load",$));var B=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)B(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(E(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},_=/^-ms-/,z=/-([a-z])/g;function U(e,t){return t.toUpperCase()}function X(e){return e.replace(_,"ms-").replace(z,U)}var V=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function G(){this.expando=E.expando+G.uid++}G.uid=1,G.prototype={cache:function(e){var t=e[this.expando];return t||(t={},V(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[X(t)]=n;else for(r in t)i[X(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][X(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(X):(t=X(t))in r?[t]:t.match(P)||[]).length;while(n--)delete r[t[n]]}(void 0===t||E.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!E.isEmptyObject(t)}};var Y=new G,Q=new G,J=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,K=/[A-Z]/g;function Z(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(K,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:J.test(i)?JSON.parse(i):i)}catch(e){}Q.set(e,t,n)}else n=void 0;return n}E.extend({hasData:function(e){return Q.hasData(e)||Y.hasData(e)},data:function(e,t,n){return Q.access(e,t,n)},removeData:function(e,t){Q.remove(e,t)},_data:function(e,t,n){return Y.access(e,t,n)},_removeData:function(e,t){Y.remove(e,t)}}),E.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=Q.get(o),1===o.nodeType&&!Y.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=X(r.slice(5)),Z(o,r,i[r]));Y.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){Q.set(this,n)}):B(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=Q.get(o,n))?t:void 0!==(t=Z(o,n))?t:void 0;this.each(function(){Q.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){Q.remove(this,e)})}}),E.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Y.get(e,t),n&&(!r||Array.isArray(n)?r=Y.access(e,t,E.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=E.queue(e,t),r=n.length,i=n.shift(),o=E._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){E.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Y.get(e,n)||Y.access(e,n,{empty:E.Callbacks("once memory").add(function(){Y.remove(e,[t+"queue",n])})})}}),E.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?E.queue(this[0],t):void 0===n?this:this.each(function(){var e=E.queue(this,t,n);E._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&E.dequeue(this,t)})},dequeue:function(e){return this.each(function(){E.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=E.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Y.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var ee=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,te=new RegExp("^(?:([+-])=|)("+ee+")([a-z%]*)$","i"),ne=["Top","Right","Bottom","Left"],re=S.documentElement,ie=function(e){return E.contains(e.ownerDocument,e)},oe={composed:!0};re.getRootNode&&(ie=function(e){return E.contains(e.ownerDocument,e)||e.getRootNode(oe)===e.ownerDocument});var ae=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&ie(e)&&"none"===E.css(e,"display")};function se(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return E.css(e,t,"")},u=s(),l=n&&n[3]||(E.cssNumber[t]?"":"px"),c=e.nodeType&&(E.cssNumber[t]||"px"!==l&&+u)&&te.exec(E.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)E.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,E.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ue={};function le(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Y.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&ae(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ue[s])||(o=a.body.appendChild(a.createElement(s)),u=E.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ue[s]=u)))):"none"!==n&&(l[c]="none",Y.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}E.fn.extend({show:function(){return le(this,!0)},hide:function(){return le(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ae(this)?E(this).show():E(this).hide()})}});var ce,fe,pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=S.createDocumentFragment().appendChild(S.createElement("div")),(fe=S.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),v.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="<textarea>x</textarea>",v.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="<option></option>",v.option=!!ce.lastChild;var ge={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,"",""]};function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?E.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n<r;n++)Y.set(e[n],"globalEval",!t||Y.get(t[n],"globalEval"))}ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td,v.option||(ge.optgroup=ge.option=[1,"<select multiple='multiple'>","</select>"]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))E.merge(p,o.nodeType?[o]:o);else if(me.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+E.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;E.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<E.inArray(o,r))i&&i.push(o);else if(l=ie(o),a=ye(f.appendChild(o),"script"),l&&ve(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}var be=/^([^.]*)(?:\.(.+)|)/;function we(){return!0}function Te(){return!1}function Ce(e,t){return e===function(){try{return S.activeElement}catch(e){}}()==("focus"===t)}function Se(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Se(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Te;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return E().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=E.guid++)),e.each(function(){E.event.add(this,t,i,r,n)})}function Ee(e,i,o){o?(Y.set(e,i,!1),E.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Y.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(E.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Y.set(this,i,r),t=o(this,i),this[i](),r!==(n=Y.get(this,i))||t?Y.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n&&n.value}else r.length&&(Y.set(this,i,{value:E.event.trigger(E.extend(r[0],E.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Y.get(e,i)&&E.event.add(e,i,we)}E.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=Y.get(t);if(V(t)){n.handler&&(n=(o=n).handler,i=o.selector),i&&E.find.matchesSelector(re,i),n.guid||(n.guid=E.guid++),(u=y.events)||(u=y.events=Object.create(null)),(a=y.handle)||(a=y.handle=function(e){return"undefined"!=typeof E&&E.event.triggered!==e.type?E.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(P)||[""]).length;while(l--)d=g=(s=be.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=E.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=E.event.special[d]||{},c=E.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&E.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),E.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=Y.hasData(e)&&Y.get(e);if(y&&(u=y.events)){l=(t=(t||"").match(P)||[""]).length;while(l--)if(d=g=(s=be.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=E.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,y.handle)||E.removeEvent(e,d,y.handle),delete u[d])}else for(d in u)E.event.remove(e,d+t[l],n,r,!0);E.isEmptyObject(u)&&Y.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=new Array(arguments.length),u=E.event.fix(e),l=(Y.get(this,"events")||Object.create(null))[u.type]||[],c=E.event.special[u.type]||{};for(s[0]=u,t=1;t<arguments.length;t++)s[t]=arguments[t];if(u.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,u)){a=E.event.handlers.call(this,u,l),t=0;while((i=a[t++])&&!u.isPropagationStopped()){u.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!u.isImmediatePropagationStopped())u.rnamespace&&!1!==o.namespace&&!u.rnamespace.test(o.namespace)||(u.handleObj=o,u.data=o.data,void 0!==(r=((E.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s))&&!1===(u.result=r)&&(u.preventDefault(),u.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,u),u.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<E(i,this).index(l):E.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(E.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[E.expando]?e:new E.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Ee(t,"click",we),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Ee(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Y.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},E.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},E.Event=function(e,t){if(!(this instanceof E.Event))return new E.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?we:Te,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&E.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[E.expando]=!0},E.Event.prototype={constructor:E.Event,isDefaultPrevented:Te,isPropagationStopped:Te,isImmediatePropagationStopped:Te,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=we,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=we,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=we,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},E.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,code:!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:!0},E.event.addProp),E.each({focus:"focusin",blur:"focusout"},function(t,e){E.event.special[t]={setup:function(){return Ee(this,t,Ce),!1},trigger:function(){return Ee(this,t),!0},_default:function(e){return Y.get(e.target,t)},delegateType:e}}),E.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){E.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||E.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),E.fn.extend({on:function(e,t,n,r){return Se(this,e,t,n,r)},one:function(e,t,n,r){return Se(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,E(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Te),this.each(function(){E.event.remove(this,e,n,t)})}});var ke=/<script|<style|<link/i,Ae=/checked\s*(?:[^=]|=\s*.checked.)/i,Ne=/^\s*<!\[CDATA\[|\]\]>\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&E(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n<r;n++)E.event.add(t,i,s[i][n]);Q.hasData(e)&&(o=Q.access(e),a=E.extend({},o),Q.set(t,a))}}function He(n,r,i,o){r=g(r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!v.checkClone&&Ae.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),He(t,r,i,o)});if(f&&(t=(e=xe(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=E.map(ye(e,"script"),De)).length;c<f;c++)u=e,c!==p&&(u=E.clone(u,!0,!0),s&&E.merge(a,ye(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,E.map(a,qe),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Y.access(u,"globalEval")&&E.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?E._evalUrl&&!u.noModule&&E._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")},l):b(u.textContent.replace(Ne,""),u,l))}return n}function Oe(e,t,n){for(var r,i=t?E.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||E.cleanData(ye(r)),r.parentNode&&(n&&ie(r)&&ve(ye(r,"script")),r.parentNode.removeChild(r));return e}E.extend({htmlPrefilter:function(e){return e},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=ie(e);if(!(v.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||E.isXMLDoc(e)))for(a=ye(c),r=0,i=(o=ye(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ye(e),a=a||ye(c),r=0,i=o.length;r<i;r++)Le(o[r],a[r]);else Le(e,c);return 0<(a=ye(c,"script")).length&&ve(a,!f&&ye(e,"script")),c},cleanData:function(e){for(var t,n,r,i=E.event.special,o=0;void 0!==(n=e[o]);o++)if(V(n)){if(t=n[Y.expando]){if(t.events)for(r in t.events)i[r]?E.event.remove(n,r):E.removeEvent(n,r,t.handle);n[Y.expando]=void 0}n[Q.expando]&&(n[Q.expando]=void 0)}}}),E.fn.extend({detach:function(e){return Oe(this,e,!0)},remove:function(e){return Oe(this,e)},text:function(e){return B(this,function(e){return void 0===e?E.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return He(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||je(this,e).appendChild(e)})},prepend:function(){return He(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=je(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return He(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return He(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(E.cleanData(ye(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return E.clone(this,e,t)})},html:function(e){return B(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!ke.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=E.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(E.cleanData(ye(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return He(this,arguments,function(e){var t=this.parentNode;E.inArray(this,n)<0&&(E.cleanData(ye(this)),t&&t.replaceChild(e,this))},n)}}),E.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){E.fn[e]=function(e){for(var t,n=[],r=E(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),E(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var Pe=new RegExp("^("+ee+")(?!px)[a-z%]+$","i"),Re=/^--/,Me=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Ie=function(e,t,n){var r,i,o={};for(i in t)o[i]=e.style[i],e.style[i]=t[i];for(i in r=n.call(e),t)e.style[i]=o[i];return r},We=new RegExp(ne.join("|"),"i"),Fe="[\\x20\\t\\r\\n\\f]",$e=new RegExp("^"+Fe+"+|((?:^|[^\\\\])(?:\\\\.)*)"+Fe+"+$","g");function Be(e,t,n){var r,i,o,a,s=Re.test(t),u=e.style;return(n=n||Me(e))&&(a=n.getPropertyValue(t)||n[t],s&&a&&(a=a.replace($e,"$1")||void 0),""!==a||ie(e)||(a=E.style(e,t)),!v.pixelBoxStyles()&&Pe.test(a)&&We.test(t)&&(r=u.width,i=u.minWidth,o=u.maxWidth,u.minWidth=u.maxWidth=u.width=a,a=n.width,u.width=r,u.minWidth=i,u.maxWidth=o)),void 0!==a?a+"":a}function _e(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(l){u.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",l.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",re.appendChild(u).appendChild(l);var e=C.getComputedStyle(l);n="1%"!==e.top,s=12===t(e.marginLeft),l.style.right="60%",o=36===t(e.right),r=36===t(e.width),l.style.position="absolute",i=12===t(l.offsetWidth/3),re.removeChild(u),l=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s,u=S.createElement("div"),l=S.createElement("div");l.style&&(l.style.backgroundClip="content-box",l.cloneNode(!0).style.backgroundClip="",v.clearCloneStyle="content-box"===l.style.backgroundClip,E.extend(v,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),s},scrollboxSize:function(){return e(),i},reliableTrDimensions:function(){var e,t,n,r;return null==a&&(e=S.createElement("table"),t=S.createElement("tr"),n=S.createElement("div"),e.style.cssText="position:absolute;left:-11111px;border-collapse:separate",t.style.cssText="border:1px solid",t.style.height="1px",n.style.height="9px",n.style.display="block",re.appendChild(e).appendChild(t).appendChild(n),r=C.getComputedStyle(t),a=parseInt(r.height,10)+parseInt(r.borderTopWidth,10)+parseInt(r.borderBottomWidth,10)===t.offsetHeight,re.removeChild(e)),a}}))}();var ze=["Webkit","Moz","ms"],Ue=S.createElement("div").style,Xe={};function Ve(e){var t=E.cssProps[e]||Xe[e];return t||(e in Ue?e:Xe[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=ze.length;while(n--)if((e=ze[n]+t)in Ue)return e}(e)||e)}var Ge=/^(none|table(?!-c[ea]).+)/,Ye={position:"absolute",visibility:"hidden",display:"block"},Qe={letterSpacing:"0",fontWeight:"400"};function Je(e,t,n){var r=te.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function Ke(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=E.css(e,n+ne[a],!0,i)),r?("content"===n&&(u-=E.css(e,"padding"+ne[a],!0,i)),"margin"!==n&&(u-=E.css(e,"border"+ne[a]+"Width",!0,i))):(u+=E.css(e,"padding"+ne[a],!0,i),"padding"!==n?u+=E.css(e,"border"+ne[a]+"Width",!0,i):s+=E.css(e,"border"+ne[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function Ze(e,t,n){var r=Me(e),i=(!v.boxSizingReliable()||n)&&"border-box"===E.css(e,"boxSizing",!1,r),o=i,a=Be(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if(Pe.test(a)){if(!n)return a;a="auto"}return(!v.boxSizingReliable()&&i||!v.reliableTrDimensions()&&A(e,"tr")||"auto"===a||!parseFloat(a)&&"inline"===E.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===E.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+Ke(e,t,n||(i?"border":"content"),o,r,a)+"px"}function et(e,t,n,r,i){return new et.prototype.init(e,t,n,r,i)}E.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Be(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=X(t),u=Re.test(t),l=e.style;if(u||(t=Ve(s)),a=E.cssHooks[t]||E.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=te.exec(n))&&i[1]&&(n=se(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(E.cssNumber[s]?"":"px")),v.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=X(t);return Re.test(t)||(t=Ve(s)),(a=E.cssHooks[t]||E.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Be(e,t,r)),"normal"===i&&t in Qe&&(i=Qe[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),E.each(["height","width"],function(e,u){E.cssHooks[u]={get:function(e,t,n){if(t)return!Ge.test(E.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?Ze(e,u,n):Ie(e,Ye,function(){return Ze(e,u,n)})},set:function(e,t,n){var r,i=Me(e),o=!v.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===E.css(e,"boxSizing",!1,i),s=n?Ke(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-Ke(e,u,"border",!1,i)-.5)),s&&(r=te.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=E.css(e,u)),Je(0,t,s)}}}),E.cssHooks.marginLeft=_e(v.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Be(e,"marginLeft"))||e.getBoundingClientRect().left-Ie(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),E.each({margin:"",padding:"",border:"Width"},function(i,o){E.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+ne[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(E.cssHooks[i+o].set=Je)}),E.fn.extend({css:function(e,t){return B(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Me(e),i=t.length;a<i;a++)o[t[a]]=E.css(e,t[a],!1,r);return o}return void 0!==n?E.style(e,t,n):E.css(e,t)},e,t,1<arguments.length)}}),((E.Tween=et).prototype={constructor:et,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||E.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(E.cssNumber[n]?"":"px")},cur:function(){var e=et.propHooks[this.prop];return e&&e.get?e.get(this):et.propHooks._default.get(this)},run:function(e){var t,n=et.propHooks[this.prop];return this.options.duration?this.pos=t=E.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):et.propHooks._default.set(this),this}}).init.prototype=et.prototype,(et.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=E.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){E.fx.step[e.prop]?E.fx.step[e.prop](e):1!==e.elem.nodeType||!E.cssHooks[e.prop]&&null==e.elem.style[Ve(e.prop)]?e.elem[e.prop]=e.now:E.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=et.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},E.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},E.fx=et.prototype.init,E.fx.step={};var tt,nt,rt,it,ot=/^(?:toggle|show|hide)$/,at=/queueHooks$/;function st(){nt&&(!1===S.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(st):C.setTimeout(st,E.fx.interval),E.fx.tick())}function ut(){return C.setTimeout(function(){tt=void 0}),tt=Date.now()}function lt(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=ne[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function ct(e,t,n){for(var r,i=(ft.tweeners[t]||[]).concat(ft.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function ft(o,e,t){var n,a,r=0,i=ft.prefilters.length,s=E.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=tt||ut(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:E.extend({},e),opts:E.extend(!0,{specialEasing:{},easing:E.easing._default},t),originalProperties:e,originalOptions:t,startTime:tt||ut(),duration:t.duration,tweens:[],createTween:function(e,t){var n=E.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=X(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=E.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=ft.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(E._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return E.map(c,ct,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),E.fx.timer(E.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}E.Animation=E.extend(ft,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return se(n.elem,e,te.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(P);for(var n,r=0,i=e.length;r<i;r++)n=e[r],ft.tweeners[n]=ft.tweeners[n]||[],ft.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&ae(e),y=Y.get(e,"fxshow");for(r in n.queue||(null==(a=E._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,E.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],ot.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!y||void 0===y[r])continue;g=!0}d[r]=y&&y[r]||E.style(e,r)}if((u=!E.isEmptyObject(t))||!E.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=y&&y.display)&&(l=Y.get(e,"display")),"none"===(c=E.css(e,"display"))&&(l?c=l:(le([e],!0),l=e.style.display||l,c=E.css(e,"display"),le([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===E.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(y?"hidden"in y&&(g=y.hidden):y=Y.access(e,"fxshow",{display:l}),o&&(y.hidden=!g),g&&le([e],!0),p.done(function(){for(r in g||le([e]),Y.remove(e,"fxshow"),d)E.style(e,r,d[r])})),u=ct(g?y[r]:0,r,p),r in y||(y[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?ft.prefilters.unshift(e):ft.prefilters.push(e)}}),E.speed=function(e,t,n){var r=e&&"object"==typeof e?E.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return E.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in E.fx.speeds?r.duration=E.fx.speeds[r.duration]:r.duration=E.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&E.dequeue(this,r.queue)},r},E.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ae).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=E.isEmptyObject(t),o=E.speed(e,n,r),a=function(){var e=ft(this,E.extend({},t),o);(i||Y.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=E.timers,r=Y.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&at.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||E.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Y.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=E.timers,o=n?n.length:0;for(t.finish=!0,E.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),E.each(["toggle","show","hide"],function(e,r){var i=E.fn[r];E.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(lt(r,!0),e,t,n)}}),E.each({slideDown:lt("show"),slideUp:lt("hide"),slideToggle:lt("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){E.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),E.timers=[],E.fx.tick=function(){var e,t=0,n=E.timers;for(tt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||E.fx.stop(),tt=void 0},E.fx.timer=function(e){E.timers.push(e),E.fx.start()},E.fx.interval=13,E.fx.start=function(){nt||(nt=!0,st())},E.fx.stop=function(){nt=null},E.fx.speeds={slow:600,fast:200,_default:400},E.fn.delay=function(r,e){return r=E.fx&&E.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},rt=S.createElement("input"),it=S.createElement("select").appendChild(S.createElement("option")),rt.type="checkbox",v.checkOn=""!==rt.value,v.optSelected=it.selected,(rt=S.createElement("input")).value="t",rt.type="radio",v.radioValue="t"===rt.value;var pt,dt=E.expr.attrHandle;E.fn.extend({attr:function(e,t){return B(this,E.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){E.removeAttr(this,e)})}}),E.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?E.prop(e,t,n):(1===o&&E.isXMLDoc(e)||(i=E.attrHooks[t.toLowerCase()]||(E.expr.match.bool.test(t)?pt:void 0)),void 0!==n?null===n?void E.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=E.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!v.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(P);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),pt={set:function(e,t,n){return!1===t?E.removeAttr(e,n):e.setAttribute(n,n),n}},E.each(E.expr.match.bool.source.match(/\w+/g),function(e,t){var a=dt[t]||E.find.attr;dt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=dt[o],dt[o]=r,r=null!=a(e,t,n)?o:null,dt[o]=i),r}});var ht=/^(?:input|select|textarea|button)$/i,gt=/^(?:a|area)$/i;function yt(e){return(e.match(P)||[]).join(" ")}function vt(e){return e.getAttribute&&e.getAttribute("class")||""}function mt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(P)||[]}E.fn.extend({prop:function(e,t){return B(this,E.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[E.propFix[e]||e]})}}),E.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&E.isXMLDoc(e)||(t=E.propFix[t]||t,i=E.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=E.find.attr(e,"tabindex");return t?parseInt(t,10):ht.test(e.nodeName)||gt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),v.optSelected||(E.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),E.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){E.propFix[this.toLowerCase()]=this}),E.fn.extend({addClass:function(t){var e,n,r,i,o,a;return m(t)?this.each(function(e){E(this).addClass(t.call(this,e,vt(this)))}):(e=mt(t)).length?this.each(function(){if(r=vt(this),n=1===this.nodeType&&" "+yt(r)+" "){for(o=0;o<e.length;o++)i=e[o],n.indexOf(" "+i+" ")<0&&(n+=i+" ");a=yt(n),r!==a&&this.setAttribute("class",a)}}):this},removeClass:function(t){var e,n,r,i,o,a;return m(t)?this.each(function(e){E(this).removeClass(t.call(this,e,vt(this)))}):arguments.length?(e=mt(t)).length?this.each(function(){if(r=vt(this),n=1===this.nodeType&&" "+yt(r)+" "){for(o=0;o<e.length;o++){i=e[o];while(-1<n.indexOf(" "+i+" "))n=n.replace(" "+i+" "," ")}a=yt(n),r!==a&&this.setAttribute("class",a)}}):this:this.attr("class","")},toggleClass:function(t,n){var e,r,i,o,a=typeof t,s="string"===a||Array.isArray(t);return m(t)?this.each(function(e){E(this).toggleClass(t.call(this,e,vt(this),n),n)}):"boolean"==typeof n&&s?n?this.addClass(t):this.removeClass(t):(e=mt(t),this.each(function(){if(s)for(o=E(this),i=0;i<e.length;i++)r=e[i],o.hasClass(r)?o.removeClass(r):o.addClass(r);else void 0!==t&&"boolean"!==a||((r=vt(this))&&Y.set(this,"__className__",r),this.setAttribute&&this.setAttribute("class",r||!1===t?"":Y.get(this,"__className__")||""))}))},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+yt(vt(n))+" ").indexOf(t))return!0;return!1}});var xt=/\r/g;E.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,E(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=E.map(t,function(e){return null==e?"":e+""})),(r=E.valHooks[this.type]||E.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=E.valHooks[t.type]||E.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(xt,""):null==e?"":e:void 0}}),E.extend({valHooks:{option:{get:function(e){var t=E.find.attr(e,"value");return null!=t?t:yt(E.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=E(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=E.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<E.inArray(E.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),E.each(["radio","checkbox"],function(){E.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<E.inArray(E(e).val(),t)}},v.checkOn||(E.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),v.focusin="onfocusin"in C;var bt=/^(?:focusinfocus|focusoutblur)$/,wt=function(e){e.stopPropagation()};E.extend(E.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||S],d=y.call(e,"type")?e.type:e,h=y.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||S,3!==n.nodeType&&8!==n.nodeType&&!bt.test(d+E.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[E.expando]?e:new E.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:E.makeArray(t,[e]),c=E.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,bt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||S)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Y.get(o,"events")||Object.create(null))[e.type]&&Y.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&V(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!V(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),E.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,wt),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,wt),E.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=E.extend(new E.Event,n,{type:e,isSimulated:!0});E.event.trigger(r,null,t)}}),E.fn.extend({trigger:function(e,t){return this.each(function(){E.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return E.event.trigger(e,t,n,!0)}}),v.focusin||E.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){E.event.simulate(r,e.target,E.event.fix(e))};E.event.special[r]={setup:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r);t||e.addEventListener(n,i,!0),Y.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r)-1;t?Y.access(e,r,t):(e.removeEventListener(n,i,!0),Y.remove(e,r))}}});var Tt=C.location,Ct={guid:Date.now()},St=/\?/;E.parseXML=function(e){var t,n;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){}return n=t&&t.getElementsByTagName("parsererror")[0],t&&!n||E.error("Invalid XML: "+(n?E.map(n.childNodes,function(e){return e.textContent}).join("\n"):e)),t};var Et=/\[\]$/,kt=/\r?\n/g,At=/^(?:submit|button|image|reset|file)$/i,Nt=/^(?:input|select|textarea|keygen)/i;function jt(n,e,r,i){var t;if(Array.isArray(e))E.each(e,function(e,t){r||Et.test(n)?i(n,t):jt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)jt(n+"["+t+"]",e[t],r,i)}E.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!E.isPlainObject(e))E.each(e,function(){i(this.name,this.value)});else for(n in e)jt(n,e[n],t,i);return r.join("&")},E.fn.extend({serialize:function(){return E.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=E.prop(this,"elements");return e?E.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!E(this).is(":disabled")&&Nt.test(this.nodeName)&&!At.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=E(this).val();return null==n?null:Array.isArray(n)?E.map(n,function(e){return{name:t.name,value:e.replace(kt,"\r\n")}}):{name:t.name,value:n.replace(kt,"\r\n")}}).get()}});var Dt=/%20/g,qt=/#.*$/,Lt=/([?&])_=[^&]*/,Ht=/^(.*?):[ \t]*([^\r\n]*)$/gm,Ot=/^(?:GET|HEAD)$/,Pt=/^\/\//,Rt={},Mt={},It="*/".concat("*"),Wt=S.createElement("a");function Ft(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(P)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function $t(t,i,o,a){var s={},u=t===Mt;function l(e){var r;return s[e]=!0,E.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function Bt(e,t){var n,r,i=E.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&E.extend(!0,e,r),e}Wt.href=Tt.href,E.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Tt.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Tt.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":It,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":E.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Bt(Bt(e,E.ajaxSettings),t):Bt(E.ajaxSettings,e)},ajaxPrefilter:Ft(Rt),ajaxTransport:Ft(Mt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,y=E.ajaxSetup({},t),v=y.context||y,m=y.context&&(v.nodeType||v.jquery)?E(v):E.event,x=E.Deferred(),b=E.Callbacks("once memory"),w=y.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Ht.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(y.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),y.url=((e||y.url||Tt.href)+"").replace(Pt,Tt.protocol+"//"),y.type=t.method||t.type||y.method||y.type,y.dataTypes=(y.dataType||"*").toLowerCase().match(P)||[""],null==y.crossDomain){r=S.createElement("a");try{r.href=y.url,r.href=r.href,y.crossDomain=Wt.protocol+"//"+Wt.host!=r.protocol+"//"+r.host}catch(e){y.crossDomain=!0}}if(y.data&&y.processData&&"string"!=typeof y.data&&(y.data=E.param(y.data,y.traditional)),$t(Rt,y,t,T),h)return T;for(i in(g=E.event&&y.global)&&0==E.active++&&E.event.trigger("ajaxStart"),y.type=y.type.toUpperCase(),y.hasContent=!Ot.test(y.type),f=y.url.replace(qt,""),y.hasContent?y.data&&y.processData&&0===(y.contentType||"").indexOf("application/x-www-form-urlencoded")&&(y.data=y.data.replace(Dt,"+")):(o=y.url.slice(f.length),y.data&&(y.processData||"string"==typeof y.data)&&(f+=(St.test(f)?"&":"?")+y.data,delete y.data),!1===y.cache&&(f=f.replace(Lt,"$1"),o=(St.test(f)?"&":"?")+"_="+Ct.guid+++o),y.url=f+o),y.ifModified&&(E.lastModified[f]&&T.setRequestHeader("If-Modified-Since",E.lastModified[f]),E.etag[f]&&T.setRequestHeader("If-None-Match",E.etag[f])),(y.data&&y.hasContent&&!1!==y.contentType||t.contentType)&&T.setRequestHeader("Content-Type",y.contentType),T.setRequestHeader("Accept",y.dataTypes[0]&&y.accepts[y.dataTypes[0]]?y.accepts[y.dataTypes[0]]+("*"!==y.dataTypes[0]?", "+It+"; q=0.01":""):y.accepts["*"]),y.headers)T.setRequestHeader(i,y.headers[i]);if(y.beforeSend&&(!1===y.beforeSend.call(v,T,y)||h))return T.abort();if(u="abort",b.add(y.complete),T.done(y.success),T.fail(y.error),c=$t(Mt,y,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,y]),h)return T;y.async&&0<y.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},y.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(y,T,n)),!i&&-1<E.inArray("script",y.dataTypes)&&E.inArray("json",y.dataTypes)<0&&(y.converters["text script"]=function(){}),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(y,s,T,i),i?(y.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(E.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(E.etag[f]=u)),204===e||"HEAD"===y.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(v,[o,l,T]):x.rejectWith(v,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,y,i?o:a]),b.fireWith(v,[T,l]),g&&(m.trigger("ajaxComplete",[T,y]),--E.active||E.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return E.get(e,t,n,"json")},getScript:function(e,t){return E.get(e,void 0,t,"script")}}),E.each(["get","post"],function(e,i){E[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),E.ajax(E.extend({url:e,type:i,dataType:r,data:t,success:n},E.isPlainObject(e)&&e))}}),E.ajaxPrefilter(function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")}),E._evalUrl=function(e,t,n){return E.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){E.globalEval(e,t,n)}})},E.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=E(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){E(this).wrapInner(n.call(this,e))}):this.each(function(){var e=E(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){E(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){E(this).replaceWith(this.childNodes)}),this}}),E.expr.pseudos.hidden=function(e){return!E.expr.pseudos.visible(e)},E.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},E.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var _t={0:200,1223:204},zt=E.ajaxSettings.xhr();v.cors=!!zt&&"withCredentials"in zt,v.ajax=zt=!!zt,E.ajaxTransport(function(i){var o,a;if(v.cors||zt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(_t[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),E.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),E.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return E.globalEval(e),e}}}),E.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),E.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=E("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),S.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;E.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||E.expando+"_"+Ct.guid++;return this[e]=!0,e}}),E.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||E.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?E(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),v.createHTMLDocument=((Ut=S.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Ut.childNodes.length),E.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(v.createHTMLDocument?((r=(t=S.implementation.createHTMLDocument("")).createElement("base")).href=S.location.href,t.head.appendChild(r)):t=S),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&E(o).remove(),E.merge([],i.childNodes)));var r,i,o},E.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=yt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&E.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?E("<div>").append(E.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},E.expr.pseudos.animated=function(t){return E.grep(E.timers,function(e){return t===e.elem}).length},E.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=E.css(e,"position"),c=E(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=E.css(e,"top"),u=E.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,E.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},E.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){E.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===E.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===E.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=E(e).offset()).top+=E.css(e,"borderTopWidth",!0),i.left+=E.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-E.css(r,"marginTop",!0),left:t.left-i.left-E.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===E.css(e,"position"))e=e.offsetParent;return e||re})}}),E.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;E.fn[t]=function(e){return B(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),E.each(["top","left"],function(e,n){E.cssHooks[n]=_e(v.pixelPosition,function(e,t){if(t)return t=Be(e,n),Pe.test(t)?E(e).position()[n]+"px":t})}),E.each({Height:"height",Width:"width"},function(a,s){E.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){E.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return B(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?E.css(e,t,i):E.style(e,t,n,i)},s,n?e:void 0,n)}})}),E.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){E.fn[t]=function(e){return this.on(t,e)}}),E.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),E.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){E.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}});var Gt=/^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g;E.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||E.guid++,i},E.holdReady=function(e){e?E.readyWait++:E.ready(!0)},E.isArray=Array.isArray,E.parseJSON=JSON.parse,E.nodeName=A,E.isFunction=m,E.isWindow=x,E.camelCase=X,E.type=w,E.now=Date.now,E.isNumeric=function(e){var t=E.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},E.trim=function(e){return null==e?"":(e+"").replace(Gt,"$1")},"function"==typeof define&&define.amd&&define("jquery",[],function(){return E});var Yt=C.jQuery,Qt=C.$;return E.noConflict=function(e){return C.$===E&&(C.$=Qt),e&&C.jQuery===E&&(C.jQuery=Yt),E},"undefined"==typeof e&&(C.jQuery=C.$=E),E});
5; 6/*! @source http://purl.eligrey.com/github/classList.js/blob/master/classList.js */ 7if("document" in self){if(!("classList" in document.createElement("_"))){(function(j){"use strict";if(!("Element" in j)){return}var a="classList",f="prototype",m=j.Element[f],b=Object,k=String[f].trim||function(){return this.replace(/^\s+|\s+$/g,"")},c=Array[f].indexOf||function(q){var p=0,o=this.length;for(;p<o;p++){if(p in this&&this[p]===q){return p}}return -1},n=function(o,p){this.name=o;this.code=DOMException[o];this.message=p},g=function(p,o){if(o===""){throw new n("SYNTAX_ERR","An invalid or illegal string was specified")}if(/\s/.test(o)){throw new n("INVALID_CHARACTER_ERR","String contains an invalid character")}return c.call(p,o)},d=function(s){var r=k.call(s.getAttribute("class")||""),q=r?r.split(/\s+/):[],p=0,o=q.length;for(;p<o;p++){this.push(q[p])}this._updateClassName=function(){s.setAttribute("class",this.toString())}},e=d[f]=[],i=function(){return new d(this)};n[f]=Error[f];e.item=function(o){return this[o]||null};e.contains=function(o){o+="";return g(this,o)!==-1};e.add=function(){var s=arguments,r=0,p=s.length,q,o=false;do{q=s[r]+"";if(g(this,q)===-1){this.push(q);o=true}}while(++r<p);if(o){this._updateClassName()}};e.remove=function(){var t=arguments,s=0,p=t.length,r,o=false,q;do{r=t[s]+"";q=g(this,r);while(q!==-1){this.splice(q,1);o=true;q=g(this,r)}}while(++s<p);if(o){this._updateClassName()}};e.toggle=function(p,q){p+="";var o=this.contains(p),r=o?q!==true&&"remove":q!==false&&"add";if(r){this[r](p)}if(q===true||q===false){return q}else{return !o}};e.toString=function(){return this.join(" ")};if(b.defineProperty){var l={get:i,enumerable:true,configurable:true};try{b.defineProperty(m,a,l)}catch(h){if(h.number===-2146823252){l.enumerable=false;b.defineProperty(m,a,l)}}}else{if(b[f].__defineGetter__){m.__defineGetter__(a,i)}}}(self))}else{(function(){var b=document.createElement("_");b.classList.add("c1","c2");if(!b.classList.contains("c2")){var c=function(e){var d=DOMTokenList.prototype[e];DOMTokenList.prototype[e]=function(h){var g,f=arguments.length;for(g=0;g<f;g++){h=arguments[g];d.call(this,h)}}};c("add");c("remove")}b.classList.toggle("c3",false);if(b.classList.contains("c3")){var a=DOMTokenList.prototype.toggle;DOMTokenList.prototype.toggle=function(d,e){if(1 in arguments&&!this.contains(d)===!e){return e}else{return a.call(this,d)}}}b=null}())}};; 8/** 9 * @file 10 * A promise-polyfill by @taylorhakes. 11 * 12 * License: MIT 13 * @see https://github.com/taylorhakes/promise-polyfill 14 */ 15!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t():"function"==typeof define&&define.amd?define(t):t()}(0,function(){"use strict";function e(e){var t=this.constructor;return this.then(function(n){return t.resolve(e()).then(function(){return n})},function(n){return t.resolve(e()).then(function(){return t.reject(n)})})}function t(e){return new this(function(t,n){function o(e,n){if(n&&("object"==typeof n||"function"==typeof n)){var f=n.then;if("function"==typeof f)return void f.call(n,function(t){o(e,t)},function(n){r[e]={status:"rejected",reason:n},0==--i&&t(r)})}r[e]={status:"fulfilled",value:n},0==--i&&t(r)}if(!e||"undefined"==typeof e.length)return n(new TypeError(typeof e+" "+e+" is not iterable(cannot read property Symbol(Symbol.iterator))"));var r=Array.prototype.slice.call(e);if(0===r.length)return t([]);for(var i=r.length,f=0;r.length>f;f++)o(f,r[f])})}function n(e){return!(!e||"undefined"==typeof e.length)}function o(){}function r(e){if(!(this instanceof r))throw new TypeError("Promises must be constructed via new");if("function"!=typeof e)throw new TypeError("not a function");this._state=0,this._handled=!1,this._value=undefined,this._deferreds=[],l(e,this)}function i(e,t){for(;3===e._state;)e=e._value;0!==e._state?(e._handled=!0,r._immediateFn(function(){var n=1===e._state?t.onFulfilled:t.onRejected;if(null!==n){var o;try{o=n(e._value)}catch(r){return void u(t.promise,r)}f(t.promise,o)}else(1===e._state?f:u)(t.promise,e._value)})):e._deferreds.push(t)}function f(e,t){try{if(t===e)throw new TypeError("A promise cannot be resolved with itself.");if(t&&("object"==typeof t||"function"==typeof t)){var n=t.then;if(t instanceof r)return e._state=3,e._value=t,void c(e);if("function"==typeof n)return void l(function(e,t){return function(){e.apply(t,arguments)}}(n,t),e)}e._state=1,e._value=t,c(e)}catch(o){u(e,o)}}function u(e,t){e._state=2,e._value=t,c(e)}function c(e){2===e._state&&0===e._deferreds.length&&r._immediateFn(function(){e._handled||r._unhandledRejectionFn(e._value)});for(var t=0,n=e._deferreds.length;n>t;t++)i(e,e._deferreds[t]);e._deferreds=null}function l(e,t){var n=!1;try{e(function(e){n||(n=!0,f(t,e))},function(e){n||(n=!0,u(t,e))})}catch(o){if(n)return;n=!0,u(t,o)}}var a=setTimeout,s="undefined"!=typeof setImmediate?setImmediate:null;r.prototype["catch"]=function(e){return this.then(null,e)},r.prototype.then=function(e,t){var n=new this.constructor(o);return i(this,new function(e,t,n){this.onFulfilled="function"==typeof e?e:null,this.onRejected="function"==typeof t?t:null,this.promise=n}(e,t,n)),n},r.prototype["finally"]=e,r.all=function(e){return new r(function(t,o){function r(e,n){try{if(n&&("object"==typeof n||"function"==typeof n)){var u=n.then;if("function"==typeof u)return void u.call(n,function(t){r(e,t)},o)}i[e]=n,0==--f&&t(i)}catch(c){o(c)}}if(!n(e))return o(new TypeError("Promise.all accepts an array"));var i=Array.prototype.slice.call(e);
15if(0===i.length)return t([]);for(var f=i.length,u=0;i.length>u;u++)r(u,i[u])})},r.allSettled=t,r.resolve=function(e){return e&&"object"==typeof e&&e.constructor===r?e:new r(function(t){t(e)})},r.reject=function(e){return new r(function(t,n){n(e)})},r.race=function(e){return new r(function(t,o){if(!n(e))return o(new TypeError("Promise.race accepts an array"));for(var i=0,f=e.length;f>i;i++)r.resolve(e[i]).then(t,o)})},r._immediateFn="function"==typeof s&&function(e){s(e)}||function(e){a(e,0)},r._unhandledRejectionFn=function(e){void 0!==console&&console&&console.warn("Possible Unhandled Promise Rejection:",e)};var d=function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw Error("unable to locate global object")}();"function"!=typeof d.Promise?d.Promise=r:(d.Promise.prototype["finally"]||(d.Promise.prototype["finally"]=e),d.Promise.allSettled||(d.Promise.allSettled=t))}); 16; 17/** 18 * @file 19 * A requestAnimationFrame polyfill. 20 * 21 * by Erik Möller. fixes from Paul Irish and Tino Zijdel. 22 * MIT license 23 * 24 * @see https://gist.github.com/paulirish/1579671 25 */ 26!function(m){for(var o=0,n=["ms","moz","webkit","o"],e=0;e<n.length&&!m.requestAnimationFrame;++e)m.requestAnimationFrame=window[n[e]+"RequestAnimationFrame"],m.cancelAnimationFrame=window[n[e]+"CancelAnimationFrame"]||window[n[e]+"CancelRequestAnimationFrame"];m.requestAnimationFrame||(m.requestAnimationFrame=function(n,e){var i=(new Date).getTime(),a=Math.max(0,16-(i-o)),t=m.setTimeout(function(){n(i+a)},a);return o=i+a,t}),m.cancelAnimationFrame||(m.cancelAnimationFrame=function(n){clearTimeout(n)})}(this); 27; 28!function(n,r){"object"==typeof exports&&"undefined"!=typeof module?module.exports=r():"function"==typeof define&&define.amd?define("underscore",r):(n="undefined"!=typeof globalThis?globalThis:n||self,function(){var t=n._,e=n._=r();e.noConflict=function(){return n._=t,e}}())}(this,(function(){ 29// Underscore.js 1.13.6 30// https://underscorejs.org 31// (c) 2009-2022 Jeremy Ashkenas, Julian Gonggrijp, and DocumentCloud and Investigative Reporters & Editors 32// Underscore may be freely distributed under the MIT license. 33var n="1.13.6",r="object"==typeof self&&self.self===self&&self||"object"==typeof global&&global.global===global&&global||Function("return this")()||{},t=Array.prototype,e=Object.prototype,u="undefined"!=typeof Symbol?Symbol.prototype:null,o=t.push,i=t.slice,a=e.toString,f=e.hasOwnProperty,c="undefined"!=typeof ArrayBuffer,l="undefined"!=typeof DataView,s=Array.isArray,p=Object.keys,v=Object.create,h=c&&ArrayBuffer.isView,y=isNaN,d=isFinite,g=!{toString:null}.propertyIsEnumerable("toString"),b=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],m=Math.pow(2,53)-1;function j(n,r){return r=null==r?n.length-1:+r,function(){for(var t=Math.max(arguments.length-r,0),e=Array(t),u=0;u<t;u++)e[u]=arguments[u+r];switch(r){case 0:return n.call(this,e);case 1:return n.call(this,arguments[0],e);case 2:return n.call(this,arguments[0],arguments[1],e)}var o=Array(r+1);for(u=0;u<r;u++)o[u]=arguments[u];return o[r]=e,n.apply(this,o)}}function _(n){var r=typeof n;return"function"===r||"object"===r&&!!n}function w(n){return void 0===n}function A(n){return!0===n||!1===n||"[object Boolean]"===a.call(n)}function x(n){var r="[object "+n+"]";return function(n){return a.call(n)===r}}var S=x("String"),O=x("Number"),M=x("Date"),E=x("RegExp"),B=x("Error"),N=x("Symbol"),I=x("ArrayBuffer"),T=x("Function"),k=r.document&&r.document.childNodes;"function"!=typeof/./&&"object"!=typeof Int8Array&&"function"!=typeof k&&(T=function(n){return"function"==typeof n||!1});var D=T,R=x("Object"),F=l&&R(new DataView(new ArrayBuffer(8))),V="undefined"!=typeof Map&&R(new Map),P=x("DataView");var q=F?function(n){return null!=n&&D(n.getInt8)&&I(n.buffer)}:P,U=s||x("Array");function W(n,r){return null!=n&&f.call(n,r)}var z=x("Arguments");!function(){z(arguments)||(z=function(n){return W(n,"callee")})}();var L=z;function $(n){return O(n)&&y(n)}function C(n){return function(){return n}}function K(n){return function(r){var t=n(r);return"number"==typeof t&&t>=0&&t<=m}}function J(n){return function(r){return null==r?void 0:r[n]}}var G=J("byteLength"),H=K(G),Q=/\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/;var X=c?function(n){return h?h(n)&&!q(n):H(n)&&Q.test(a.call(n))}:C(!1),Y=J("length");function Z(n,r){r=function(n){for(var r={},t=n.length,e=0;e<t;++e)r[n[e]]=!0;return{contains:function(n){return!0===r[n]},push:function(t){return r[t]=!0,n.push(t)}}}(r);var t=b.length,u=n.constructor,o=D(u)&&u.prototype||e,i="constructor";for(W(n,i)&&!r.contains(i)&&r.push(i);t--;)(i=b[t])in n&&n[i]!==o[i]&&!r.contains(i)&&r.push(i)}function nn(n){if(!_(n))return[];if(p)return p(n);var r=[];for(var t in n)W(n,t)&&r.push(t);return g&&Z(n,r),r}function rn(n,r){var t=nn(r),e=t.length;if(null==n)return!e;for(var u=Object(n),o=0;o<e;o++){var i=t[o];if(r[i]!==u[i]||!(i in u))return!1}return!0}function tn(n){return n instanceof tn?n:this instanceof tn?void(this._wrapped=n):new tn(n)}function en(n){return new Uint8Array(n.buffer||n,n.byteOffset||0,G(n))}tn.VERSION=n,tn.prototype.value=function(){return this._wrapped},tn.prototype.valueOf=tn.prototype.toJSON=tn.prototype.value,tn.prototype.toString=function(){return String(this._wrapped)};var un="[object DataView]";function on(n,r,t,e){if(n===r)return 0!==n||1/n==1/r;if(null==n||null==r)return!1;if(n!=n)return r!=r;var o=typeof n;return("function"===o||"object"===o||"object"==typeof r)&&function n(r,t,e,o){r instanceof tn&&(r=r._wrapped);t instanceof tn&&(t=t._wrapped);var i=a.call(r);if(i!==a.call(t))return!1;if(F&&"[object Object]"==i&&q(r)){if(!q(t))return!1;i=un}switch(i){case"[object RegExp]":case"[object String]":return""+r==""+t;case"[object Number]":return+r!=+r?+t!=+t:0==+r?1/+r==1/t:+r==+t;case"[object Date]":case"[object Boolean]":return+r==+t;case"[object Symbol]":return u.valueOf.call(r)===u.valueOf.call(t);case"[object ArrayBuffer]":case un:return n(en(r),en(t),e,o)}var f="[object Array]"===i;if(!f&&X(r)){if(G(r)!==G(t))return!1;if(r.buffer===t.buffer&&r.byteOffset===t.byteOffset)return!0;f=!0}if(!f){if("object"!=typeof r||"object"!=typeof t)return!1;var c=r.constructor,l=t.constructor;if(c!==l&&!(D(c)&&c instanceof c&&D(l)&&l instanceof l)&&"constructor"in r&&"constructor"in t)return!1}o=o||[];var s=(e=e||[]).length;for(;s--;)if(e[s]===r)return o[s]===t;if(e.push(r),o.push(t),f){if((s=r.length)!==t.length)return!1;for(;s--;)if(!on(r[s],t[s],e,o))return!1}else{var p,v=nn(r);if(s=v.length,nn(t).length!==s)return!1;for(;s--;)if(p=v[s],!W(t,p)||!on(r[p],t[p],e,o))return!1}return e.pop(),o.pop(),!0}(n,r,t,e)}function an(n){if(!_(n))return[];var r=[];for(var t in n)r.push(t);return g&&Z(n,r),r}function fn(n){var r=Y(n);return function(t){if(null==t)return!1;var e=an(t);
vendor: 12,180 bytes, line 33
33if(Y(e))return!1;for(var u=0;u<r;u++)if(!D(t[n[u]]))return!1;return n!==hn||!D(t[cn])}}var cn="forEach",ln="has",sn=["clear","delete"],pn=["get",ln,"set"],vn=sn.concat(cn,pn),hn=sn.concat(pn),yn=["add"].concat(sn,cn,ln),dn=V?fn(vn):x("Map"),gn=V?fn(hn):x("WeakMap"),bn=V?fn(yn):x("Set"),mn=x("WeakSet");function jn(n){for(var r=nn(n),t=r.length,e=Array(t),u=0;u<t;u++)e[u]=n[r[u]];return e}function _n(n){for(var r={},t=nn(n),e=0,u=t.length;e<u;e++)r[n[t[e]]]=t[e];return r}function wn(n){var r=[];for(var t in n)D(n[t])&&r.push(t);return r.sort()}function An(n,r){return function(t){var e=arguments.length;if(r&&(t=Object(t)),e<2||null==t)return t;for(var u=1;u<e;u++)for(var o=arguments[u],i=n(o),a=i.length,f=0;f<a;f++){var c=i[f];r&&void 0!==t[c]||(t[c]=o[c])}return t}}var xn=An(an),Sn=An(nn),On=An(an,!0);function Mn(n){if(!_(n))return{};if(v)return v(n);var r=function(){};r.prototype=n;var t=new r;return r.prototype=null,t}function En(n){return U(n)?n:[n]}function Bn(n){return tn.toPath(n)}function Nn(n,r){for(var t=r.length,e=0;e<t;e++){if(null==n)return;n=n[r[e]]}return t?n:void 0}function In(n,r,t){var e=Nn(n,Bn(r));return w(e)?t:e}function Tn(n){return n}function kn(n){return n=Sn({},n),function(r){return rn(r,n)}}function Dn(n){return n=Bn(n),function(r){return Nn(r,n)}}function Rn(n,r,t){if(void 0===r)return n;switch(null==t?3:t){case 1:return function(t){return n.call(r,t)};case 3:return function(t,e,u){return n.call(r,t,e,u)};case 4:return function(t,e,u,o){return n.call(r,t,e,u,o)}}return function(){return n.apply(r,arguments)}}function Fn(n,r,t){return null==n?Tn:D(n)?Rn(n,r,t):_(n)&&!U(n)?kn(n):Dn(n)}function Vn(n,r){return Fn(n,r,1/0)}function Pn(n,r,t){return tn.iteratee!==Vn?tn.iteratee(n,r):Fn(n,r,t)}function qn(){}function Un(n,r){return null==r&&(r=n,n=0),n+Math.floor(Math.random()*(r-n+1))}tn.toPath=En,tn.iteratee=Vn;var Wn=Date.now||function(){return(new Date).getTime()};function zn(n){var r=function(r){return n[r]},t="(?:"+nn(n).join("|")+")",e=RegExp(t),u=RegExp(t,"g");return function(n){return n=null==n?"":""+n,e.test(n)?n.replace(u,r):n}}var Ln={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},$n=zn(Ln),Cn=zn(_n(Ln)),Kn=tn.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g},Jn=/(.)^/,Gn={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},Hn=/\\|'|\r|\n|\u2028|\u2029/g;function Qn(n){return"\\"+Gn[n]}var Xn=/^\s*(\w|\$)+\s*$/;var Yn=0;function Zn(n,r,t,e,u){if(!(e instanceof r))return n.apply(t,u);var o=Mn(n.prototype),i=n.apply(o,u);return _(i)?i:o}var nr=j((function(n,r){var t=nr.placeholder,e=function(){for(var u=0,o=r.length,i=Array(o),a=0;a<o;a++)i[a]=r[a]===t?arguments[u++]:r[a];for(;u<arguments.length;)i.push(arguments[u++]);return Zn(n,e,this,this,i)};return e}));nr.placeholder=tn;var rr=j((function(n,r,t){if(!D(n))throw new TypeError("Bind must be called on a function");var e=j((function(u){return Zn(n,e,r,this,t.concat(u))}));return e})),tr=K(Y);function er(n,r,t,e){if(e=e||[],r||0===r){if(r<=0)return e.concat(n)}else r=1/0;for(var u=e.length,o=0,i=Y(n);o<i;o++){var a=n[o];if(tr(a)&&(U(a)||L(a)))if(r>1)er(a,r-1,t,e),u=e.length;else for(var f=0,c=a.length;f<c;)e[u++]=a[f++];else t||(e[u++]=a)}return e}var ur=j((function(n,r){var t=(r=er(r,!1,!1)).length;if(t<1)throw new Error("bindAll must be passed function names");for(;t--;){var e=r[t];n[e]=rr(n[e],n)}return n}));var or=j((function(n,r,t){return setTimeout((function(){return n.apply(null,t)}),r)})),ir=nr(or,tn,1);function ar(n){return function(){return!n.apply(this,arguments)}}function fr(n,r){var t;return function(){return--n>0&&(t=r.apply(this,arguments)),n<=1&&(r=null),t}}var cr=nr(fr,2);function lr(n,r,t){r=Pn(r,t);for(var e,u=nn(n),o=0,i=u.length;o<i;o++)if(r(n[e=u[o]],e,n))return e}function sr(n){return function(r,t,e){t=Pn(t,e);for(var u=Y(r),o=n>0?0:u-1;o>=0&&o<u;o+=n)if(t(r[o],o,r))return o;return-1}}var pr=sr(1),vr=sr(-1);function hr(n,r,t,e){for(var u=(t=Pn(t,e,1))(r),o=0,i=Y(n);o<i;){var a=Math.floor((o+i)/2);t(n[a])<u?o=a+1:i=a}return o}function yr(n,r,t){return function(e,u,o){var a=0,f=Y(e);if("number"==typeof o)n>0?a=o>=0?o:Math.max(o+f,a):f=o>=0?Math.min(o+1,f):o+f+1;else if(t&&o&&f)return e[o=t(e,u)]===u?o:-1;if(u!=u)return(o=r(i.call(e,a,f),$))>=0?o+a:-1;for(o=n>0?a:f-1;o>=0&&o<f;o+=n)if(e[o]===u)return o;return-1}}var dr=yr(1,pr,hr),gr=yr(-1,vr);function br(n,r,t){var e=(tr(n)?pr:lr)(n,r,t);if(void 0!==e&&-1!==e)return n[e]}function mr(n,r,t){var e,u;if(r=Rn(r,t),tr(n))for(e=0,u=n.length;e<u;e++)r(n[e],e,n);else{var o=nn(n);for(e=0,u=o.length;e<u;e++)r(n[o[e]],o[e],n)}return n}function jr(n,r,t){r=Pn(r,t);for(var e=!tr(n)&&nn(n),u=(e||n).length,o=Array(u),i=0;i<u;i++){var a=e?e[i]:i;o[i]=r(n[a],a,n)}return o}function _r(n){var r=function(r,t,e,u){var o=!tr(r)&&nn(r),i=(o||r).length,a=n>0?0:i-1;for(u||(e=r[o?o[a]:a],a+=n);a>=0&&a<i;a+=n){var f=o?o[a]:a;e=t(e,r[f],f,r)}return e};return function(n,t,e,u){var o=arguments.length>=3;return r(n,Rn(t,u,4),e,o)}}var wr=_r(1),Ar=_r(-1);function xr(n,r,t){var e=[];return r=Pn(r,t),mr(n,(function(n,t,u){r(n,t,u)&&e.push(n)})),e}function Sr(n,r,t){r=Pn(r,t);for(var e=!tr(n)&&nn(n),u=(e||n).length,o=0;o<u;o++){var i=e?e[o]:o;if(!r(n[i],i,n))return!1}return!0}function Or(n,r,t){r=Pn(r,t);for(var e=!tr(n)&&nn(n),u=(e||n).length,o=0;o<u;o++){var i=e?e[o]:o;if(r(n[i],i,n))return!0}return!1}function Mr(n,r,t,e){return tr(n)||(n=jn(n)),("number"!=typeof t||e)&&(t=0),dr(n,r,t)>=0}var Er=j((function(n,r,t){var e,u;return D(r)?u=r:(r=Bn(r),e=r.slice(0,-1),r=r[r.length-1]),jr(n,(function(n){var o=u;if(!o){if(e&&e.length&&(n=Nn(n,e)),null==n)return;o=n[r]}return null==o?o:o.apply(n,t)}))}));function Br(n,r){return jr(n,Dn(r))}function Nr(n,r,t){var e,u,o=-1/0,i=-1/0;if(null==r||"number"==typeof r&&"object"!=typeof n[0]&&null!=n)for(var a=0,f=(n=tr(n)?n:jn(n)).length;a<f;a++)null!=(e=n[a])&&e>o&&(o=e);else r=Pn(r,t),mr(n,(function(n,t,e){((u=r(n,t,e))>i||u===-1/0&&o===-1/0)&&(o=n,i=u)}));return o}var Ir=/[^\ud800-\udfff]|[\ud800-\udbff][\udc00-\udfff]|[\ud800-\udfff]/g;function Tr(n){return n?U(n)?i.call(n):S(n)?n.match(Ir):tr(n)?jr(n,Tn):jn(n):[]}function kr(n,r,t){if(null==r||t)return tr(n)||(n=jn(n)),n[Un(n.length-1)];var e=Tr(n),u=Y(e);r=Math.max(Math.min(r,u),0);for(var o=u-1,i=0;i<r;i++){var a=Un(i,o),f=e[i];e[i]=e[a],e[a]=f}return e.slice(0,r)}function Dr(n,r){return function(t,e,u){var o=r?[[],[]]:{};return e=Pn(e,u),mr(t,(function(r,u){var i=e(r,u,t);n(o,r,i)})),o}}var Rr=Dr((function(n,r,t){W(n,t)?n[t].push(r):n[t]=[r]})),Fr=Dr((function(n,r,t){n[t]=r})),Vr=Dr((function(n,r,t){W(n,t)?n[t]++:n[t]=1})),Pr=Dr((function(n,r,t){n[t?0:1].push(r)}),!0);function qr(n,r,t){return r in t}var Ur=j((function(n,r){var t={},e=r[0];if(null==n)return t;D(e)?(r.length>1&&(e=Rn(e,r[1])),r=an(n)):(e=qr,r=er(r,!1,!1),n=Object(n));for(var u=0,o=r.length;u<o;u++){var i=r[u],a=n[i];e(a,i,n)&&(t[i]=a)}return t})),Wr=j((function(n,r){var t,e=r[0];return D(e)?(e=ar(e),r.length>1&&(t=r[1])):(r=jr(er(r,!1,!1),String),e=function(n,t){return!Mr(r,t)}),Ur(n,e,t)}));function zr(n,r,t){return i.call(n,0,Math.max(0,n.length-(null==r||t?1:r)))}function Lr(n,r,t){return null==n||n.length<1?null==r||t?void 0:[]:null==r||t?n[0]:zr(n,n.length-r)}function $r(n,r,t){return i.call(n,null==r||t?1:r)}var Cr=j((function(n,r){return r=er(r,!0,!0),xr(n,(function(n){return!Mr(r,n)}))})),Kr=j((function(n,r){return Cr(n,r)}));function Jr(n,r,t,e){A(r)||(e=t,t=r,r=!1),null!=t&&(t=Pn(t,e));for(var u=[],o=[],i=0,a=Y(n);i<a;i++){var f=n[i],c=t?t(f,i,n):f;r&&!t?(i&&o===c||u.push(f),o=c):t?Mr(o,c)||(o.push(c),u.push(f)):Mr(u,f)||u.push(f)}return u}var Gr=j((function(n){return Jr(er(n,!0,!0))}));function Hr(n){for(var r=n&&Nr(n,Y).length||0,t=Array(r),e=0;e<r;e++)t[e]=Br(n,e);return t}var Qr=j(Hr);function Xr(n,r){return n._chain?tn(r).chain():r}function Yr(n){return mr(wn(n),(function(r){var t=tn[r]=n[r];tn.prototype[r]=function(){var n=[this._wrapped];return o.apply(n,arguments),Xr(this,t.apply(tn,n))}})),tn}mr(["pop","push","reverse","shift","sort","splice","unshift"],(function(n){var r=t[n];tn.prototype[n]=function(){var t=this._wrapped;return null!=t&&(r.apply(t,arguments),"shift"!==n&&"splice"!==n||0!==t.length||delete t[0]),Xr(this,t)}})),mr(["concat","join","slice"],(function(n){var r=t[n];tn.prototype[n]=function(){var n=this._wrapped;return null!=n&&(n=r.apply(n,arguments)),Xr(this,n)}}));var Zr=Yr({__proto__:null,VERSION:n,restArguments:j,isObject:_,isNull:function(n){return null===n},isUndefined:w,isBoolean:A,isElement:function(n){return!(!n||1!==n.nodeType)},isString:S,isNumber:O,isDate:M,isRegExp:E,isError:B,isSymbol:N,isArrayBuffer:I,isDataView:q,isArray:U,isFunction:D,isArguments:L,isFinite:function(n){return!N(n)&&d(n)&&!isNaN(parseFloat(n))},isNaN:$,isTypedArray:X,isEmpty:function(n){if(null==n)return!0;var r=Y(n);return"number"==typeof r&&(U(n)||S(n)||L(n))?0===r:0===Y(nn(n))},isMatch:rn,isEqual:function(n,r){return on(n,r)},isMap:dn,isWeakMap:gn,isSet:bn,isWeakSet:mn,keys:nn,allKeys:an,values:jn,pairs:function(n){for(var r=nn(n),t=r.length,e=Array(t),u=0;u<t;u++)e[u]=[r[u],n[r[u]]];return e},invert:_n,functions:wn,methods:wn,extend:xn,extendOwn:Sn,assign:Sn,defaults:On,create:function(n,r){var t=Mn(n);return r&&Sn(t,r),t},clone:function(n){return _(n)?U(n)?n.slice():xn({},n):n},tap:function(n,r){return r(n),n},get:In,has:function(n,r){for(var t=(r=Bn(r)).length,e=0;e<t;e++){var u=r[e];if(!W(n,u))return!1;n=n[u]}return!!t},mapObject:function(n,r,t){r=Pn(r,t);for(var e=nn(n),u=e.length,o={},i=0;i<u;i++){var a=e[i];o[a]=r(n[a],a,n)}return o},identity:Tn,constant:C,noop:qn,toPath:En,property:Dn,propertyOf:function(n){return null==n?qn:function(r){return In(n,r)}},matcher:kn,matches:kn,times:function(n,r,t){var e=Array(Math.max(0,n));r=Rn(r,t,1);for(var u=0;u<n;u++)e[u]=r(u);return e},random:Un,now:Wn,escape:$n,unescape:Cn,templateSettings:Kn,template:function(n,r,t){!r&&t&&(r=t),r=On({},r,tn.templateSettings);var e=RegExp([(r.escape||Jn).source,(r.interpolate||Jn).source,(r.evaluate||Jn).source].join("|")+"|$","g"),u=0,o="__p+='";n.replace(e,(function(r,t,e,i,a){return o+=n.slice(u,a).replace(Hn,Qn),u=a+r.length,t?o+="'+\n((__t=("+t+"))==null?'':_.escape(__t))+\n'":e?o+="'+\n((__t=("+e+"))==null?'':__t)+\n'":i&&(o+="';\n"+i+"\n__p+='"),r})),o+="';\n";var i,a=r.variable;if(a){if(!Xn.test(a))throw new Error("variable is not a bare identifier: "+a)}else o="with(obj||{}){\n"+o+"}\n",a="obj";o="var __t,__p='',__j=Array.prototype.join,"+"print=function(){__p+=__j.call(arguments,'');};\n"+o+"return __p;\n";try{i=new Function(a,"_",o)}catch(n){throw n.source=o,n}var f=function(n){return i.call(this,n,tn)};return f.source="function("+a+"){\n"+o+"}",f},result:function(n,r,t){var e=(r=Bn(r)).length;if(!e)return D(t)?t.call(n):t;for(var u=0;u<e;u++){var o=null==n?void 0:n[r[u]];void 0===o&&(o=t,u=e),n=D(o)?o.call(n):o}return n},uniqueId:function(n){var r=++Yn+"";return n?n+r:r},chain:function(n){var r=tn(n);return r._chain=!0,r},iteratee:Vn,partial:nr,bind:rr,bindAll:ur,memoize:function(n,r){var t=function(e){var u=t.cache,o=""+(r?r.apply(this,arguments):e);return W(u,o)||(u[o]=n.apply(this,arguments)),u[o]};return t.cache={},t},delay:or,defer:ir,throttle:function(n,r,t){var e,u,o,i,a=0;t||(t={});var f=function(){a=!1===t.leading?0:Wn(),e=null,i=n.apply(u,o),e||(u=o=null)},c=function(){var c=Wn();a||!1!==t.leading||(a=c);var l=r-(c-a);return u=this,o=arguments,l<=0||l>r?(e&&(clearTimeout(e),e=null),a=c,i=n.apply(u,o),e||(u=o=null)):e||!1===t.trailing||(e=setTimeout(f,l)),i};return c.cancel=function(){clearTimeout(e),a=0,e=u=o=null},c},debounce:function(n,r,t){var e,u,o,i,a,f=function(){var c=Wn()-u;r>c?e=setTimeout(f,r-c):(e=null,t||(i=n.apply(a,o)),e||(o=a=null))},c=j((function(c){return a=this,o=c,u=Wn(),e||(e=setTimeout(f,r),t&&(i=n.apply(a,o))),i}));return c.cancel=function(){clearTimeout(e),e=o=a=null},c},wrap:function(n,r){return nr(r,n)},negate:ar,compose:function(){var n=arguments,r=n.length-1;return function(){for(var t=r,e=n[r].apply(this,arguments);t--;)e=n[t].call(this,e);return e}},after:function(n,r){return function(){if(--n<1)return r.apply(this,arguments)}}
33,before:fr,once:cr,findKey:lr,findIndex:pr,findLastIndex:vr,sortedIndex:hr,indexOf:dr,lastIndexOf:gr,find:br,detect:br,findWhere:function(n,r){return br(n,kn(r))},each:mr,forEach:mr,map:jr,collect:jr,reduce:wr,foldl:wr,inject:wr,reduceRight:Ar,foldr:Ar,filter:xr,select:xr,reject:function(n,r,t){return xr(n,ar(Pn(r)),t)},every:Sr,all:Sr,some:Or,any:Or,contains:Mr,includes:Mr,include:Mr,invoke:Er,pluck:Br,where:function(n,r){return xr(n,kn(r))},max:Nr,min:function(n,r,t){var e,u,o=1/0,i=1/0;if(null==r||"number"==typeof r&&"object"!=typeof n[0]&&null!=n)for(var a=0,f=(n=tr(n)?n:jn(n)).length;a<f;a++)null!=(e=n[a])&&e<o&&(o=e);else r=Pn(r,t),mr(n,(function(n,t,e){((u=r(n,t,e))<i||u===1/0&&o===1/0)&&(o=n,i=u)}));return o},shuffle:function(n){return kr(n,1/0)},sample:kr,sortBy:function(n,r,t){var e=0;return r=Pn(r,t),Br(jr(n,(function(n,t,u){return{value:n,index:e++,criteria:r(n,t,u)}})).sort((function(n,r){var t=n.criteria,e=r.criteria;if(t!==e){if(t>e||void 0===t)return 1;if(t<e||void 0===e)return-1}return n.index-r.index})),"value")},groupBy:Rr,indexBy:Fr,countBy:Vr,partition:Pr,toArray:Tr,size:function(n){return null==n?0:tr(n)?n.length:nn(n).length},pick:Ur,omit:Wr,first:Lr,head:Lr,take:Lr,initial:zr,last:function(n,r,t){return null==n||n.length<1?null==r||t?void 0:[]:null==r||t?n[n.length-1]:$r(n,Math.max(0,n.length-r))},rest:$r,tail:$r,drop:$r,compact:function(n){return xr(n,Boolean)},flatten:function(n,r){return er(n,r,!1)},without:Kr,uniq:Jr,unique:Jr,union:Gr,intersection:function(n){for(var r=[],t=arguments.length,e=0,u=Y(n);e<u;e++){var o=n[e];if(!Mr(r,o)){var i;for(i=1;i<t&&Mr(arguments[i],o);i++);i===t&&r.push(o)}}return r},difference:Cr,unzip:Hr,transpose:Hr,zip:Qr,object:function(n,r){for(var t={},e=0,u=Y(n);e<u;e++)r?t[n[e]]=r[e]:t[n[e][0]]=n[e][1];return t},range:function(n,r,t){null==r&&(r=n||0,n=0),t||(t=r<n?-1:1);for(var e=Math.max(Math.ceil((r-n)/t),0),u=Array(e),o=0;o<e;o++,n+=t)u[o]=n;return u},chunk:function(n,r){if(null==r||r<1)return[];for(var t=[],e=0,u=n.length;e<u;)t.push(i.call(n,e,e+=r));return t},mixin:Yr,default:tn});return Zr._=Zr,Zr}));; 34/** 35* DO NOT EDIT THIS FILE. 36* See the following change record for more information, 37* https://www.drupal.org/node/2815083 38* @preserve 39**/ 40(function () { 41 var settingsElement = document.querySelector('head > script[type="application/json"][data-drupal-selector="drupal-settings-json"], body > script[type="application/json"][data-drupal-selector="drupal-settings-json"]'); 42 window.drupalSettings = {}; 43 if (settingsElement !== null) { 44 window.drupalSettings = JSON.parse(settingsElement.textContent); 45 } 46})();; 47/** 48* DO NOT EDIT THIS FILE. 49* See the following change record for more information, 50* https://www.drupal.org/node/2815083 51* @preserve 52**/ 53window.Drupal = { 54 behaviors: {}, 55 locale: {} 56}; 57(function (Drupal, drupalSettings, drupalTranslations, console, Proxy, Reflect) { 58 Drupal.throwError = function (error) { 59 setTimeout(function () { 60 throw error; 61 }, 0); 62 }; 63 Drupal.attachBehaviors = function (context, settings) { 64 context = context || document; 65 settings = settings || drupalSettings; 66 var behaviors = Drupal.behaviors; 67 Object.keys(behaviors || {}).forEach(function (i) { 68 if (typeof behaviors[i].attach === 'function') { 69 try { 70 behaviors[i].attach(context, settings); 71 } catch (e) { 72 Drupal.throwError(e); 73 } 74 } 75 }); 76 }; 77 Drupal.detachBehaviors = function (context, settings, trigger) { 78 context = context || document; 79 settings = settings || drupalSettings; 80 trigger = trigger || 'unload'; 81 var behaviors = Drupal.behaviors; 82 Object.keys(behaviors || {}).forEach(function (i) { 83 if (typeof behaviors[i].detach === 'function') { 84 try { 85 behaviors[i].detach(context, settings, trigger); 86 } catch (e) { 87 Drupal.throwError(e); 88 } 89 } 90 }); 91 }; 92 Drupal.checkPlain = function (str) { 93 str = str.toString().replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"').replace(/'/g, '''); 94 return str; 95 }; 96 Drupal.formatString = function (str, args) { 97 var processedArgs = {};
98 Object.keys(args || {}).forEach(function (key) { 99 switch (key.charAt(0)) { 100 case '@': 101 processedArgs[key] = Drupal.checkPlain(args[key]); 102 break; 103 case '!': 104 processedArgs[key] = args[key]; 105 break; 106 default: 107 processedArgs[key] = Drupal.theme('placeholder', args[key]); 108 break; 109 } 110 }); 111 return Drupal.stringReplace(str, processedArgs, null); 112 }; 113 Drupal.stringReplace = function (str, args, keys) { 114 if (str.length === 0) { 115 return str; 116 } 117 if (!Array.isArray(keys)) { 118 keys = Object.keys(args || {}); 119 keys.sort(function (a, b) { 120 return a.length - b.length; 121 }); 122 } 123 if (keys.length === 0) { 124 return str; 125 } 126 var key = keys.pop(); 127 var fragments = str.split(key); 128 if (keys.length) { 129 for (var i = 0; i < fragments.length; i++) { 130 fragments[i] = Drupal.stringReplace(fragments[i], args, keys.slice(0)); 131 } 132 } 133 return fragments.join(args[key]); 134 }; 135 Drupal.t = function (str, args, options) { 136 options = options || {}; 137 options.context = options.context || ''; 138 if (typeof drupalTranslations !== 'undefined' && drupalTranslations.strings && drupalTranslations.strings[options.context] && drupalTranslations.strings[options.context][str]) { 139 str = drupalTranslations.strings[options.context][str]; 140 } 141 if (args) { 142 str = Drupal.formatString(str, args); 143 } 144 return str; 145 }; 146 Drupal.url = function (path) { 147 return drupalSettings.path.baseUrl + drupalSettings.path.pathPrefix + path; 148 }; 149 Drupal.url.toAbsolute = function (url) { 150 var urlParsingNode = document.createElement('a'); 151 try { 152 url = decodeURIComponent(url); 153 } catch (e) {} 154 urlParsingNode.setAttribute('href', url); 155 return urlParsingNode.cloneNode(false).href; 156 }; 157 Drupal.url.isLocal = function (url) { 158 var absoluteUrl = Drupal.url.toAbsolute(url); 159 var protocol = window.location.protocol; 160 if (protocol === 'http:' && absoluteUrl.indexOf('https:') === 0) { 161 protocol = 'https:'; 162 } 163 var baseUrl = "".concat(protocol, "//").concat(window.location.host).concat(drupalSettings.path.baseUrl.slice(0, -1)); 164 try { 165 absoluteUrl = decodeURIComponent(absoluteUrl); 166 } catch (e) {} 167 try { 168 baseUrl = decodeURIComponent(baseUrl); 169 } catch (e) {} 170 return absoluteUrl === baseUrl || absoluteUrl.indexOf("".concat(baseUrl, "/")) === 0; 171 }; 172 Drupal.formatPlural = function (count, singular, plural, args, options) { 173 args = args || {}; 174 args['@count'] = count; 175 var pluralDelimiter = drupalSettings.pluralDelimiter; 176 var translations = Drupal.t(singular + pluralDelimiter + plural, args, options).split(pluralDelimiter); 177 var index = 0; 178 if (typeof drupalTranslations !== 'undefined' && drupalTranslations.pluralFormula) { 179 index = count in drupalTranslations.pluralFormula ? drupalTranslations.pluralFormula[count] : drupalTranslations.pluralFormula.default; 180 } else if (args['@count'] !== 1) { 181 index = 1; 182 } 183 return translations[index]; 184 }; 185 Drupal.encodePath = function (item) { 186 return window.encodeURIComponent(item).replace(/%2F/g, '/'); 187 }; 188 Drupal.deprecationError = function (_ref) { 189 var message = _ref.message; 190 if (drupalSettings.suppressDeprecationErrors === false && typeof console !== 'undefined' && console.warn) { 191 console.warn("[Deprecation] ".concat(message)); 192 } 193 }; 194 Drupal.deprecatedProperty = function (_ref2) { 195 var target = _ref2.target, 196 deprecatedProperty = _ref2.deprecatedProperty, 197 message = _ref2.message; 198 if (!Proxy || !Reflect) { 199 return target; 200 } 201 return new Proxy(target, { 202 get: function get(target, key) { 203 if (key === deprecatedProperty) { 204 Drupal.deprecationError({ 205 message: message 206 }); 207 } 208 for (var _len = arguments.length, rest = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) { 209 rest[_key - 2] = arguments[_key]; 210 } 211 return Reflect.get.apply(Reflect, [target, key].concat(rest)); 212 } 213 }); 214 }; 215 Drupal.theme = function (func) { 216 if (func in Drupal.theme) { 217 var _Drupal$theme; 218 for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { 219 args[_key2 - 1] = arguments[_key2]; 220 }
221 return (_Drupal$theme = Drupal.theme)[func].apply(_Drupal$theme, args); 222 } 223 }; 224 Drupal.theme.placeholder = function (str) { 225 return "<em class=\"placeholder\">".concat(Drupal.checkPlain(str), "</em>"); 226 }; 227})(Drupal, window.drupalSettings, window.drupalTranslations, window.console, window.Proxy, window.Reflect);; 228/** 229* DO NOT EDIT THIS FILE. 230* See the following change record for more information, 231* https://www.drupal.org/node/2815083 232* @preserve 233**/ 234if (window.jQuery) { 235 jQuery.noConflict(); 236} 237document.documentElement.className += ' js'; 238(function (Drupal, drupalSettings) { 239 var domReady = function domReady(callback) { 240 var listener = function listener() { 241 callback(); 242 document.removeEventListener('DOMContentLoaded', listener); 243 }; 244 if (document.readyState !== 'loading') { 245 setTimeout(callback, 0); 246 } else { 247 document.addEventListener('DOMContentLoaded', listener); 248 } 249 }; 250 domReady(function () { 251 Drupal.attachBehaviors(document, drupalSettings); 252 }); 253})(Drupal, window.drupalSettings);; 254/** 255* DO NOT EDIT THIS FILE. 256* See the following change record for more information, 257* https://www.drupal.org/node/2815083 258* @preserve 259**/ 260Drupal.debounce = function (func, wait, immediate) { 261 var timeout; 262 var result; 263 return function () { 264 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { 265 args[_key] = arguments[_key]; 266 } 267 var context = this; 268 var later = function later() { 269 timeout = null; 270 if (!immediate) { 271 result = func.apply(context, args); 272 } 273 }; 274 var callNow = immediate && !timeout; 275 clearTimeout(timeout); 276 timeout = setTimeout(later, wait); 277 if (callNow) { 278 result = func.apply(context, args); 279 } 280 return result; 281 }; 282};; 283!function(o,i){"use strict";var s=Object.assign,u=Array.prototype,e=Object.prototype,c=e.toString,n=u.splice,r=u.some,t="undefined"!=typeof Symbol&&Symbol,f="jQuery"in o,a="cash"in o,d="add",l="remove",p="has",h="get",m="set",v="width",y="clientWidth",g="scroll",b="iterator",E="Observer",w=/-([a-z])/g,C=/^--/,S=/[\11\12\14\15\40]+/,O="data-once",x=o.localStorage,j={},z=Math.pow(2,53)-1,L=(A.prototype.init=function(n,t){t=new A(n,t);return F(n)?(n.idblazy||(n.idblazy=t),n.idblazy):t},A);function A(n,t){if(this.name="dblazy",n){if(H(n))return n;var e=n;if(J(n)){if(!(e=vn(xn(t),n)).length)return}else if(Q(n))return this.ready(n);!e.nodeType&&e!==o||(e=[e]);for(var r=this.length=e.length,i=0;i<r;i++)this[i]=e[i]}}var I=L.prototype,N=I.init;function T(n){var t=this,e=(t=H(t)?t:N(t)).length;return Q(n)&&(e&&1!==e?t.each(n):n(t[0],0)),t}function M(n){var t="[object "+n+"]";return function(n){return c.call(n)===t}}(N.fn=N.prototype=I).length=0,I.splice=n,t&&(I[t[b]]=u[t[b]]);var P,W,R=(P="length",function(n){return U(n)?void 0:n[P]}),k=(W=R,function(n){n=W(n);return"number"==typeof n&&0<=n&&n<=z});function q(n){return _(n)?Object.keys(n):[]}function H(n){return n instanceof L}function B(n){return!J(n)&&(n&&(Array.isArray(n)||k(n)))}function D(n){return!0===n||!1===n||"[object Boolean]"===c.call(n)}function F(n){return n&&n instanceof Element}var Q=M("Function");function $(n){if(U(n)||G(n)||!1===n)return!0;var t=R(n);return"number"==typeof t&&(B(n)||J(n))?0===t:0===R(q(n))}function U(n){return null===n}function V(n){return!isNaN(parseFloat(n))&&isFinite(n)}function _(n){if(!n||"object"!=typeof n)return!1;n=Object.getPrototypeOf(n);return U(n)||n===e}function J(n){return n&&"string"==typeof n}function G(n){return void 0===n}function K(n){return!!n&&n===n.window}function X(n){return-1!==[9,11].indexOf(!!n&&n.nodeType)}function Y(n){return-1!==[1,9,11].indexOf(!!n&&n.nodeType)}function Z(n){return Y(n)||K(n)}function nn(n,t,e){if(Q(n)||J(n)||D(n)||V(n))return[];if(B(n)&&!G(n.length)){var r=n.length;if(!r||1===r&&" "===n[0])return[]}if(_(n)&&$(n))return[];if("[object Object]"===c.call(n)){for(var i in n)if(tn(n,i)&&"length"!==i&&"name"!==i&&!1===t.call(e,n[i],i,n))break}else n&&(n instanceof HTMLCollection&&(n=u.slice.call(n)),(r=n.length)&&1===r&&!G(n[0])?t.call(e,n[0],0,n):n.forEach(t,e));return n}function tn(n,t){return e.hasOwnProperty.call(n,t)}function en(n){return B(n)?n:[n]}function rn(n,t,e,r){return n[t+"Attribute"](e,r)}function on(n,t,r,e){var i=this,o=G(r),u=!_(t)&&(o||D(e)),c=J(e)?e:"";if(u){e=n&&n.length?n[0]:n;return o&&(r=""),un(e,t)?rn(e,h,t):r}return T.call(n,function(e){if(!Y(e))return u?"":i;_(t)?nn(t,function(n,t){rn(e,m,c+t,n)}):U(r)?nn(en(t),function(n){n=c+n;un(e,n)&&rn(e,l,n)}):"src"===t?e.src=r:rn(e,m,t,r)})}function un(n,t){return Y(n)&&rn(n,p,t)}function cn(n,r,i){return T.call(n,function(n,t){var e;Y(n)&&(e=n.classList,Q(r)&&(r=r(rn(n,h,"class"),t)),e&&J(r)&&(t=r.trim().split(" "),G(i)?t.map(function(n){e.toggle(n)}):e[i].apply(e,t)))})}function fn(t,n){var e=0;return F(t)&&F(n)?t!==n&&t.contains(n):B(t)?-1!==t.indexOf(n):(J(t)&&nn(en(n),function(n){-1!==t.indexOf(n)&&e++}),0<e)}function an(n){return n.replace(/[.*+\-?^${}()|[\]\\]/g,"\\$&")}function ln(t,n){var e=0;return J(t)&&nn(en(n),function(n){t.startsWith(n)&&e++}),0<e}function sn(n){return n.replace(/\\s+/g," ").trim()}function dn(n,t){return F(n)&&J(t)?n.closest(t):null}function pn(n,t){return!!F(n)&&(J(t)?n.matches(t):F(t)&&n===t)}function hn(t,n){return!(!t||!t.nodeName)&&r.call(en(n),function(n){return t.nodeName.toLowerCase()===n.toLowerCase()})}function mn(n,t,e){if(Y(n))return J(t)&&ln(t,">")&&(fn(t,":scope")||(t=":scope "+t)),G(e)&&J(t)?n.querySelector(t)||[]:function(n,t){var e=en(n);{var r;J(n)&&(r=(t=xn(t)).querySelector(n),e=U(r)?[]:t.querySelectorAll(n))}return u.slice.call(e)}(t,n);return[]}function vn(n,t){return mn(n,t,1)}function yn(n){return F(n)&&n.currentStyle||!G(i.documentMode)}function gn(){return o.devicePixelRatio||1}function bn(){return o.innerWidth||i.documentElement[y]||o.screen[v]}function En(n,t,e,r,i,o){return Sn(n,t,e,r,i,o,d)}function wn(n,t,e,r,i,o){return Sn(n,t,e,r,i,o,l)}function Cn(n){return n.decoded||n.complete}function Sn(n,t,e,c,r,f,a){var i,o=c,l=yn();c=J(e)?(i=fn(t,["touchstart",g,"wheel"]),G(r)&&(r=!l&&{capture:!i,passive:i}),function(n){var t=n.target;if(pn(t,e))o.call(t,n);else for(;t&&t!==this;){if(pn(t,e)){o.call(t,n);break}t=t.parentElement||t.parentNode}}):(f=r,r=o,e);return T.call(n,function(i){var o,u;Z(i)&&(o=!1,u=r||!1,_(r)&&(u=s({capture:!1,passive:!0},r),o=u.once||!1),nn(t.trim().split(" "),function(n){f=f||ln(n,["blazy.","bio."]);
283var t=a===d,e=(f?n:n.split(".")[0]).trim(),r=c=c||j[n];Q(c)&&(o&&t&&l&&(t=!(c=function n(){i.removeEventListener(e,n,u),r.apply(this,arguments)})),i[a+"EventListener"](e,c,u)),t?j[n]=c:delete j[n]}))})}function On(n){function t(){return setTimeout(n,0,N)}return"loading"!==i.readyState?t():i.addEventListener("DOMContentLoaded",t),this}function xn(n){return J(n=n||i)&&(n=pn(n,"html")?i:i.querySelector(n)),pn(n,"html")&&(n=i),Y(n=jn(n))&&n.children&&n.children.length||X(n)?n:i}function jn(n){var t=f&&n instanceof o.jQuery,e=a&&n instanceof o.cash;return n&&(H(n)||t||e)?n[0]:n}function zn(n){return C.test(n)}function Ln(n,t,e){if(F(n)){var r=n[e];if(G(t))return r;for(;r;){if(pn(r,t)||hn(r,t))return r;r=r[e]}}return null}function An(n,t){return Ln(n,t,"parentElement")}function In(n,t,e){return Ln(n,t,e+"ElementSibling")}function Nn(n,t){return In(n,t,"previous")}function Tn(e,n,r){return n.filter(function(n){var t=pn(n,e);return t&&r&&r(n),t})}function Mn(n,t){return vn(xn(t),n)}function Pn(n){return"["+O+'~="'+n+'"]'}function Wn(n,t){var e=t.add,r=t.remove,i=[];un(n,O)&&nn(on(n,O).trim().split(S),function(n){fn(i,n)||n===r||i.push(n)}),e&&!fn(i,e)&&i.push(e);e=i.join(" ");rn(n,""===e?l:m,O,e)}function Rn(n,t){return Mn(n?Pn(n):"["+O+"]",t)}N.isTag=M,N.isArr=B,N.isBool=D,N.isDoc=X,N.isElm=F,N.isFun=Q,N.isEmpty=$,N.isNull=U,N.isNum=V,N.isObj=_,N.isStr=J,N.isUnd=G,N.isEvt=Z,N.isQsa=Y,N.isIo="Intersection"+E in o,N.isMo="Mutation"+E in o,N.isRo="Resize"+E in o,N.isNativeLazy="loading"in HTMLImageElement.prototype,N.isAmd="function"==typeof define&&define.amd,N.isWin=K,N._er=-1,N._ok=1,N.chain=function(n,t){return T.call(n,t)},N.each=nn,N.extend=s,I.extend=function(n,t){return(t=t||!1)?s(n,I):s(I,n)},N.hasProp=tn,N.parse=function(n){try{return 0===n.length||"1"===n?{}:JSON.parse(n)}catch(n){return{}}},N.toArray=en,N.hasAttr=un,N.attr=on.bind(N),N.removeAttr=function(n,t,e){return on(n,t,null,e||"")}.bind(N),N.hasClass=function(e,n){var r,i=0;return Y(e)&&J(n)&&(n=n.trim(),r=e.classList,nn(n.trim().split(" "),function(n){var t;r&&r.contains(n)&&i++,0!==i||(t=on(e,"class"))&&t.match(n)&&i++})),0<i},N.toggleClass=cn,N.addClass=function(n,t){return cn(n,t,d)},N.removeClass=function(n,t){return cn(n,t,l)},N.contains=fn,N.escape=an,N.startsWith=ln,N.trimSpaces=sn,N.closest=dn,N.is=pn,N.equal=hn,N.find=mn,N.findAll=vn,N.remove=function(n){var t;!F(n)||(t=An(n))&&t.removeChild(n)},N.ie=yn,N.pixelRatio=gn,N.windowWidth=bn,N.windowSize=function(){return{width:bn(),height:o.innerHeight||i.documentElement.clientHeight}},N.activeWidth=function(t,n){var e=n.up||!1,r=q(t),i=r[0],o=r[r.length-1],u=n.ww||bn(),n=u*gn(),c=e?u:n;return G(r=r.filter(function(n){return e?parseInt(n,10)<=c:parseInt(n,10)>=c}).map(function(n){return t[n]})[e?"pop":"shift"]())?t[o<=c?o:i]:r},N.toEvent=Sn,N.on=En,N.off=wn,N.one=function(n,t,e,r){return En(n,t,e,{once:!0},r)},N.trigger=function(n,e,r,i){return T.call(n,function(n){var t;return Z(n)&&(t=G(r)?new Event(e):(t={bubbles:!0,cancelable:!0,detail:r||{}},_(i)&&(t=s(t,i)),new CustomEvent(e,t)),n.dispatchEvent(t)),t})},N.isDecoded=Cn,N.ready=On.bind(N),N.decode=function(e){return Cn(e)?Promise.resolve(e):"decode"in e?(e.decoding="async",e.decode()):new Promise(function(n,t){e.onload=function(){n(e)},e.onerror=t()})},N.once=function(n,t,e,r){var i,o=[];return J(n)?Rn(n,t):(G(e)||(o=Tn(":not("+Pn(i=t)+")",Mn(e,r),function(n){Wn(n,{add:i})})).length&&nn(o,n),o)},N.throttle=function(t,e,r){e=e||50;var i=0;return function(){var n=+new Date;n-i<e||(i=n,t.apply(r,arguments))}},N.resize=function(t,e){return o.onresize=function(n){clearTimeout(e),e=setTimeout(t.bind(n),200)},t},N.template=function(n,t){for(var e in t)tn(t,e)&&(n=n.replace(new RegExp(an("$"+e),"g"),t[e]));return sn(n)},N.context=xn,N.toElm=jn,N.camelCase=function(n){return n.replace(w,function(n,t){return t.toUpperCase()})},N.isVar=zn,N.computeStyle=function(n,t,e){if(F(n)){var r=getComputedStyle(n,null);return G(t)?r:e||zn(t)?r.getPropertyValue(t)||null:r[t]||n.style[t]}},N.rect=function(n){return F(n)?n.getBoundingClientRect():{}},N.empty=function(n){return T.call(n,function(n){if(F(n))for(;n.firstChild;)n.removeChild(n.firstChild)})},N.parent=An,N.next=function(n,t){return In(n,t,"next")},N.prev=Nn,N.index=function(t,n){var e=0;if(F(t))for(G(n)||nn(en(n),function(n){n=dn(t,n);if(F(n))return t=n,!1});!U(t=Nn(t));)e++;return e},N.keys=q,N.create=function(n,t,e){var r=i.createElement(n);return(J(t)||_(t))&&(J(t)?r.className=t:on(r,t)),e&&(e=e.trim(),r.innerHTML=e,"template"===n&&(r=r.content.firstChild||r)),r},N.storage=function(t,e,n,r){if(x){if(G(e))return x.getItem(t);if(U(e))x.removeItem(t);else try{x.setItem(t,e)}catch(n){x.removeItem(t),r&&x.setItem(t,e)}}return n||!1},E={chain:function(n){return T.call(this,n)},each:function(n){return nn(this,n)},ready:function(n){return On.call(this,n)}}
283,I.extend(E),N.matches=pn,N.forEach=nn,N.bindEvent=En.bind(N),N.unbindEvent=wn.bind(N),N.filter=Tn,N.once.find||(N.once.find=Rn,N.once.filter=function(n,t,e){return Tn(Pn(n),Mn(t,e))},N.once.remove=function(t,n,e){return Tn(Pn(t),Mn(n,e),function(n){Wn(n,{remove:t})})},N.once.removeSafely=function(n,t,e){var r=o.jQuery;this.find(n,e).length&&this.remove(n,t,e),f&&r&&r.fn&&Q(r.fn.removeOnce)&&r(t,xn(e)).removeOnce(n)}),"undefined"!=typeof exports?module.exports=N:o.dBlazy=N}(this,this.document); 284; 285!function(i){"use strict";function r(t,n,a){return i.chain(t,function(e){i.isElm(e)&&i.each(i.toArray(n),function(t){var n,r="data-"+t;i.hasAttr(e,r)&&((n=i.attr(e,r))&&n.length&&i.attr(e,t,n),a&&i.removeAttr(e,r))})})}function e(t,a,u,c){i.isUnd(c)&&(c=!0);return i.chain(t,function(t){var n,r,e;i.isElm(t)&&(n=t.parentNode,r=i.equal(n,"picture"),e=null,c?e=r?n:t:r&&(e=n),i.isElm(e)&&(e=e.getElementsByTagName("source"),a=a||(r?"srcset":"src"),e.length&&i(e).mapAttr(a,u)))})}i.mapAttr=r,i.fn.mapAttr=function(t,n){return r(this,t,n)},i.mapSource=e,i.fn.mapSource=function(t,n,r){return e(this,t,n,r)}}(dBlazy); 286; 287!function(n,o,r){"use strict";function i(t){t=t||0;var i=n.windowSize();return{top:0-t,left:0-t,bottom:i.height+t,right:i.width+t}}n.ww=0,n.vp={top:0,right:0,bottom:0,left:0},n.isVisible=function(t,i){var e=t.target||t;return n.isIo?t.isIntersecting||0<t.intersectionRatio:(e=e,i=i,(e=n.isElm(e)?n.rect(e):e).right>=i.left&&e.bottom>=i.top&&e.left<=i.right&&e.top<=i.bottom)},n.isResized=function(t,i){return!!i.contentRect||!!t.resizeTrigger||!1},n.viewport=i,n.windowData=function(t,i){var e=this,n=t.offset||100,o=t.mobileFirst||!1;return i&&e.initViewport(t),e.ww=e.vp.right-n,{vp:e.vp,ww:e.ww,up:o}},n.initViewport=function(t){return this.vp=i(t.offset),this.vp},n.updateViewport=function(t){var i=this,e=t.offset;return i.vp.bottom=(o.innerHeight||r.documentElement.clientHeight)+e,i.vp.right=(o.innerWidth||r.documentElement.clientWidth)+e,i.windowData(t)}}(dBlazy,this,this.document); 288; 289!function(c,n){"use strict";var t=Array.prototype.some,u="remove",h="width",l="height",e="after",r="before",i="begin",o="Top",s="Left",f="Height",a="scroll";function d(t,n,r){var i=this,e=c.isUnd(r),u=c.isObj(n),o=!u&&e;if(o&&c.isStr(n)){var s=t&&t.length?t[0]:t,f=[h,l,"top","right","bottom","left"],e=c.computeStyle(s,n),s=c.isNum(e)?parseInt(e,2):e;return-1===f.indexOf(n)?e:s}return c.chain(t,function(e){if(!c.isElm(e))return o?"":i;function t(t,n){c.isFun(t)&&(t=t()),(c.contains(n,"-")||c.isVar(n))&&(n=c.camelCase(n)),e.style[n]=c.isStr(t)?t:t+"px"}u?c.each(n,t):c.isNull(r)?c.each(c.toArray(n),function(t){e.style.removeProperty(t)}):c.isStr(n)&&t(r,n)})}function p(t){t=c.rect(t);return{top:(t.top||0)+n.body[a+o],left:(t.left||0)+n.body[a+s]}}function m(t,n){return d(t,h,n)}function g(t,n){return d(t,l,n)}function v(t,n,e){var r,i=0;return c.isElm(t)&&(i=t["offset"+e],n&&(r=c.computeStyle(t),t=function(t){return parseInt(r["margin"+t],2)},i+=e===f?t(o)+t("Bottom"):t(s)+t("Right"))),i}function y(t,n){return v(t,n,"Width")}function A(t,n){return v(t,n,f)}function C(t,n,e){c.isElm(t)&&t["insertAdjacent"+(c.isElm(n)?"Element":"HTML")](e,n)}function b(t,n){C(t,n,e+"end")}function x(t,n){C(t,n,r+i)}function S(t,n){C(t,n,r+"end")}function E(t,n){C(t,n,e+i)}function H(t,n){c.isUnd(n)&&(n=!0);return c.chain(t,function(t){return c.isElm(t)&&t.cloneNode(n)})}var N={css:function(t,n){return d(this,t,n)},hasAttr:function(n){return t.call(this,function(t){return c.hasAttr(t,n)})},attr:function(t,n,e){return c.isNull(n)?this.removeAttr(t,e):c.attr(this,t,n,e)},removeAttr:function(t,n){return c.removeAttr(this,t,n)},hasClass:function(n){return t.call(this,function(t){return c.hasClass(t,n)})},toggleClass:function(t,n){return c.toggleClass(this,t,n)},addClass:function(t){return this.toggleClass(t,"add")},removeClass:function(t){return arguments.length?this.toggleClass(t,u):this.attr("class","")},empty:function(){return c.empty(this)},first:function(t){return c.isUnd(t)?this[0]:t},after:function(t){return b(this[0],t)},before:function(t){return x(this[0],t)},append:function(t){return S(this[0],t)},prepend:function(t){return E(this[0],t)},remove:function(){this.each(c.remove)},closest:function(t){return c.closest(this[0],t)},equal:function(t){return c.equal(this[0],t)},find:function(t,n){return c.find(this[0],t,n)},findAll:function(t){return c.findAll(this[0],t)},clone:function(t){return H(this,t)},computeStyle:function(t){return c.computeStyle(this[0],t)},offset:function(){return p(this[0])},parent:function(t){return c.parent(this[0],t)},prev:function(t){return c.prev(this[0],t)},next:function(t){return c.next(this[0],t)},index:function(t){return c.index(this[0],t)},width:function(t){return m(this[0],t)},height:function(t){return g(this[0],t)},outerWidth:function(t){return y(this[0],t)},outerHeight:function(t){return A(this[0],t)},on:function(t,n,e,r,i){return c.on(this,t,n,e,r,i,"add")},off:function(t,n,e,r,i){return c.off(this,t,n,e,r,i,u)},one:function(t,n,e){return c.one(this,t,n,e)},trigger:function(t,n,e){return c.trigger(this,t,n,e)}};c.fn.extend(N),c.css=d,c.offset=p,c.clone=H,c.after=b,c.before=x,c.append=S,c.prepend=E,c.width=m,c.height=g,c.outerWidth=y,c.outerHeight=A}(dBlazy,this.document); 290; 291!function(l,n,s){"use strict";var d="blazy",f=0,g="data-",r=g+"animation",m="src",b=["srcset",m],t="b-bg";function i(s,e){return s=s.target||s,l.hasClass(s,e)}l._defaults={error:!1,offset:100,root:s,success:!1,selector:".b-lazy",separator:"|",container:!1,containerClass:!1,errorClass:"b-error",loadInvisible:!1,successClass:"b-loaded",visibleClass:!1,validateDelay:25,saveViewportOffsetDelay:50,srcset:"data-srcset",src:"data-src",bgClass:t,isMedia:!1,parent:".media",disconnect:!1,intersecting:!1,observing:!1,resizing:!1,mobileFirst:!1,rootMargin:"0px",threshold:[0]}
291,l.isCompleted=function(s){if(l.isElm(s)){if(l.equal(s,"img"))return l.isDecoded(s);if(l.equal(s,"iframe"))return"complete"===(s.contentDocument||s.contentWindow.document).readyState}return!1},l.isBg=function(s,e){return i(s,e&&e.bgClass||t)},l.isBlur=function(s){return i(s,"b-blur")},l.selector=function(s,e){var r=s.selector;return e&&l.isBool(e)&&(e=":not(."+s.successClass+")"),r+(e=e||"")},l.success=function(s,e,r,t){return l.isFun(t.success)&&t.success(s,e,r,t),0<f&&f--,f},l.error=function(s,e,r,t){return l.isFun(t.error)&&t.error(s,e,r,t),++f},l.status=function(s,e,r){return this.loaded(s,e,null,r)},l.loaded=function(s,e,r,t){var n=l.closest(s,t.parent)||s,i=e===l._ok||!0===e,a=t.successClass,o=t.errorClass,c="is-"+a,u="is-"+o;return r=r||n,l.addClass(s,i?a:o),l.addClass(n,i?c:u),l.removeClass(n,"is-b-visible"),f=this[i?"success":"error"](s,e,r,t),i&&l.hasAttr(s,g+m)&&l.removeAttr(s,b,g),l.trigger(s,d+".loaded",{status:e}),f},l.loadVideo=function(s,e,r){return l.mapSource(s,m,!0),s.load(),l.status(s,e,r)},l.onresizing=function(s,e){var r=s.elms,t=s.options;l.isFun(t.resizing)&&t.resizing(s,r,e),l.trigger(n,d+".resizing",{winData:e,entries:r})},l.aniElement=function(s){var e=l.closest(s,"["+r+"]");return l.hasAttr(s,r)&&!l.isElm(e)&&(e=s),e}}(dBlazy,this,this.document); 292; 293!function(l,s){"use strict";l.enqueue=function(n,e,r){l.each(n,e.bind(r)),n.length=0},l.initObserver=function(r,n,e,i){var t,o=r.options||{},a=r._queue||[],s="windowData"in r?r.windowData():{},u={rootMargin:o.rootMargin||"0px",threshold:o.threshold||0};function c(n){var e;return a.length||(e=requestAnimationFrame(h),r._raf.push(e)),a.push(n),!1}function h(){l.enqueue(a,n,r)}e=l.toArray(e),i&&(r.ioObserver=l.isIo?new IntersectionObserver(c,u):n.call(r,e));return r.roObserver=function(){return t=this,s=l.isUnd(s.ww)?l.windowData(o,!0):r.windowData(),l.isRo?new ResizeObserver(c):n.call(r,e)}(),r.resizeTrigger=t,s},l.observe=function(n,r,e){function i(e){e&&r&&r.length&&l.each(r,function(n){e.observe(n)})}var t=n.options||{},o=n.ioObserver,a=n.roObserver;return l.isIo&&(o||a)?(e&&i(o),i(a)):"Blazy"in s&&(n.bLazy=new Blazy(t)),n},l.unload=function(n){n=n._raf;n&&n.length&&l.each(n,function(n){cancelAnimationFrame(n)})}}(dBlazy,this); 294; 295!function(c){"use strict";function n(n){return c.chain(n,function(n){var s="loading",n=[n,c.closest(n,".is-"+s),c.closest(n,'[class*="'+s+'"]')];c.each(n,function(n){var a;c.isElm(n)&&(a=n.className,c.contains(a,s)&&(n.className=a.replace(/(\S+)loading/g,"")))})})}c.unloading=n,c.fn.unloading=function(){return n(this)}}(dBlazy); 296; 297!function(c,t,s){"use strict";var r,p,o,l,d,n;function e(){var t=!0;if(n){var e=c.storage(r);if(!c.isNull(e))return"true"===e;t=c.isUnd(n._.supportsType(l)),c.storage(r,t)}return t}function i(t){var e=s.importNode(t,!0),r=[],n=[],i=c.attr(e,p),t=c.attr(e,"srcset");return!(!t.length&&!i.length||!(t=t.length?t:i).length||(c.each(t.split(","),function(t){(c.contains(t,".webp")?r:n).push(t)}),!r.length))&&function(t,e,r,n){if(!c.isElm(t))return!1;var i=c.create(o),s=c.create(d),a=c.attr(t,"sizes"),u=e.join(",").trim(),e=r.join(",").trim(),r=c.find(i,d);return c.isElm(r)||(n?(c.attr(s,p,u),c.attr(t,p,e)):(s.srcset=u,t.srcset=e),a&&(s.sizes=a),s.type=l,c.append(i,s),c.append(i,t)),i}(e,r,n,i.length)}c.webp||(r="bwebp",p="data-srcset",o="picture",l="image/webp",d="source",n=t.picturefill,c.webp={isSupported:e,run:function(t){!e()&&t.length&&c.each(t,function(t){var e=c.equal(t,"img"),r=c.closest(t,o);e&&c.isNull(r)&&(e=c.closest(t,".media")||t.parentNode,(r=i(t))&&(c.append(e,r),c.remove(t)))})}})}(dBlazy,this,this.document); 298; 299!function(e,n,i){"use strict";e.debounce=function(c,t,e,i){n.debounce(function(){c.call(e,t)},i||201,!0)},e.matchMedia=function(c,t){return!!i.matchMedia&&(e.isUnd(t)&&(t="max"),i.matchMedia("("+t+"-device-width: "+c+")").matches)}}(dBlazy,Drupal,this); 300; 301!function(t,e){"use strict";var o="Blazy",s=t.dBlazy;s.isAmd?define([o,s,t],e):"object"==typeof exports?module.exports=e(o,s,t):t.Blazy=e(o,s,t)}(this,function(f,u,o){"use strict";
301var d,v,n=document,g="srcset",i={},r={},p={};return function(t){var s=this;s.name=f,s.options=i=u.extend(u._defaults,t||{}),s.options.container=!!i.containerClass&&u.findAll(n,i.containerClass),s.destroyed=!0;t=s._util={};return i=s.options,d=i.src||"data-src",v=1<u.pixelRatio(),u.initViewport(i),s.windowData=function(){return u.isUnd(p.vp)?u.windowData(i,!0):p},s.revalidate=function(){e(s)},s.load=function(t,e){var o=s.options;t&&u.isUnd(t.length)?l(t,e,o):u.each(t,function(t){l(t,e,o)})},s.destroy=function(){var e=s._util;i.container&&u.each(i.container,function(t){u.off(t,"scroll."+f,e.validateT)}),u.off(o,"scroll."+f,e.validateT),u.off(o,"resize."+f,e.validateT),u.off(o,"resize."+f,e.saveViewportOffsetT),s.count=0,s.elms.length=0,s.destroyed=!0},t.validateT=u.throttle(function(){a(s)},i.validateDelay,s),t.saveViewportOffsetT=u.throttle(function(){c(i),u.onresizing(s,p)},i.saveViewportOffsetDelay,s),c(i),setTimeout(function(){e(s)}),s};function e(t){var e=t._util;t.elms=u.findAll(i.root||n,u.selector(i)),t.count=t.elms.length,t.destroyed&&(t.destroyed=!1,i.container&&u.each(i.container,function(t){u.on(t,"scroll."+f,e.validateT)}),u.on(o,"resize."+f,e.saveViewportOffsetT),u.on(o,"resize."+f,e.validateT),u.on(o,"scroll."+f,e.validateT)),a(t)}function a(t){for(var e=0;e<t.count;e++){var o=t.elms[e];(function(t,e){var o=u.rect(t);if(e.container){var s=u.closest(t,e.containerClass);if(s){var n=u.rect(s);if(u.isVisible(n,r)){var i=n.top-e.offset,t=n.right+e.offset,s=n.bottom+e.offset,e=n.left-e.offset,e={top:i>r.top?i:r.top,right:t<r.right?t:r.right,bottom:s<r.bottom?s:r.bottom,left:e>r.left?e:r.left};return u.isVisible(o,e)}return!1}}return u.isVisible(o,r)}(o,t.options)||u.hasClass(o,t.options.successClass))&&(t.load(o),t.elms.splice(e,1),t.count--,e--)}0===t.count&&t.destroy()}function l(t,e,o){var s,n,i,r,a,l,c;!u.hasClass(t,o.successClass)&&(e||o.loadInvisible||0<t.offsetWidth&&0<t.offsetHeight)&&((c=u.attr(t,d)||u.attr(t,o.src))?(e=c.split(o.separator),s=e[v&&1<e.length?1:0],n=u.attr(t,o.srcset),c=u.isBg(t,o),i=u.equal(t,"img"),e=t.parentNode,r=u.equal(e,"picture"),a=u.ie(t),l=a&&t.currentStyle["object-fit"],i||c?(c=new Image,r&&(c=t,u.each(e.getElementsByTagName("source"),function(t){h(t,g,o.srcset)})),u.one(c,"error."+f,function(){u.status(t,!1,o)}),u.one(c,"load."+f,function(){i?r||(w(t,s,n,l),l&&(t.style.backgroundImage='url("'+s+'")')):(l=a,u.isFun(u.bgUrl)?(s=u.bgUrl(t,p),u.bg(t,p)):t.style.backgroundImage='url("'+s+'")'),m(t,o)}),w(c,s,n,l)):(t.src=s,m(t,o))):u.equal(t,"video")?(u.each(t.getElementsByTagName("source"),function(t){h(t,"src",o.src)}),t.load(),m(t,o)):(o.error&&o.error(t,"missing"),u.addClass(t,o.errorClass)))}function m(t,e){u.status(t,!0,e)}function h(t,e,o){var s=u.attr(t,o);s&&(u.attr(t,e,s),u.removeAttr(t,o))}function w(t,e,o,s){o&&u.attr(t,g,o),s?(u.addClass(t,"is-b-ie"),t.src="data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%20"+(t.width||1)+"%20"+(t.height||1)+"'%2F%3E"):t.src=e}function c(t){p=u.updateViewport(t),r=u.vp}}); 302; 303!function(e,i){"use strict";var s="Bio",t=e.dBlazy;t.isAmd?define([s,t,e],i):"object"==typeof exports?module.exports=i(s,t):e[s]=i(s,t)}(this||module||{},function(s,f,e){"use strict";f.isAmd&&window;var t,o=document,n=o,v={}
303,r=0,p=0,d=0,a=0,u="b-bg",b=".media",h="addClass",y="removeClass",c=!1,l=25,m=i.prototype;function i(e){var i=f.extend({},m,this);return i.name=s,i.options=t=f.extend({},f._defaults,e||{}),u=t.bgClass||u,l=t.validateDelay||l,b=t.parent||b,n=t.root||n,setTimeout(function(){i.reinit()}),i}function g(e,i){var s=this,t=s.options,o=s.count,n=s.ioObserver;r===o-1&&s.destroyQuietly(),n&&s.isLoaded(e)&&!e.bloaded&&t.isMedia&&!i&&(n.unobserve(e),e.bloaded=!0,r++),e.bhit&&!i||(s.lazyLoad(e,v),a++,i=!(e.bhit=!0)),f.isFun(t.intersecting)&&t.intersecting(e,t),f.trigger(e,"bio.intersecting",{options:t})}function z(e){var r=this,d=r.options,a=f.vp,u=f.ww,i=e[0],c=f.isBlur(i),i=f.isResized(r,i),l=d.visibleClass;if(i)v=f.updateViewport(d),f.onresizing(r,v);else if(r.destroyed&&!l)return;f.each(e,function(e){var i=e.target||e,s=f.isResized(r,e),t=f.isVisible(e,a),o=f.closest(i,b)||i,n=r.isLoaded(i);f[t&&!n?h:y](o,"is-b-visible"),l&&f.isStr(l)&&f[t?h:y](o,l),t&&g.call(r,i),s&&0<p&&!c&&(p!==u&&r.resizing(i,v),r.resizeTick++),f.isFun(d.observing)&&d.observing(e,t,d)}),p=u}return m.constructor=i,m.count=0,m.erCount=0,m.resizeTick=0,m.destroyed=!1,m.options={},m.lazyLoad=function(e,i){},m.loadImage=function(e,i,s){},m.resizing=function(e,i){},m.prepare=function(){},m.windowData=function(){return f.isUnd(v.vp)?f.windowData(this.options,!0):v},m.load=function(e,i,s){var t=this;e=e&&f.toArray(e),f.isUnd(s)||(t.options=f.extend({},t.options,s||{})),f.each(e,function(e){(t.isValid(e)||f.isElm(e)&&i)&&g.call(t,e,i)})},m.isLoaded=function(e){return f.hasClass(e,this.options.successClass)},m.isValid=function(e){return f.isElm(e)&&!this.isLoaded(e)},m.revalidate=function(e){var i=this;(!0===e||i.count!==a)&&d<a&&(i.elms=f.findAll(n,f.selector(i.options))).length&&(i.observe(!0),d++)},m.destroyQuietly=function(e){var i=this,s=i.options;i.destroyed||!e&&!f.isUnd(Drupal.io)||(s=f.find(o,f.selector(s,":not(."+s.successClass+")")),f.isElm(s)||i.destroy(e))},m.destroy=function(e){var i=this,s=i.options,t=i.ioObserver;i.destroyed||0<i.erCounted&&!e||(r===i.count-1&&s.disconnect||e)&&(t&&t.disconnect(),f.unload(i),i.count=0,i.elms=[],i.ioObserver=null,i.destroyed=!0)},m.observe=function(e){var i=this,s=i.elms;f.isIo&&(i.destroyed||e)&&(v=f.initObserver(i,z,s,!0),i.destroyed=!1),c&&!e||(f.observe(i,s,!0),c=!0)},m.reinit=function(){this.destroyed=!0,function(e){e.prepare();var i=e.elms=f.findAll(n,f.selector(e.options));e.count=i.length,e._raf=[],e._queue=[],e.observe(!0)}(this)},i}); 304; 305!function(i){"use strict";"function"==typeof define&&define.amd?define(["jquery"],i):"undefined"!=typeof exports?module.exports=i(require("jquery")):i(jQuery)}(function(i){"use strict";var e=window.Slick||{};(e=function(){var e=0;return function(t,o){var s,n=this;n.defaults={accessibility:!0,adaptiveHeight:!1,appendArrows:i(t),appendDots:i(t),arrows:!0,asNavFor:null,prevArrow:'<button class="slick-prev" aria-label="Previous" type="button">Previous</button>',nextArrow:'<button class="slick-next" aria-label="Next" type="button">Next</button>',autoplay:!1,autoplaySpeed:3e3,centerMode:!1,centerPadding:"50px",cssEase:"ease",customPaging:function(e,t){return i('<button type="button" />').text(t+1)},dots:!1,dotsClass:"slick-dots",draggable:!0,easing:"linear",edgeFriction:.35,fade:!1,focusOnSelect:!1,focusOnChange:!1,infinite:!0,initialSlide:0,lazyLoad:"ondemand",mobileFirst:!1,pauseOnHover:!0,pauseOnFocus:!0,pauseOnDotsHover:!1,respondTo:"window",responsive:null,rows:1,rtl:!1,slide:"",slidesPerRow:1,slidesToShow:1,slidesToScroll:1,speed:500,swipe:!0,swipeToSlide:!1,touchMove:!0,touchThreshold:5,useCSS:!0,useTransform:!0,variableWidth:!1,vertical:!1,verticalSwiping:!1,waitForAnimate:!0,zIndex:1e3},n.initials={animating:!1,dragging:!1,autoPlayTimer:null,currentDirection:0,currentLeft:null,currentSlide:0,direction:1,$dots:null,listWidth:null,listHeight:null,loadIndex:0,$nextArrow:null,$prevArrow:null,scrolling:!1,slideCount:null,slideWidth:null,$slideTrack:null,$slides:null,sliding:!1,slideOffset:0,swipeLeft:null,swiping:!1,$list:null,touchObject:{},transformsEnabled:!1,unslicked:!1},i.extend(n,n.initials),n.activeBreakpoint=null,n.animType=null,n.animProp=null,n.breakpoints=[],n.breakpointSettings=[],n.cssTransitions=!1,n.focussed=!1,n.interrupted=!1,n.hidden="hidden",n.paused=!0,n.positionProp=null,n.respondTo=null,n.rowCount=1,n.shouldClick=!0,n.$slider=i(t),n.$slidesCache=null,n.transformType=null,n.transitionType=null,n.visibilityChange="visibilitychange",n.windowWidth=0,n.windowTimer=null,s=i(t).data("slick")||{},n.options=i.extend({},n.defaults,o,s),n.currentSlide=n.options.initialSlide,n.originalSettings=n.options,void 0!==document.mozHidden?(n.hidden="mozHidden",n.visibilityChange="mozvisibilitychange"):void 0!==document.webkitHidden&&(n.hidden="webkitHidden",n.visibilityChange="webkitvisibilitychange"),n.autoPlay=i.proxy(n.autoPlay,n),n.autoPlayClear=i.proxy(n.autoPlayClear,n),n.autoPlayIterator=i.proxy(n.autoPlayIterator,n),n.changeSlide=i.proxy(n.changeSlide,n),n.clickHandler=i.proxy(n.clickHandler,n),n.selectHandler=i.proxy(n.selectHandler,n),n.setPosition=i.proxy(n.setPosition,n),n.swipeHandler=i.proxy(n.swipeHandler,n),n.dragHandler=i.proxy(n.dragHandler,n),n.keyHandler=i.proxy(n.keyHandler,n),n.instanceUid=e++,n.htmlExpr=/^(?:\s*(<[\w\W]+>)[^>]*)$/,n.registerBreakpoints(),n.init(!0)}}()).prototype.activateADA=function(){this.$slideTrack.find(".slick-active").attr({"aria-hidden":"false"}).find("a, input, button, select").attr({tabindex:"0"})},e.prototype.addSlide=e.prototype.slickAdd=function(e,t,o){var s=this;if("boolean"==typeof t)o=t,t=null;else if(t<0||t>=s.slideCount)return!1;s.unload(),"number"==typeof t?0===t&&0===s.$slides.length?i(e).appendTo(s.$slideTrack):o?i(e).insertBefore(s.$slides.eq(t)):i(e).insertAfter(s.$slides.eq(t)):!0===o?i(e).prependTo(s.$slideTrack):i(e).appendTo(s.$slideTrack),s.$slides=s.$slideTrack.children(this.options.slide),s.$slideTrack.children(this.options.slide).detach(),s.$slideTrack.append(s.$slides),s.$slides.each(function(e,t){i(t).attr("data-slick-index",e)}),s.$slidesCache=s.$slides,s.reinit()},e.prototype.animateHeight=function(){var i=this;if(1===i.options.slidesToShow&&!0===i.options.adaptiveHeight&&!1===i.options.vertical){var e=i.$slides.eq(i.currentSlide).outerHeight(!0);i.$list.animate({height:e},i.options.speed)}},e.prototype.animateSlide=function(e,t){var o={},s=this;s.animateHeight(),!0===s.options.rtl&&!1===s.options.vertical&&(e=-e),!1===s.transformsEnabled?!1===s.options.vertical?s.$slideTrack.animate({left:e},s.options.speed,s.options.easing,t):s.$slideTrack.animate({top:e},s.options.speed,s.options.easing,t):!1===s.cssTransitions?(!0===s.options.rtl&&(s.currentLeft=-s.currentLeft),i({animStart:s.currentLeft}).animate({animStart:e},{duration:s.options.speed,easing:s.options.easing,step:function(i){i=Math.ceil(i),!1===s.options.vertical?(o[s.animType]="translate("+i+"px, 0px)",s.$slideTrack.css(o)):(o[s.animType]="translate(0px,"+i+"px)",s.$slideTrack.css(o))},complete:function(){t&&t.call()}})):(s.applyTransition(),e=Math.ceil(e),!1===s.options.vertical?o[s.animType]="translate3d("+e+"px, 0px, 0px)":o[s.animType]="translate3d(0px,"+e+"px, 0px)",s.$slideTrack.css(o),t&&setTimeout(function(){s.disableTransition(),t.call()},s.options.speed))},e.prototype.getNavTarget=function(){var e=this,t=e.options.asNavFor;return t&&null!==t&&(t=i(t).not(e.$slider)),t},e.prototype.asNavFor=function(e){var t=this.getNavTarget();null!==t&&"object"==typeof t&&t.each(function(){var t=i(this).slick("getSlick");t.unslicked||t.slideHandler(e,!0)})},e.prototype.applyTransition=function(i){var e=this,t={};!1===e.options.fade?t[e.transitionType]=e.transformType+" "+e.options.speed+"ms "+e.options.cssEase:t[e.transitionType]="opacity "+e.options.speed+"ms "+e.options.cssEase,!1===e.options.fade?e.$slideTrack.css(t):e.$slides.eq(i).css(t)},e.prototype.autoPlay=function(){var i=this;i.autoPlayClear(),i.slideCount>i.options.slidesToShow&&(i.autoPlayTimer=setInterval(i.autoPlayIterator,i.options.autoplaySpeed))},e.prototype.autoPlayClear=function(){var i=this;i.autoPlayTimer&&clearInterval(i.autoPlayTimer)},e.prototype.autoPlayIterator=function(){var i=this,e=i.currentSlide+i.options.slidesToScroll;i.paused||i.interrupted||i.focussed||(!1===i.options.infinite&&(1===i.direction&&i.currentSlide+1===i.slideCount-1?i.direction=0:0===i.direction&&(e=i.currentSlide-i.options.slidesToScroll,i.currentSlide-1==0&&(i.direction=1))),i.slideHandler(e))},e.prototype.buildArrows=function(){var e=this;!0===e.options.arrows&&(e.$prevArrow=i(e.options.prevArrow).addClass("slick-arrow"),e.$nextArrow=i(e.options.nextArrow).addClass("slick-arrow"),e.slideCount>e.options.slidesToShow?(e.$prevArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"),e.$nextArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"),e.htmlExpr.test(e.options.prevArrow)&&e.$prevArrow.prependTo(e.options.appendArrows),e.htmlExpr.test(e.options.nextArrow)&&e.$nextArrow.appendTo(e.options.appendArrows),!0!==e.options.infinite&&e.$prevArrow.addClass("slick-disabled").attr("aria-disabled","true")):e.$prevArrow.add(e.$nextArrow).addClass("slick-hidden").attr({"aria-disabled":"true",tabindex:"-1"}))},e.prototype.buildDots=function(){var e,t,o=this;if(!0===o.options.dots){for(o.$slider.addClass("slick-dotted"),t=i("<ul />").addClass(o.options.dotsClass),e=0;e<=o.getDotCount();e+=1)t.append(i("<li />").append(o.options.customPaging.call(this,o,e)));o.$dots=t.appendTo(o.options.appendDots),o.$dots.find("li").first().addClass("slick-active")}},e.prototype.buildOut=function(){var e=this;e.$slides=e.$slider.children(e.options.slide+":not(.slick-cloned)").addClass("slick-slide"),e.slideCount=e.$slides.length,e.$slides.each(function(e,t){i(t).attr("data-slick-index",e).data("originalStyling",i(t).attr("style")||"")}),e.$slider.addClass("slick-slider"),e.$slideTrack=0===e.slideCount?i('<div class="slick-track"/>').appendTo(e.$slider):e.$slides.wrapAll('<div class="slick-track"/>').parent(),e.$list=e.$slideTrack.wrap('<div class="slick-list"/>').parent(),e.$slideTrack.css("opacity",0),!0!==e.options.centerMode&&!0!==e.options.swipeToSlide||(e.options.slidesToScroll=1),i("img[data-lazy]",e.$slider).not("[src]").addClass("slick-loading"),e.setupInfinite(),e.buildArrows(),e.buildDots(),e.updateDots(),e.setSlideClasses("number"==typeof e.currentSlide?e.currentSlide:0),!0===e.options.draggable&&e.$list.addClass("draggable")},e.prototype.buildRows=function(){var i,e,t,o,s,n,r,l=this;if(o=document.createDocumentFragment(),n=l.$slider.children(),l.o
vendor: 3,442 bytes, line 305
305ptions.rows>1){for(r=l.options.slidesPerRow*l.options.rows,s=Math.ceil(n.length/r),i=0;i<s;i++){var d=document.createElement("div");for(e=0;e<l.options.rows;e++){var a=document.createElement("div");for(t=0;t<l.options.slidesPerRow;t++){var c=i*r+(e*l.options.slidesPerRow+t);n.get(c)&&a.appendChild(n.get(c))}d.appendChild(a)}o.appendChild(d)}l.$slider.empty().append(o),l.$slider.children().children().children().css({width:100/l.options.slidesPerRow+"%",display:"inline-block"})}},e.prototype.checkResponsive=function(e,t){var o,s,n,r=this,l=!1,d=r.$slider.width(),a=window.innerWidth||i(window).width();if("window"===r.respondTo?n=a:"slider"===r.respondTo?n=d:"min"===r.respondTo&&(n=Math.min(a,d)),r.options.responsive&&r.options.responsive.length&&null!==r.options.responsive){s=null;for(o in r.breakpoints)r.breakpoints.hasOwnProperty(o)&&(!1===r.originalSettings.mobileFirst?n<r.breakpoints[o]&&(s=r.breakpoints[o]):n>r.breakpoints[o]&&(s=r.breakpoints[o]));null!==s?null!==r.activeBreakpoint?(s!==r.activeBreakpoint||t)&&(r.activeBreakpoint=s,"unslick"===r.breakpointSettings[s]?r.unslick(s):(r.options=i.extend({},r.originalSettings,r.breakpointSettings[s]),!0===e&&(r.currentSlide=r.options.initialSlide),r.refresh(e)),l=s):(r.activeBreakpoint=s,"unslick"===r.breakpointSettings[s]?r.unslick(s):(r.options=i.extend({},r.originalSettings,r.breakpointSettings[s]),!0===e&&(r.currentSlide=r.options.initialSlide),r.refresh(e)),l=s):null!==r.activeBreakpoint&&(r.activeBreakpoint=null,r.options=r.originalSettings,!0===e&&(r.currentSlide=r.options.initialSlide),r.refresh(e),l=s),e||!1===l||r.$slider.trigger("breakpoint",[r,l])}},e.prototype.changeSlide=function(e,t){var o,s,n,r=this,l=i(e.currentTarget);switch(l.is("a")&&e.preventDefault(),l.is("li")||(l=l.closest("li")),n=r.slideCount%r.options.slidesToScroll!=0,o=n?0:(r.slideCount-r.currentSlide)%r.options.slidesToScroll,e.data.message){case"previous":s=0===o?r.options.slidesToScroll:r.options.slidesToShow-o,r.slideCount>r.options.slidesToShow&&r.slideHandler(r.currentSlide-s,!1,t);break;case"next":s=0===o?r.options.slidesToScroll:o,r.slideCount>r.options.slidesToShow&&r.slideHandler(r.currentSlide+s,!1,t);break;case"index":var d=0===e.data.index?0:e.data.index||l.index()*r.options.slidesToScroll;r.slideHandler(r.checkNavigable(d),!1,t),l.children().trigger("focus");break;default:return}},e.prototype.checkNavigable=function(i){var e,t;if(e=this.getNavigableIndexes(),t=0,i>e[e.length-1])i=e[e.length-1];else for(var o in e){if(i<e[o]){i=t;break}t=e[o]}return i},e.prototype.cleanUpEvents=function(){var e=this;e.options.dots&&null!==e.$dots&&(i("li",e.$dots).off("click.slick",e.changeSlide).off("mouseenter.slick",i.proxy(e.interrupt,e,!0)).off("mouseleave.slick",i.proxy(e.interrupt,e,!1)),!0===e.options.accessibility&&e.$dots.off("keydown.slick",e.keyHandler)),e.$slider.off("focus.slick blur.slick"),!0===e.options.arrows&&e.slideCount>e.options.slidesToShow&&(e.$prevArrow&&e.$prevArrow.off("click.slick",e.changeSlide),e.$nextArrow&&e.$nextArrow.off("click.slick",e.changeSlide),!0===e.options.accessibility&&(e.$prevArrow&&e.$prevArrow.off("keydown.slick",e.keyHandler),e.$nextArrow&&e.$nextArrow.off("keydown.slick",e.keyHandler))),e.$list.off("touchstart.slick mousedown.slick",e.swipeHandler),e.$list.off("touchmove.slick mousemove.slick",e.swipeHandler),e.$list.off("touchend.slick mouseup.slick",e.swipeHandler),e.$list.off("touchcancel.slick mouseleave.
305slick",e.swipeHandler),e.$list.off("click.slick",e.clickHandler),i(document).off(e.visibilityChange,e.visibility),e.cleanUpSlideEvents(),!0===e.options.accessibility&&e.$list.off("keydown.slick",e.keyHandler),!0===e.options.focusOnSelect&&i(e.$slideTrack).children().off("click.slick",e.selectHandler),i(window).off("orientationchange.slick.slick-"+e.instanceUid,e.orientationChange),i(window).off("resize.slick.slick-"+e.instanceUid,e.resize),i("[draggable!=true]",e.$slideTrack).off("dragstart",e.preventDefault),i(window).off("load.slick.slick-"+e.instanceUid,e.setPosition)},e.prototype.cleanUpSlideEvents=function(){var e=this;e.$list.off("mouseenter.slick",i.proxy(e.interrupt,e,!0)),e.$list.off("mouseleave.slick",i.proxy(e.interrupt,e,!1))},e.prototype.cleanUpRows=function(){var i,e=this;e.options.rows>1&&((i=e.$slides.children().children()).removeAttr("style"),e.$slider.empty().append(i))},e.prototype.clickHandler=function(i){!1===this.shouldClick&&(i.stopImmediatePropagation(),i.stopPropagation(),i.preventDefault())},e.prototype.destroy=function(e){var t=this;t.autoPlayClear(),t.touchObject={},t.cleanUpEvents(),i(".slick-cloned",t.$slider).detach(),t.$dots&&t.$dots.remove(),t.$prevArrow&&t.$prevArrow.length&&(t.$prevArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display",""),t.htmlExpr.test(t.options.prevArrow)&&t.$prevArrow.remove()),t.$nextArrow&&t.$nextArrow.length&&(t.$nextArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display",""),t.htmlExpr.test(t.options.nextArrow)&&t.$nextArrow.remove()),t.$slides&&(t.$slides.removeClass("slick-slide slick-active slick-center slick-visible slick-current").removeAttr("aria-hidden").removeAttr("data-slick-index").each(function(){i(this).attr("style",i(this).data("originalStyling"))}),t.$slideTrack.children(this.options.slide).detach(),t.$slideTrack.detach(),t.$list.detach(),t.$slider.append(t.$slides)),t.cleanUpRows(),t.$slider.removeClass("slick-slider"),t.$slider.removeClass("slick-initialized"),t.$slider.removeClass("slick-dotted"),t.unslicked=!0,e||t.$slider.trigger("destroy",[t])},e.prototype.disableTransition=function(i){var e=this,t={};t[e.transitionType]="",!1===e.options.fade?e.$slideTrack.css(t):e.$slides.eq(i).css(t)},e.prototype.fadeSlide=function(i,e){var t=this;!1===t.cssTransitions?(t.$slides.eq(i).css({zIndex:t.options.zIndex}),t.$slides.eq(i).animate({opacity:1},t.options.speed,t.options.easing,e)):(t.applyTransition(i),t.$slides.eq(i).css({opacity:1,zIndex:t.options.zIndex}),e&&setTimeout(function(){t.disableTransition(i),e.call()},t.options.speed))},e.prototype.fadeSlideOut=function(i){var e=this;!1===e.cssTransitions?e.$slides.eq(i).animate({opacity:0,zIndex:e.options.zIndex-2},e.options.speed,e.options.easing):(e.applyTransition(i),e.$slides.eq(i).css({opacity:0,zIndex:e.options.zIndex-2}))},e.prototype.filterSlides=e.prototype.slickFilter=function(i){var e=this;null!==i&&(e.$slidesCache=e.$slides,e.unload(),e.$slideTrack.children(this.options.slide).detach(),e.$slidesCache.filter(i).appendTo(e.$slideTrack),e.reinit())},e.prototype.focusHandler=function(){var e=this;e.$slider.off("focus.slick blur.slick").on("focus.slick blur.slick","*",function(t){t.stopImmediatePropagation();var o=i(this);setTimeout(function(){e.options.pauseOnFocus&&(e.focussed=o.is(":focus"),e.autoPlay())},0)})},e.prototype.getCurrent=e.prototype.slickCurrentSlide=function(){return this.currentSlide},e.prototype.getDotCount=function(){var i=this,e=0,t=0,o=0;if(!0===i.options.infinite)if(i.slideCount<=i.options.slidesToShow)++o;else for(;e<i.slideCount;)++o,e=t+i.options.slidesToScroll,t+=i.options.slidesToScroll<=i.options.slidesToShow?i.options.slidesToScroll:i.options.slidesToShow;else if(!0===i.options.centerMode)o=i.slideCount;else if(i.options.asNavFor)for(;e<i.slideCount;)++o,e=t+i.options.slidesToScroll,t+=i.options.slidesToScroll<=i.options.slidesToShow?i.options.slidesToScroll:i.options.slidesToShow;else o=1+Math.ceil((i.slideCount-i.options.slidesToShow)/i.options.slidesToScroll);return o-1},e.prototype.getLeft=function(i){var e,t,o,s,n=this,r=0;return n.slideOffset=0,t=n.$slides.first().outerHeight(!0),!0===n.options.infinite?(n.slideCount>n.options.slidesToShow&&(n.slideOffset=n.slideWidth*n.options.slidesToShow*-1,s=-1,!0===n.options.vertical&&!0===n.options.centerMode&&(2===n.options.slidesToShow?s=-1.5:1===n.options.slidesToShow&&(s=-2)),r=t*n.options.slidesToShow*s),n.slideCount%n.options.slidesToScroll!=0&&i+n.options.slidesToScroll>n.slideCount&&n.slideCount>n.options.slidesToShow&&(i>n.slideCount?(n.slideOffset=(n.options.slidesToShow-(i-n.slideCount))*n.slideWidth*-1,r=(n.options.slidesToShow-(i-n.slideCount))*t*-1):(n.slideOffset=n.slideCount%n.options.slidesToScroll*n.slideWidth*-1,r=n.slideCount%n.options.slidesToScroll*t*-1))):i+n.options.slidesToShow>n.slideCount&&(n.slideOffset=(i+n.options.slidesToShow-n.slideCount)*n.slideWidth,r=(i+n.options.slidesToShow-n.slideCount)*t),n.slideCount<=n.options.slidesToShow&&(n.slideOffset=0,r=0),!0===n.options.centerMode&&n.slideCount<=n.options.slidesToShow?n.slideOffset=n.slideWidth*Math.floor(n.options.slidesToShow)/2-n.slideWidth*n.slideCount/2:!0===n.options.centerMode&&!0===n.options.infinite?n.slideOffset+=n.slideWidth*Math.floor(n.options.slidesToShow/2)-n.slideWidth:!0===n.options.centerMode&&(n.slideOffset=0,n.slideOffset+=n.slideWidth*Math.floor(n.options.slidesToShow/2)),e=!1===n.options.vertical?i*n.slideWidth*-1+n.slideOffset:i*t*-1+r,!0===n.options.variableWidth&&(o=n.slideCount<=n.options.slidesToShow||!1===n.options.infinite?n.$slideTrack.children(".slick-slide").eq(i):n.$slideTrack.children(".slick-slide").eq(i+n.options.slidesToShow),e=!0===n.options.rtl?o[0]?-1*(n.$slideTrack.width()-o[0].offsetLeft-o.width()):0:o[0]?-1*o[0].offsetLeft:0,!0===n.options.centerMode&&(o=n.slideCount<=n.options.slidesToShow||!1===n.options.infinite?n.$slideTrack.children(".slick-slide").eq(i):n.$slideTrack.children(".slick-slide").eq(i+n.options.slidesToShow+1),e=!0===n.options.rtl?o[0]?-1*(n.$slideTrack.width()-o[0].offsetLeft-o.width()):0:o[0]?-1*o[0].offsetLeft:0,e+=(n.$list.width()-o.outerWidth())/2)),e},e.prototype.getOption=e.prototype.slickGetOption=function(i){return this.options[i]},e.prototype.getNavigableIndexes=function(){var i,e=this,t=0,o=0,s=[];for(!1===e.options.infinite?i=e.slideCount:(t=-1*e.options.slidesToScroll,o=-1*e.options.slidesToScroll,i=2*e.slideCount);t<i;)s.push(t),t=o+e.options.slidesToScroll,o+=e.options.slidesToScroll<=e.options.slidesToShow?e.options.slidesToScroll:e.options.slidesToShow;return s},e.prototype.getSlick=function(){return this},e.prototype.getSlideCount=function(){var e,t,o=this;return t=!0===o.options.centerMode?o.slideWidth*Math.floor(o.options.slidesToShow/2):0,!0===o.options.swipeToSlide?(o.$slideTrack.find(".slick-slide").each(function(s,n){if(n.offsetLeft-t+i(n).outerWidth()/2>-1*o.swipeLeft)return e=n,!1}),Math.abs(i(e).attr("data-slick-index")-o.currentSlide)||1):o.options.slidesToScroll},e.prototype.goTo=e.prototype.slickGoTo=function(i,e){this.changeSlide({data:{message:"index",index:
305parseInt(i)}},e)},e.prototype.init=function(e){var t=this;i(t.$slider).hasClass("slick-initialized")||(i(t.$slider).addClass("slick-initialized"),t.buildRows(),t.buildOut(),t.setProps(),t.startLoad(),t.loadSlider(),t.initializeEvents(),t.updateArrows(),t.updateDots(),t.checkResponsive(!0),t.focusHandler()),e&&t.$slider.trigger("init",[t]),!0===t.options.accessibility&&t.initADA(),t.options.autoplay&&(t.paused=!1,t.autoPlay())},e.prototype.initADA=function(){var e=this,t=Math.ceil(e.slideCount/e.options.slidesToShow),o=e.getNavigableIndexes().filter(function(i){return i>=0&&i<e.slideCount});e.$slides.add(e.$slideTrack.find(".slick-cloned")).attr({"aria-hidden":"true",tabindex:"-1"}).find("a, input, button, select").attr({tabindex:"-1"}),null!==e.$dots&&(e.$slides.not(e.$slideTrack.find(".slick-cloned")).each(function(t){var s=o.indexOf(t);i(this).attr({role:"tabpanel",id:"slick-slide"+e.instanceUid+t,tabindex:-1}),-1!==s&&i(this).attr({"aria-describedby":"slick-slide-control"+e.instanceUid+s})}),e.$dots.attr("role","tablist").find("li").each(function(s){var n=o[s];i(this).attr({role:"presentation"}),i(this).find("button").first().attr({role:"tab",id:"slick-slide-control"+e.instanceUid+s,"aria-controls":"slick-slide"+e.instanceUid+n,"aria-label":s+1+" of "+t,"aria-selected":null,tabindex:"-1"})}).eq(e.currentSlide).find("button").attr({"aria-selected":"true",tabindex:"0"}).end());for(var s=e.currentSlide,n=s+e.options.slidesToShow;s<n;s++)e.$slides.eq(s).attr("tabindex",0);e.activateADA()},e.prototype.initArrowEvents=function(){var i=this;!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&(i.$prevArrow.off("click.slick").on("click.slick",{message:"previous"},i.changeSlide),i.$nextArrow.off("click.slick").on("click.slick",{message:"next"},i.changeSlide),!0===i.options.accessibility&&(i.$prevArrow.on("keydown.slick",i.keyHandler),i.$nextArrow.on("keydown.slick",i.keyHandler)))},e.prototype.initDotEvents=function(){var e=this;!0===e.options.dots&&(i("li",e.$dots).on("click.slick",{message:"index"},e.changeSlide),!0===e.options.accessibility&&e.$dots.on("keydown.slick",e.keyHandler)),!0===e.options.dots&&!0===e.options.pauseOnDotsHover&&i("li",e.$dots).on("mouseenter.slick",i.proxy(e.interrupt,e,!0)).on("mouseleave.slick",i.proxy(e.interrupt,e,!1))},e.prototype.initSlideEvents=function(){var e=this;e.options.pauseOnHover&&(e.$list.on("mouseenter.slick",i.proxy(e.interrupt,e,!0)),e.$list.on("mouseleave.slick",i.proxy(e.interrupt,e,!1)))},e.prototype.initializeEvents=function(){var e=this;e.initArrowEvents(),e.initDotEvents(),e.initSlideEvents(),e.$list.on("touchstart.slick mousedown.slick",{action:"start"},e.swipeHandler),e.$list.on("touchmove.slick mousemove.slick",{action:"move"},e.swipeHandler),e.$list.on("touchend.slick mouseup.slick",{action:"end"}
305,e.swipeHandler),e.$list.on("touchcancel.slick mouseleave.slick",{action:"end"},e.swipeHandler),e.$list.on("click.slick",e.clickHandler),i(document).on(e.visibilityChange,i.proxy(e.visibility,e)),!0===e.options.accessibility&&e.$list.on("keydown.slick",e.keyHandler),!0===e.options.focusOnSelect&&i(e.$slideTrack).children().on("click.slick",e.selectHandler),i(window).on("orientationchange.slick.slick-"+e.instanceUid,i.proxy(e.orientationChange,e)),i(window).on("resize.slick.slick-"+e.instanceUid,i.proxy(e.resize,e)),i("[draggable!=true]",e.$slideTrack).on("dragstart",e.preventDefault),i(window).on("load.slick.slick-"+e.instanceUid,e.setPosition),i(e.setPosition)},e.prototype.initUI=function(){var i=this;!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&(i.$prevArrow.show(),i.$nextArrow.show()),!0===i.options.dots&&i.slideCount>i.options.slidesToShow&&i.$dots.show()},e.prototype.keyHandler=function(i){var e=this;i.target.tagName.match("TEXTAREA|INPUT|SELECT")||(37===i.keyCode&&!0===e.options.accessibility?e.changeSlide({data:{message:!0===e.options.rtl?"next":"previous"}}):39===i.keyCode&&!0===e.options.accessibility&&e.changeSlide({data:{message:!0===e.options.rtl?"previous":"next"}}))},e.prototype.lazyLoad=function(){function e(e){i("img[data-lazy]",e).each(function(){var e=i(this),t=i(this).attr("data-lazy"),o=i(this).attr("data-srcset"),s=i(this).attr("data-sizes")||n.$slider.attr("data-sizes"),r=document.createElement("img");r.onload=function(){e.animate({opacity:0}
vendor: 5,619 bytes, line 305
305,100,function(){o&&(e.attr("srcset",o),s&&e.attr("sizes",s)),e.attr("src",t).animate({opacity:1},200,function(){e.removeAttr("data-lazy data-srcset data-sizes").removeClass("slick-loading")}),n.$slider.trigger("lazyLoaded",[n,e,t])})},r.onerror=function(){e.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"),n.$slider.trigger("lazyLoadError",[n,e,t])},r.src=t})}var t,o,s,n=this;if(!0===n.options.centerMode?!0===n.options.infinite?s=(o=n.currentSlide+(n.options.slidesToShow/2+1))+n.options.slidesToShow+2:(o=Math.max(0,n.currentSlide-(n.options.slidesToShow/2+1)),s=n.options.slidesToShow/2+1+2+n.currentSlide):(o=n.options.infinite?n.options.slidesToShow+n.currentSlide:n.currentSlide,s=Math.ceil(o+n.options.slidesToShow),!0===n.options.fade&&(o>0&&o--,s<=n.slideCount&&s++)),t=n.$slider.find(".slick-slide").slice(o,s),"anticipated"===n.options.lazyLoad)for(var r=o-1,l=s,d=n.$slider.find(".slick-slide"),a=0;a<n.options.slidesToScroll;a++)r<0&&(r=n.slideCount-1),t=(t=t.add(d.eq(r))).add(d.eq(l)),r--,l++;e(t),n.slideCount<=n.options.slidesToShow?e(n.$slider.find(".slick-slide")):n.currentSlide>=n.slideCount-n.options.slidesToShow?e(n.$slider.find(".slick-cloned").slice(0,n.options.slidesToShow)):0===n.currentSlide&&e(n.$slider.find(".slick-cloned").slice(-1*n.options.slidesToShow))},e.prototype.loadSlider=function(){var i=this;i.setPosition(),i.$slideTrack.css({opacity:1}),i.$slider.removeClass("slick-loading"),i.initUI(),"progressive"===i.options.lazyLoad&&i.progressiveLazyLoad()},e.prototype.next=e.prototype.slickNext=function(){this.changeSlide({data:{message:"next"}})},e.prototype.orientationChange=function(){var i=this;i.checkResponsive(),i.setPosition()},e.prototype.pause=e.prototype.slickPause=function(){var i=this;i.autoPlayClear(),i.paused=!0},e.prototype.play=e.prototype.slickPlay=function(){var i=this;i.autoPlay(),i.options.autoplay=!0,i.paused=!1,i.focussed=!1,i.interrupted=!1},e.prototype.postSlide=function(e){var t=this;t.unslicked||(t.$slider.trigger("afterChange",[t,e]),t.animating=!1,t.slideCount>t.options.slidesToShow&&t.setPosition(),t.swipeLeft=null,t.options.autoplay&&t.autoPlay(),!0===t.options.accessibility&&(t.initADA(),t.options.focusOnChange&&i(t.$slides.get(t.currentSlide)).attr("tabindex",0).focus()))},e.prototype.prev=e.prototype.slickPrev=function(){this.changeSlide({data:{message:"previous"}})},e.prototype.preventDefault=function(i){i.preventDefault()},e.prototype.progressiveLazyLoad=function(e){e=e||1;var t,o,s,n,r,l=this,d=i("img[data-lazy]",l.$slider);d.length?(t=d.first(),o=t.attr("data-lazy"),s=t.attr("data-srcset"),n=t.attr("data-sizes")||l.$slider.attr("data-sizes"),(r=document.createElement("img")).onload=function(){s&&(t.attr("srcset",s),n&&t.attr("sizes",n)),t.attr("src",o).removeAttr("data-lazy data-srcset data-sizes").removeClass("slick-loading"),!0===l.options.adaptiveHeight&&l.setPosition(),l.$slider.trigger("lazyLoaded",[l,t,o]),l.progressiveLazyLoad()},r.onerror=function(){e<3?setTimeout(function(){l.progressiveLazyLoad(e+1)},500):(t.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"),l.$slider.trigger("lazyLoadError",[l,t,o]),l.progressiveLazyLoad())},r.src=o):l.$slider.trigger("allImagesLoaded",[l])},e.prototype.refresh=function(e){var t,o,s=this;o=s.slideCount-s.options.slidesToShow,!s.options.infinite&&s.currentSlide>o&&(s.currentSlide=o),s.slideCount<=s.options.slidesToShow&&(s.currentSlide=0),t=s.currentSlide,s.destroy(!0),i.extend(s,s.initials,{currentSlide:t}),s.init(),e||s.changeSlide({data:{message:"index",index:t}},!1)},e.prototype.registerBreakpoints=function(){var e,t,o,s=this,n=s.options.responsive||null;if("array"===i.type(n)&&n.length){s.respondTo=s.options.respondTo||"window";for(e in n)if(o=s.breakpoints.length-1,n.hasOwnProperty(e)){for(t=n[e].breakpoint;o>=0;)s.breakpoints[o]&&s.breakpoints[o]===t&&s.breakpoints.splice(o,1),o--;s.breakpoints.push(t),s.breakpointSettings[t]=n[e].settings}s.breakpoints.sort(function(i,e){return s.options.mobileFirst?i-e:e-i})}},e.prototype.reinit=function(){var e=this;e.$slides=e.$slideTrack.children(e.options.slide).addClass("slick-slide"),e.slideCount=e.$slides.length,e.currentSlide>=e.slideCount&&0!==e.currentSlide&&(e.currentSlide=e.currentSlide-e.options.slidesToScroll),e.slideCount<=e.options.slidesToShow&&(e.currentSlide=0),e.registerBreakpoints(),e.setProps(),e.setupInfinite(),e.buildArrows(),e.updateArrows(),e.initArrowEvents(),e.buildDots(),e.updateDots(),e.initDotEvents(),e.cleanUpSlideEvents(),e.initSlideEvents(),e.checkResponsive(!1,!0),!0===e.options.focusOnSelect&&i(e.$slideTrack).children().on("click.slick",e.selectHandler),e.setSlideClasses("number"==typeof e.currentSlide?e.currentSlide:0),e.setPosition(),e.focusHandler(),e.paused=!e.options.autoplay,e.autoPlay(),e.$slider.trigger("reInit",[e])},e.prototype.resize=function(){var e=this;i(window).width()!==e.windowWidth&&(clearTimeout(e.windowDelay),e.windowDelay=window.setTimeout(function(){e.windowWidth=i(window).width(),e.checkResponsive(),e.unslicked||e.setPosition()},50))},e.prototype.removeSlide=e.prototype.slickRemove=function(i,e,t){var o=this;if(i="boolean"==typeof i?!0===(e=i)?0:o.slideCount-1:!0===e?--i:i,o.slideCount<1||i<0||i>o.slideCount-1)return!1;o.unload(),!0===t?o.$slideTrack.children().remove():o.$slideTrack.children(this.options.slide).eq(i).remove(),o.$slides=o.$slideTrack.children(this.options.slide),o.$slideTrack.children(this.options.slide).detach(),o.$slideTrack.append(o.$slides),o.$slidesCache=o.$slides,o.reinit()},e.prototype.setCSS=function(i){var e,t,o=this,s={};
305!0===o.options.rtl&&(i=-i),e="left"==o.positionProp?Math.ceil(i)+"px":"0px",t="top"==o.positionProp?Math.ceil(i)+"px":"0px",s[o.positionProp]=i,!1===o.transformsEnabled?o.$slideTrack.css(s):(s={},!1===o.cssTransitions?(s[o.animType]="translate("+e+", "+t+")",o.$slideTrack.css(s)):(s[o.animType]="translate3d("+e+", "+t+", 0px)",o.$slideTrack.css(s)))},e.prototype.setDimensions=function(){var i=this;!1===i.options.vertical?!0===i.options.centerMode&&i.$list.css({padding:"0px "+i.options.centerPadding}):(i.$list.height(i.$slides.first().outerHeight(!0)*i.options.slidesToShow),!0===i.options.centerMode&&i.$list.css({padding:i.options.centerPadding+" 0px"})),i.listWidth=i.$list.width(),i.listHeight=i.$list.height(),!1===i.options.vertical&&!1===i.options.variableWidth?(i.slideWidth=Math.ceil(i.listWidth/i.options.slidesToShow),i.$slideTrack.width(Math.ceil(i.slideWidth*i.$slideTrack.children(".slick-slide").length))):!0===i.options.variableWidth?i.$slideTrack.width(5e3*i.slideCount):(i.slideWidth=Math.ceil(i.listWidth),i.$slideTrack.height(Math.ceil(i.$slides.first().outerHeight(!0)*i.$slideTrack.children(".slick-slide").length)));var e=i.$slides.first().outerWidth(!0)-i.$slides.first().width();!1===i.options.variableWidth&&i.$slideTrack.children(".slick-slide").width(i.slideWidth-e)},e.prototype.setFade=function(){var e,t=this;t.$slides.each(function(o,s){e=t.slideWidth*o*-1,!0===t.options.rtl?i(s).css({position:"relative",right:e,top:0,zIndex:t.options.zIndex-2,opacity:0}
305):i(s).css({position:"relative",left:e,top:0,zIndex:t.options.zIndex-2,opacity:0})}),t.$slides.eq(t.currentSlide).css({zIndex:t.options.zIndex-1,opacity:1})},e.prototype.setHeight=function(){var i=this;if(1===i.options.slidesToShow&&!0===i.options.adaptiveHeight&&!1===i.options.vertical){var e=i.$slides.eq(i.currentSlide).outerHeight(!0);i.$list.css("height",e)}},e.prototype.setOption=e.prototype.slickSetOption=function(){var e,t,o,s,n,r=this,l=!1;if("object"===i.type(arguments[0])?(o=arguments[0],l=arguments[1],n="multiple"):"string"===i.type(arguments[0])&&(o=arguments[0],s=arguments[1],l=arguments[2],"responsive"===arguments[0]&&"array"===i.type(arguments[1])?n="responsive":void 0!==arguments[1]&&(n="single")),"single"===n)r.options[o]=s;else if("multiple"===n)i.each(o,function(i,e){r.options[i]=e});else if("responsive"===n)for(t in s)if("array"!==i.type(r.options.responsive))r.options.responsive=[s[t]];else{for(e=r.options.responsive.length-1;e>=0;)r.options.responsive[e].breakpoint===s[t].breakpoint&&r.options.responsive.splice(e,1),e--;r.options.responsive.push(s[t])}l&&(r.unload(),r.reinit())},e.prototype.setPosition=function(){var i=this;i.setDimensions(),i.setHeight(),!1===i.options.fade?i.setCSS(i.getLeft(i.currentSlide)):i.setFade(),i.$slider.trigger("setPosition",[i])},e.prototype.setProps=function(){var i=this,e=document.body.style;i.positionProp=!0===i.options.vertical?"top":"left","top"===i.positionProp?i.$slider.addClass("slick-vertical"):i.$slider.removeClass("slick-vertical"),void 0===e.WebkitTransition&&void 0===e.MozTransition&&void 0===e.msTransition||!0===i.options.useCSS&&(i.cssTransitions=!0),i.options.fade&&("number"==typeof i.options.zIndex?i.options.zIndex<3&&(i.options.zIndex=3):i.options.zIndex=i.defaults.zIndex),void 0!==e.OTransform&&(i.animType="OTransform",i.transformType="-o-transform",i.transitionType="OTransition",void 0===e.perspectiveProperty&&void 0===e.webkitPerspective&&(i.animType=!1)),void 0!==e.MozTransform&&(i.animType="MozTransform",i.transformType="-moz-transform",i.transitionType="MozTransition",void 0===e.perspectiveProperty&&void 0===e.MozPerspective&&(i.animType=!1)),void 0!==e.webkitTransform&&(i.animType="webkitTransform",i.transformType="-webkit-transform",i.transitionType="webkitTransition",void 0===e.perspectiveProperty&&void 0===e.webkitPerspective&&(i.animType=!1)),void 0!==e.msTransform&&(i.animType="msTransform",i.transformType="-ms-transform",i.transitionType="msTransition",void 0===e.msTransform&&(i.animType=!1)),void 0!==e.transform&&!1!==i.animType&&(i.animType="transform",i.transformType="transform",i.transitionType="transition"),i.transformsEnabled=i.options.useTransform&&null!==i.animType&&!1!==i.animType},e.prototype.setSlideClasses=function(i){var e,t,o,s,n=this;if(t=n.$slider.find(".slick-slide").removeClass("slick-active slick-center slick-current").attr("aria-hidden","true"),n.$slides.eq(i).addClass("slick-current"),!0===n.options.centerMode){var r=n.options.slidesToShow%2==0?1:0;e=Math.floor(n.options.slidesToShow/2),!0===n.options.infinite&&(i>=e&&i<=n.slideCount-1-e?n.$slides.slice(i-e+r,i+e+1).addClass("slick-active").attr("aria-hidden","false"):(o=n.options.slidesToShow+i,t.slice(o-e+1+r,o+e+2).addClass("slick-active").attr("aria-hidden","false")),0===i?t.eq(t.length-1-n.options.slidesToShow).addClass("slick-center"):i===n.slideCount-1&&t.eq(n.options.slidesToShow).addClass("slick-center")),n.$slides.eq(i).addClass("slick-center")}else i>=0&&i<=n.slideCount-n.options.slidesToShow?n.$slides.slice(i,i+n.options.slidesToShow).addClass("slick-active").attr("aria-hidden","false"):t.length<=n.options.slidesToShow?t.addClass("slick-active").attr("aria-hidden","false"):(s=n.slideCount%n.options.slidesToShow,o=!0===n.options.infinite?n.options.slidesToShow+i:i,n.options.slidesToShow==n.options.slidesToScroll&&n.slideCount-i<n.options.slidesToShow?t.slice(o-(n.options.slidesToShow-s),o+s).addClass("slick-active").attr("aria-hidden","false"):t.slice(o,o+n.options.slidesToShow).addClass("slick-active").attr("aria-hidden","false"));"ondemand"!==n.options.lazyLoad&&"anticipated"!==n.options.lazyLoad||n.lazyLoad()},e.prototype.setupInfinite=function(){var e,t,o,s=this;if(!0===s.options.fade&&(s.options.centerMode=!1),!0===s.options.infinite&&!1===s.options.fade&&(t=null,s.slideCount>s.options.slidesToShow)){for(o=!0===s.options.centerMode?s.options.slidesToShow+1:s.options.slidesToShow,e=s.slideCount;e>s.slideCount-o;e-=1)t=e-1,i(s.$slides[t]).clone(!0).attr("id","").attr("data-slick-index",t-s.slideCount).prependTo(s.$slideTrack).addClass("slick-cloned");for(e=0;e<o+s.slideCount;e+=1)t=e,i(s.$slides[t]).clone(!0).attr("id","").attr("data-slick-index",t+s.slideCount).appendTo(s.$slideTrack).addClass("slick-cloned");s.$slideTrack.find(".slick-cloned").find("[id]").each(function(){i(this).attr("id","")})}},e.prototype.interrupt=function(i){var e=this;i||e.autoPlay(),e.interrupted=i},e.prototype.selectHandler=function(e){var t=this,o=i(e.target).is(".slick-slide")?i(e.target):i(e.target).parents(".slick-slide"),s=parseInt(o.attr("data-slick-index"));s||(s=0),t.slideCount<=t.options.slidesToShow?t.slideHandler(s,!1,!0):t.slideHandler(s)},e.prototype.slideHandler=function(i,e,t){var o,s,n,r,l,d=null,a=this;if(e=e||!1,!(!0===a.animating&&!0===a.options.waitForAnimate||!0===a.options.fade&&a.currentSlide===i))if(!1===e&&a.asNavFor(i),o=i,d=a.getLeft(o),r=a.getLeft(a.currentSlide),a.currentLeft=null===a.swipeLeft?r:a.swipeLeft,!1===a.options.infinite&&!1===a.options.centerMode&&(i<0||i>a.getDotCount()*a.options.slidesToScroll))!1===a.options.fade&&(o=a.currentSlide,!0!==t?a.animateSlide(r,function(){a.postSlide(o)}):a.postSlide(o));else if(!1===a.options.infinite&&!0===a.options.centerMode&&(i<0||i>a.slideCount-a.options.slidesToScroll))!1===a.options.fade&&(o=a.currentSlide,!0!==t?a.animateSlide(r,function(){a.postSlide(o)}):a.postSlide(o));else{if(a.options.autoplay&&clearInterval(a.autoPlayTimer),s=o<0?a.slideCount%a.options.slidesToScroll!=0?a.slideCount-a.slideCount%a.options.slidesToScroll:a.slideCount+
305o:o>=a.slideCount?a.slideCount%a.options.slidesToScroll!=0?0:o-a.slideCount:o,a.animating=!0,a.$slider.trigger("beforeChange",[a,a.currentSlide,s]),n=a.currentSlide,a.currentSlide=s,a.setSlideClasses(a.currentSlide),a.options.asNavFor&&(l=(l=a.getNavTarget()).slick("getSlick")).slideCount<=l.options.slidesToShow&&l.setSlideClasses(a.currentSlide),a.updateDots(),a.updateArrows(),!0===a.options.fade)return!0!==t?(a.fadeSlideOut(n),a.fadeSlide(s,function(){a.postSlide(s)})):a.postSlide(s),void a.animateHeight();!0!==t?a.animateSlide(d,function(){a.postSlide(s)}):a.postSlide(s)}},e.prototype.startLoad=function(){var i=this;!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&(i.$prevArrow.hide(),i.$nextArrow.hide()),!0===i.options.dots&&i.slideCount>i.options.slidesToShow&&i.$dots.hide(),i.$slider.addClass("slick-loading")},e.prototype.swipeDirection=function(){var i,e,t,o,s=this;return i=s.touchObject.startX-s.touchObject.curX,e=s.touchObject.startY-s.touchObject.curY,t=Math.atan2(e,i),(o=Math.round(180*t/Math.PI))<0&&(o=360-Math.abs(o)),o<=45&&o>=0?!1===s.options.rtl?"left":"right":o<=360&&o>=315?!1===s.options.rtl?"left":"right":o>=135&&o<=225?!1===s.options.rtl?"right":"left":!0===s.options.verticalSwiping?o>=35&&o<=135?"down":"up":"vertical"},e.prototype.swipeEnd=function(i){var e,t,o=this;if(o.dragging=!1,o.swiping=!1,o.scrolling)return o.scrolling=!1,!1;if(o.interrupted=!1,o.shouldClick=!(o.touchObject.swipeLength>10),void 0===o.touchObject.curX)return!1;if(!0===o.touchObject.edgeHit&&o.$slider.trigger("edge",[o,o.swipeDirection()]),o.touchObject.swipeLength>=o.touchObject.minSwipe){switch(t=o.swipeDirection()){case"left":case"down":e=o.options.swipeToSlide?o.checkNavigable(o.currentSlide+o.getSlideCount()):o.currentSlide+o.getSlideCount(),o.currentDirection=0;break;case"right":case"up":e=o.options.swipeToSlide?o.checkNavigable(o.currentSlide-o.getSlideCount()):o.currentSlide-o.getSlideCount(),o.currentDirection=1}"vertical"!=t&&(o.slideHandler(e),o.touchObject={},o.$slider.trigger("swipe",[o,t]))}else o.touchObject.startX!==o.touchObject.curX&&(o.slideHandler(o.currentSlide),o.touchObject={})},e.prototype.swipeHandler=function(i){var e=this;if(!(!1===e.options.swipe||"ontouchend"in document&&!1===e.options.swipe||!1===e.options.draggable&&-1!==i.type.indexOf("mouse")))switch(e.touchObject.fingerCount=i.originalEvent&&void 0!==i.originalEvent.touches?i.originalEvent.touches.length:1,e.touchObject.minSwipe=e.listWidth/e.options.touchThreshold,!0===e.options.verticalSwiping&&(e.touchObject.minSwipe=e.listHeight/e.options.touchThreshold),i.data.action){case"start":e.swipeStart(i);break;case"move":e.swipeMove(i);break;case"end":e.swipeEnd(i)}},e.prototype.swipeMove=function(i){var e,t,o,s,n,r,l=this;return n=void 0!==i.originalEvent?i.originalEvent.touches:null,!(!l.dragging||l.scrolling||n&&1!==n.length)&&(e=l.getLeft(l.currentSlide),l.touchObject.curX=void 0!==n?n[0].pageX:i.clientX,l.touchObject.curY=void 0!==n?n[0].pageY:i.clientY,l.touchObject.swipeLength=Math.round(Math.sqrt(Math.pow(l.touchObject.curX-l.touchObject.startX,2))),r=Math.round(Math.sqrt(Math.pow(l.touchObject.curY-l.touchObject.startY,2))),!l.options.verticalSwiping&&!l.swiping&&r>4?(l.scrolling=!0,!1):(!0===l.options.verticalSwiping&&(l.touchObject.swipeLength=r),t=l.swipeDirection(),void 0!==i.originalEvent&&l.touchObject.swipeLength>4&&(l.swiping=!0,i.preventDefault()),s=(!1===l.options.rtl?1:-1)*(l.touchObject.curX>l.touchObject.startX?1:-1),!0===l.options.verticalSwiping&&(s=l.touchObject.curY>l.touchObject.startY?1:-1),o=l.touchObject.swipeLength,l.touchObject.edgeHit=!1,!1===l.options.infinite&&(0===l.currentSlide&&"right"===t||l.currentSlide>=l.getDotCount()&&"left"===t)&&(o=l.touchObject.swipeLength*l.options.edgeFriction,l.touchObject.edgeHit=!0),!1===l.options.vertical?l.swipeLeft=e+o*s:l.swipeLeft=e+o*(l.$list.height()/l.listWidth)*s,!0===l.options.verticalSwiping&&(l.swipeLeft=e+o*s),!0!==l.options.fade&&!1!==l.options.touchMove&&(!0===l.animating?(l.swipeLeft=null,!1):void l.setCSS(l.swipeLeft))))},e.prototype.swipeStart=function(i){var e,t=this;if(t.interrupted=!0,1!==t.touchObject.fingerCount||t.slideCount<=t.options.slidesToShow)return t.touchObject={},!1;void 0!==i.originalEvent&&void 0!==i.originalEvent.touches&&(e=i.originalEvent.touches[0]),t.touchObject.startX=t.touchObject.curX=void 0!==e?e.pageX:i.clientX,t.touchObject.startY=t.touchObject.curY=void 0!==e?e.pageY:i.clientY,t.dragging=!0},e.prototype.unfilterSlides=e.prototype.slickUnfilter=function(){var i=this;null!==i.$slidesCache&&(i.unload(),i.$slideTrack.children(this.options.slide).detach(),i.$slidesCache.appendTo(i.$slideTrack),i.reinit())},e.prototype.unload=function(){var e=this;i(".slick-cloned",e.$slider).remove(),e.$dots&&e.$dots.remove(),e.$prevArrow&&e.htmlExpr.test(e.options.prevArrow)&&e.$prevArrow.remove(),e.$nextArrow&&e.htmlExpr.test(e.options.nextArrow)&&e.$nextArrow.remove(),e.$slides.removeClass("slick-slide slick-active slick-visible slick-current").attr("aria-hidden","true").css("width","")}
305,e.prototype.unslick=function(i){var e=this;e.$slider.trigger("unslick",[e,i]),e.destroy()},e.prototype.updateArrows=function(){var i=this;Math.floor(i.options.slidesToShow/2),!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&!i.options.infinite&&(i.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false"),i.$nextArrow.removeClass("slick-disabled").attr("aria-disabled","false"),0===i.currentSlide?(i.$prevArrow.addClass("slick-disabled").attr("aria-disabled","true"),i.$nextArrow.removeClass("slick-disabled").attr("aria-disabled","false")):i.currentSlide>=i.slideCount-i.options.slidesToShow&&!1===i.options.centerMode?(i.$nextArrow.addClass("slick-disabled").attr("aria-disabled","true"),i.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false")):i.currentSlide>=i.slideCount-1&&!0===i.options.centerMode&&(i.$nextArrow.addClass("slick-disabled").attr("aria-disabled","true"),i.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false")))},e.prototype.updateDots=function(){var i=this;null!==i.$dots&&(i.$dots.find("li").removeClass("slick-active").end(),i.$dots.find("li").eq(Math.floor(i.currentSlide/i.options.slidesToScroll)).addClass("slick-active"))},e.prototype.visibility=function(){var i=this;i.options.autoplay&&(document[i.hidden]?i.interrupted=!0:i.interrupted=!1)},i.fn.slick=function(){var i,t,o=this,s=arguments[0],n=Array.prototype.slice.call(arguments,1),r=o.length;for(i=0;i<r;i++)if("object"==typeof s||void 0===s?o[i].slick=new e(o[i],s):t=o[i].slick[s].apply(o[i].slick,n),void 0!==t)return t;return o}}); 306; 307!function(t,e){"use strict";var n="BioMedia",r=t.dBlazy,a=t.Bio;"function"==typeof define&&define.amd?define([n,r,a],e):"object"==typeof exports?module.exports=e(n,r,a):t[n]=e(n,r,a)}(this,function(n,p,r){"use strict";var a=document,t="data-",l="src",f="srcset",h=t+l,g=[f,l],b=0,o=!1,i=Bio.prototype,s=e.prototype=Object.create(i);function e(t){var e=r.apply(p.extend({},i,p.extend({},s,this)),arguments);return e.name=n,e}function m(t,e,n,r){return o||((t=c(t,"defer"))&&p.each(t,function(t){p.attr(t,"loading","lazy")}),o=!0),p.status(e,n,r)}function c(t,e){t=t.options;if(!p.isNativeLazy)return[];e=e||"a";e=p.selector(t,'[data-src][loading*="'+e+'"]:not(.b-blur)'),e=p.findAll(a,e);return e.length&&p(e).mapAttr(["srcset","src"],!0).mapSource(!1,!0,!1),e}return s.constructor=e,s.lazyLoad=function(t,e){var n=this,r=n.options,a=t.parentNode,o=p.isBg(t),i=p.equal(a,"picture"),s=p.equal(t,"img"),c=p.equal(t,"video"),a=p.hasAttr(t,h);p.blur&&p.blur(t),i?(a&&(p.mapSource(t,f,!0),p.mapAttr(t,l,!0)),b=m(n,t,!0,r)):c?b=p.loadVideo(t,!0,r):s||o?n.loadImage(t,o,e):p.hasAttr(t,l)&&(p.attr(t,h)&&p.mapAttr(t,l,!0),b=m(n,t,!0,r)),n.erCount=b},s.loadImage=function(t,n,r){function e(t,e){b=n&&p.isFun(p.bg)?(p.bg(t,r),p.status(t,e,o)):m(a,t,e,o)}var a=this,o=a.options,i=new Image,s=p.hasAttr(t,f),c=p.hasAttr(t,h),u=c?h:l,d=c?"data-srcset":f;"decode"in i&&(i.decoding="async"),n&&p.isFun(p.bgUrl)?i.src=p.bgUrl(t,r):(c&&p.mapAttr(t,g,!1),i.src=p.attr(t,u)),s&&(i.srcset=p.attr(t,d)),p.decode(i).then(function(){e(t,!0)}).catch(function(){e(t,s),s||(t.bhit=!1)})},s.resizing=function(t,e){var n=p.isBg(t,this.options);n&&this.loadImage(t,n,e)},s.prepare=function(){var e,t,n;c(this),p.webp&&(e=this,p.webp.isSupported()||(t=function(t){return t=t||"",p.selector(e.options,"["+t+'srcset*=".webp"]')},(n=p.findAll(a,t())).length||(n=p.findAll(a,t("data-"))),n.length&&p.webp.run(n)))},e}); 308; 309!function(o,t,n,l,e){"use strict";var s="data",a=".b-blur",r=".media",i="successClass",u=(c="blazy")+".done",c=function(){},d={};t.blazy={context:e,name:"Drupal.blazy",init:null,instances:[],resizeTick:0,resizeTrigger:!1,blazySettings:n.blazy||{},ioSettings:n.blazyIo||{},options:{},clearCompat:c,clearScript:c,checkResize:c,resizing:c,revalidate:c,isIo:function(){return!0},isBlazy:function(){return!o.isIo&&"Blazy"in l},isFluid:function(t,n){return o.equal(t.parentNode,"picture")&&o.hasAttr(n,"data-ratios")},isLoaded:function(t){return o.hasClass(t,this.options[i])},globals:function(){var t=this,n={isMedia:!0,success:t.clearing.bind(t),error:t.clearing.bind(t),resizing:t.resizing.bind(t),selector:".b-lazy",parent:r,errorClass:"b-error",successClass:"b-loaded"};
309return o.extend(t.blazySettings,t.ioSettings,n)},extend:function(t){d=o.extend({},d,t)},merge:function(t){var n=this;return n.options=o.extend({},n.globals(),n.options,t||{}),n.options},run:function(t){return new BioMedia(t)},mount:function(t){var n=this;return n.merge(),t&&o.each(d,function(t){o.isFun(t)&&t.call(n)}),o.extend(n,d)},selector:function(t){t=t||"";var n=this.options;return n.selector+t+":not(."+n[i]+")"},clearing:function(t){var n,i;t.bclearing||(n=this,i=o.hasClass(t,"b-responsive")&&o.hasAttr(t,s+"-pfsrc"),o.isFun(o.unloading)&&o.unloading(t),o.trigger(t,u,{options:n.options}),n.clearCompat(t),n.clearScript(t),l.picturefill&&i&&l.picturefill({reevaluate:!0,elements:[t]}),t.bclearing=!0)},windowData:function(){return this.init?this.init.windowData():{}},load:function(n){var i=this;l.setTimeout(function(){var t=o.findAll(n||e,i.selector());t.length&&o.each(t,i.update.bind(i))},100)},update:function(t,n,i){function e(){o.hasAttr(t,"data-b-bg")&&o.isFun(o.bg)?o.bg(t,i||s.windowData()):s.init&&(o.hasClass(t,r.substring(1))||(t=o.find(t,r)||t),s.init.load(t,!0,a))}var s=this,a=s.options,r=a.selector;(n=n||!1)?l.setTimeout(e,100):e()},rebind:function(t,i,e){var n=o.findAll(t,this.options.selector+":not("+a+")"),s=n.length;s||(n=o.findAll(t,"img:not("+a+")")),n.length&&o.each(n,function(t){var n=s?u:"load";o.one(t,n,i,s),e&&e.observe(t)})},pad:function(n,i,t){var e=this,s=o.closest(n,r)||n;setTimeout(function(){var t=Math.round(n.naturalHeight/n.naturalWidth*100,2);e.isFluid(n,s)&&(s.style.paddingBottom=t+"%"),o.isFun(i)&&i.call(e,n,s,t)},t||0)}}}(dBlazy,Drupal,drupalSettings,this,this.document); 310; 311!function(c,e,n){"use strict";var i=n,s="blazy",r=s,o="."+s,l="body",d="b-root",t="b-checked",u="image",b="#drupal-modal, .is-b-scroll",f={};function h(a,t,e){var n,i=this,r=1<i.resizeTick,o=i.instances;o.length&&r&&(n=function(a){a.dblazy&&a.dbuniform&&(a.dblazy!==t.dblazy||a.dbpicture||(c.trigger(a,s+".uniform"+a.dblazy,{pad:e}),a.dbpicture=!0))},c.each(o,function(a){c.debounce(n,a,i)},i))}e.blazy=c.extend(e.blazy||{},{clearScript:function(a){c.hasClass(a,f.errorClass)&&!c.hasClass(a,t)&&(c.addClass(a,t),this.update(a,!0)),this.pad(a,h)},fixDataUri:function(){var a=c.findAll(n,this.selector('[src^="image"]'));a.length&&c.each(a,function(a){var t=c.attr(a,"src");c.contains(t,["base64","svg+xml"])&&c.attr(a,"src",t.replace(u,"data:"+u))})}}),e.behaviors.blazy={attach:function(a){var t=e.blazy;i=c.context(a),t.context=i,c.once(function(a){var t=this,e=c.parse(c.attr(a,"data-"+s)),n=c.hasClass(a,s+"--field block-grid "+s+"--uniform"),i=(1e4*Math.random()).toFixed(0),r=s+".uniform"+i,o=c.findAll(a,".media--ratio");f=t.merge(e),t.revalidate=t.revalidate||c.hasClass(a,s+"--revalidate"),a.dblazy=i,a.dbuniform=n,t.instances.push(a),n&&o.length&&c.on(a,r,function(a){var t=a.detail.pad||0;10<t&&c.each(o,function(a){a.style.paddingBottom=t+"%"})})}.bind(t),r,o,i),c.once(function(a){var t=this,e={mobileFirst:!1};n.documentElement.isSameNode(a)||(e.root=a);a=(e=t.merge(e)).container;a&&!c.contains(b,a)&&(b+=", "+a.trim()),e.container=b,f=t.merge(e),t.fixDataUri(),t.init=t.run(t.options)}.bind(t),d,l,n)},detach:function(a,t,e){"unload"===e&&(c.once.removeSafely(r,o,i),c.once.removeSafely(d,l,n))}}}(dBlazy,Drupal,(drupalSettings,this.document)); 312; 313/** 314 * @file 315 * Attaches several event listener to a web page. 316 */ 317 318(function ($, Drupal, drupalSettings) { 319 320 /* eslint max-nested-callbacks: ["error", 4] */ 321 322 'use strict'; 323 324 Drupal.google_analytics = {}; 325 326 $(document).ready(function () { 327 328 // Attach mousedown, keyup, touchstart events to document only and catch 329 // clicks on all elements. 330 $(document.body).on('mousedown keyup touchstart', function (event) { 331 332 // Catch the closest surrounding link of a clicked element. 333 $(event.target).closest('a,area').each(function () { 334 335 // Is the clicked URL internal? 336 if (Drupal.google_analytics.isInternal(this.href)) { 337 // Skip 'click' tracking, if custom tracking events are bound. 338 if ($(this).is('.colorbox') && (drupalSettings.google_analytics.trackColorbox)) {
339 // Do nothing here. The custom event will handle all tracking. 340 // console.info('Click on .colorbox item has been detected.'); 341 } 342 // Is download tracking activated and the file extension configured 343 // for download tracking? 344 else if (drupalSettings.google_analytics.trackDownload && Drupal.google_analytics.isDownload(this.href)) { 345 // Download link clicked. 346 gtag('event', Drupal.google_analytics.getDownloadExtension(this.href).toUpperCase(), { 347 event_category: 'Downloads', 348 event_label: Drupal.google_analytics.getPageUrl(this.href), 349 transport_type: 'beacon' 350 }); 351 } 352 else if (Drupal.google_analytics.isInternalSpecial(this.href)) { 353 // Keep the internal URL for Google Analytics website overlay intact. 354 // @todo: May require tracking ID 355 gtag('config', drupalSettings.google_analytics.account, { 356 page_path: Drupal.google_analytics.getPageUrl(this.href), 357 transport_type: 'beacon' 358 }); 359 } 360 } 361 else { 362 if (drupalSettings.google_analytics.trackMailto && $(this).is("a[href^='mailto:'],area[href^='mailto:']")) { 363 // Mailto link clicked. 364 gtag('event', 'Click', { 365 event_category: 'Mails', 366 event_label: this.href.substring(7), 367 transport_type: 'beacon' 368 }); 369 } 370 else if (drupalSettings.google_analytics.trackTel && $(this).is("a[href^='tel:'],area[href^='tel:']")) { 371 // Tel link clicked. 372 gtag('event', 'Click', { 373 event_category: 'Telephone calls', 374 event_label: this.href.substring(4), 375 transport_type: 'beacon' 376 }); 377 } 378 else if (drupalSettings.google_analytics.trackOutbound && this.href.match(/^\w+:\/\//i)) { 379 if (drupalSettings.google_analytics.trackDomainMode !== 2 || (drupalSettings.google_analytics.trackDomainMode === 2 && !Drupal.google_analytics.isCrossDomain(this.hostname, drupalSettings.google_analytics.trackCrossDomains))) { 380 // External link clicked / No top-level cross domain clicked. 381 gtag('event', 'Click', { 382 event_category: 'Outbound links', 383 event_label: this.href, 384 transport_type: 'beacon' 385 }); 386 } 387 } 388 } 389 }); 390 }); 391 392 // Track hash changes as unique pageviews, if this option has been enabled. 393 if (drupalSettings.google_analytics.trackUrlFragments) { 394 window.onhashchange = function () { 395 gtag('config', drupalSettings.google_analytics.account, { 396 page_path: location.pathname + location.search + location.hash 397 }); 398 }; 399 } 400 401 // Colorbox: This event triggers when the transition has completed and the 402 // newly loaded content has been revealed. 403 if (drupalSettings.google_analytics.trackColorbox) { 404 $(document).on('cbox_complete', function () { 405 var href = $.colorbox.element().attr('href'); 406 if (href) { 407 gtag('config', drupalSettings.google_analytics.account, { 408 page_path: Drupal.google_analytics.getPageUrl(href) 409 }); 410 } 411 }); 412 } 413 414 }); 415 416 /** 417 * Check whether the hostname is part of the cross domains or not. 418 * 419 * @param {string} hostname 420 * The hostname of the clicked URL. 421 * @param {array} crossDomains 422 * All cross domain hostnames as JS array. 423 * 424 * @return {boolean} isCrossDomain 425 */ 426 Drupal.google_analytics.isCrossDomain = function (hostname, crossDomains) { 427 return $.inArray(hostname, crossDomains) > -1 ? true : false; 428 }; 429 430 /** 431 * Check whether this is a download URL or not. 432 * 433 * @param {string} url 434 * The web url to check. 435 * 436 * @return {boolean} isDownload 437 */ 438 Drupal.google_analytics.isDownload = function (url) { 439 var isDownload = new RegExp('\\.(' + drupalSettings.google_analytics.trackDownloadExtensions + ')([\?#].*)?$', 'i'); 440 return isDownload.test(url); 441 }; 442 443 /** 444 * Check whether this is an absolute internal URL or not. 445 * 446 * @param {string} url 447 * The web url to check. 448 * 449 * @return {boolean} isInternal 450 */ 451 Drupal.google_analytics.isInternal = function (url) { 452 var isInternal = new RegExp('^(https?):\/\/' + window.location.host, 'i'); 453 return isInternal.test(url); 454 }; 455 456 /** 457 * Check whether this is a special URL or not. 458 * 459 * URL types: 460 * - gotwo.module /go/* links. 461 * 462 * @param {string} url 463 * The web url to check. 464 * 465 * @return {boolean} isInternalSpecial 466 */ 467 Drupal.google_analytics.isInternalSpecial = function (url) { 468 var isInternalSpecial = new RegExp('(\/go\/.*)$', 'i'); 469 return isInternalSpecial.test(url); 470 }; 471 472 /** 473 * Extract the relative internal URL from an absolute internal URL. 474 * 475 * Examples: 476 * - https://mydomain.com/node/1 -> /node/1 477 * - https://example.com/foo/bar -> https://example.com/foo/bar 478 * 479 * @param {string} url 480 * The web url to check. 481 * 482 * @return {string} getPageUrl 483 * Internal website URL. 484 */ 485 Drupal.google_analytics.getPageUrl = function (url) { 486 var extractInternalUrl = new RegExp('^(https?):\/\/' + window.location.host, 'i'); 487 return url.replace(extractInternalUrl, ''); 488 }; 489 490 /** 491 * Extract the download file extension from the URL. 492 * 493 * @param {string} url 494 * The web url to check. 495 * 496 * @return {string} getDownloadExtension 497 * The file extension of the passed url. e.g. 'zip', 'txt' 498 */ 499 Drupal.google_analytics.getDownloadExtension = function (url) { 500 var extractDownloadextension = new RegExp('\\.(' + drupalSettings.google_analytics.trackDownloadExtensions + ')([\?#].*)?$', 'i'); 501 var extension = extractDownloadextension.exec(url); 502 return (extension === null) ? '' : extension[1]; 503 }; 504 505})(jQuery, Drupal, drupalSettings); 506; 507/*! 508 * Bootstrap v5.2.3 (https://getbootstrap.com/) 509 * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) 510 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 511 */ 512(function (global, factory) { 513 typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : 514 typeof define === 'function' && define.amd ? define(factory) : 515 (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.bootstrap = factory()); 516})(this, (function () { 'use strict'; 517 518 /** 519 * -------------------------------------------------------------------------- 520 * Bootstrap (v5.2.3): util/index.js 521 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 522 * -------------------------------------------------------------------------- 523 */ 524 const MAX_UID = 1000000; 525 const MILLISECONDS_MULTIPLIER = 1000; 526 const TRANSITION_END = 'transitionend'; // Shout-out Angus Croll (https://goo.gl/pxwQGp) 527 528 const toType = object => { 529 if (object === null || object === undefined) { 530 return `${object}`; 531 } 532 533 return Object.prototype.toString.call(object).match(/\s([a-z]+)/i)[1].toLowerCase(); 534 }; 535 /** 536 * Public Util API 537 */ 538 539 540 const getUID = prefix => { 541 do { 542 prefix += Math.floor(Math.random() * MAX_UID); 543 } while (document.getElementById(prefix)); 544 545 return prefix; 546 }; 547 548 const getSelector = element => { 549 let selector = element.getAttribute('data-bs-target'); 550 551 if (!selector || selector === '#') { 552 let hrefAttribute = element.getAttribute('href'); // The only valid content that could double as a selector are IDs or classes, 553 // so everything starting with `#` or `.`. If a "real" URL is used as the selector, 554 // `document.querySelector` will rightfully complain it is invali
vendor: 6,030 bytes, lines 554-782
554d. 555 // See https://github.com/twbs/bootstrap/issues/32273 556 557 if (!hrefAttribute || !hrefAttribute.includes('#') && !hrefAttribute.startsWith('.')) { 558 return null; 559 } // Just in case some CMS puts out a full URL with the anchor appended 560 561 562 if (hrefAttribute.includes('#') && !hrefAttribute.startsWith('#')) { 563 hrefAttribute = `#${hrefAttribute.split('#')[1]}`; 564 } 565 566 selector = hrefAttribute && hrefAttribute !== '#' ? hrefAttribute.trim() : null; 567 } 568 569 return selector; 570 }; 571 572 const getSelectorFromElement = element => { 573 const selector = getSelector(element); 574 575 if (selector) { 576 return document.querySelector(selector) ? selector : null; 577 } 578 579 return null; 580 }; 581 582 const getElementFromSelector = element => { 583 const selector = getSelector(element); 584 return selector ? document.querySelector(selector) : null; 585 }; 586 587 const getTransitionDurationFromElement = element => { 588 if (!element) { 589 return 0; 590 } // Get transition-duration of the element 591 592 593 let { 594 transitionDuration, 595 transitionDelay 596 } = window.getComputedStyle(element); 597 const floatTransitionDuration = Number.parseFloat(transitionDuration); 598 const floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found 599 600 if (!floatTransitionDuration && !floatTransitionDelay) { 601 return 0; 602 } // If multiple durations are defined, take the first 603 604 605 transitionDuration = transitionDuration.split(',')[0]; 606 transitionDelay = transitionDelay.split(',')[0]; 607 return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER; 608 }; 609 610 const triggerTransitionEnd = element => { 611 element.dispatchEvent(new Event(TRANSITION_END)); 612 }; 613 614 const isElement$1 = object => { 615 if (!object || typeof object !== 'object') { 616 return false; 617 } 618 619 if (typeof object.jquery !== 'undefined') { 620 object = object[0]; 621 } 622 623 return typeof object.nodeType !== 'undefined'; 624 }; 625 626 const getElement = object => { 627 // it's a jQuery object or a node element 628 if (isElement$1(object)) { 629 return object.jquery ? object[0] : object; 630 } 631 632 if (typeof object === 'string' && object.length > 0) { 633 return document.querySelector(object); 634 } 635 636 return null; 637 }; 638 639 const isVisible = element => { 640 if (!isElement$1(element) || element.getClientRects().length === 0) { 641 return false; 642 } 643 644 const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible'; // Handle `details` element as its content may falsie appear visible when it is closed 645 646 const closedDetails = element.closest('details:not([open])'); 647 648 if (!closedDetails) { 649 return elementIsVisible; 650 } 651 652 if (closedDetails !== element) { 653 const summary = element.closest('summary'); 654 655 if (summary && summary.parentNode !== closedDetails) { 656 return false; 657 } 658 659 if (summary === null) { 660 return false; 661 } 662 } 663 664 return elementIsVisible; 665 }; 666 667 const isDisabled = element => { 668 if (!element || element.nodeType !== Node.ELEMENT_NODE) { 669 return true; 670 } 671 672 if (element.classList.contains('disabled')) { 673 return true; 674 } 675 676 if (typeof element.disabled !== 'undefined') { 677 return element.disabled; 678 } 679 680 return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false'; 681 }; 682 683 const findShadowRoot = element => { 684 if (!document.documentElement.attachShadow) { 685 return null; 686 } // Can find the shadow root otherwise it'll return the document 687 688 689 if (typeof element.getRootNode === 'function') { 690 const root = element.getRootNode(); 691 return root instanceof ShadowRoot ? root : null; 692 } 693 694 if (element instanceof ShadowRoot) { 695 return element; 696 } // when we don't find a shadow root 697 698 699 if (!element.parentNode) { 700 return null; 701 } 702 703 return findShadowRoot(element.parentNode); 704 }; 705 706 const noop = () => {}; 707 /** 708 * Trick to restart an element's animation 709 * 710 * @param {HTMLElement} element 711 * @return void 712 * 713 * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation 714 */ 715 716 717 const reflow = element => { 718 element.offsetHeight; // eslint-disable-line no-unused-expressions 719 }; 720 721 const getjQuery = () => { 722 if (window.jQuery && !document.body.hasAttribute('data-bs-no-jquery')) { 723 return window.jQuery; 724 } 725 726 return null; 727 }; 728 729 const DOMContentLoadedCallbacks = []; 730 731 const onDOMContentLoaded = callback => { 732 if (document.readyState === 'loading') { 733 // add listener on the first call when the document is in loading state 734 if (!DOMContentLoadedCallbacks.length) { 735 document.addEventListener('DOMContentLoaded', () => { 736 for (const callback of DOMContentLoadedCallbacks) { 737 callback(); 738 } 739 }); 740 } 741 742 DOMContentLoadedCallbacks.push(callback); 743 } else { 744 callback(); 745 } 746 }; 747 748 const isRTL = () => document.documentElement.dir === 'rtl'; 749 750 const defineJQueryPlugin = plugin => { 751 onDOMContentLoaded(() => { 752 const $ = getjQuery(); 753 /* istanbul ignore if */ 754 755 if ($) { 756 const name = plugin.NAME; 757 const JQUERY_NO_CONFLICT = $.fn[name]; 758 $.fn[name] = plugin.jQueryInterface; 759 $.fn[name].Constructor = plugin; 760 761 $.fn[name].noConflict = () => { 762 $.fn[name] = JQUERY_NO_CONFLICT; 763 return plugin.jQueryInterface; 764 }; 765 } 766 }); 767 }; 768 769 const execute = callback => { 770 if (typeof callback === 'function') { 771 callback(); 772 } 773 }; 774 775 const executeAfterTransition = (callback, transitionElement, waitForTransition = true) => { 776 if (!waitForTransition) { 777 execute(callback); 778 return; 779 } 780 781 const durationPadding = 5; 782 const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding;
vendor: 5,298 bytes, lines 783-937
783 let called = false; 784 785 const handler = ({ 786 target 787 }) => { 788 if (target !== transitionElement) { 789 return; 790 } 791 792 called = true; 793 transitionElement.removeEventListener(TRANSITION_END, handler); 794 execute(callback); 795 }; 796 797 transitionElement.addEventListener(TRANSITION_END, handler); 798 setTimeout(() => { 799 if (!called) { 800 triggerTransitionEnd(transitionElement); 801 } 802 }, emulatedDuration); 803 }; 804 /** 805 * Return the previous/next element of a list. 806 * 807 * @param {array} list The list of elements 808 * @param activeElement The active element 809 * @param shouldGetNext Choose to get next or previous element 810 * @param isCycleAllowed 811 * @return {Element|elem} The proper element 812 */ 813 814 815 const getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => { 816 const listLength = list.length; 817 let index = list.indexOf(activeElement); // if the element does not exist in the list return an element 818 // depending on the direction and if cycle is allowed 819 820 if (index === -1) { 821 return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0]; 822 } 823 824 index += shouldGetNext ? 1 : -1; 825 826 if (isCycleAllowed) { 827 index = (index + listLength) % listLength; 828 } 829 830 return list[Math.max(0, Math.min(index, listLength - 1))]; 831 }; 832 833 /** 834 * -------------------------------------------------------------------------- 835 * Bootstrap (v5.2.3): dom/event-handler.js 836 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 837 * -------------------------------------------------------------------------- 838 */ 839 /** 840 * Constants 841 */ 842 843 const namespaceRegex = /[^.]*(?=\..*)\.|.*/; 844 const stripNameRegex = /\..*/; 845 const stripUidRegex = /::\d+$/; 846 const eventRegistry = {}; // Events storage 847 848 let uidEvent = 1; 849 const customEvents = { 850 mouseenter: 'mouseover', 851 mouseleave: 'mouseout' 852 }; 853 const nativeEvents = new Set(['click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu', 'mousewheel', 'DOMMouseScroll', 'mouseover', 'mouseout', 'mousemove', 'selectstart', 'selectend', 'keydown', 'keypress', 'keyup', 'orientationchange', 'touchstart', 'touchmove', 'touchend', 'touchcancel', 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel', 'gesturestart', 'gesturechange', 'gestureend', 'focus', 'blur', 'change', 'reset', 'select', 'submit', 'focusin', 'focusout', 'load', 'unload', 'beforeunload', 'resize', 'move', 'DOMContentLoaded', 'readystatechange', 'error', 'abort', 'scroll']); 854 /** 855 * Private methods 856 */ 857 858 function makeEventUid(element, uid) { 859 return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++; 860 } 861 862 function getElementEvents(element) { 863 const uid = makeEventUid(element); 864 element.uidEvent = uid; 865 eventRegistry[uid] = eventRegistry[uid] || {}; 866 return eventRegistry[uid]; 867 } 868 869 function bootstrapHandler(element, fn) { 870 return function handler(event) { 871 hydrateObj(event, { 872 delegateTarget: element 873 }); 874 875 if (handler.oneOff) { 876 EventHandler.off(element, event.type, fn); 877 } 878 879 return fn.apply(element, [event]); 880 }; 881 } 882 883 function bootstrapDelegationHandler(element, selector, fn) { 884 return function handler(event) { 885 const domElements = element.querySelectorAll(selector); 886 887 for (let { 888 target 889 } = event; target && target !== this; target = target.parentNode) { 890 for (const domElement of domElements) { 891 if (domElement !== target) { 892 continue; 893 } 894 895 hydrateObj(event, { 896 delegateTarget: target 897 }); 898 899 if (handler.oneOff) { 900 EventHandler.off(element, event.type, selector, fn); 901 } 902 903 return fn.apply(target, [event]); 904 } 905 } 906 }; 907 } 908 909 function findHandler(events, callable, delegationSelector = null) { 910 return Object.values(events).find(event => event.callable === callable && event.delegationSelector === delegationSelector); 911 } 912 913 function normalizeParameters(originalTypeEvent, handler, delegationFunction) { 914 const isDelegated = typeof handler === 'string'; // todo: tooltip passes `false` instead of selector, so we need to check 915 916 const callable = isDelegated ? delegationFunction : handler || delegationFunction; 917 let typeEvent = getTypeEvent(originalTypeEvent); 918 919 if (!nativeEvents.has(typeEvent)) { 920 typeEvent = originalTypeEvent; 921 } 922 923 return [isDelegated, callable, typeEvent]; 924 } 925 926 function addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) { 927 if (typeof originalTypeEvent !== 'string' || !element) { 928 return; 929 } 930 931 let [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction); // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position 932 // this prevents the handler from being dispatched the same way as mouseover or mouseout does 933 934 if (originalTypeEvent in customEvents) { 935 const wrapFunction = fn => { 936 return function (event) { 937 if (!event.relatedTarget || event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget)) {
vendor: 4,666 bytes, lines 938-1084
938 return fn.call(this, event); 939 } 940 }; 941 }; 942 943 callable = wrapFunction(callable); 944 } 945 946 const events = getElementEvents(element); 947 const handlers = events[typeEvent] || (events[typeEvent] = {}); 948 const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null); 949 950 if (previousFunction) { 951 previousFunction.oneOff = previousFunction.oneOff && oneOff; 952 return; 953 } 954 955 const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, '')); 956 const fn = isDelegated ? bootstrapDelegationHandler(element, handler, callable) : bootstrapHandler(element, callable); 957 fn.delegationSelector = isDelegated ? handler : null; 958 fn.callable = callable; 959 fn.oneOff = oneOff; 960 fn.uidEvent = uid; 961 handlers[uid] = fn; 962 element.addEventListener(typeEvent, fn, isDelegated); 963 } 964 965 function removeHandler(element, events, typeEvent, handler, delegationSelector) { 966 const fn = findHandler(events[typeEvent], handler, delegationSelector); 967 968 if (!fn) { 969 return; 970 } 971 972 element.removeEventListener(typeEvent, fn, Boolean(delegationSelector)); 973 delete events[typeEvent][fn.uidEvent]; 974 } 975 976 function removeNamespacedHandlers(element, events, typeEvent, namespace) { 977 const storeElementEvent = events[typeEvent] || {}; 978 979 for (const handlerKey of Object.keys(storeElementEvent)) { 980 if (handlerKey.includes(namespace)) { 981 const event = storeElementEvent[handlerKey]; 982 removeHandler(element, events, typeEvent, event.callable, event.delegationSelector); 983 } 984 } 985 } 986 987 function getTypeEvent(event) { 988 // allow to get the native events from namespaced events ('click.bs.button' --> 'click') 989 event = event.replace(stripNameRegex, ''); 990 return customEvents[event] || event; 991 } 992 993 const EventHandler = { 994 on(element, event, handler, delegationFunction) { 995 addHandler(element, event, handler, delegationFunction, false); 996 }, 997 998 one(element, event, handler, delegationFunction) { 999 addHandler(element, event, handler, delegationFunction, true); 1000 }, 1001 1002 off(element, originalTypeEvent, handler, delegationFunction) { 1003 if (typeof originalTypeEvent !== 'string' || !element) { 1004 return; 1005 } 1006 1007 const [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction); 1008 const inNamespace = typeEvent !== originalTypeEvent; 1009 const events = getElementEvents(element); 1010 const storeElementEvent = events[typeEvent] || {}; 1011 const isNamespace = originalTypeEvent.startsWith('.'); 1012 1013 if (typeof callable !== 'undefined') { 1014 // Simplest case: handler is passed, remove that listener ONLY. 1015 if (!Object.keys(storeElementEvent).length) { 1016 return; 1017 } 1018 1019 removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null); 1020 return; 1021 } 1022 1023 if (isNamespace) { 1024 for (const elementEvent of Object.keys(events)) { 1025 removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1)); 1026 } 1027 } 1028 1029 for (const keyHandlers of Object.keys(storeElementEvent)) { 1030 const handlerKey = keyHandlers.replace(stripUidRegex, ''); 1031 1032 if (!inNamespace || originalTypeEvent.includes(handlerKey)) { 1033 const event = storeElementEvent[keyHandlers]; 1034 removeHandler(element, events, typeEvent, event.callable, event.delegationSelector); 1035 } 1036 } 1037 }, 1038 1039 trigger(element, event, args) { 1040 if (typeof event !== 'string' || !element) { 1041 return null; 1042 } 1043 1044 const $ = getjQuery(); 1045 const typeEvent = getTypeEvent(event); 1046 const inNamespace = event !== typeEvent; 1047 let jQueryEvent = null; 1048 let bubbles = true; 1049 let nativeDispatch = true; 1050 let defaultPrevented = false; 1051 1052 if (inNamespace && $) { 1053 jQueryEvent = $.Event(event, args); 1054 $(element).trigger(jQueryEvent); 1055 bubbles = !jQueryEvent.isPropagationStopped(); 1056 nativeDispatch = !jQueryEvent.isImmediatePropagationStopped(); 1057 defaultPrevented = jQueryEvent.isDefaultPrevented(); 1058 } 1059 1060 let evt = new Event(event, { 1061 bubbles, 1062 cancelable: true 1063 }); 1064 evt = hydrateObj(evt, args); 1065 1066 if (defaultPrevented) { 1067 evt.preventDefault(); 1068 } 1069 1070 if (nativeDispatch) { 1071 element.dispatchEvent(evt); 1072 } 1073 1074 if (evt.defaultPrevented && jQueryEvent) { 1075 jQueryEvent.preventDefault(); 1076 } 1077 1078 return evt; 1079 } 1080 1081 }; 1082 1083 function hydrateObj(obj, meta) { 1084 for (const [key, value] of Object.entries(meta || {})) {
vendor: 6,170 bytes, lines 1085-1318
1085 try { 1086 obj[key] = value; 1087 } catch (_unused) { 1088 Object.defineProperty(obj, key, { 1089 configurable: true, 1090 1091 get() { 1092 return value; 1093 } 1094 1095 }); 1096 } 1097 } 1098 1099 return obj; 1100 } 1101 1102 /** 1103 * -------------------------------------------------------------------------- 1104 * Bootstrap (v5.2.3): dom/data.js 1105 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 1106 * -------------------------------------------------------------------------- 1107 */ 1108 1109 /** 1110 * Constants 1111 */ 1112 const elementMap = new Map(); 1113 const Data = { 1114 set(element, key, instance) { 1115 if (!elementMap.has(element)) { 1116 elementMap.set(element, new Map()); 1117 } 1118 1119 const instanceMap = elementMap.get(element); // make it clear we only want one instance per element 1120 // can be removed later when multiple key/instances are fine to be used 1121 1122 if (!instanceMap.has(key) && instanceMap.size !== 0) { 1123 // eslint-disable-next-line no-console 1124 console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`); 1125 return; 1126 } 1127 1128 instanceMap.set(key, instance); 1129 }, 1130 1131 get(element, key) { 1132 if (elementMap.has(element)) { 1133 return elementMap.get(element).get(key) || null; 1134 } 1135 1136 return null; 1137 }, 1138 1139 remove(element, key) { 1140 if (!elementMap.has(element)) { 1141 return; 1142 } 1143 1144 const instanceMap = elementMap.get(element); 1145 instanceMap.delete(key); // free up element references if there are no instances left for an element 1146 1147 if (instanceMap.size === 0) { 1148 elementMap.delete(element); 1149 } 1150 } 1151 1152 }; 1153 1154 /** 1155 * -------------------------------------------------------------------------- 1156 * Bootstrap (v5.2.3): dom/manipulator.js 1157 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 1158 * -------------------------------------------------------------------------- 1159 */ 1160 function normalizeData(value) { 1161 if (value === 'true') { 1162 return true; 1163 } 1164 1165 if (value === 'false') { 1166 return false; 1167 } 1168 1169 if (value === Number(value).toString()) { 1170 return Number(value); 1171 } 1172 1173 if (value === '' || value === 'null') { 1174 return null; 1175 } 1176 1177 if (typeof value !== 'string') { 1178 return value; 1179 } 1180 1181 try { 1182 return JSON.parse(decodeURIComponent(value)); 1183 } catch (_unused) { 1184 return value; 1185 } 1186 } 1187 1188 function normalizeDataKey(key) { 1189 return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`); 1190 } 1191 1192 const Manipulator = { 1193 setDataAttribute(element, key, value) { 1194 element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value); 1195 }, 1196 1197 removeDataAttribute(element, key) { 1198 element.removeAttribute(`data-bs-${normalizeDataKey(key)}`); 1199 }, 1200 1201 getDataAttributes(element) { 1202 if (!element) { 1203 return {}; 1204 } 1205 1206 const attributes = {}; 1207 const bsKeys = Object.keys(element.dataset).filter(key => key.startsWith('bs') && !key.startsWith('bsConfig')); 1208 1209 for (const key of bsKeys) { 1210 let pureKey = key.replace(/^bs/, ''); 1211 pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length); 1212 attributes[pureKey] = normalizeData(element.dataset[key]); 1213 } 1214 1215 return attributes; 1216 }, 1217 1218 getDataAttribute(element, key) { 1219 return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`)); 1220 } 1221 1222 }; 1223 1224 /** 1225 * -------------------------------------------------------------------------- 1226 * Bootstrap (v5.2.3): util/config.js 1227 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 1228 * -------------------------------------------------------------------------- 1229 */ 1230 /** 1231 * Class definition 1232 */ 1233 1234 class Config { 1235 // Getters 1236 static get Default() { 1237 return {}; 1238 } 1239 1240 static get DefaultType() { 1241 return {}; 1242 } 1243 1244 static get NAME() { 1245 throw new Error('You have to implement the static method "NAME", for each component!'); 1246 } 1247 1248 _getConfig(config) { 1249 config = this._mergeConfigObj(config); 1250 config = this._configAfterMerge(config); 1251 1252 this._typeCheckConfig(config); 1253 1254 return config; 1255 } 1256 1257 _configAfterMerge(config) { 1258 return config; 1259 } 1260 1261 _mergeConfigObj(config, element) { 1262 const jsonConfig = isElement$1(element) ? Manipulator.getDataAttribute(element, 'config') : {}; // try to parse 1263 1264 return { ...this.constructor.Default, 1265 ...(typeof jsonConfig === 'object' ? jsonConfig : {}), 1266 ...(isElement$1(element) ? Manipulator.getDataAttributes(element) : {}), 1267 ...(typeof config === 'object' ? config : {}) 1268 }; 1269 } 1270 1271 _typeCheckConfig(config, configTypes = this.constructor.DefaultType) { 1272 for (const property of Object.keys(configTypes)) { 1273 const expectedTypes = configTypes[property]; 1274 const value = config[property]; 1275 const valueType = isElement$1(value) ? 'element' : toType(value); 1276 1277 if (!new RegExp(expectedTypes).test(valueType)) { 1278 throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${property}" provided type "${valueType}" but expected type "${expectedTypes}".`); 1279 } 1280 } 1281 } 1282 1283 } 1284 1285 /** 1286 * -------------------------------------------------------------------------- 1287 * Bootstrap (v5.2.3): base-component.js 1288 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 1289 * -------------------------------------------------------------------------- 1290 */ 1291 /** 1292 * Constants 1293 */ 1294 1295 const VERSION = '5.2.3'; 1296 /** 1297 * Class definition 1298 */ 1299 1300 class BaseComponent extends Config { 1301 constructor(element, config) { 1302 super(); 1303 element = getElement(element); 1304 1305 if (!element) { 1306 return; 1307 } 1308 1309 this._element = element; 1310 this._config = this._getConfig(config); 1311 Data.set(this._element, this.constructor.DATA_KEY, this); 1312 } // Public 1313 1314 1315 dispose() { 1316 Data.remove(this._element, this.constructor.DATA_KEY); 1317 EventHandler.off(this._element, this.constructor.EVENT_KEY); 1318
vendor: 2,511 bytes, lines 1319-1405
1319 for (const propertyName of Object.getOwnPropertyNames(this)) { 1320 this[propertyName] = null; 1321 } 1322 } 1323 1324 _queueCallback(callback, element, isAnimated = true) { 1325 executeAfterTransition(callback, element, isAnimated); 1326 } 1327 1328 _getConfig(config) { 1329 config = this._mergeConfigObj(config, this._element); 1330 config = this._configAfterMerge(config); 1331 1332 this._typeCheckConfig(config); 1333 1334 return config; 1335 } // Static 1336 1337 1338 static getInstance(element) { 1339 return Data.get(getElement(element), this.DATA_KEY); 1340 } 1341 1342 static getOrCreateInstance(element, config = {}) { 1343 return this.getInstance(element) || new this(element, typeof config === 'object' ? config : null); 1344 } 1345 1346 static get VERSION() { 1347 return VERSION; 1348 } 1349 1350 static get DATA_KEY() { 1351 return `bs.${this.NAME}`; 1352 } 1353 1354 static get EVENT_KEY() { 1355 return `.${this.DATA_KEY}`; 1356 } 1357 1358 static eventName(name) { 1359 return `${name}${this.EVENT_KEY}`; 1360 } 1361 1362 } 1363 1364 /** 1365 * -------------------------------------------------------------------------- 1366 * Bootstrap (v5.2.3): util/component-functions.js 1367 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 1368 * -------------------------------------------------------------------------- 1369 */ 1370 1371 const enableDismissTrigger = (component, method = 'hide') => { 1372 const clickEvent = `click.dismiss${component.EVENT_KEY}`; 1373 const name = component.NAME; 1374 EventHandler.on(document, clickEvent, `[data-bs-dismiss="${name}"]`, function (event) { 1375 if (['A', 'AREA'].includes(this.tagName)) { 1376 event.preventDefault(); 1377 } 1378 1379 if (isDisabled(this)) { 1380 return; 1381 } 1382 1383 const target = getElementFromSelector(this) || this.closest(`.${name}`); 1384 const instance = component.getOrCreateInstance(target); // Method argument is left, for Alert and only, as it doesn't implement the 'hide' method 1385 1386 instance[method](); 1387 }); 1388 }; 1389 1390 /** 1391 * -------------------------------------------------------------------------- 1392 * Bootstrap (v5.2.3): alert.js 1393 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 1394 * -------------------------------------------------------------------------- 1395 */ 1396 /** 1397 * Constants 1398 */ 1399 1400 const NAME$f = 'alert'; 1401 const DATA_KEY$a = 'bs.alert'; 1402 const EVENT_KEY$b = `.${DATA_KEY$a}`; 1403 const EVENT_CLOSE = `close${EVENT_KEY$b}`; 1404 const EVENT_CLOSED = `closed${EVENT_KEY$b}`; 1405 const CLASS_NAME_FADE$5 = 'fade';
vendor: 8,809 bytes, lines 1406-1751
1406 const CLASS_NAME_SHOW$8 = 'show'; 1407 /** 1408 * Class definition 1409 */ 1410 1411 class Alert extends BaseComponent { 1412 // Getters 1413 static get NAME() { 1414 return NAME$f; 1415 } // Public 1416 1417 1418 close() { 1419 const closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE); 1420 1421 if (closeEvent.defaultPrevented) { 1422 return; 1423 } 1424 1425 this._element.classList.remove(CLASS_NAME_SHOW$8); 1426 1427 const isAnimated = this._element.classList.contains(CLASS_NAME_FADE$5); 1428 1429 this._queueCallback(() => this._destroyElement(), this._element, isAnimated); 1430 } // Private 1431 1432 1433 _destroyElement() { 1434 this._element.remove(); 1435 1436 EventHandler.trigger(this._element, EVENT_CLOSED); 1437 this.dispose(); 1438 } // Static 1439 1440 1441 static jQueryInterface(config) { 1442 return this.each(function () { 1443 const data = Alert.getOrCreateInstance(this); 1444 1445 if (typeof config !== 'string') { 1446 return; 1447 } 1448 1449 if (data[config] === undefined || config.startsWith('_') || config === 'constructor') { 1450 throw new TypeError(`No method named "${config}"`); 1451 } 1452 1453 data[config](this); 1454 }); 1455 } 1456 1457 } 1458 /** 1459 * Data API implementation 1460 */ 1461 1462 1463 enableDismissTrigger(Alert, 'close'); 1464 /** 1465 * jQuery 1466 */ 1467 1468 defineJQueryPlugin(Alert); 1469 1470 /** 1471 * -------------------------------------------------------------------------- 1472 * Bootstrap (v5.2.3): button.js 1473 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 1474 * -------------------------------------------------------------------------- 1475 */ 1476 /** 1477 * Constants 1478 */ 1479 1480 const NAME$e = 'button'; 1481 const DATA_KEY$9 = 'bs.button'; 1482 const EVENT_KEY$a = `.${DATA_KEY$9}`; 1483 const DATA_API_KEY$6 = '.data-api'; 1484 const CLASS_NAME_ACTIVE$3 = 'active'; 1485 const SELECTOR_DATA_TOGGLE$5 = '[data-bs-toggle="button"]'; 1486 const EVENT_CLICK_DATA_API$6 = `click${EVENT_KEY$a}${DATA_API_KEY$6}`; 1487 /** 1488 * Class definition 1489 */ 1490 1491 class Button extends BaseComponent { 1492 // Getters 1493 static get NAME() { 1494 return NAME$e; 1495 } // Public 1496 1497 1498 toggle() { 1499 // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method 1500 this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE$3)); 1501 } // Static 1502 1503 1504 static jQueryInterface(config) { 1505 return this.each(function () { 1506 const data = Button.getOrCreateInstance(this); 1507 1508 if (config === 'toggle') { 1509 data[config](); 1510 } 1511 }); 1512 } 1513 1514 } 1515 /** 1516 * Data API implementation 1517 */ 1518 1519 1520 EventHandler.on(document, EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$5, event => { 1521 event.preventDefault(); 1522 const button = event.target.closest(SELECTOR_DATA_TOGGLE$5); 1523 const data = Button.getOrCreateInstance(button); 1524 data.toggle(); 1525 }); 1526 /** 1527 * jQuery 1528 */ 1529 1530 defineJQueryPlugin(Button); 1531 1532 /** 1533 * -------------------------------------------------------------------------- 1534 * Bootstrap (v5.2.3): dom/selector-engine.js 1535 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 1536 * -------------------------------------------------------------------------- 1537 */ 1538 /** 1539 * Constants 1540 */ 1541 1542 const SelectorEngine = { 1543 find(selector, element = document.documentElement) { 1544 return [].concat(...Element.prototype.querySelectorAll.call(element, selector)); 1545 }, 1546 1547 findOne(selector, element = document.documentElement) { 1548 return Element.prototype.querySelector.call(element, selector); 1549 }, 1550 1551 children(element, selector) { 1552 return [].concat(...element.children).filter(child => child.matches(selector)); 1553 }, 1554 1555 parents(element, selector) { 1556 const parents = []; 1557 let ancestor = element.parentNode.closest(selector); 1558 1559 while (ancestor) { 1560 parents.push(ancestor); 1561 ancestor = ancestor.parentNode.closest(selector); 1562 } 1563 1564 return parents; 1565 }, 1566 1567 prev(element, selector) { 1568 let previous = element.previousElementSibling; 1569 1570 while (previous) { 1571 if (previous.matches(selector)) { 1572 return [previous]; 1573 } 1574 1575 previous = previous.previousElementSibling; 1576 } 1577 1578 return []; 1579 }, 1580 1581 // TODO: this is now unused; remove later along with prev() 1582 next(element, selector) { 1583 let next = element.nextElementSibling; 1584 1585 while (next) { 1586 if (next.matches(selector)) { 1587 return [next]; 1588 } 1589 1590 next = next.nextElementSibling; 1591 } 1592 1593 return []; 1594 }, 1595 1596 focusableChildren(element) { 1597 const focusables = ['a', 'button', 'input', 'textarea', 'select', 'details', '[tabindex]', '[contenteditable="true"]'].map(selector => `${selector}:not([tabindex^="-"])`).join(','); 1598 return this.find(focusables, element).filter(el => !isDisabled(el) && isVisible(el)); 1599 } 1600 1601 }; 1602 1603 /** 1604 * -------------------------------------------------------------------------- 1605 * Bootstrap (v5.2.3): util/swipe.js 1606 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 1607 * -------------------------------------------------------------------------- 1608 */ 1609 /** 1610 * Constants 1611 */ 1612 1613 const NAME$d = 'swipe'; 1614 const EVENT_KEY$9 = '.bs.swipe'; 1615 const EVENT_TOUCHSTART = `touchstart${EVENT_KEY$9}`; 1616 const EVENT_TOUCHMOVE = `touchmove${EVENT_KEY$9}`; 1617 const EVENT_TOUCHEND = `touchend${EVENT_KEY$9}`; 1618 const EVENT_POINTERDOWN = `pointerdown${EVENT_KEY$9}`; 1619 const EVENT_POINTERUP = `pointerup${EVENT_KEY$9}`; 1620 const POINTER_TYPE_TOUCH = 'touch'; 1621 const POINTER_TYPE_PEN = 'pen'; 1622 const CLASS_NAME_POINTER_EVENT = 'pointer-event'; 1623 const SWIPE_THRESHOLD = 40; 1624 const Default$c = { 1625 endCallback: null, 1626 leftCallback: null, 1627 rightCallback: null 1628 }; 1629 const DefaultType$c = { 1630 endCallback: '(function|null)', 1631 leftCallback: '(function|null)', 1632 rightCallback: '(function|null)' 1633 }; 1634 /** 1635 * Class definition 1636 */ 1637 1638 class Swipe extends Config { 1639 constructor(element, config) { 1640 super(); 1641 this._element = element; 1642 1643 if (!element || !Swipe.isSupported()) { 1644 return; 1645 } 1646 1647 this._config = this._getConfig(config); 1648 this._deltaX = 0; 1649 this._supportPointerEvents = Boolean(window.PointerEvent); 1650 1651 this._initEvents(); 1652 } // Getters 1653 1654 1655 static get Default() { 1656 return Default$c; 1657 } 1658 1659 static get DefaultType() { 1660 return DefaultType$c; 1661 } 1662 1663 static get NAME() { 1664 return NAME$d; 1665 } // Public 1666 1667 1668 dispose() { 1669 EventHandler.off(this._element, EVENT_KEY$9); 1670 } // Private 1671 1672 1673 _start(event) { 1674 if (!this._supportPointerEvents) { 1675 this._deltaX = event.touches[0].clientX; 1676 return; 1677 } 1678 1679 if (this._eventIsPointerPenTouch(event)) { 1680 this._deltaX = event.clientX; 1681 } 1682 } 1683 1684 _end(event) { 1685 if (this._eventIsPointerPenTouch(event)) { 1686 this._deltaX = event.clientX - this._deltaX; 1687 } 1688 1689 this._handleSwipe(); 1690 1691 execute(this._config.endCallback); 1692 } 1693 1694 _move(event) { 1695 this._deltaX = event.touches && event.touches.length > 1 ? 0 : event.touches[0].clientX - this._deltaX; 1696 } 1697 1698 _handleSwipe() { 1699 const absDeltaX = Math.abs(this._deltaX); 1700 1701 if (absDeltaX <= SWIPE_THRESHOLD) { 1702 return; 1703 } 1704 1705 const direction = absDeltaX / this._deltaX; 1706 this._deltaX = 0; 1707 1708 if (!direction) { 1709 return; 1710 } 1711 1712 execute(direction > 0 ? this._config.rightCallback : this._config.leftCallback); 1713 } 1714 1715 _initEvents() { 1716 if (this._supportPointerEvents) { 1717 EventHandler.on(this._element, EVENT_POINTERDOWN, event => this._start(event)); 1718 EventHandler.on(this._element, EVENT_POINTERUP, event => this._end(event)); 1719 1720 this._element.classList.add(CLASS_NAME_POINTER_EVENT); 1721 } else { 1722 EventHandler.on(this._element, EVENT_TOUCHSTART, event => this._start(event)); 1723 EventHandler.on(this._element, EVENT_TOUCHMOVE, event => this._move(event)); 1724 EventHandler.on(this._element, EVENT_TOUCHEND, event => this._end(event)); 1725 } 1726 } 1727 1728 _eventIsPointerPenTouch(event) { 1729 return this._supportPointerEvents && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH); 1730 } // Static 1731 1732 1733 static isSupported() { 1734 return 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0; 1735 } 1736 1737 } 1738 1739 /** 1740 * -------------------------------------------------------------------------- 1741 * Bootstrap (v5.2.3): carousel.js 1742 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 1743 * -------------------------------------------------------------------------- 1744 */ 1745 /** 1746 * Constants 1747 */ 1748 1749 const NAME$c = 'carousel'; 1750 const DATA_KEY$8 = 'bs.carousel'; 1751 const EVENT_KEY$8 = `.${DATA_KEY$8}`;
vendor: 24,803 bytes, lines 1752-2640
1752 const DATA_API_KEY$5 = '.data-api'; 1753 const ARROW_LEFT_KEY$1 = 'ArrowLeft'; 1754 const ARROW_RIGHT_KEY$1 = 'ArrowRight'; 1755 const TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch 1756 1757 const ORDER_NEXT = 'next'; 1758 const ORDER_PREV = 'prev'; 1759 const DIRECTION_LEFT = 'left'; 1760 const DIRECTION_RIGHT = 'right'; 1761 const EVENT_SLIDE = `slide${EVENT_KEY$8}`; 1762 const EVENT_SLID = `slid${EVENT_KEY$8}`; 1763 const EVENT_KEYDOWN$1 = `keydown${EVENT_KEY$8}`; 1764 const EVENT_MOUSEENTER$1 = `mouseenter${EVENT_KEY$8}`; 1765 const EVENT_MOUSELEAVE$1 = `mouseleave${EVENT_KEY$8}`; 1766 const EVENT_DRAG_START = `dragstart${EVENT_KEY$8}`; 1767 const EVENT_LOAD_DATA_API$3 = `load${EVENT_KEY$8}${DATA_API_KEY$5}`; 1768 const EVENT_CLICK_DATA_API$5 = `click${EVENT_KEY$8}${DATA_API_KEY$5}`; 1769 const CLASS_NAME_CAROUSEL = 'carousel'; 1770 const CLASS_NAME_ACTIVE$2 = 'active'; 1771 const CLASS_NAME_SLIDE = 'slide'; 1772 const CLASS_NAME_END = 'carousel-item-end'; 1773 const CLASS_NAME_START = 'carousel-item-start'; 1774 const CLASS_NAME_NEXT = 'carousel-item-next'; 1775 const CLASS_NAME_PREV = 'carousel-item-prev'; 1776 const SELECTOR_ACTIVE = '.active'; 1777 const SELECTOR_ITEM = '.carousel-item'; 1778 const SELECTOR_ACTIVE_ITEM = SELECTOR_ACTIVE + SELECTOR_ITEM; 1779 const SELECTOR_ITEM_IMG = '.carousel-item img'; 1780 const SELECTOR_INDICATORS = '.carousel-indicators'; 1781 const SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]'; 1782 const SELECTOR_DATA_RIDE = '[data-bs-ride="carousel"]'; 1783 const KEY_TO_DIRECTION = { 1784 [ARROW_LEFT_KEY$1]: DIRECTION_RIGHT, 1785 [ARROW_RIGHT_KEY$1]: DIRECTION_LEFT 1786 }; 1787 const Default$b = { 1788 interval: 5000, 1789 keyboard: true, 1790 pause: 'hover', 1791 ride: false, 1792 touch: true, 1793 wrap: true 1794 }; 1795 const DefaultType$b = { 1796 interval: '(number|boolean)', 1797 // TODO:v6 remove boolean support 1798 keyboard: 'boolean', 1799 pause: '(string|boolean)', 1800 ride: '(boolean|string)', 1801 touch: 'boolean', 1802 wrap: 'boolean' 1803 }; 1804 /** 1805 * Class definition 1806 */ 1807 1808 class Carousel extends BaseComponent { 1809 constructor(element, config) { 1810 super(element, config); 1811 this._interval = null; 1812 this._activeElement = null; 1813 this._isSliding = false; 1814 this.touchTimeout = null; 1815 this._swipeHelper = null; 1816 this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element); 1817 1818 this._addEventListeners(); 1819 1820 if (this._config.ride === CLASS_NAME_CAROUSEL) { 1821 this.cycle(); 1822 } 1823 } // Getters 1824 1825 1826 static get Default() { 1827 return Default$b; 1828 } 1829 1830 static get DefaultType() { 1831 return DefaultType$b; 1832 } 1833 1834 static get NAME() { 1835 return NAME$c; 1836 } // Public 1837 1838 1839 next() { 1840 this._slide(ORDER_NEXT); 1841 } 1842 1843 nextWhenVisible() { 1844 // FIXME TODO use `document.visibilityState` 1845 // Don't call next when the page isn't visible 1846 // or the carousel or its parent isn't visible 1847 if (!document.hidden && isVisible(this._element)) { 1848 this.next(); 1849 } 1850 } 1851 1852 prev() { 1853 this._slide(ORDER_PREV); 1854 } 1855 1856 pause() { 1857 if (this._isSliding) { 1858 triggerTransitionEnd(this._element); 1859 } 1860 1861 this._clearInterval(); 1862 } 1863 1864 cycle() { 1865 this._clearInterval(); 1866 1867 this._updateInterval(); 1868 1869 this._interval = setInterval(() => this.nextWhenVisible(), this._config.interval); 1870 } 1871 1872 _maybeEnableCycle() { 1873 if (!this._config.ride) { 1874 return; 1875 } 1876 1877 if (this._isSliding) { 1878 EventHandler.one(this._element, EVENT_SLID, () => this.cycle()); 1879 return; 1880 } 1881 1882 this.cycle(); 1883 } 1884 1885 to(index) { 1886 const items = this._getItems(); 1887 1888 if (index > items.length - 1 || index < 0) { 1889 return; 1890 } 1891 1892 if (this._isSliding) { 1893 EventHandler.one(this._element, EVENT_SLID, () => this.to(index)); 1894 return; 1895 } 1896 1897 const activeIndex = this._getItemIndex(this._getActive()); 1898 1899 if (activeIndex === index) { 1900 return; 1901 } 1902 1903 const order = index > activeIndex ? ORDER_NEXT : ORDER_PREV; 1904 1905 this._slide(order, items[index]); 1906 } 1907 1908 dispose() { 1909 if (this._swipeHelper) { 1910 this._swipeHelper.dispose(); 1911 } 1912 1913 super.dispose(); 1914 } // Private 1915 1916 1917 _configAfterMerge(config) { 1918 config.defaultInterval = config.interval; 1919 return config; 1920 } 1921 1922 _addEventListeners() { 1923 if (this._config.keyboard) { 1924 EventHandler.on(this._element, EVENT_KEYDOWN$1, event => this._keydown(event)); 1925 } 1926 1927 if (this._config.pause === 'hover') { 1928 EventHandler.on(this._element, EVENT_MOUSEENTER$1, () => this.pause()); 1929 EventHandler.on(this._element, EVENT_MOUSELEAVE$1, () => this._maybeEnableCycle()); 1930 } 1931 1932 if (this._config.touch && Swipe.isSupported()) { 1933 this._addTouchEventListeners(); 1934 } 1935 } 1936 1937 _addTouchEventListeners() { 1938 for (const img of SelectorEngine.find(SELECTOR_ITEM_IMG, this._element)) { 1939 EventHandler.on(img, EVENT_DRAG_START, event => event.preventDefault()); 1940 } 1941 1942 const endCallBack = () => { 1943 if (this._config.pause !== 'hover') { 1944 return; 1945 } // If it's a touch-enabled device, mouseenter/leave are fired as 1946 // part of the mouse compatibility events on first tap - the carousel 1947 // would stop cycling until user tapped out of it; 1948 // here, we listen for touchend, explicitly pause the carousel 1949 // (as if it's the second time we tap on it, mouseenter compat event 1950 // is NOT fired) and after a timeout (to allow for mouse compatibility 1951 // events to fire) we explicitly restart cycling 1952 1953 1954 this.pause(); 1955 1956 if (this.touchTimeout) { 1957 clearTimeout(this.touchTimeout); 1958 } 1959 1960 this.touchTimeout = setTimeout(() => this._maybeEnableCycle(), TOUCHEVENT_COMPAT_WAIT + this._config.interval); 1961 }; 1962 1963 const swipeConfig = { 1964 leftCallback: () => this._slide(this._directionToOrder(DIRECTION_LEFT)), 1965 rightCallback: () => this._slide(this._directionToOrder(DIRECTION_RIGHT)), 1966 endCallback: endCallBack 1967 }; 1968 this._swipeHelper = new Swipe(this._element, swipeConfig); 1969 } 1970 1971 _keydown(event) { 1972 if (/input|textarea/i.test(event.target.tagName)) { 1973 return; 1974 } 1975 1976 const direction = KEY_TO_DIRECTION[event.key]; 1977 1978 if (direction) { 1979 event.preventDefault(); 1980 1981 this._slide(this._directionToOrder(direction)); 1982 } 1983 } 1984 1985 _getItemIndex(element) { 1986 return this._getItems().indexOf(element); 1987 } 1988 1989 _setActiveIndicatorElement(index) { 1990 if (!this._indicatorsElement) { 1991 return; 1992 } 1993 1994 const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement); 1995 activeIndicator.classList.remove(CLASS_NAME_ACTIVE$2); 1996 activeIndicator.removeAttribute('aria-current'); 1997 const newActiveIndicator = SelectorEngine.findOne(`[data-bs-slide-to="${index}"]`, this._indicatorsElement); 1998 1999 if (newActiveIndicator) { 2000 newActiveIndicator.classList.add(CLASS_NAME_ACTIVE$2); 2001 newActiveIndicator.setAttribute('aria-current', 'true'); 2002 } 2003 } 2004 2005 _updateInterval() { 2006 const element = this._activeElement || this._getActive(); 2007 2008 if (!element) { 2009 return; 2010 } 2011 2012 const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10); 2013 this._config.interval = elementInterval || this._config.defaultInterval; 2014 } 2015 2016 _slide(order, element = null) { 2017 if (this._isSliding) { 2018 return; 2019 } 2020 2021 const activeElement = this._getActive(); 2022 2023 const isNext = order === ORDER_NEXT; 2024 const nextElement = element || getNextActiveElement(this._getItems(), activeElement, isNext, this._config.wrap); 2025 2026 if (nextElement === activeElement) { 2027 return; 2028 } 2029 2030 const nextElementIndex = this._getItemIndex(nextElement); 2031 2032 const triggerEvent = eventName => { 2033 return EventHandler.trigger(this._element, eventName, { 2034 relatedTarget: nextElement, 2035 direction: this._orderToDirection(order), 2036 from: this._getItemIndex(activeElement), 2037 to: nextElementIndex 2038 }); 2039 }; 2040 2041 const slideEvent = triggerEvent(EVENT_SLIDE); 2042 2043 if (slideEvent.defaultPrevented) { 2044 return; 2045 } 2046 2047 if (!activeElement || !nextElement) { 2048 // Some weirdness is happening, so we bail 2049 // todo: change tests that use empty divs to avoid this check 2050 return; 2051 } 2052 2053 const isCycling = Boolean(this._interval); 2054 this.pause(); 2055 this._isSliding = true; 2056 2057 this._setActiveIndicatorElement(nextElementIndex); 2058 2059 this._activeElement = nextElement; 2060 const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END; 2061 const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV; 2062 nextElement.classList.add(orderClassName); 2063 reflow(nextElement); 2064 activeElement.classList.add(directionalClassName); 2065 nextElement.classList.add(directionalClassName); 2066 2067 const completeCallBack = () => { 2068 nextElement.classList.remove(directionalClassName, orderClassName); 2069 nextElement.classList.add(CLASS_NAME_ACTIVE$2); 2070 activeElement.classList.remove(CLASS_NAME_ACTIVE$2, orderClassName, directionalClassName); 2071 this._isSliding = false; 2072 triggerEvent(EVENT_SLID); 2073 }; 2074 2075 this._queueCallback(completeCallBack, activeElement, this._isAnimated()); 2076 2077 if (isCycling) { 2078 this.cycle(); 2079 } 2080 } 2081 2082 _isAnimated() { 2083 return this._element.classList.contains(CLASS_NAME_SLIDE); 2084 } 2085 2086 _getActive() { 2087 return SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element); 2088 } 2089 2090 _getItems() { 2091 return SelectorEngine.find(SELECTOR_ITEM, this._element); 2092 } 2093 2094 _clearInterval() { 2095 if (this._interval) { 2096 clearInterval(this._interval); 2097 this._interval = null; 2098 } 2099 } 2100 2101 _directionToOrder(direction) { 2102 if (isRTL()) { 2103 return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT; 2104 } 2105 2106 return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV; 2107 } 2108 2109 _orderToDirection(order) { 2110 if (isRTL()) { 2111 return order === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT; 2112 } 2113 2114 return order === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT; 2115 } // Static 2116 2117 2118 static jQueryInterface(config) { 2119 return this.each(function () { 2120 const data = Carousel.getOrCreateInstance(this, config); 2121 2122 if (typeof config === 'number') { 2123 data.to(config); 2124 return; 2125 } 2126 2127 if (typeof config === 'string') { 2128 if (data[config] === undefined || config.startsWith('_') || config === 'constructor') { 2129 throw new TypeError(`No method named "${config}"`); 2130 } 2131 2132 data[config](); 2133 } 2134 }); 2135 } 2136 2137 } 2138 /** 2139 * Data API implementation 2140 */ 2141 2142 2143 EventHandler.on(document, EVENT_CLICK_DATA_API$5, SELECTOR_DATA_SLIDE, function (event) { 2144 const target = getElementFromSelector(this); 2145 2146 if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) { 2147 return; 2148 } 2149 2150 event.preventDefault(); 2151 const carousel = Carousel.getOrCreateInstance(target); 2152 const slideIndex = this.getAttribute('data-bs-slide-to'); 2153 2154 if (slideIndex) { 2155 carousel.to(slideIndex); 2156 2157 carousel._maybeEnableCycle(); 2158 2159 return; 2160 } 2161 2162 if (Manipulator.getDataAttribute(this, 'slide') === 'next') { 2163 carousel.next(); 2164 2165 carousel._maybeEnableCycle(); 2166 2167 return; 2168 } 2169 2170 carousel.prev(); 2171 2172 carousel._maybeEnableCycle(); 2173 }); 2174 EventHandler.on(window, EVENT_LOAD_DATA_API$3, () => { 2175 const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE); 2176 2177 for (const carousel of carousels) { 2178 Carousel.getOrCreateInstance(carousel); 2179 } 2180 }); 2181 /** 2182 * jQuery 2183 */ 2184 2185 defineJQueryPlugin(Carousel); 2186 2187 /** 2188 * -------------------------------------------------------------------------- 2189 * Bootstrap (v5.2.3): collapse.js 2190 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 2191 * -------------------------------------------------------------------------- 2192 */ 2193 /** 2194 * Constants 2195 */ 2196 2197 const NAME$b = 'collapse'; 2198 const DATA_KEY$7 = 'bs.collapse'; 2199 const EVENT_KEY$7 = `.${DATA_KEY$7}`; 2200 const DATA_API_KEY$4 = '.data-api'; 2201 const EVENT_SHOW$6 = `show${EVENT_KEY$7}`; 2202 const EVENT_SHOWN$6 = `shown${EVENT_KEY$7}`; 2203 const EVENT_HIDE$6 = `hide${EVENT_KEY$7}`; 2204 const EVENT_HIDDEN$6 = `hidden${EVENT_KEY$7}`; 2205 const EVENT_CLICK_DATA_API$4 = `click${EVENT_KEY$7}${DATA_API_KEY$4}`; 2206 const CLASS_NAME_SHOW$7 = 'show'; 2207 const CLASS_NAME_COLLAPSE = 'collapse'; 2208 const CLASS_NAME_COLLAPSING = 'collapsing'; 2209 const CLASS_NAME_COLLAPSED = 'collapsed'; 2210 const CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`; 2211 const CLASS_NAME_HORIZONTAL = 'collapse-horizontal'; 2212 const WIDTH = 'width'; 2213 const HEIGHT = 'height'; 2214 const SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing'; 2215 const SELECTOR_DATA_TOGGLE$4 = '[data-bs-toggle="collapse"]'; 2216 const Default$a = { 2217 parent: null, 2218 toggle: true 2219 }; 2220 const DefaultType$a = { 2221 parent: '(null|element)', 2222 toggle: 'boolean' 2223 }; 2224 /** 2225 * Class definition 2226 */ 2227 2228 class Collapse extends BaseComponent { 2229 constructor(element, config) { 2230 super(element, config); 2231 this._isTransitioning = false; 2232 this._triggerArray = []; 2233 const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE$4); 2234 2235 for (const elem of toggleList) { 2236 const selector = getSelectorFromElement(elem); 2237 const filterElement = SelectorEngine.find(selector).filter(foundElement => foundElement === this._element); 2238 2239 if (selector !== null && filterElement.length) { 2240 this._triggerArray.push(elem); 2241 } 2242 } 2243 2244 this._initializeChildren(); 2245 2246 if (!this._config.parent) { 2247 this._addAriaAndCollapsedClass(this._triggerArray, this._isShown()); 2248 } 2249 2250 if (this._config.toggle) { 2251 this.toggle(); 2252 } 2253 } // Getters 2254 2255 2256 static get Default() { 2257 return Default$a; 2258 } 2259 2260 static get DefaultType() { 2261 return DefaultType$a; 2262 } 2263 2264 static get NAME() { 2265 return NAME$b; 2266 } // Public 2267 2268 2269 toggle() { 2270 if (this._isShown()) { 2271 this.hide(); 2272 } else { 2273 this.show(); 2274 } 2275 } 2276 2277 show() { 2278 if (this._isTransitioning || this._isShown()) { 2279 return; 2280 } 2281 2282 let activeChildren = []; // find active children 2283 2284 if (this._config.parent) { 2285 activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES).filter(element => element !== this._element).map(element => Collapse.getOrCreateInstance(element, { 2286 toggle: false 2287 })); 2288 } 2289 2290 if (activeChildren.length && activeChildren[0]._isTransitioning) { 2291 return; 2292 } 2293 2294 const startEvent = EventHandler.trigger(this._element, EVENT_SHOW$6); 2295 2296 if (startEvent.defaultPrevented) { 2297 return; 2298 } 2299 2300 for (const activeInstance of activeChildren) { 2301 activeInstance.hide(); 2302 } 2303 2304 const dimension = this._getDimension(); 2305 2306 this._element.classList.remove(CLASS_NAME_COLLAPSE); 2307 2308 this._element.classList.add(CLASS_NAME_COLLAPSING); 2309 2310 this._element.style[dimension] = 0; 2311 2312 this._addAriaAndCollapsedClass(this._triggerArray, true); 2313 2314 this._isTransitioning = true; 2315 2316 const complete = () => { 2317 this._isTransitioning = false; 2318 2319 this._element.classList.remove(CLASS_NAME_COLLAPSING); 2320 2321 this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7); 2322 2323 this._element.style[dimension] = ''; 2324 EventHandler.trigger(this._element, EVENT_SHOWN$6); 2325 }; 2326 2327 const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1); 2328 const scrollSize = `scroll${capitalizedDimension}`; 2329 2330 this._queueCallback(complete, this._element, true); 2331 2332 this._element.style[dimension] = `${this._element[scrollSize]}px`; 2333 } 2334 2335 hide() { 2336 if (this._isTransitioning || !this._isShown()) { 2337 return; 2338 } 2339 2340 const startEvent = EventHandler.trigger(this._element, EVENT_HIDE$6); 2341 2342 if (startEvent.defaultPrevented) { 2343 return; 2344 } 2345 2346 const dimension = this._getDimension(); 2347 2348 this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`; 2349 reflow(this._element); 2350 2351 this._element.classList.add(CLASS_NAME_COLLAPSING); 2352 2353 this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7); 2354 2355 for (const trigger of this._triggerArray) { 2356 const element = getElementFromSelector(trigger); 2357 2358 if (element && !this._isShown(element)) { 2359 this._addAriaAndCollapsedClass([trigger], false); 2360 } 2361 } 2362 2363 this._isTransitioning = true; 2364 2365 const complete = () => { 2366 this._isTransitioning = false; 2367 2368 this._element.classList.remove(CLASS_NAME_COLLAPSING); 2369 2370 this._element.classList.add(CLASS_NAME_COLLAPSE); 2371 2372 EventHandler.trigger(this._element, EVENT_HIDDEN$6); 2373 }; 2374 2375 this._element.style[dimension] = ''; 2376 2377 this._queueCallback(complete, this._element, true); 2378 } 2379 2380 _isShown(element = this._element) { 2381 return element.classList.contains(CLASS_NAME_SHOW$7); 2382 } // Private 2383 2384 2385 _configAfterMerge(config) { 2386 config.toggle = Boolean(config.toggle); // Coerce string values 2387 2388 config.parent = getElement(config.parent); 2389 return config; 2390 } 2391 2392 _getDimension() { 2393 return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT; 2394 } 2395 2396 _initializeChildren() { 2397 if (!this._config.parent) { 2398 return; 2399 } 2400 2401 const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE$4); 2402 2403 for (const element of children) { 2404 const selected = getElementFromSelector(element); 2405 2406 if (selected) { 2407 this._addAriaAndCollapsedClass([element], this._isShown(selected)); 2408 } 2409 } 2410 } 2411 2412 _getFirstLevelChildren(selector) { 2413 const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent); // remove children if greater depth 2414 2415 return SelectorEngine.find(selector, this._config.parent).filter(element => !children.includes(element)); 2416 } 2417 2418 _addAriaAndCollapsedClass(triggerArray, isOpen) { 2419 if (!triggerArray.length) { 2420 return; 2421 } 2422 2423 for (const element of triggerArray) { 2424 element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen); 2425 element.setAttribute('aria-expanded', isOpen); 2426 } 2427 } // Static 2428 2429 2430 static jQueryInterface(config) { 2431 const _config = {}; 2432 2433 if (typeof config === 'string' && /show|hide/.test(config)) { 2434 _config.toggle = false; 2435 } 2436 2437 return this.each(function () { 2438 const data = Collapse.getOrCreateInstance(this, _config); 2439 2440 if (typeof config === 'string') { 2441 if (typeof data[config] === 'undefined') { 2442 throw new TypeError(`No method named "${config}"`); 2443 } 2444 2445 data[config](); 2446 } 2447 }); 2448 } 2449 2450 } 2451 /** 2452 * Data API implementation 2453 */ 2454 2455 2456 EventHandler.on(document, EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$4, function (event) { 2457 // preventDefault only for <a> elements (which change the URL) not inside the collapsible element 2458 if (event.target.tagName === 'A' || event.delegateTarget && event.delegateTarget.tagName === 'A') { 2459 event.preventDefault(); 2460 } 2461 2462 const selector = getSelectorFromElement(this); 2463 const selectorElements = SelectorEngine.find(selector); 2464 2465 for (const element of selectorElements) { 2466 Collapse.getOrCreateInstance(element, { 2467 toggle: false 2468 }).toggle(); 2469 } 2470 }); 2471 /** 2472 * jQuery 2473 */ 2474 2475 defineJQueryPlugin(Collapse); 2476 2477 var top = 'top'; 2478 var bottom = 'bottom'; 2479 var right = 'right'; 2480 var left = 'left'; 2481 var auto = 'auto'; 2482 var basePlacements = [top, bottom, right, left]; 2483 var start = 'start'; 2484 var end = 'end'; 2485 var clippingParents = 'clippingParents'; 2486 var viewport = 'viewport'; 2487 var popper = 'popper'; 2488 var reference = 'reference'; 2489 var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) { 2490 return acc.concat([placement + "-" + start, placement + "-" + end]); 2491 }, []); 2492 var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) { 2493 return acc.concat([placement, placement + "-" + start, placement + "-" + end]); 2494 }, []); // modifiers that need to read the DOM 2495 2496 var beforeRead = 'beforeRead'; 2497 var read = 'read'; 2498 var afterRead = 'afterRead'; // pure-logic modifiers 2499 2500 var beforeMain = 'beforeMain'; 2501 var main = 'main'; 2502 var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state) 2503 2504 var beforeWrite = 'beforeWrite'; 2505 var write = 'write'; 2506 var afterWrite = 'afterWrite'; 2507 var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite]; 2508 2509 function getNodeName(element) { 2510 return element ? (element.nodeName || '').toLowerCase() : null; 2511 } 2512 2513 function getWindow(node) { 2514 if (node == null) { 2515 return window; 2516 } 2517 2518 if (node.toString() !== '[object Window]') { 2519 var ownerDocument = node.ownerDocument; 2520 return ownerDocument ? ownerDocument.defaultView || window : window; 2521 } 2522 2523 return node; 2524 } 2525 2526 function isElement(node) { 2527 var OwnElement = getWindow(node).Element; 2528 return node instanceof OwnElement || node instanceof Element; 2529 } 2530 2531 function isHTMLElement(node) { 2532 var OwnElement = getWindow(node).HTMLElement; 2533 return node instanceof OwnElement || node instanceof HTMLElement; 2534 } 2535 2536 function isShadowRoot(node) { 2537 // IE 11 has no ShadowRoot 2538 if (typeof ShadowRoot === 'undefined') { 2539 return false; 2540 } 2541 2542 var OwnElement = getWindow(node).ShadowRoot; 2543 return node instanceof OwnElement || node instanceof ShadowRoot; 2544 } 2545 2546 // and applies them to the HTMLElements such as popper and arrow 2547 2548 function applyStyles(_ref) { 2549 var state = _ref.state; 2550 Object.keys(state.elements).forEach(function (name) { 2551 var style = state.styles[name] || {}; 2552 var attributes = state.attributes[name] || {}; 2553 var element = state.elements[name]; // arrow is optional + virtual elements 2554 2555 if (!isHTMLElement(element) || !getNodeName(element)) { 2556 return; 2557 } // Flow doesn't support to extend this property, but it's the most 2558 // effective way to apply styles to an HTMLElement 2559 // $FlowFixMe[cannot-write] 2560 2561 2562 Object.assign(element.style, style); 2563 Object.keys(attributes).forEach(function (name) { 2564 var value = attributes[name]; 2565 2566 if (value === false) { 2567 element.removeAttribute(name); 2568 } else { 2569 element.setAttribute(name, value === true ? '' : value); 2570 } 2571 }); 2572 }); 2573 } 2574 2575 function effect$2(_ref2) { 2576 var state = _ref2.state; 2577 var initialStyles = { 2578 popper: { 2579 position: state.options.strategy, 2580 left: '0', 2581 top: '0', 2582 margin: '0' 2583 }, 2584 arrow: { 2585 position: 'absolute' 2586 }, 2587 reference: {} 2588 }; 2589 Object.assign(state.elements.popper.style, initialStyles.popper); 2590 state.styles = initialStyles; 2591 2592 if (state.elements.arrow) { 2593 Object.assign(state.elements.arrow.style, initialStyles.arrow); 2594 } 2595 2596 return function () { 2597 Object.keys(state.elements).forEach(function (name) { 2598 var element = state.elements[name]; 2599 var attributes = state.attributes[name] || {}; 2600 var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them 2601 2602 var style = styleProperties.reduce(function (style, property) { 2603 style[property] = ''; 2604 return style; 2605 }, {}); // arrow is optional + virtual elements 2606 2607 if (!isHTMLElement(element) || !getNodeName(element)) { 2608 return; 2609 } 2610 2611 Object.assign(element.style, style); 2612 Object.keys(attributes).forEach(function (attribute) { 2613 element.removeAttribute(attribute); 2614 }); 2615 }); 2616 }; 2617 } // eslint-disable-next-line import/no-unused-modules 2618 2619 2620 const applyStyles$1 = { 2621 name: 'applyStyles', 2622 enabled: true, 2623 phase: 'write', 2624 fn: applyStyles, 2625 effect: effect$2, 2626 requires: ['computeStyles'] 2627 }; 2628 2629 function getBasePlacement(placement) { 2630 return placement.split('-')[0]; 2631 } 2632 2633 var max = Math.max; 2634 var min = Math.min; 2635 var round = Math.round; 2636 2637 function getUAString() { 2638 var uaData = navigator.userAgentData; 2639 2640 if (uaData != null && uaData.brands
vendor: 9,607 bytes, lines 2640-2927
2640) { 2641 return uaData.brands.map(function (item) { 2642 return item.brand + "/" + item.version; 2643 }).join(' '); 2644 } 2645 2646 return navigator.userAgent; 2647 } 2648 2649 function isLayoutViewport() { 2650 return !/^((?!chrome|android).)*safari/i.test(getUAString()); 2651 } 2652 2653 function getBoundingClientRect(element, includeScale, isFixedStrategy) { 2654 if (includeScale === void 0) { 2655 includeScale = false; 2656 } 2657 2658 if (isFixedStrategy === void 0) { 2659 isFixedStrategy = false; 2660 } 2661 2662 var clientRect = element.getBoundingClientRect(); 2663 var scaleX = 1; 2664 var scaleY = 1; 2665 2666 if (includeScale && isHTMLElement(element)) { 2667 scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1; 2668 scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1; 2669 } 2670 2671 var _ref = isElement(element) ? getWindow(element) : window, 2672 visualViewport = _ref.visualViewport; 2673 2674 var addVisualOffsets = !isLayoutViewport() && isFixedStrategy; 2675 var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX; 2676 var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY; 2677 var width = clientRect.width / scaleX; 2678 var height = clientRect.height / scaleY; 2679 return { 2680 width: width, 2681 height: height, 2682 top: y, 2683 right: x + width, 2684 bottom: y + height, 2685 left: x, 2686 x: x, 2687 y: y 2688 }; 2689 } 2690 2691 // means it doesn't take into account transforms. 2692 2693 function getLayoutRect(element) { 2694 var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed. 2695 // Fixes https://github.com/popperjs/popper-core/issues/1223 2696 2697 var width = element.offsetWidth; 2698 var height = element.offsetHeight; 2699 2700 if (Math.abs(clientRect.width - width) <= 1) { 2701 width = clientRect.width; 2702 } 2703 2704 if (Math.abs(clientRect.height - height) <= 1) { 2705 height = clientRect.height; 2706 } 2707 2708 return { 2709 x: element.offsetLeft, 2710 y: element.offsetTop, 2711 width: width, 2712 height: height 2713 }; 2714 } 2715 2716 function contains(parent, child) { 2717 var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method 2718 2719 if (parent.contains(child)) { 2720 return true; 2721 } // then fallback to custom implementation with Shadow DOM support 2722 else if (rootNode && isShadowRoot(rootNode)) { 2723 var next = child; 2724 2725 do { 2726 if (next && parent.isSameNode(next)) { 2727 return true; 2728 } // $FlowFixMe[prop-missing]: need a better way to handle this... 2729 2730 2731 next = next.parentNode || next.host; 2732 } while (next); 2733 } // Give up, the result is false 2734 2735 2736 return false; 2737 } 2738 2739 function getComputedStyle$1(element) { 2740 return getWindow(element).getComputedStyle(element); 2741 } 2742 2743 function isTableElement(element) { 2744 return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0; 2745 } 2746 2747 function getDocumentElement(element) { 2748 // $FlowFixMe[incompatible-return]: assume body is always available 2749 return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing] 2750 element.document) || window.document).documentElement; 2751 } 2752 2753 function getParentNode(element) { 2754 if (getNodeName(element) === 'html') { 2755 return element; 2756 } 2757 2758 return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle 2759 // $FlowFixMe[incompatible-return] 2760 // $FlowFixMe[prop-missing] 2761 element.assignedSlot || // step into the shadow DOM of the parent of a slotted node 2762 element.parentNode || ( // DOM Element detected 2763 isShadowRoot(element) ? element.host : null) || // ShadowRoot detected 2764 // $FlowFixMe[incompatible-call]: HTMLElement is a Node 2765 getDocumentElement(element) // fallback 2766 2767 ); 2768 } 2769 2770 function getTrueOffsetParent(element) { 2771 if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837 2772 getComputedStyle$1(element).position === 'fixed') { 2773 return null; 2774 } 2775 2776 return element.offsetParent; 2777 } // `.offsetParent` reports `null` for fixed elements, while absolute elements 2778 // return the containing block 2779 2780 2781 function getContainingBlock(element) { 2782 var isFirefox = /firefox/i.test(getUAString()); 2783 var isIE = /Trident/i.test(getUAString()); 2784 2785 if (isIE && isHTMLElement(element)) { 2786 // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport 2787 var elementCss = getComputedStyle$1(element); 2788 2789 if (elementCss.position === 'fixed') { 2790 return null; 2791 } 2792 } 2793 2794 var currentNode = getParentNode(element); 2795 2796 if (isShadowRoot(currentNode)) { 2797 currentNode = currentNode.host; 2798 } 2799 2800 while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) { 2801 var css = getComputedStyle$1(currentNode); // This is non-exhaustive but covers the most common CSS properties that 2802 // create a containing block. 2803 // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block 2804 2805 if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') { 2806 return currentNode; 2807 } else { 2808 currentNode = currentNode.parentNode; 2809 } 2810 } 2811 2812 return null; 2813 } // Gets the closest ancestor positioned element. Handles some edge cases, 2814 // such as table ancestors and cross browser bugs. 2815 2816 2817 function getOffsetParent(element) { 2818 var window = getWindow(element); 2819 var offsetParent = getTrueOffsetParent(element); 2820 2821 while (offsetParent && isTableElement(offsetParent) && getComputedStyle$1(offsetParent).position === 'static') { 2822 offsetParent = getTrueOffsetParent(offsetParent); 2823 } 2824 2825 if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle$1(offsetParent).position === 'static')) { 2826 return window; 2827 } 2828 2829 return offsetParent || getContainingBlock(element) || window; 2830 } 2831 2832 function getMainAxisFromPlacement(placement) { 2833 return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y'; 2834 } 2835 2836 function within(min$1, value, max$1) { 2837 return max(min$1, min(value, max$1)); 2838 } 2839 function withinMaxClamp(min, value, max) { 2840 var v = within(min, value, max); 2841 return v > max ? max : v; 2842 } 2843 2844 function getFreshSideObject() { 2845 return { 2846 top: 0, 2847 right: 0, 2848 bottom: 0, 2849 left: 0 2850 }; 2851 } 2852 2853 function mergePaddingObject(paddingObject) { 2854 return Object.assign({}, getFreshSideObject(), paddingObject); 2855 } 2856 2857 function expandToHashMap(value, keys) { 2858 return keys.reduce(function (hashMap, key) { 2859 hashMap[key] = value; 2860 return hashMap; 2861 }, {}); 2862 } 2863 2864 var toPaddingObject = function toPaddingObject(padding, state) { 2865 padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, { 2866 placement: state.placement 2867 })) : padding; 2868 return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements)); 2869 }; 2870 2871 function arrow(_ref) { 2872 var _state$modifiersData$; 2873 2874 var state = _ref.state, 2875 name = _ref.name, 2876 options = _ref.options; 2877 var arrowElement = state.elements.arrow; 2878 var popperOffsets = state.modifiersData.popperOffsets; 2879 var basePlacement = getBasePlacement(state.placement); 2880 var axis = getMainAxisFromPlacement(basePlacement); 2881 var isVertical = [left, right].indexOf(basePlacement) >= 0; 2882 var len = isVertical ? 'height' : 'width'; 2883 2884 if (!arrowElement || !popperOffsets) { 2885 return; 2886 } 2887 2888 var paddingObject = toPaddingObject(options.padding, state); 2889 var arrowRect = getLayoutRect(arrowElement); 2890 var minProp = axis === 'y' ? top : left; 2891 var maxProp = axis === 'y' ? bottom : right; 2892 var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len]; 2893 var startDiff = popperOffsets[axis] - state.rects.reference[axis]; 2894 var arrowOffsetParent = getOffsetParent(arrowElement); 2895 var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0; 2896 var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is 2897 // outside of the popper bounds 2898 2899 var min = paddingObject[minProp]; 2900 var max = clientSize - arrowRect[len] - paddingObject[maxProp]; 2901 var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference; 2902 var offset = within(min, center, max); // Prevents breaking syntax highlighting... 2903 2904 var axisProp = axis; 2905 state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$); 2906 } 2907 2908 function effect$1(_ref2) { 2909 var state = _ref2.state, 2910 options = _ref2.options; 2911 var _options$element = options.element, 2912 arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element; 2913 2914 if (arrowElement == null) { 2915 return; 2916 } // CSS selector 2917 2918 2919 if (typeof arrowElement === 'string') { 2920 arrowElement = state.elements.popper.querySelector(arrowElement); 2921 2922 if (!arrowElement) { 2923 return; 2924 } 2925 } 2926 2927 if (!contains(state.elements.popper, arrowElement)) {
vendor: 1,969 bytes, lines 2928-3006
2928 2929 return; 2930 } 2931 2932 state.elements.arrow = arrowElement; 2933 } // eslint-disable-next-line import/no-unused-modules 2934 2935 2936 const arrow$1 = { 2937 name: 'arrow', 2938 enabled: true, 2939 phase: 'main', 2940 fn: arrow, 2941 effect: effect$1, 2942 requires: ['popperOffsets'], 2943 requiresIfExists: ['preventOverflow'] 2944 }; 2945 2946 function getVariation(placement) { 2947 return placement.split('-')[1]; 2948 } 2949 2950 var unsetSides = { 2951 top: 'auto', 2952 right: 'auto', 2953 bottom: 'auto', 2954 left: 'auto' 2955 }; // Round the offsets to the nearest suitable subpixel based on the DPR. 2956 // Zooming can change the DPR, but it seems to report a value that will 2957 // cleanly divide the values into the appropriate subpixels. 2958 2959 function roundOffsetsByDPR(_ref) { 2960 var x = _ref.x, 2961 y = _ref.y; 2962 var win = window; 2963 var dpr = win.devicePixelRatio || 1; 2964 return { 2965 x: round(x * dpr) / dpr || 0, 2966 y: round(y * dpr) / dpr || 0 2967 }; 2968 } 2969 2970 function mapToStyles(_ref2) { 2971 var _Object$assign2; 2972 2973 var popper = _ref2.popper, 2974 popperRect = _ref2.popperRect, 2975 placement = _ref2.placement, 2976 variation = _ref2.variation, 2977 offsets = _ref2.offsets, 2978 position = _ref2.position, 2979 gpuAcceleration = _ref2.gpuAcceleration, 2980 adaptive = _ref2.adaptive, 2981 roundOffsets = _ref2.roundOffsets, 2982 isFixed = _ref2.isFixed; 2983 var _offsets$x = offsets.x, 2984 x = _offsets$x === void 0 ? 0 : _offsets$x, 2985 _offsets$y = offsets.y, 2986 y = _offsets$y === void 0 ? 0 : _offsets$y; 2987 2988 var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({ 2989 x: x, 2990 y: y 2991 }) : { 2992 x: x, 2993 y: y 2994 }; 2995 2996 x = _ref3.x; 2997 y = _ref3.y; 2998 var hasX = offsets.hasOwnProperty('x'); 2999 var hasY = offsets.hasOwnProperty('y'); 3000 var sideX = left; 3001 var sideY = top; 3002 var win = window; 3003 3004 if (adaptive) { 3005 var offsetParent = getOffsetParent(popper); 3006 var heightProp = 'clientHeight';
vendor: 2,614 bytes, lines 3007-3070
3007 var widthProp = 'clientWidth'; 3008 3009 if (offsetParent === getWindow(popper)) { 3010 offsetParent = getDocumentElement(popper); 3011 3012 if (getComputedStyle$1(offsetParent).position !== 'static' && position === 'absolute') { 3013 heightProp = 'scrollHeight'; 3014 widthProp = 'scrollWidth'; 3015 } 3016 } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it 3017 3018 3019 offsetParent = offsetParent; 3020 3021 if (placement === top || (placement === left || placement === right) && variation === end) { 3022 sideY = bottom; 3023 var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing] 3024 offsetParent[heightProp]; 3025 y -= offsetY - popperRect.height; 3026 y *= gpuAcceleration ? 1 : -1; 3027 } 3028 3029 if (placement === left || (placement === top || placement === bottom) && variation === end) { 3030 sideX = right; 3031 var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing] 3032 offsetParent[widthProp]; 3033 x -= offsetX - popperRect.width; 3034 x *= gpuAcceleration ? 1 : -1; 3035 } 3036 } 3037 3038 var commonStyles = Object.assign({ 3039 position: position 3040 }, adaptive && unsetSides); 3041 3042 var _ref4 = roundOffsets === true ? roundOffsetsByDPR({ 3043 x: x, 3044 y: y 3045 }) : { 3046 x: x, 3047 y: y 3048 }; 3049 3050 x = _ref4.x; 3051 y = _ref4.y; 3052 3053 if (gpuAcceleration) { 3054 var _Object$assign; 3055 3056 return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? "translate(" + x + "px, " + y + "px)" : "translate3d(" + x + "px, " + y + "px, 0)", _Object$assign)); 3057 } 3058 3059 return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + "px" : '', _Object$assign2[sideX] = hasX ? x + "px" : '', _Object$assign2.transform = '', _Object$assign2)); 3060 } 3061 3062 function computeStyles(_ref5) { 3063 var state = _ref5.state, 3064 options = _ref5.options; 3065 var _options$gpuAccelerat = options.gpuAcceleration, 3066 gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat, 3067 _options$adaptive = options.adaptive, 3068 adaptive = _options$adaptive === void 0 ? true : _options$adaptive, 3069 _options$roundOffsets = options.roundOffsets, 3070 roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;
vendor: 37,725 bytes, lines 3071-4139
3071 3072 var commonStyles = { 3073 placement: getBasePlacement(state.placement), 3074 variation: getVariation(state.placement), 3075 popper: state.elements.popper, 3076 popperRect: state.rects.popper, 3077 gpuAcceleration: gpuAcceleration, 3078 isFixed: state.options.strategy === 'fixed' 3079 }; 3080 3081 if (state.modifiersData.popperOffsets != null) { 3082 state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, { 3083 offsets: state.modifiersData.popperOffsets, 3084 position: state.options.strategy, 3085 adaptive: adaptive, 3086 roundOffsets: roundOffsets 3087 }))); 3088 } 3089 3090 if (state.modifiersData.arrow != null) { 3091 state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, { 3092 offsets: state.modifiersData.arrow, 3093 position: 'absolute', 3094 adaptive: false, 3095 roundOffsets: roundOffsets 3096 }))); 3097 } 3098 3099 state.attributes.popper = Object.assign({}, state.attributes.popper, { 3100 'data-popper-placement': state.placement 3101 }); 3102 } // eslint-disable-next-line import/no-unused-modules 3103 3104 3105 const computeStyles$1 = { 3106 name: 'computeStyles', 3107 enabled: true, 3108 phase: 'beforeWrite', 3109 fn: computeStyles, 3110 data: {} 3111 }; 3112 3113 var passive = { 3114 passive: true 3115 }; 3116 3117 function effect(_ref) { 3118 var state = _ref.state, 3119 instance = _ref.instance, 3120 options = _ref.options; 3121 var _options$scroll = options.scroll, 3122 scroll = _options$scroll === void 0 ? true : _options$scroll, 3123 _options$resize = options.resize, 3124 resize = _options$resize === void 0 ? true : _options$resize; 3125 var window = getWindow(state.elements.popper); 3126 var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper); 3127 3128 if (scroll) { 3129 scrollParents.forEach(function (scrollParent) { 3130 scrollParent.addEventListener('scroll', instance.update, passive); 3131 }); 3132 } 3133 3134 if (resize) { 3135 window.addEventListener('resize', instance.update, passive); 3136 } 3137 3138 return function () { 3139 if (scroll) { 3140 scrollParents.forEach(function (scrollParent) { 3141 scrollParent.removeEventListener('scroll', instance.update, passive); 3142 }); 3143 } 3144 3145 if (resize) { 3146 window.removeEventListener('resize', instance.update, passive); 3147 } 3148 }; 3149 } // eslint-disable-next-line import/no-unused-modules 3150 3151 3152 const eventListeners = { 3153 name: 'eventListeners', 3154 enabled: true, 3155 phase: 'write', 3156 fn: function fn() {}, 3157 effect: effect, 3158 data: {} 3159 }; 3160 3161 var hash$1 = { 3162 left: 'right', 3163 right: 'left', 3164 bottom: 'top', 3165 top: 'bottom' 3166 }; 3167 function getOppositePlacement(placement) { 3168 return placement.replace(/left|right|bottom|top/g, function (matched) { 3169 return hash$1[matched]; 3170 }); 3171 } 3172 3173 var hash = { 3174 start: 'end', 3175 end: 'start' 3176 }; 3177 function getOppositeVariationPlacement(placement) { 3178 return placement.replace(/start|end/g, function (matched) { 3179 return hash[matched]; 3180 }); 3181 } 3182 3183 function getWindowScroll(node) { 3184 var win = getWindow(node); 3185 var scrollLeft = win.pageXOffset; 3186 var scrollTop = win.pageYOffset; 3187 return { 3188 scrollLeft: scrollLeft, 3189 scrollTop: scrollTop 3190 }; 3191 } 3192 3193 function getWindowScrollBarX(element) { 3194 // If <html> has a CSS width greater than the viewport, then this will be 3195 // incorrect for RTL. 3196 // Popper 1 is broken in this case and never had a bug report so let's assume 3197 // it's not an issue. I don't think anyone ever specifies width on <html> 3198 // anyway. 3199 // Browsers where the left scrollbar doesn't cause an issue report `0` for 3200 // this (e.g. Edge 2019, IE11, Safari) 3201 return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft; 3202 } 3203 3204 function getViewportRect(element, strategy) { 3205 var win = getWindow(element); 3206 var html = getDocumentElement(element); 3207 var visualViewport = win.visualViewport; 3208 var width = html.clientWidth; 3209 var height = html.clientHeight; 3210 var x = 0; 3211 var y = 0; 3212 3213 if (visualViewport) { 3214 width = visualViewport.width; 3215 height = visualViewport.height; 3216 var layoutViewport = isLayoutViewport(); 3217 3218 if (layoutViewport || !layoutViewport && strategy === 'fixed') { 3219 x = visualViewport.offsetLeft; 3220 y = visualViewport.offsetTop; 3221 } 3222 } 3223 3224 return { 3225 width: width, 3226 height: height, 3227 x: x + getWindowScrollBarX(element), 3228 y: y 3229 }; 3230 } 3231 3232 // of the `<html>` and `<body>` rect bounds if horizontally scrollable 3233 3234 function getDocumentRect(element) { 3235 var _element$ownerDocumen; 3236 3237 var html = getDocumentElement(element); 3238 var winScroll = getWindowScroll(element); 3239 var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body; 3240 var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0); 3241 var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0); 3242 var x = -winScroll.scrollLeft + getWindowScrollBarX(element); 3243 var y = -winScroll.scrollTop; 3244 3245 if (getComputedStyle$1(body || html).direction === 'rtl') { 3246 x += max(html.clientWidth, body ? body.clientWidth : 0) - width; 3247 } 3248 3249 return { 3250 width: width, 3251 height: height, 3252 x: x, 3253 y: y 3254 }; 3255 } 3256 3257 function isScrollParent(element) { 3258 // Firefox wants us to check `-x` and `-y` variations as well 3259 var _getComputedStyle = getComputedStyle$1(element), 3260 overflow = _getComputedStyle.overflow, 3261 overflowX = _getComputedStyle.overflowX, 3262 overflowY = _getComputedStyle.overflowY; 3263 3264 return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX); 3265 } 3266 3267 function getScrollParent(node) { 3268 if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) { 3269 // $FlowFixMe[incompatible-return]: assume body is always available 3270 return node.ownerDocument.body; 3271 } 3272 3273 if (isHTMLElement(node) && isScrollParent(node)) { 3274 return node; 3275 } 3276 3277 return getScrollParent(getParentNode(node)); 3278 } 3279 3280 /* 3281 given a DOM element, return the list of all scroll parents, up the list of ancesors 3282 until we get to the top window object. This list is what we attach scroll listeners 3283 to, because if any of these parent elements scroll, we'll need to re-calculate the 3284 reference element's position. 3285 */ 3286 3287 function listScrollParents(element, list) { 3288 var _element$ownerDocumen; 3289 3290 if (list === void 0) { 3291 list = []; 3292 } 3293 3294 var scrollParent = getScrollParent(element); 3295 var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body); 3296 var win = getWindow(scrollParent); 3297 var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent; 3298 var updatedList = list.concat(target); 3299 return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here 3300 updatedList.concat(listScrollParents(getParentNode(target))); 3301 } 3302 3303 function rectToClientRect(rect) { 3304 return Object.assign({}, rect, { 3305 left: rect.x, 3306 top: rect.y, 3307 right: rect.x + rect.width, 3308 bottom: rect.y + rect.height 3309 }); 3310 } 3311 3312 function getInnerBoundingClientRect(element, strategy) { 3313 var rect = getBoundingClientRect(element, false, strategy === 'fixed'); 3314 rect.top = rect.top + element.clientTop; 3315 rect.left = rect.left + element.clientLeft; 3316 rect.bottom = rect.top + element.clientHeight; 3317 rect.right = rect.left + element.clientWidth; 3318 rect.width = element.clientWidth; 3319 rect.height = element.clientHeight; 3320 rect.x = rect.left; 3321 rect.y = rect.top; 3322 return rect; 3323 } 3324 3325 function getClientRectFromMixedType(element, clippingParent, strategy) { 3326 return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element))); 3327 } // A "clipping parent" is an overflowable container with the characteristic of 3328 // clipping (or hiding) overflowing elements with a position different from 3329 // `initial` 3330 3331 3332 function getClippingParents(element) { 3333 var clippingParents = listScrollParents(getParentNode(element)); 3334 var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle$1(element).position) >= 0; 3335 var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element; 3336 3337 if (!isElement(clipperElement)) { 3338 return []; 3339 } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414 3340 3341 3342 return clippingParents.filter(function (clippingParent) { 3343 return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body'; 3344 }); 3345 } // Gets the maximum area that the element is visible in due to any number of 3346 // clipping parents 3347 3348 3349 function getClippingRect(element, boundary, rootBoundary, strategy) { 3350 var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary); 3351 var clippingParents = [].concat(mainClippingParents, [rootBoundary]); 3352 var firstClippingParent = clippingParents[0]; 3353 var clippingRect = clippingParents.reduce(function (accRect, clippingParent) { 3354 var rect = getClientRectFromMixedType(element, clippingParent, strategy); 3355 accRect.top = max(rect.top, accRect.top); 3356 accRect.right = min(rect.right, accRect.right); 3357 accRect.bottom = min(rect.bottom, accRect.bottom); 3358 accRect.left = max(rect.left, accRect.left); 3359 return accRect; 3360 }, getClientRectFromMixedType(element, firstClippingParent, strategy)); 3361 clippingRect.width = clippingRect.right - clippingRect.left; 3362 clippingRect.height = clippingRect.bottom - clippingRect.top; 3363 clippingRect.x = clippingRect.left; 3364 clippingRect.y = clippingRect.top; 3365 return clippingRect; 3366 } 3367 3368 function computeOffsets(_ref) { 3369 var reference = _ref.reference, 3370 element = _ref.element, 3371 placement = _ref.placement; 3372 var basePlacement = placement ? getBasePlacement(placement) : null; 3373 var variation = placement ? getVariation(placement) : null; 3374 var commonX = reference.x + reference.width / 2 - element.width / 2; 3375 var commonY = reference.y + reference.height / 2 - element.height / 2; 3376 var offsets; 3377 3378 switch (basePlacement) { 3379 case top: 3380 offsets = { 3381 x: commonX, 3382 y: reference.y - element.height 3383 }; 3384 break; 3385 3386 case bottom: 3387 offsets = { 3388 x: commonX, 3389 y: reference.y + reference.height 3390 }; 3391 break; 3392 3393 case right: 3394 offsets = { 3395 x: reference.x + reference.width, 3396 y: commonY 3397 }; 3398 break; 3399 3400 case left: 3401 offsets = { 3402 x: reference.x - element.width, 3403 y: commonY 3404 }; 3405 break; 3406 3407 default: 3408 offsets = { 3409 x: reference.x, 3410 y: reference.y 3411 }; 3412 } 3413 3414 var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null; 3415 3416 if (mainAxis != null) { 3417 var len = mainAxis === 'y' ? 'height' : 'width'; 3418 3419 switch (variation) { 3420 case start: 3421 offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2); 3422 break; 3423 3424 case end: 3425 offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2); 3426 break; 3427 } 3428 } 3429 3430 return offsets; 3431 } 3432 3433 function detectOverflow(state, options) { 3434 if (options === void 0) { 3435 options = {}; 3436 } 3437 3438 var _options = options, 3439 _options$placement = _options.placement, 3440 placement = _options$placement === void 0 ? state.placement : _options$placement, 3441 _options$strategy = _options.strategy, 3442 strategy = _options$strategy === void 0 ? state.strategy : _options$strategy, 3443 _options$boundary = _options.boundary, 3444 boundary = _options$boundary === void 0 ? clippingParents : _options$boundary, 3445 _options$rootBoundary = _options.rootBoundary, 3446 rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary, 3447 _options$elementConte = _options.elementContext, 3448 elementContext = _options$elementConte === void 0 ? popper : _options$elementConte, 3449 _options$altBoundary = _options.altBoundary, 3450 altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary, 3451 _options$padding = _options.padding, 3452 padding = _options$padding === void 0 ? 0 : _options$padding; 3453 var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements)); 3454 var altContext = elementContext === popper ? reference : popper; 3455 var popperRect = state.rects.popper; 3456 var element = state.elements[altBoundary ? altContext : elementContext]; 3457 var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy); 3458 var referenceClientRect = getBoundingClientRect(state.elements.reference); 3459 var popperOffsets = computeOffsets({ 3460 reference: referenceClientRect, 3461 element: popperRect, 3462 strategy: 'absolute', 3463 placement: placement 3464 }); 3465 var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets)); 3466 var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect 3467 // 0 or negative = within the clipping rect 3468 3469 var overflowOffsets = { 3470 top: clippingClientRect.top - elementClientRect.top + paddingObject.top, 3471 bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom, 3472 left: clippingClientRect.left - elementClientRect.left + paddingObject.left, 3473 right: elementClientRect.right - clippingClientRect.right + paddingObject.right 3474 }; 3475 var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element 3476 3477 if (elementContext === popper && offsetData) { 3478 var offset = offsetData[placement]; 3479 Object.keys(overflowOffsets).forEach(function (key) { 3480 var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1; 3481 var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x'; 3482 overflowOffsets[key] += offset[axis] * multiply; 3483 }); 3484 } 3485 3486 return overflowOffsets; 3487 } 3488 3489 function computeAutoPlacement(state, options) { 3490 if (options === void 0) { 3491 options = {}; 3492 } 3493 3494 var _options = options, 3495 placement = _options.placement, 3496 boundary = _options.boundary, 3497 rootBoundary = _options.rootBoundary, 3498 padding = _options.padding, 3499 flipVariations = _options.flipVariations, 3500 _options$allowedAutoP = _options.allowedAutoPlacements, 3501 allowedAutoPlacements = _options$allowedAutoP === void 0 ? placements : _options$allowedAutoP; 3502 var variation = getVariation(placement); 3503 var placements$1 = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) { 3504 return getVariation(placement) === variation; 3505 }) : basePlacements; 3506 var allowedPlacements = placements$1.filter(function (placement) { 3507 return allowedAutoPlacements.indexOf(placement) >= 0; 3508 }); 3509 3510 if (allowedPlacements.length === 0) { 3511 allowedPlacements = placements$1; 3512 } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions... 3513 3514 3515 var overflows = allowedPlacements.reduce(function (acc, placement) { 3516 acc[placement] = detectOverflow(state, { 3517 placement: placement, 3518 boundary: boundary, 3519 rootBoundary: rootBoundary, 3520 padding: padding 3521 })[getBasePlacement(placement)]; 3522 return acc; 3523 }, {}); 3524 return Object.keys(overflows).sort(function (a, b) { 3525 return overflows[a] - overflows[b]; 3526 }); 3527 } 3528 3529 function getExpandedFallbackPlacements(placement) { 3530 if (getBasePlacement(placement) === auto) { 3531 return []; 3532 } 3533 3534 var oppositePlacement = getOppositePlacement(placement); 3535 return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)]; 3536 } 3537 3538 function flip(_ref) { 3539 var state = _ref.state, 3540 options = _ref.options, 3541 name = _ref.name; 3542 3543 if (state.modifiersData[name]._skip) { 3544 return; 3545 } 3546 3547 var _options$mainAxis = options.mainAxis, 3548 checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis, 3549 _options$altAxis = options.altAxis, 3550 checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis, 3551 specifiedFallbackPlacements = options.fallbackPlacements, 3552 padding = options.padding, 3553 boundary = options.boundary, 3554 rootBoundary = options.rootBoundary, 3555 altBoundary = options.altBoundary, 3556 _options$flipVariatio = options.flipVariations, 3557 flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio, 3558 allowedAutoPlacements = options.allowedAutoPlacements; 3559 var preferredPlacement = state.options.placement; 3560 var basePlacement = getBasePlacement(preferredPlacement); 3561 var isBasePlacement = basePlacement === preferredPlacement; 3562 var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement)); 3563 var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) { 3564 return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, { 3565 placement: placement, 3566 boundary: boundary, 3567 rootBoundary: rootBoundary, 3568 padding: padding, 3569 flipVariations: flipVariations, 3570 allowedAutoPlacements: allowedAutoPlacements 3571 }) : placement); 3572 }, []); 3573 var referenceRect = state.rects.reference; 3574 var popperRect = state.rects.popper; 3575 var checksMap = new Map(); 3576 var makeFallbackChecks = true; 3577 var firstFittingPlacement = placements[0]; 3578 3579 for (var i = 0; i < placements.length; i++) { 3580 var placement = placements[i]; 3581 3582 var _basePlacement = getBasePlacement(placement); 3583 3584 var isStartVariation = getVariation(placement) === start; 3585 var isVertical = [top, bottom].indexOf(_basePlacement) >= 0; 3586 var len = isVertical ? 'width' : 'height'; 3587 var overflow = detectOverflow(state, { 3588 placement: placement, 3589 boundary: boundary, 3590 rootBoundary: rootBoundary, 3591 altBoundary: altBoundary, 3592 padding: padding 3593 }); 3594 var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top; 3595 3596 if (referenceRect[len] > popperRect[len]) { 3597 mainVariationSide = getOppositePlacement(mainVariationSide); 3598 } 3599 3600 var altVariationSide = getOppositePlacement(mainVariationSide); 3601 var checks = []; 3602 3603 if (checkMainAxis) { 3604 checks.push(overflow[_basePlacement] <= 0); 3605 } 3606 3607 if (checkAltAxis) { 3608 checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0); 3609 } 3610 3611 if (checks.every(function (check) { 3612 return check; 3613 })) { 3614 firstFittingPlacement = placement; 3615 makeFallbackChecks = false; 3616 break; 3617 } 3618 3619 checksMap.set(placement, checks); 3620 } 3621 3622 if (makeFallbackChecks) { 3623 // `2` may be desired in some cases – research later 3624 var numberOfChecks = flipVariations ? 3 : 1; 3625 3626 var _loop = function _loop(_i) { 3627 var fittingPlacement = placements.find(function (placement) { 3628 var checks = checksMap.get(placement); 3629 3630 if (checks) { 3631 return checks.slice(0, _i).every(function (check) { 3632 return check; 3633 }); 3634 } 3635 }); 3636 3637 if (fittingPlacement) { 3638 firstFittingPlacement = fittingPlacement; 3639 return "break"; 3640 } 3641 }; 3642 3643 for (var _i = numberOfChecks; _i > 0; _i--) { 3644 var _ret = _loop(_i); 3645 3646 if (_ret === "break") break; 3647 } 3648 } 3649 3650 if (state.placement !== firstFittingPlacement) { 3651 state.modifiersData[name]._skip = true; 3652 state.placement = firstFittingPlacement; 3653 state.reset = true; 3654 } 3655 } // eslint-disable-next-line import/no-unused-modules 3656 3657 3658 const flip$1 = { 3659 name: 'flip', 3660 enabled: true, 3661 phase: 'main', 3662 fn: flip, 3663 requiresIfExists: ['offset'], 3664 data: { 3665 _skip: false 3666 } 3667 }; 3668 3669 function getSideOffsets(overflow, rect, preventedOffsets) { 3670 if (preventedOffsets === void 0) { 3671 preventedOffsets = { 3672 x: 0, 3673 y: 0 3674 }; 3675 } 3676 3677 return { 3678 top: overflow.top - rect.height - preventedOffsets.y, 3679 right: overflow.right - rect.width + preventedOffsets.x, 3680 bottom: overflow.bottom - rect.height + preventedOffsets.y, 3681 left: overflow.left - rect.width - preventedOffsets.x 3682 }; 3683 } 3684 3685 function isAnySideFullyClipped(overflow) { 3686 return [top, right, bottom, left].some(function (side) { 3687 return overflow[side] >= 0; 3688 }); 3689 } 3690 3691 function hide(_ref) { 3692 var state = _ref.state, 3693 name = _ref.name; 3694 var referenceRect = state.rects.reference; 3695 var popperRect = state.rects.popper; 3696 var preventedOffsets = state.modifiersData.preventOverflow; 3697 var referenceOverflow = detectOverflow(state, { 3698 elementContext: 'reference' 3699 }); 3700 var popperAltOverflow = detectOverflow(state, { 3701 altBoundary: true 3702 }); 3703 var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect); 3704 var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets); 3705 var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets); 3706 var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets); 3707 state.modifiersData[name] = { 3708 referenceClippingOffsets: referenceClippingOffsets, 3709 popperEscapeOffsets: popperEscapeOffsets, 3710 isReferenceHidden: isReferenceHidden, 3711 hasPopperEscaped: hasPopperEscaped 3712 }; 3713 state.attributes.popper = Object.assign({}, state.attributes.popper, { 3714 'data-popper-reference-hidden': isReferenceHidden, 3715 'data-popper-escaped': hasPopperEscaped 3716 }); 3717 } // eslint-disable-next-line import/no-unused-modules 3718 3719 3720 const hide$1 = { 3721 name: 'hide', 3722 enabled: true, 3723 phase: 'main', 3724 requiresIfExists: ['preventOverflow'], 3725 fn: hide 3726 }; 3727 3728 function distanceAndSkiddingToXY(placement, rects, offset) { 3729 var basePlacement = getBasePlacement(placement); 3730 var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1; 3731 3732 var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, { 3733 placement: placement 3734 })) : offset, 3735 skidding = _ref[0], 3736 distance = _ref[1]; 3737 3738 skidding = skidding || 0; 3739 distance = (distance || 0) * invertDistance; 3740 return [left, right].indexOf(basePlacement) >= 0 ? { 3741 x: distance, 3742 y: skidding 3743 } : { 3744 x: skidding, 3745 y: distance 3746 }; 3747 } 3748 3749 function offset(_ref2) { 3750 var state = _ref2.state, 3751 options = _ref2.options, 3752 name = _ref2.name; 3753 var _options$offset = options.offset, 3754 offset = _options$offset === void 0 ? [0, 0] : _options$offset; 3755 var data = placements.reduce(function (acc, placement) { 3756 acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset); 3757 return acc; 3758 }, {}); 3759 var _data$state$placement = data[state.placement], 3760 x = _data$state$placement.x, 3761 y = _data$state$placement.y; 3762 3763 if (state.modifiersData.popperOffsets != null) { 3764 state.modifiersData.popperOffsets.x += x; 3765 state.modifiersData.popperOffsets.y += y; 3766 } 3767 3768 state.modifiersData[name] = data; 3769 } // eslint-disable-next-line import/no-unused-modules 3770 3771 3772 const offset$1 = { 3773 name: 'offset', 3774 enabled: true, 3775 phase: 'main', 3776 requires: ['popperOffsets'], 3777 fn: offset 3778 }; 3779 3780 function popperOffsets(_ref) { 3781 var state = _ref.state, 3782 name = _ref.name; 3783 // Offsets are the actual position the popper needs to have to be 3784 // properly positioned near its reference element 3785 // This is the most basic placement, and will be adjusted by 3786 // the modifiers in the next step 3787 state.modifiersData[name] = computeOffsets({ 3788 reference: state.rects.reference, 3789 element: state.rects.popper, 3790 strategy: 'absolute', 3791 placement: state.placement 3792 }); 3793 } // eslint-disable-next-line import/no-unused-modules 3794 3795 3796 const popperOffsets$1 = { 3797 name: 'popperOffsets', 3798 enabled: true, 3799 phase: 'read', 3800 fn: popperOffsets, 3801 data: {} 3802 }; 3803 3804 function getAltAxis(axis) { 3805 return axis === 'x' ? 'y' : 'x'; 3806 } 3807 3808 function preventOverflow(_ref) { 3809 var state = _ref.state, 3810 options = _ref.options, 3811 name = _ref.name; 3812 var _options$mainAxis = options.mainAxis, 3813 checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis, 3814 _options$altAxis = options.altAxis, 3815 checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis, 3816 boundary = options.boundary, 3817 rootBoundary = options.rootBoundary, 3818 altBoundary = options.altBoundary, 3819 padding = options.padding, 3820 _options$tether = options.tether, 3821 tether = _options$tether === void 0 ? true : _options$tether, 3822 _options$tetherOffset = options.tetherOffset, 3823 tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset; 3824 var overflow = detectOverflow(state, { 3825 boundary: boundary, 3826 rootBoundary: rootBoundary, 3827 padding: padding, 3828 altBoundary: altBoundary 3829 }); 3830 var basePlacement = getBasePlacement(state.placement); 3831 var variation = getVariation(state.placement); 3832 var isBasePlacement = !variation; 3833 var mainAxis = getMainAxisFromPlacement(basePlacement); 3834 var altAxis = getAltAxis(mainAxis); 3835 var popperOffsets = state.modifiersData.popperOffsets; 3836 var referenceRect = state.rects.reference; 3837 var popperRect = state.rects.popper; 3838 var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, { 3839 placement: state.placement 3840 })) : tetherOffset; 3841 var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? { 3842 mainAxis: tetherOffsetValue, 3843 altAxis: tetherOffsetValue 3844 } : Object.assign({ 3845 mainAxis: 0, 3846 altAxis: 0 3847 }, tetherOffsetValue); 3848 var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null; 3849 var data = { 3850 x: 0, 3851 y: 0 3852 }; 3853 3854 if (!popperOffsets) { 3855 return; 3856 } 3857 3858 if (checkMainAxis) { 3859 var _offsetModifierState$; 3860 3861 var mainSide = mainAxis === 'y' ? top : left; 3862 var altSide = mainAxis === 'y' ? bottom : right; 3863 var len = mainAxis === 'y' ? 'height' : 'width'; 3864 var offset = popperOffsets[mainAxis]; 3865 var min$1 = offset + overflow[mainSide]; 3866 var max$1 = offset - overflow[altSide]; 3867 var additive = tether ? -popperRect[len] / 2 : 0; 3868 var minLen = variation === start ? referenceRect[len] : popperRect[len]; 3869 var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go 3870 // outside the reference bounds 3871 3872 var arrowElement = state.elements.arrow; 3873 var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : { 3874 width: 0, 3875 height: 0 3876 }; 3877 var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject(); 3878 var arrowPaddingMin = arrowPaddingObject[mainSide]; 3879 var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want 3880 // to include its full size in the calculation. If the reference is small 3881 // and near the edge of a boundary, the popper can overflow even if the 3882 // reference is not overflowing as well (e.g. virtual elements with no 3883 // width or height) 3884 3885 var arrowLen = within(0, referenceRect[len], arrowRect[len]); 3886 var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis; 3887 var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis; 3888 var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow); 3889 var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0; 3890 var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0; 3891 var tetherMin = offset + minOffset - offsetModifierValue - clientOffset; 3892 var tetherMax = offset + maxOffset - offsetModifierValue; 3893 var preventedOffset = within(tether ? min(min$1, tetherMin) : min$1, offset, tether ? max(max$1, tetherMax) : max$1); 3894 popperOffsets[mainAxis] = preventedOffset; 3895 data[mainAxis] = preventedOffset - offset; 3896 } 3897 3898 if (checkAltAxis) { 3899 var _offsetModifierState$2; 3900 3901 var _mainSide = mainAxis === 'x' ? top : left; 3902 3903 var _altSide = mainAxis === 'x' ? bottom : right; 3904 3905 var _offset = popperOffsets[altAxis]; 3906 3907 var _len = altAxis === 'y' ? 'height' : 'width'; 3908 3909 var _min = _offset + overflow[_mainSide]; 3910 3911 var _max = _offset - overflow[_altSide]; 3912 3913 var isOriginSide = [top, left].indexOf(basePlacement) !== -1; 3914 3915 var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0; 3916 3917 var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis; 3918 3919 var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max; 3920 3921 var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max); 3922 3923 popperOffsets[altAxis] = _preventedOffset; 3924 data[altAxis] = _preventedOffset - _offset; 3925 } 3926 3927 state.modifiersData[name] = data; 3928 } // eslint-disable-next-line import/no-unused-modules 3929 3930 3931 const preventOverflow$1 = { 3932 name: 'preventOverflow', 3933 enabled: true, 3934 phase: 'main', 3935 fn: preventOverflow, 3936 requiresIfExists: ['offset'] 3937 }; 3938 3939 function getHTMLElementScroll(element) { 3940 return { 3941 scrollLeft: element.scrollLeft, 3942 scrollTop: element.scrollTop 3943 }; 3944 } 3945 3946 function getNodeScroll(node) { 3947 if (node === getWindow(node) || !isHTMLElement(node)) { 3948 return getWindowScroll(node); 3949 } else { 3950 return getHTMLElementScroll(node); 3951 } 3952 } 3953 3954 function isElementScaled(element) { 3955 var rect = element.getBoundingClientRect(); 3956 var scaleX = round(rect.width) / element.offsetWidth || 1; 3957 var scaleY = round(rect.height) / element.offsetHeight || 1; 3958 return scaleX !== 1 || scaleY !== 1; 3959 } // Returns the composite rect of an element relative to its offsetParent. 3960 // Composite means it takes into account transforms as well as layout. 3961 3962 3963 function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) { 3964 if (isFixed === void 0) { 3965 isFixed = false; 3966 } 3967 3968 var isOffsetParentAnElement = isHTMLElement(offsetParent); 3969 var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent); 3970 var documentElement = getDocumentElement(offsetParent); 3971 var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed); 3972 var scroll = { 3973 scrollLeft: 0, 3974 scrollTop: 0 3975 }; 3976 var offsets = { 3977 x: 0, 3978 y: 0 3979 }; 3980 3981 if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) { 3982 if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078 3983 isScrollParent(documentElement)) { 3984 scroll = getNodeScroll(offsetParent); 3985 } 3986 3987 if (isHTMLElement(offsetParent)) { 3988 offsets = getBoundingClientRect(offsetParent, true); 3989 offsets.x += offsetParent.clientLeft; 3990 offsets.y += offsetParent.clientTop; 3991 } else if (documentElement) { 3992 offsets.x = getWindowScrollBarX(documentElement); 3993 } 3994 } 3995 3996 return { 3997 x: rect.left + scroll.scrollLeft - offsets.x, 3998 y: rect.top + scroll.scrollTop - offsets.y, 3999 width: rect.width, 4000 height: rect.height 4001 }; 4002 } 4003 4004 function order(modifiers) { 4005 var map = new Map(); 4006 var visited = new Set(); 4007 var result = []; 4008 modifiers.forEach(function (modifier) { 4009 map.set(modifier.name, modifier); 4010 }); // On visiting object, check for its dependencies and visit them recursively 4011 4012 function sort(modifier) { 4013 visited.add(modifier.name); 4014 var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []); 4015 requires.forEach(function (dep) { 4016 if (!visited.has(dep)) { 4017 var depModifier = map.get(dep); 4018 4019 if (depModifier) { 4020 sort(depModifier); 4021 } 4022 } 4023 }); 4024 result.push(modifier); 4025 } 4026 4027 modifiers.forEach(function (modifier) { 4028 if (!visited.has(modifier.name)) { 4029 // check for visited object 4030 sort(modifier); 4031 } 4032 }); 4033 return result; 4034 } 4035 4036 function orderModifiers(modifiers) { 4037 // order based on dependencies 4038 var orderedModifiers = order(modifiers); // order based on phase 4039 4040 return modifierPhases.reduce(function (acc, phase) { 4041 return acc.concat(orderedModifiers.filter(function (modifier) { 4042 return modifier.phase === phase; 4043 })); 4044 }, []); 4045 } 4046 4047 function debounce(fn) { 4048 var pending; 4049 return function () { 4050 if (!pending) { 4051 pending = new Promise(function (resolve) { 4052 Promise.resolve().then(function () { 4053 pending = undefined; 4054 resolve(fn()); 4055 }); 4056 }); 4057 } 4058 4059 return pending; 4060 }; 4061 } 4062 4063 function mergeByName(modifiers) { 4064 var merged = modifiers.reduce(function (merged, current) { 4065 var existing = merged[current.name]; 4066 merged[current.name] = existing ? Object.assign({}, existing, current, { 4067 options: Object.assign({}, existing.options, current.options), 4068 data: Object.assign({}, existing.data, current.data) 4069 }) : current; 4070 return merged; 4071 }, {}); // IE11 does not support Object.values 4072 4073 return Object.keys(merged).map(function (key) { 4074 return merged[key]; 4075 }); 4076 } 4077 4078 var DEFAULT_OPTIONS = { 4079 placement: 'bottom', 4080 modifiers: [], 4081 strategy: 'absolute' 4082 }; 4083 4084 function areValidElements() { 4085 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { 4086 args[_key] = arguments[_key]; 4087 } 4088 4089 return !args.some(function (element) { 4090 return !(element && typeof element.getBoundingClientRect === 'function'); 4091 }); 4092 } 4093 4094 function popperGenerator(generatorOptions) { 4095 if (generatorOptions === void 0) { 4096 generatorOptions = {}; 4097 } 4098 4099 var _generatorOptions = generatorOptions, 4100 _generatorOptions$def = _generatorOptions.defaultModifiers, 4101 defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def, 4102 _generatorOptions$def2 = _generatorOptions.defaultOptions, 4103 defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2; 4104 return function createPopper(reference, popper, options) { 4105 if (options === void 0) { 4106 options = defaultOptions; 4107 } 4108 4109 var state = { 4110 placement: 'bottom', 4111 orderedModifiers: [], 4112 options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions), 4113 modifiersData: {}, 4114 elements: { 4115 reference: reference, 4116 popper: popper 4117 }, 4118 attributes: {}, 4119 styles: {} 4120 }; 4121 var effectCleanupFns = []; 4122 var isDestroyed = false; 4123 var instance = { 4124 state: state, 4125 setOptions: function setOptions(setOptionsAction) { 4126 var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction; 4127 cleanupModifierEffects(); 4128 state.options = Object.assign({}, defaultOptions, state.options, options); 4129 state.scrollParents = { 4130 reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [], 4131 popper: listScrollParents(popper) 4132 }; // Orders the modifiers based on their dependencies and `phase` 4133 // properties 4134 4135 var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers 4136 4137 state.orderedModifiers = orderedModifiers.filter(function (m) { 4138 return m.enabled; 4139 });
vendor: 14,004 bytes, lines 4139-4564
4139 // Validate the provided modifiers so that the consumer will get warned 4140 4141 runModifierEffects(); 4142 return instance.update(); 4143 }, 4144 // Sync update – it will always be executed, even if not necessary. This 4145 // is useful for low frequency updates where sync behavior simplifies the 4146 // logic. 4147 // For high frequency updates (e.g. `resize` and `scroll` events), always 4148 // prefer the async Popper#update method 4149 forceUpdate: function forceUpdate() { 4150 if (isDestroyed) { 4151 return; 4152 } 4153 4154 var _state$elements = state.elements, 4155 reference = _state$elements.reference, 4156 popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements 4157 // anymore 4158 4159 if (!areValidElements(reference, popper)) { 4160 4161 return; 4162 } // Store the reference and popper rects to be read by modifiers 4163 4164 4165 state.rects = { 4166 reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'), 4167 popper: getLayoutRect(popper) 4168 }; // Modifiers have the ability to reset the current update cycle. The 4169 // most common use case for this is the `flip` modifier changing the 4170 // placement, which then needs to re-run all the modifiers, because the 4171 // logic was previously ran for the previous placement and is therefore 4172 // stale/incorrect 4173 4174 state.reset = false; 4175 state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier 4176 // is filled with the initial data specified by the modifier. This means 4177 // it doesn't persist and is fresh on each update. 4178 // To ensure persistent data, use `${name}#persistent` 4179 4180 state.orderedModifiers.forEach(function (modifier) { 4181 return state.modifiersData[modifier.name] = Object.assign({}, modifier.data); 4182 }); 4183 4184 for (var index = 0; index < state.orderedModifiers.length; index++) { 4185 4186 if (state.reset === true) { 4187 state.reset = false; 4188 index = -1; 4189 continue; 4190 } 4191 4192 var _state$orderedModifie = state.orderedModifiers[index], 4193 fn = _state$orderedModifie.fn, 4194 _state$orderedModifie2 = _state$orderedModifie.options, 4195 _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2, 4196 name = _state$orderedModifie.name; 4197 4198 if (typeof fn === 'function') { 4199 state = fn({ 4200 state: state, 4201 options: _options, 4202 name: name, 4203 instance: instance 4204 }) || state; 4205 } 4206 } 4207 }, 4208 // Async and optimistically optimized update – it will not be executed if 4209 // not necessary (debounced to run at most once-per-tick) 4210 update: debounce(function () { 4211 return new Promise(function (resolve) { 4212 instance.forceUpdate(); 4213 resolve(state); 4214 }); 4215 }), 4216 destroy: function destroy() { 4217 cleanupModifierEffects(); 4218 isDestroyed = true; 4219 } 4220 }; 4221 4222 if (!areValidElements(reference, popper)) { 4223 4224 return instance; 4225 } 4226 4227 instance.setOptions(options).then(function (state) { 4228 if (!isDestroyed && options.onFirstUpdate) { 4229 options.onFirstUpdate(state); 4230 } 4231 }); // Modifiers have the ability to execute arbitrary code before the first 4232 // update cycle runs. They will be executed in the same order as the update 4233 // cycle. This is useful when a modifier adds some persistent data that 4234 // other modifiers need to use, but the modifier is run after the dependent 4235 // one. 4236 4237 function runModifierEffects() { 4238 state.orderedModifiers.forEach(function (_ref3) { 4239 var name = _ref3.name, 4240 _ref3$options = _ref3.options, 4241 options = _ref3$options === void 0 ? {} : _ref3$options, 4242 effect = _ref3.effect; 4243 4244 if (typeof effect === 'function') { 4245 var cleanupFn = effect({ 4246 state: state, 4247 name: name, 4248 instance: instance, 4249 options: options 4250 }); 4251 4252 var noopFn = function noopFn() {}; 4253 4254 effectCleanupFns.push(cleanupFn || noopFn); 4255 } 4256 }); 4257 } 4258 4259 function cleanupModifierEffects() { 4260 effectCleanupFns.forEach(function (fn) { 4261 return fn(); 4262 }); 4263 effectCleanupFns = []; 4264 } 4265 4266 return instance; 4267 }; 4268 } 4269 var createPopper$2 = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules 4270 4271 var defaultModifiers$1 = [eventListeners, popperOffsets$1, computeStyles$1, applyStyles$1]; 4272 var createPopper$1 = /*#__PURE__*/popperGenerator({ 4273 defaultModifiers: defaultModifiers$1 4274 }); // eslint-disable-next-line import/no-unused-modules 4275 4276 var defaultModifiers = [eventListeners, popperOffsets$1, computeStyles$1, applyStyles$1, offset$1, flip$1, preventOverflow$1, arrow$1, hide$1]; 4277 var createPopper = /*#__PURE__*/popperGenerator({ 4278 defaultModifiers: defaultModifiers 4279 }); // eslint-disable-next-line import/no-unused-modules 4280 4281 const Popper = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({ 4282 __proto__: null, 4283 popperGenerator, 4284 detectOverflow, 4285 createPopperBase: createPopper$2, 4286 createPopper, 4287 createPopperLite: createPopper$1, 4288 top, 4289 bottom, 4290 right, 4291 left, 4292 auto, 4293 basePlacements, 4294 start, 4295 end, 4296 clippingParents, 4297 viewport, 4298 popper, 4299 reference, 4300 variationPlacements, 4301 placements, 4302 beforeRead, 4303 read, 4304 afterRead, 4305 beforeMain, 4306 main, 4307 afterMain, 4308 beforeWrite, 4309 write, 4310 afterWrite, 4311 modifierPhases, 4312 applyStyles: applyStyles$1, 4313 arrow: arrow$1, 4314 computeStyles: computeStyles$1, 4315 eventListeners, 4316 flip: flip$1, 4317 hide: hide$1, 4318 offset: offset$1, 4319 popperOffsets: popperOffsets$1, 4320 preventOverflow: preventOverflow$1 4321 }, Symbol.toStringTag, { value: 'Module' })); 4322 4323 /** 4324 * -------------------------------------------------------------------------- 4325 * Bootstrap (v5.2.3): dropdown.js 4326 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 4327 * -------------------------------------------------------------------------- 4328 */ 4329 /** 4330 * Constants 4331 */ 4332 4333 const NAME$a = 'dropdown'; 4334 const DATA_KEY$6 = 'bs.dropdown'; 4335 const EVENT_KEY$6 = `.${DATA_KEY$6}`; 4336 const DATA_API_KEY$3 = '.data-api'; 4337 const ESCAPE_KEY$2 = 'Escape'; 4338 const TAB_KEY$1 = 'Tab'; 4339 const ARROW_UP_KEY$1 = 'ArrowUp'; 4340 const ARROW_DOWN_KEY$1 = 'ArrowDown'; 4341 const RIGHT_MOUSE_BUTTON = 2; // MouseEvent.button value for the secondary button, usually the right button 4342 4343 const EVENT_HIDE$5 = `hide${EVENT_KEY$6}`; 4344 const EVENT_HIDDEN$5 = `hidden${EVENT_KEY$6}`; 4345 const EVENT_SHOW$5 = `show${EVENT_KEY$6}`; 4346 const EVENT_SHOWN$5 = `shown${EVENT_KEY$6}`; 4347 const EVENT_CLICK_DATA_API$3 = `click${EVENT_KEY$6}${DATA_API_KEY$3}`; 4348 const EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY$6}${DATA_API_KEY$3}`; 4349 const EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY$6}${DATA_API_KEY$3}`; 4350 const CLASS_NAME_SHOW$6 = 'show'; 4351 const CLASS_NAME_DROPUP = 'dropup'; 4352 const CLASS_NAME_DROPEND = 'dropend'; 4353 const CLASS_NAME_DROPSTART = 'dropstart'; 4354 const CLASS_NAME_DROPUP_CENTER = 'dropup-center'; 4355 const CLASS_NAME_DROPDOWN_CENTER = 'dropdown-center'; 4356 const SELECTOR_DATA_TOGGLE$3 = '[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)'; 4357 const SELECTOR_DATA_TOGGLE_SHOWN = `${SELECTOR_DATA_TOGGLE$3}.${CLASS_NAME_SHOW$6}`; 4358 const SELECTOR_MENU = '.dropdown-menu'; 4359 const SELECTOR_NAVBAR = '.navbar'; 4360 const SELECTOR_NAVBAR_NAV = '.navbar-nav'; 4361 const SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'; 4362 const PLACEMENT_TOP = isRTL() ? 'top-end' : 'top-start'; 4363 const PLACEMENT_TOPEND = isRTL() ? 'top-start' : 'top-end'; 4364 const PLACEMENT_BOTTOM = isRTL() ? 'bottom-end' : 'bottom-start'; 4365 const PLACEMENT_BOTTOMEND = isRTL() ? 'bottom-start' : 'bottom-end'; 4366 const PLACEMENT_RIGHT = isRTL() ? 'left-start' : 'right-start'; 4367 const PLACEMENT_LEFT = isRTL() ? 'right-start' : 'left-start'; 4368 const PLACEMENT_TOPCENTER = 'top'; 4369 const PLACEMENT_BOTTOMCENTER = 'bottom'; 4370 const Default$9 = { 4371 autoClose: true, 4372 boundary: 'clippingParents', 4373 display: 'dynamic', 4374 offset: [0, 2], 4375 popperConfig: null, 4376 reference: 'toggle' 4377 }; 4378 const DefaultType$9 = { 4379 autoClose: '(boolean|string)', 4380 boundary: '(string|element)', 4381 display: 'string', 4382 offset: '(array|string|function)', 4383 popperConfig: '(null|object|function)', 4384 reference: '(string|element|object)' 4385 }; 4386 /** 4387 * Class definition 4388 */ 4389 4390 class Dropdown extends BaseComponent { 4391 constructor(element, config) { 4392 super(element, config); 4393 this._popper = null; 4394 this._parent = this._element.parentNode; // dropdown wrapper 4395 // todo: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.2/forms/input-group/ 4396 4397 this._menu = SelectorEngine.next(this._element, SELECTOR_MENU)[0] || SelectorEngine.prev(this._element, SELECTOR_MENU)[0] || SelectorEngine.findOne(SELECTOR_MENU, this._parent); 4398 this._inNavbar = this._detectNavbar(); 4399 } // Getters 4400 4401 4402 static get Default() { 4403 return Default$9; 4404 } 4405 4406 static get DefaultType() { 4407 return DefaultType$9; 4408 } 4409 4410 static get NAME() { 4411 return NAME$a; 4412 } // Public 4413 4414 4415 toggle() { 4416 return this._isShown() ? this.hide() : this.show(); 4417 } 4418 4419 show() { 4420 if (isDisabled(this._element) || this._isShown()) { 4421 return; 4422 } 4423 4424 const relatedTarget = { 4425 relatedTarget: this._element 4426 }; 4427 const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$5, relatedTarget); 4428 4429 if (showEvent.defaultPrevented) { 4430 return; 4431 } 4432 4433 this._createPopper(); // If this is a touch-enabled device we add extra 4434 // empty mouseover listeners to the body's immediate children; 4435 // only needed because of broken event delegation on iOS 4436 // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html 4437 4438 4439 if ('ontouchstart' in document.documentElement && !this._parent.closest(SELECTOR_NAVBAR_NAV)) { 4440 for (const element of [].concat(...document.body.children)) { 4441 EventHandler.on(element, 'mouseover', noop); 4442 } 4443 } 4444 4445 this._element.focus(); 4446 4447 this._element.setAttribute('aria-expanded', true); 4448 4449 this._menu.classList.add(CLASS_NAME_SHOW$6); 4450 4451 this._element.classList.add(CLASS_NAME_SHOW$6); 4452 4453 EventHandler.trigger(this._element, EVENT_SHOWN$5, relatedTarget); 4454 } 4455 4456 hide() { 4457 if (isDisabled(this._element) || !this._isShown()) { 4458 return; 4459 } 4460 4461 const relatedTarget = { 4462 relatedTarget: this._element 4463 }; 4464 4465 this._completeHide(relatedTarget); 4466 } 4467 4468 dispose() { 4469 if (this._popper) { 4470 this._popper.destroy(); 4471 } 4472 4473 super.dispose(); 4474 } 4475 4476 update() { 4477 this._inNavbar = this._detectNavbar(); 4478 4479 if (this._popper) { 4480 this._popper.update(); 4481 } 4482 } // Private 4483 4484 4485 _completeHide(relatedTarget) { 4486 const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$5, relatedTarget); 4487 4488 if (hideEvent.defaultPrevented) { 4489 return; 4490 } // If this is a touch-enabled device we remove the extra 4491 // empty mouseover listeners we added for iOS support 4492 4493 4494 if ('ontouchstart' in document.documentElement) { 4495 for (const element of [].concat(...document.body.children)) { 4496 EventHandler.off(element, 'mouseover', noop); 4497 } 4498 } 4499 4500 if (this._popper) { 4501 this._popper.destroy(); 4502 } 4503 4504 this._menu.classList.remove(CLASS_NAME_SHOW$6); 4505 4506 this._element.classList.remove(CLASS_NAME_SHOW$6); 4507 4508 this._element.setAttribute('aria-expanded', 'false'); 4509 4510 Manipulator.removeDataAttribute(this._menu, 'popper'); 4511 EventHandler.trigger(this._element, EVENT_HIDDEN$5, relatedTarget); 4512 } 4513 4514 _getConfig(config) { 4515 config = super._getConfig(config); 4516 4517 if (typeof config.reference === 'object' && !isElement$1(config.reference) && typeof config.reference.getBoundingClientRect !== 'function') { 4518 // Popper virtual elements require a getBoundingClientRect method 4519 throw new TypeError(`${NAME$a.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`); 4520 } 4521 4522 return config; 4523 } 4524 4525 _createPopper() { 4526 if (typeof Popper === 'undefined') { 4527 throw new TypeError('Bootstrap\'s dropdowns require Popper (https://popper.js.org)'); 4528 } 4529 4530 let referenceElement = this._element; 4531 4532 if (this._config.reference === 'parent') { 4533 referenceElement = this._parent; 4534 } else if (isElement$1(this._config.reference)) { 4535 referenceElement = getElement(this._config.reference); 4536 } else if (typeof this._config.reference === 'object') { 4537 referenceElement = this._config.reference; 4538 } 4539 4540 const popperConfig = this._getPopperConfig(); 4541 4542 this._popper = createPopper(referenceElement, this._menu, popperConfig); 4543 } 4544 4545 _isShown() { 4546 return this._menu.classList.contains(CLASS_NAME_SHOW$6); 4547 } 4548 4549 _getPlacement() { 4550 const parentDropdown = this._parent; 4551 4552 if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) { 4553 return PLACEMENT_RIGHT; 4554 } 4555 4556 if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) { 4557 return PLACEMENT_LEFT; 4558 } 4559 4560 if (parentDropdown.classList.contains(CLASS_NAME_DROPUP_CENTER)) { 4561 return PLACEMENT_TOPCENTER; 4562 } 4563 4564 if (parentDropdown.classList.contains(CLASS_NAME_DROPDOWN_CENT
vendor: 4,138 bytes, lines 4564-4700
4564ER)) { 4565 return PLACEMENT_BOTTOMCENTER; 4566 } // We need to trim the value because custom properties can also include spaces 4567 4568 4569 const isEnd = getComputedStyle(this._menu).getPropertyValue('--bs-position').trim() === 'end'; 4570 4571 if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) { 4572 return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP; 4573 } 4574 4575 return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM; 4576 } 4577 4578 _detectNavbar() { 4579 return this._element.closest(SELECTOR_NAVBAR) !== null; 4580 } 4581 4582 _getOffset() { 4583 const { 4584 offset 4585 } = this._config; 4586 4587 if (typeof offset === 'string') { 4588 return offset.split(',').map(value => Number.parseInt(value, 10)); 4589 } 4590 4591 if (typeof offset === 'function') { 4592 return popperData => offset(popperData, this._element); 4593 } 4594 4595 return offset; 4596 } 4597 4598 _getPopperConfig() { 4599 const defaultBsPopperConfig = { 4600 placement: this._getPlacement(), 4601 modifiers: [{ 4602 name: 'preventOverflow', 4603 options: { 4604 boundary: this._config.boundary 4605 } 4606 }, { 4607 name: 'offset', 4608 options: { 4609 offset: this._getOffset() 4610 } 4611 }] 4612 }; // Disable Popper if we have a static display or Dropdown is in Navbar 4613 4614 if (this._inNavbar || this._config.display === 'static') { 4615 Manipulator.setDataAttribute(this._menu, 'popper', 'static'); // todo:v6 remove 4616 4617 defaultBsPopperConfig.modifiers = [{ 4618 name: 'applyStyles', 4619 enabled: false 4620 }]; 4621 } 4622 4623 return { ...defaultBsPopperConfig, 4624 ...(typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig) 4625 }; 4626 } 4627 4628 _selectMenuItem({ 4629 key, 4630 target 4631 }) { 4632 const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter(element => isVisible(element)); 4633 4634 if (!items.length) { 4635 return; 4636 } // if target isn't included in items (e.g. when expanding the dropdown) 4637 // allow cycling to get the last item in case key equals ARROW_UP_KEY 4638 4639 4640 getNextActiveElement(items, target, key === ARROW_DOWN_KEY$1, !items.includes(target)).focus(); 4641 } // Static 4642 4643 4644 static jQueryInterface(config) { 4645 return this.each(function () { 4646 const data = Dropdown.getOrCreateInstance(this, config); 4647 4648 if (typeof config !== 'string') { 4649 return; 4650 } 4651 4652 if (typeof data[config] === 'undefined') { 4653 throw new TypeError(`No method named "${config}"`); 4654 } 4655 4656 data[config](); 4657 }); 4658 } 4659 4660 static clearMenus(event) { 4661 if (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY$1) { 4662 return; 4663 } 4664 4665 const openToggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE_SHOWN); 4666 4667 for (const toggle of openToggles) { 4668 const context = Dropdown.getInstance(toggle); 4669 4670 if (!context || context._config.autoClose === false) { 4671 continue; 4672 } 4673 4674 const composedPath = event.composedPath(); 4675 const isMenuTarget = composedPath.includes(context._menu); 4676 4677 if (composedPath.includes(context._element) || context._config.autoClose === 'inside' && !isMenuTarget || context._config.autoClose === 'outside' && isMenuTarget) { 4678 continue; 4679 } // Tab navigation through the dropdown menu or events from contained inputs shouldn't close the menu 4680 4681 4682 if (context._menu.contains(event.target) && (event.type === 'keyup' && event.key === TAB_KEY$1 || /input|select|option|textarea|form/i.test(event.target.tagName))) { 4683 continue; 4684 } 4685 4686 const relatedTarget = { 4687 relatedTarget: context._element 4688 }; 4689 4690 if (event.type === 'click') { 4691 relatedTarget.clickEvent = event; 4692 } 4693 4694 context._completeHide(relatedTarget); 4695 } 4696 } 4697 4698 static dataApiKeydownHandler(event) { 4699 // If not an UP | DOWN | ESCAPE key => not a dropdown command 4700 // If input/textarea && if key is other than ESCAPE => not a dropdown command
vendor: 10,656 bytes, lines 4701-5094
4701 const isInput = /input|textarea/i.test(event.target.tagName); 4702 const isEscapeEvent = event.key === ESCAPE_KEY$2; 4703 const isUpOrDownEvent = [ARROW_UP_KEY$1, ARROW_DOWN_KEY$1].includes(event.key); 4704 4705 if (!isUpOrDownEvent && !isEscapeEvent) { 4706 return; 4707 } 4708 4709 if (isInput && !isEscapeEvent) { 4710 return; 4711 } 4712 4713 event.preventDefault(); // todo: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.2/forms/input-group/ 4714 4715 const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE$3) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.next(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.findOne(SELECTOR_DATA_TOGGLE$3, event.delegateTarget.parentNode); 4716 const instance = Dropdown.getOrCreateInstance(getToggleButton); 4717 4718 if (isUpOrDownEvent) { 4719 event.stopPropagation(); 4720 instance.show(); 4721 4722 instance._selectMenuItem(event); 4723 4724 return; 4725 } 4726 4727 if (instance._isShown()) { 4728 // else is escape and we check if it is shown 4729 event.stopPropagation(); 4730 instance.hide(); 4731 getToggleButton.focus(); 4732 } 4733 } 4734 4735 } 4736 /** 4737 * Data API implementation 4738 */ 4739 4740 4741 EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$3, Dropdown.dataApiKeydownHandler); 4742 EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler); 4743 EventHandler.on(document, EVENT_CLICK_DATA_API$3, Dropdown.clearMenus); 4744 EventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus); 4745 EventHandler.on(document, EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$3, function (event) { 4746 event.preventDefault(); 4747 Dropdown.getOrCreateInstance(this).toggle(); 4748 }); 4749 /** 4750 * jQuery 4751 */ 4752 4753 defineJQueryPlugin(Dropdown); 4754 4755 /** 4756 * -------------------------------------------------------------------------- 4757 * Bootstrap (v5.2.3): util/scrollBar.js 4758 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 4759 * -------------------------------------------------------------------------- 4760 */ 4761 /** 4762 * Constants 4763 */ 4764 4765 const SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'; 4766 const SELECTOR_STICKY_CONTENT = '.sticky-top'; 4767 const PROPERTY_PADDING = 'padding-right'; 4768 const PROPERTY_MARGIN = 'margin-right'; 4769 /** 4770 * Class definition 4771 */ 4772 4773 class ScrollBarHelper { 4774 constructor() { 4775 this._element = document.body; 4776 } // Public 4777 4778 4779 getWidth() { 4780 // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes 4781 const documentWidth = document.documentElement.clientWidth; 4782 return Math.abs(window.innerWidth - documentWidth); 4783 } 4784 4785 hide() { 4786 const width = this.getWidth(); 4787 4788 this._disableOverFlow(); // give padding to element to balance the hidden scrollbar width 4789 4790 4791 this._setElementAttributes(this._element, PROPERTY_PADDING, calculatedValue => calculatedValue + width); // trick: We adjust positive paddingRight and negative marginRight to sticky-top elements to keep showing fullwidth 4792 4793 4794 this._setElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING, calculatedValue => calculatedValue + width); 4795 4796 this._setElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN, calculatedValue => calculatedValue - width); 4797 } 4798 4799 reset() { 4800 this._resetElementAttributes(this._element, 'overflow'); 4801 4802 this._resetElementAttributes(this._element, PROPERTY_PADDING); 4803 4804 this._resetElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING); 4805 4806 this._resetElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN); 4807 } 4808 4809 isOverflowing() { 4810 return this.getWidth() > 0; 4811 } // Private 4812 4813 4814 _disableOverFlow() { 4815 this._saveInitialAttribute(this._element, 'overflow'); 4816 4817 this._element.style.overflow = 'hidden'; 4818 } 4819 4820 _setElementAttributes(selector, styleProperty, callback) { 4821 const scrollbarWidth = this.getWidth(); 4822 4823 const manipulationCallBack = element => { 4824 if (element !== this._element && window.innerWidth > element.clientWidth + scrollbarWidth) { 4825 return; 4826 } 4827 4828 this._saveInitialAttribute(element, styleProperty); 4829 4830 const calculatedValue = window.getComputedStyle(element).getPropertyValue(styleProperty); 4831 element.style.setProperty(styleProperty, `${callback(Number.parseFloat(calculatedValue))}px`); 4832 }; 4833 4834 this._applyManipulationCallback(selector, manipulationCallBack); 4835 } 4836 4837 _saveInitialAttribute(element, styleProperty) { 4838 const actualValue = element.style.getPropertyValue(styleProperty); 4839 4840 if (actualValue) { 4841 Manipulator.setDataAttribute(element, styleProperty, actualValue); 4842 } 4843 } 4844 4845 _resetElementAttributes(selector, styleProperty) { 4846 const manipulationCallBack = element => { 4847 const value = Manipulator.getDataAttribute(element, styleProperty); // We only want to remove the property if the value is `null`; the value can also be zero 4848 4849 if (value === null) { 4850 element.style.removeProperty(styleProperty); 4851 return; 4852 } 4853 4854 Manipulator.removeDataAttribute(element, styleProperty); 4855 element.style.setProperty(styleProperty, value); 4856 }; 4857 4858 this._applyManipulationCallback(selector, manipulationCallBack); 4859 } 4860 4861 _applyManipulationCallback(selector, callBack) { 4862 if (isElement$1(selector)) { 4863 callBack(selector); 4864 return; 4865 } 4866 4867 for (const sel of SelectorEngine.find(selector, this._element)) { 4868 callBack(sel); 4869 } 4870 } 4871 4872 } 4873 4874 /** 4875 * -------------------------------------------------------------------------- 4876 * Bootstrap (v5.2.3): util/backdrop.js 4877 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 4878 * -------------------------------------------------------------------------- 4879 */ 4880 /** 4881 * Constants 4882 */ 4883 4884 const NAME$9 = 'backdrop'; 4885 const CLASS_NAME_FADE$4 = 'fade'; 4886 const CLASS_NAME_SHOW$5 = 'show'; 4887 const EVENT_MOUSEDOWN = `mousedown.bs.${NAME$9}`; 4888 const Default$8 = { 4889 className: 'modal-backdrop', 4890 clickCallback: null, 4891 isAnimated: false, 4892 isVisible: true, 4893 // if false, we use the backdrop helper without adding any element to the dom 4894 rootElement: 'body' // give the choice to place backdrop under different elements 4895 4896 }; 4897 const DefaultType$8 = { 4898 className: 'string', 4899 clickCallback: '(function|null)', 4900 isAnimated: 'boolean', 4901 isVisible: 'boolean', 4902 rootElement: '(element|string)' 4903 }; 4904 /** 4905 * Class definition 4906 */ 4907 4908 class Backdrop extends Config { 4909 constructor(config) { 4910 super(); 4911 this._config = this._getConfig(config); 4912 this._isAppended = false; 4913 this._element = null; 4914 } // Getters 4915 4916 4917 static get Default() { 4918 return Default$8; 4919 } 4920 4921 static get DefaultType() { 4922 return DefaultType$8; 4923 } 4924 4925 static get NAME() { 4926 return NAME$9; 4927 } // Public 4928 4929 4930 show(callback) { 4931 if (!this._config.isVisible) { 4932 execute(callback); 4933 return; 4934 } 4935 4936 this._append(); 4937 4938 const element = this._getElement(); 4939 4940 if (this._config.isAnimated) { 4941 reflow(element); 4942 } 4943 4944 element.classList.add(CLASS_NAME_SHOW$5); 4945 4946 this._emulateAnimation(() => { 4947 execute(callback); 4948 }); 4949 } 4950 4951 hide(callback) { 4952 if (!this._config.isVisible) { 4953 execute(callback); 4954 return; 4955 } 4956 4957 this._getElement().classList.remove(CLASS_NAME_SHOW$5); 4958 4959 this._emulateAnimation(() => { 4960 this.dispose(); 4961 execute(callback); 4962 }); 4963 } 4964 4965 dispose() { 4966 if (!this._isAppended) { 4967 return; 4968 } 4969 4970 EventHandler.off(this._element, EVENT_MOUSEDOWN); 4971 4972 this._element.remove(); 4973 4974 this._isAppended = false; 4975 } // Private 4976 4977 4978 _getElement() { 4979 if (!this._element) { 4980 const backdrop = document.createElement('div'); 4981 backdrop.className = this._config.className; 4982 4983 if (this._config.isAnimated) { 4984 backdrop.classList.add(CLASS_NAME_FADE$4); 4985 } 4986 4987 this._element = backdrop; 4988 } 4989 4990 return this._element; 4991 } 4992 4993 _configAfterMerge(config) { 4994 // use getElement() with the default "body" to get a fresh Element on each instantiation 4995 config.rootElement = getElement(config.rootElement); 4996 return config; 4997 } 4998 4999 _append() { 5000 if (this._isAppended) { 5001 return; 5002 } 5003 5004 const element = this._getElement(); 5005 5006 this._config.rootElement.append(element); 5007 5008 EventHandler.on(element, EVENT_MOUSEDOWN, () => { 5009 execute(this._config.clickCallback); 5010 }); 5011 this._isAppended = true; 5012 } 5013 5014 _emulateAnimation(callback) { 5015 executeAfterTransition(callback, this._getElement(), this._config.isAnimated); 5016 } 5017 5018 } 5019 5020 /** 5021 * -------------------------------------------------------------------------- 5022 * Bootstrap (v5.2.3): util/focustrap.js 5023 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 5024 * -------------------------------------------------------------------------- 5025 */ 5026 /** 5027 * Constants 5028 */ 5029 5030 const NAME$8 = 'focustrap'; 5031 const DATA_KEY$5 = 'bs.focustrap'; 5032 const EVENT_KEY$5 = `.${DATA_KEY$5}`; 5033 const EVENT_FOCUSIN$2 = `focusin${EVENT_KEY$5}`; 5034 const EVENT_KEYDOWN_TAB = `keydown.tab${EVENT_KEY$5}`; 5035 const TAB_KEY = 'Tab'; 5036 const TAB_NAV_FORWARD = 'forward'; 5037 const TAB_NAV_BACKWARD = 'backward'; 5038 const Default$7 = { 5039 autofocus: true, 5040 trapElement: null // The element to trap focus inside of 5041 5042 }; 5043 const DefaultType$7 = { 5044 autofocus: 'boolean', 5045 trapElement: 'element' 5046 }; 5047 /** 5048 * Class definition 5049 */ 5050 5051 class FocusTrap extends Config { 5052 constructor(config) { 5053 super(); 5054 this._config = this._getConfig(config); 5055 this._isActive = false; 5056 this._lastTabNavDirection = null; 5057 } // Getters 5058 5059 5060 static get Default() { 5061 return Default$7; 5062 } 5063 5064 static get DefaultType() { 5065 return DefaultType$7; 5066 } 5067 5068 static get NAME() { 5069 return NAME$8; 5070 } // Public 5071 5072 5073 activate() { 5074 if (this._isActive) { 5075 return; 5076 } 5077 5078 if (this._config.autofocus) { 5079 this._config.trapElement.focus(); 5080 } 5081 5082 EventHandler.off(document, EVENT_KEY$5); // guard against infinite focus loop 5083 5084 EventHandler.on(document, EVENT_FOCUSIN$2, event => this._handleFocusin(event)); 5085 EventHandler.on(document, EVENT_KEYDOWN_TAB, event => this._handleKeydown(event)); 5086 this._isActive = true; 5087 } 5088 5089 deactivate() { 5090 if (!this._isActive) { 5091 return; 5092 } 5093 5094 this._isActive = false;
5095 EventHandler.off(document, EVENT_KEY$5); 5096 } // Private 5097 5098 5099 _handleFocusin(event) { 5100 const { 5101 trapElement 5102 } = this._config; 5103 5104 if (event.target === document || event.target === trapElement || trapElement.contains(event.target)) { 5105 return; 5106 } 5107 5108 const elements = SelectorEngine.focusableChildren(trapElement); 5109 5110 if (elements.length === 0) { 5111 trapElement.focus(); 5112 } else if (this._lastTabNavDirection === TAB_NAV_BACKWARD) { 5113 elements[elements.length - 1].focus(); 5114 } else { 5115 elements[0].focus(); 5116 } 5117 } 5118 5119 _handleKeydown(event) { 5120 if (event.key !== TAB_KEY) { 5121 return; 5122 } 5123 5124 this._lastTabNavDirection = event.shiftKey ? TAB_NAV_BACKWARD : TAB_NAV_FORWARD; 5125 } 5126 5127 } 5128 5129 /** 5130 * -------------------------------------------------------------------------- 5131 * Bootstrap (v5.2.3): modal.js 5132 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 5133 * -------------------------------------------------------------------------- 5134 */ 5135 /** 5136 * Constants 5137 */ 5138 5139 const NAME$7 = 'modal'; 5140 const DATA_KEY$4 = 'bs.modal'; 5141 const EVENT_KEY$4 = `.${DATA_KEY$4}`; 5142 const DATA_API_KEY$2 = '.data-api'; 5143 const ESCAPE_KEY$1 = 'Escape'; 5144 const EVENT_HIDE$4 = `hide${EVENT_KEY$4}`; 5145 const EVENT_HIDE_PREVENTED$1 = `hidePrevented${EVENT_KEY$4}`; 5146 const EVENT_HIDDEN$4 = `hidden${EVENT_KEY$4}`; 5147 const EVENT_SHOW$4 = `show${EVENT_KEY$4}`; 5148 const EVENT_SHOWN$4 = `shown${EVENT_KEY$4}`; 5149 const EVENT_RESIZE$1 = `resize${EVENT_KEY$4}`; 5150 const EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY$4}`; 5151 const EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY$4}`; 5152 const EVENT_KEYDOWN_DISMISS$1 = `keydown.dismiss${EVENT_KEY$4}`; 5153 const EVENT_CLICK_DATA_API$2 = `click${EVENT_KEY$4}${DATA_API_KEY$2}`; 5154 const CLASS_NAME_OPEN = 'modal-open'; 5155 const CLASS_NAME_FADE$3 = 'fade';
vendor: 9,423 bytes, lines 5156-5520
5156 const CLASS_NAME_SHOW$4 = 'show'; 5157 const CLASS_NAME_STATIC = 'modal-static'; 5158 const OPEN_SELECTOR$1 = '.modal.show'; 5159 const SELECTOR_DIALOG = '.modal-dialog'; 5160 const SELECTOR_MODAL_BODY = '.modal-body'; 5161 const SELECTOR_DATA_TOGGLE$2 = '[data-bs-toggle="modal"]'; 5162 const Default$6 = { 5163 backdrop: true, 5164 focus: true, 5165 keyboard: true 5166 }; 5167 const DefaultType$6 = { 5168 backdrop: '(boolean|string)', 5169 focus: 'boolean', 5170 keyboard: 'boolean' 5171 }; 5172 /** 5173 * Class definition 5174 */ 5175 5176 class Modal extends BaseComponent { 5177 constructor(element, config) { 5178 super(element, config); 5179 this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element); 5180 this._backdrop = this._initializeBackDrop(); 5181 this._focustrap = this._initializeFocusTrap(); 5182 this._isShown = false; 5183 this._isTransitioning = false; 5184 this._scrollBar = new ScrollBarHelper(); 5185 5186 this._addEventListeners(); 5187 } // Getters 5188 5189 5190 static get Default() { 5191 return Default$6; 5192 } 5193 5194 static get DefaultType() { 5195 return DefaultType$6; 5196 } 5197 5198 static get NAME() { 5199 return NAME$7; 5200 } // Public 5201 5202 5203 toggle(relatedTarget) { 5204 return this._isShown ? this.hide() : this.show(relatedTarget); 5205 } 5206 5207 show(relatedTarget) { 5208 if (this._isShown || this._isTransitioning) { 5209 return; 5210 } 5211 5212 const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$4, { 5213 relatedTarget 5214 }); 5215 5216 if (showEvent.defaultPrevented) { 5217 return; 5218 } 5219 5220 this._isShown = true; 5221 this._isTransitioning = true; 5222 5223 this._scrollBar.hide(); 5224 5225 document.body.classList.add(CLASS_NAME_OPEN); 5226 5227 this._adjustDialog(); 5228 5229 this._backdrop.show(() => this._showElement(relatedTarget)); 5230 } 5231 5232 hide() { 5233 if (!this._isShown || this._isTransitioning) { 5234 return; 5235 } 5236 5237 const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$4); 5238 5239 if (hideEvent.defaultPrevented) { 5240 return; 5241 } 5242 5243 this._isShown = false; 5244 this._isTransitioning = true; 5245 5246 this._focustrap.deactivate(); 5247 5248 this._element.classList.remove(CLASS_NAME_SHOW$4); 5249 5250 this._queueCallback(() => this._hideModal(), this._element, this._isAnimated()); 5251 } 5252 5253 dispose() { 5254 for (const htmlElement of [window, this._dialog]) { 5255 EventHandler.off(htmlElement, EVENT_KEY$4); 5256 } 5257 5258 this._backdrop.dispose(); 5259 5260 this._focustrap.deactivate(); 5261 5262 super.dispose(); 5263 } 5264 5265 handleUpdate() { 5266 this._adjustDialog(); 5267 } // Private 5268 5269 5270 _initializeBackDrop() { 5271 return new Backdrop({ 5272 isVisible: Boolean(this._config.backdrop), 5273 // 'static' option will be translated to true, and booleans will keep their value, 5274 isAnimated: this._isAnimated() 5275 }); 5276 } 5277 5278 _initializeFocusTrap() { 5279 return new FocusTrap({ 5280 trapElement: this._element 5281 }); 5282 } 5283 5284 _showElement(relatedTarget) { 5285 // try to append dynamic modal 5286 if (!document.body.contains(this._element)) { 5287 document.body.append(this._element); 5288 } 5289 5290 this._element.style.display = 'block'; 5291 5292 this._element.removeAttribute('aria-hidden'); 5293 5294 this._element.setAttribute('aria-modal', true); 5295 5296 this._element.setAttribute('role', 'dialog'); 5297 5298 this._element.scrollTop = 0; 5299 const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog); 5300 5301 if (modalBody) { 5302 modalBody.scrollTop = 0; 5303 } 5304 5305 reflow(this._element); 5306 5307 this._element.classList.add(CLASS_NAME_SHOW$4); 5308 5309 const transitionComplete = () => { 5310 if (this._config.focus) { 5311 this._focustrap.activate(); 5312 } 5313 5314 this._isTransitioning = false; 5315 EventHandler.trigger(this._element, EVENT_SHOWN$4, { 5316 relatedTarget 5317 }); 5318 }; 5319 5320 this._queueCallback(transitionComplete, this._dialog, this._isAnimated()); 5321 } 5322 5323 _addEventListeners() { 5324 EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS$1, event => { 5325 if (event.key !== ESCAPE_KEY$1) { 5326 return; 5327 } 5328 5329 if (this._config.keyboard) { 5330 event.preventDefault(); 5331 this.hide(); 5332 return; 5333 } 5334 5335 this._triggerBackdropTransition(); 5336 }); 5337 EventHandler.on(window, EVENT_RESIZE$1, () => { 5338 if (this._isShown && !this._isTransitioning) { 5339 this._adjustDialog(); 5340 } 5341 }); 5342 EventHandler.on(this._element, EVENT_MOUSEDOWN_DISMISS, event => { 5343 // a bad trick to segregate clicks that may start inside dialog but end outside, and avoid listen to scrollbar clicks 5344 EventHandler.one(this._element, EVENT_CLICK_DISMISS, event2 => { 5345 if (this._element !== event.target || this._element !== event2.target) { 5346 return; 5347 } 5348 5349 if (this._config.backdrop === 'static') { 5350 this._triggerBackdropTransition(); 5351 5352 return; 5353 } 5354 5355 if (this._config.backdrop) { 5356 this.hide(); 5357 } 5358 }); 5359 }); 5360 } 5361 5362 _hideModal() { 5363 this._element.style.display = 'none'; 5364 5365 this._element.setAttribute('aria-hidden', true); 5366 5367 this._element.removeAttribute('aria-modal'); 5368 5369 this._element.removeAttribute('role'); 5370 5371 this._isTransitioning = false; 5372 5373 this._backdrop.hide(() => { 5374 document.body.classList.remove(CLASS_NAME_OPEN); 5375 5376 this._resetAdjustments(); 5377 5378 this._scrollBar.reset(); 5379 5380 EventHandler.trigger(this._element, EVENT_HIDDEN$4); 5381 }); 5382 } 5383 5384 _isAnimated() { 5385 return this._element.classList.contains(CLASS_NAME_FADE$3); 5386 } 5387 5388 _triggerBackdropTransition() { 5389 const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED$1); 5390 5391 if (hideEvent.defaultPrevented) { 5392 return; 5393 } 5394 5395 const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight; 5396 const initialOverflowY = this._element.style.overflowY; // return if the following background transition hasn't yet completed 5397 5398 if (initialOverflowY === 'hidden' || this._element.classList.contains(CLASS_NAME_STATIC)) { 5399 return; 5400 } 5401 5402 if (!isModalOverflowing) { 5403 this._element.style.overflowY = 'hidden'; 5404 } 5405 5406 this._element.classList.add(CLASS_NAME_STATIC); 5407 5408 this._queueCallback(() => { 5409 this._element.classList.remove(CLASS_NAME_STATIC); 5410 5411 this._queueCallback(() => { 5412 this._element.style.overflowY = initialOverflowY; 5413 }, this._dialog); 5414 }, this._dialog); 5415 5416 this._element.focus(); 5417 } 5418 /** 5419 * The following methods are used to handle overflowing modals 5420 */ 5421 5422 5423 _adjustDialog() { 5424 const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight; 5425 5426 const scrollbarWidth = this._scrollBar.getWidth(); 5427 5428 const isBodyOverflowing = scrollbarWidth > 0; 5429 5430 if (isBodyOverflowing && !isModalOverflowing) { 5431 const property = isRTL() ? 'paddingLeft' : 'paddingRight'; 5432 this._element.style[property] = `${scrollbarWidth}px`; 5433 } 5434 5435 if (!isBodyOverflowing && isModalOverflowing) { 5436 const property = isRTL() ? 'paddingRight' : 'paddingLeft'; 5437 this._element.style[property] = `${scrollbarWidth}px`; 5438 } 5439 } 5440 5441 _resetAdjustments() { 5442 this._element.style.paddingLeft = ''; 5443 this._element.style.paddingRight = ''; 5444 } // Static 5445 5446 5447 static jQueryInterface(config, relatedTarget) { 5448 return this.each(function () { 5449 const data = Modal.getOrCreateInstance(this, config); 5450 5451 if (typeof config !== 'string') { 5452 return; 5453 } 5454 5455 if (typeof data[config] === 'undefined') { 5456 throw new TypeError(`No method named "${config}"`); 5457 } 5458 5459 data[config](relatedTarget); 5460 }); 5461 } 5462 5463 } 5464 /** 5465 * Data API implementation 5466 */ 5467 5468 5469 EventHandler.on(document, EVENT_CLICK_DATA_API$2, SELECTOR_DATA_TOGGLE$2, function (event) { 5470 const target = getElementFromSelector(this); 5471 5472 if (['A', 'AREA'].includes(this.tagName)) { 5473 event.preventDefault(); 5474 } 5475 5476 EventHandler.one(target, EVENT_SHOW$4, showEvent => { 5477 if (showEvent.defaultPrevented) { 5478 // only register focus restorer if modal will actually get shown 5479 return; 5480 } 5481 5482 EventHandler.one(target, EVENT_HIDDEN$4, () => { 5483 if (isVisible(this)) { 5484 this.focus(); 5485 } 5486 }); 5487 }); // avoid conflict when clicking modal toggler while another one is open 5488 5489 const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR$1); 5490 5491 if (alreadyOpen) { 5492 Modal.getInstance(alreadyOpen).hide(); 5493 } 5494 5495 const data = Modal.getOrCreateInstance(target); 5496 data.toggle(this); 5497 }); 5498 enableDismissTrigger(Modal); 5499 /** 5500 * jQuery 5501 */ 5502 5503 defineJQueryPlugin(Modal); 5504 5505 /** 5506 * -------------------------------------------------------------------------- 5507 * Bootstrap (v5.2.3): offcanvas.js 5508 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 5509 * -------------------------------------------------------------------------- 5510 */ 5511 /** 5512 * Constants 5513 */ 5514 5515 const NAME$6 = 'offcanvas'; 5516 const DATA_KEY$3 = 'bs.offcanvas'; 5517 const EVENT_KEY$3 = `.${DATA_KEY$3}`; 5518 const DATA_API_KEY$1 = '.data-api'; 5519 const EVENT_LOAD_DATA_API$2 = `load${EVENT_KEY$3}${DATA_API_KEY$1}`; 5520 const ESCAPE_KEY = 'Escape';
vendor: 4,885 bytes, lines 5521-5719
5521 const CLASS_NAME_SHOW$3 = 'show'; 5522 const CLASS_NAME_SHOWING$1 = 'showing'; 5523 const CLASS_NAME_HIDING = 'hiding'; 5524 const CLASS_NAME_BACKDROP = 'offcanvas-backdrop'; 5525 const OPEN_SELECTOR = '.offcanvas.show'; 5526 const EVENT_SHOW$3 = `show${EVENT_KEY$3}`; 5527 const EVENT_SHOWN$3 = `shown${EVENT_KEY$3}`; 5528 const EVENT_HIDE$3 = `hide${EVENT_KEY$3}`; 5529 const EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY$3}`; 5530 const EVENT_HIDDEN$3 = `hidden${EVENT_KEY$3}`; 5531 const EVENT_RESIZE = `resize${EVENT_KEY$3}`; 5532 const EVENT_CLICK_DATA_API$1 = `click${EVENT_KEY$3}${DATA_API_KEY$1}`; 5533 const EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY$3}`; 5534 const SELECTOR_DATA_TOGGLE$1 = '[data-bs-toggle="offcanvas"]'; 5535 const Default$5 = { 5536 backdrop: true, 5537 keyboard: true, 5538 scroll: false 5539 }; 5540 const DefaultType$5 = { 5541 backdrop: '(boolean|string)', 5542 keyboard: 'boolean', 5543 scroll: 'boolean' 5544 }; 5545 /** 5546 * Class definition 5547 */ 5548 5549 class Offcanvas extends BaseComponent { 5550 constructor(element, config) { 5551 super(element, config); 5552 this._isShown = false; 5553 this._backdrop = this._initializeBackDrop(); 5554 this._focustrap = this._initializeFocusTrap(); 5555 5556 this._addEventListeners(); 5557 } // Getters 5558 5559 5560 static get Default() { 5561 return Default$5; 5562 } 5563 5564 static get DefaultType() { 5565 return DefaultType$5; 5566 } 5567 5568 static get NAME() { 5569 return NAME$6; 5570 } // Public 5571 5572 5573 toggle(relatedTarget) { 5574 return this._isShown ? this.hide() : this.show(relatedTarget); 5575 } 5576 5577 show(relatedTarget) { 5578 if (this._isShown) { 5579 return; 5580 } 5581 5582 const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$3, { 5583 relatedTarget 5584 }); 5585 5586 if (showEvent.defaultPrevented) { 5587 return; 5588 } 5589 5590 this._isShown = true; 5591 5592 this._backdrop.show(); 5593 5594 if (!this._config.scroll) { 5595 new ScrollBarHelper().hide(); 5596 } 5597 5598 this._element.setAttribute('aria-modal', true); 5599 5600 this._element.setAttribute('role', 'dialog'); 5601 5602 this._element.classList.add(CLASS_NAME_SHOWING$1); 5603 5604 const completeCallBack = () => { 5605 if (!this._config.scroll || this._config.backdrop) { 5606 this._focustrap.activate(); 5607 } 5608 5609 this._element.classList.add(CLASS_NAME_SHOW$3); 5610 5611 this._element.classList.remove(CLASS_NAME_SHOWING$1); 5612 5613 EventHandler.trigger(this._element, EVENT_SHOWN$3, { 5614 relatedTarget 5615 }); 5616 }; 5617 5618 this._queueCallback(completeCallBack, this._element, true); 5619 } 5620 5621 hide() { 5622 if (!this._isShown) { 5623 return; 5624 } 5625 5626 const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$3); 5627 5628 if (hideEvent.defaultPrevented) { 5629 return; 5630 } 5631 5632 this._focustrap.deactivate(); 5633 5634 this._element.blur(); 5635 5636 this._isShown = false; 5637 5638 this._element.classList.add(CLASS_NAME_HIDING); 5639 5640 this._backdrop.hide(); 5641 5642 const completeCallback = () => { 5643 this._element.classList.remove(CLASS_NAME_SHOW$3, CLASS_NAME_HIDING); 5644 5645 this._element.removeAttribute('aria-modal'); 5646 5647 this._element.removeAttribute('role'); 5648 5649 if (!this._config.scroll) { 5650 new ScrollBarHelper().reset(); 5651 } 5652 5653 EventHandler.trigger(this._element, EVENT_HIDDEN$3); 5654 }; 5655 5656 this._queueCallback(completeCallback, this._element, true); 5657 } 5658 5659 dispose() { 5660 this._backdrop.dispose(); 5661 5662 this._focustrap.deactivate(); 5663 5664 super.dispose(); 5665 } // Private 5666 5667 5668 _initializeBackDrop() { 5669 const clickCallback = () => { 5670 if (this._config.backdrop === 'static') { 5671 EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED); 5672 return; 5673 } 5674 5675 this.hide(); 5676 }; // 'static' option will be translated to true, and booleans will keep their value 5677 5678 5679 const isVisible = Boolean(this._config.backdrop); 5680 return new Backdrop({ 5681 className: CLASS_NAME_BACKDROP, 5682 isVisible, 5683 isAnimated: true, 5684 rootElement: this._element.parentNode, 5685 clickCallback: isVisible ? clickCallback : null 5686 }); 5687 } 5688 5689 _initializeFocusTrap() { 5690 return new FocusTrap({ 5691 trapElement: this._element 5692 }); 5693 } 5694 5695 _addEventListeners() { 5696 EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => { 5697 if (event.key !== ESCAPE_KEY) { 5698 return; 5699 } 5700 5701 if (!this._config.keyboard) { 5702 EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED); 5703 return; 5704 } 5705 5706 this.hide(); 5707 }); 5708 } // Static 5709 5710 5711 static jQueryInterface(config) { 5712 return this.each(function () { 5713 const data = Offcanvas.getOrCreateInstance(this, config); 5714 5715 if (typeof config !== 'string') { 5716 return; 5717 } 5718 5719 if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {
vendor: 9,096 bytes, lines 5720-6054
5720 throw new TypeError(`No method named "${config}"`); 5721 } 5722 5723 data[config](this); 5724 }); 5725 } 5726 5727 } 5728 /** 5729 * Data API implementation 5730 */ 5731 5732 5733 EventHandler.on(document, EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE$1, function (event) { 5734 const target = getElementFromSelector(this); 5735 5736 if (['A', 'AREA'].includes(this.tagName)) { 5737 event.preventDefault(); 5738 } 5739 5740 if (isDisabled(this)) { 5741 return; 5742 } 5743 5744 EventHandler.one(target, EVENT_HIDDEN$3, () => { 5745 // focus on trigger when it is closed 5746 if (isVisible(this)) { 5747 this.focus(); 5748 } 5749 }); // avoid conflict when clicking a toggler of an offcanvas, while another is open 5750 5751 const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR); 5752 5753 if (alreadyOpen && alreadyOpen !== target) { 5754 Offcanvas.getInstance(alreadyOpen).hide(); 5755 } 5756 5757 const data = Offcanvas.getOrCreateInstance(target); 5758 data.toggle(this); 5759 }); 5760 EventHandler.on(window, EVENT_LOAD_DATA_API$2, () => { 5761 for (const selector of SelectorEngine.find(OPEN_SELECTOR)) { 5762 Offcanvas.getOrCreateInstance(selector).show(); 5763 } 5764 }); 5765 EventHandler.on(window, EVENT_RESIZE, () => { 5766 for (const element of SelectorEngine.find('[aria-modal][class*=show][class*=offcanvas-]')) { 5767 if (getComputedStyle(element).position !== 'fixed') { 5768 Offcanvas.getOrCreateInstance(element).hide(); 5769 } 5770 } 5771 }); 5772 enableDismissTrigger(Offcanvas); 5773 /** 5774 * jQuery 5775 */ 5776 5777 defineJQueryPlugin(Offcanvas); 5778 5779 /** 5780 * -------------------------------------------------------------------------- 5781 * Bootstrap (v5.2.3): util/sanitizer.js 5782 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 5783 * -------------------------------------------------------------------------- 5784 */ 5785 const uriAttributes = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']); 5786 const ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i; 5787 /** 5788 * A pattern that recognizes a commonly useful subset of URLs that are safe. 5789 * 5790 * Shout-out to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts 5791 */ 5792 5793 const SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i; 5794 /** 5795 * A pattern that matches safe data URLs. Only matches image, video and audio types. 5796 * 5797 * Shout-out to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts 5798 */ 5799 5800 const DATA_URL_PATTERN = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i; 5801 5802 const allowedAttribute = (attribute, allowedAttributeList) => { 5803 const attributeName = attribute.nodeName.toLowerCase(); 5804 5805 if (allowedAttributeList.includes(attributeName)) { 5806 if (uriAttributes.has(attributeName)) { 5807 return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue) || DATA_URL_PATTERN.test(attribute.nodeValue)); 5808 } 5809 5810 return true; 5811 } // Check if a regular expression validates the attribute. 5812 5813 5814 return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp).some(regex => regex.test(attributeName)); 5815 }; 5816 5817 const DefaultAllowlist = { 5818 // Global attributes allowed on any supplied element below. 5819 '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN], 5820 a: ['target', 'href', 'title', 'rel'], 5821 area: [], 5822 b: [], 5823 br: [], 5824 col: [], 5825 code: [], 5826 div: [], 5827 em: [], 5828 hr: [], 5829 h1: [], 5830 h2: [], 5831 h3: [], 5832 h4: [], 5833 h5: [], 5834 h6: [], 5835 i: [], 5836 img: ['src', 'srcset', 'alt', 'title', 'width', 'height'], 5837 li: [], 5838 ol: [], 5839 p: [], 5840 pre: [], 5841 s: [], 5842 small: [], 5843 span: [], 5844 sub: [], 5845 sup: [], 5846 strong: [], 5847 u: [], 5848 ul: [] 5849 }; 5850 function sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) { 5851 if (!unsafeHtml.length) { 5852 return unsafeHtml; 5853 } 5854 5855 if (sanitizeFunction && typeof sanitizeFunction === 'function') { 5856 return sanitizeFunction(unsafeHtml); 5857 } 5858 5859 const domParser = new window.DOMParser(); 5860 const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html'); 5861 const elements = [].concat(...createdDocument.body.querySelectorAll('*')); 5862 5863 for (const element of elements) { 5864 const elementName = element.nodeName.toLowerCase(); 5865 5866 if (!Object.keys(allowList).includes(elementName)) { 5867 element.remove(); 5868 continue; 5869 } 5870 5871 const attributeList = [].concat(...element.attributes); 5872 const allowedAttributes = [].concat(allowList['*'] || [], allowList[elementName] || []); 5873 5874 for (const attribute of attributeList) { 5875 if (!allowedAttribute(attribute, allowedAttributes)) { 5876 element.removeAttribute(attribute.nodeName); 5877 } 5878 } 5879 } 5880 5881 return createdDocument.body.innerHTML; 5882 } 5883 5884 /** 5885 * -------------------------------------------------------------------------- 5886 * Bootstrap (v5.2.3): util/template-factory.js 5887 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 5888 * -------------------------------------------------------------------------- 5889 */ 5890 /** 5891 * Constants 5892 */ 5893 5894 const NAME$5 = 'TemplateFactory'; 5895 const Default$4 = { 5896 allowList: DefaultAllowlist, 5897 content: {}, 5898 // { selector : text , selector2 : text2 , } 5899 extraClass: '', 5900 html: false, 5901 sanitize: true, 5902 sanitizeFn: null, 5903 template: '<div></div>' 5904 }; 5905 const DefaultType$4 = { 5906 allowList: 'object', 5907 content: 'object', 5908 extraClass: '(string|function)', 5909 html: 'boolean', 5910 sanitize: 'boolean', 5911 sanitizeFn: '(null|function)', 5912 template: 'string' 5913 }; 5914 const DefaultContentType = { 5915 entry: '(string|element|function|null)', 5916 selector: '(string|element)' 5917 }; 5918 /** 5919 * Class definition 5920 */ 5921 5922 class TemplateFactory extends Config { 5923 constructor(config) { 5924 super(); 5925 this._config = this._getConfig(config); 5926 } // Getters 5927 5928 5929 static get Default() { 5930 return Default$4; 5931 } 5932 5933 static get DefaultType() { 5934 return DefaultType$4; 5935 } 5936 5937 static get NAME() { 5938 return NAME$5; 5939 } // Public 5940 5941 5942 getContent() { 5943 return Object.values(this._config.content).map(config => this._resolvePossibleFunction(config)).filter(Boolean); 5944 } 5945 5946 hasContent() { 5947 return this.getContent().length > 0; 5948 } 5949 5950 changeContent(content) { 5951 this._checkContent(content); 5952 5953 this._config.content = { ...this._config.content, 5954 ...content 5955 }; 5956 return this; 5957 } 5958 5959 toHtml() { 5960 const templateWrapper = document.createElement('div'); 5961 templateWrapper.innerHTML = this._maybeSanitize(this._config.template); 5962 5963 for (const [selector, text] of Object.entries(this._config.content)) { 5964 this._setContent(templateWrapper, text, selector); 5965 } 5966 5967 const template = templateWrapper.children[0]; 5968 5969 const extraClass = this._resolvePossibleFunction(this._config.extraClass); 5970 5971 if (extraClass) { 5972 template.classList.add(...extraClass.split(' ')); 5973 } 5974 5975 return template; 5976 } // Private 5977 5978 5979 _typeCheckConfig(config) { 5980 super._typeCheckConfig(config); 5981 5982 this._checkContent(config.content); 5983 } 5984 5985 _checkContent(arg) { 5986 for (const [selector, content] of Object.entries(arg)) { 5987 super._typeCheckConfig({ 5988 selector, 5989 entry: content 5990 }, DefaultContentType); 5991 } 5992 } 5993 5994 _setContent(template, content, selector) { 5995 const templateElement = SelectorEngine.findOne(selector, template); 5996 5997 if (!templateElement) { 5998 return; 5999 } 6000 6001 content = this._resolvePossibleFunction(content); 6002 6003 if (!content) { 6004 templateElement.remove(); 6005 return; 6006 } 6007 6008 if (isElement$1(content)) { 6009 this._putElementInTemplate(getElement(content), templateElement); 6010 6011 return; 6012 } 6013 6014 if (this._config.html) { 6015 templateElement.innerHTML = this._maybeSanitize(content); 6016 return; 6017 } 6018 6019 templateElement.textContent = content; 6020 } 6021 6022 _maybeSanitize(arg) { 6023 return this._config.sanitize ? sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg; 6024 } 6025 6026 _resolvePossibleFunction(arg) { 6027 return typeof arg === 'function' ? arg(this) : arg; 6028 } 6029 6030 _putElementInTemplate(element, templateElement) { 6031 if (this._config.html) { 6032 templateElement.innerHTML = ''; 6033 templateElement.append(element); 6034 return; 6035 } 6036 6037 templateElement.textContent = element.textContent; 6038 } 6039 6040 } 6041 6042 /** 6043 * -------------------------------------------------------------------------- 6044 * Bootstrap (v5.2.3): tooltip.js 6045 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 6046 * -------------------------------------------------------------------------- 6047 */ 6048 /** 6049 * Constants 6050 */ 6051 6052 const NAME$4 = 'tooltip'; 6053 const DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn']); 6054 const CLASS_NAME_FADE$2 = 'fade';
vendor: 5,480 bytes, lines 6055-6256
6055 const CLASS_NAME_MODAL = 'modal'; 6056 const CLASS_NAME_SHOW$2 = 'show'; 6057 const SELECTOR_TOOLTIP_INNER = '.tooltip-inner'; 6058 const SELECTOR_MODAL = `.${CLASS_NAME_MODAL}`; 6059 const EVENT_MODAL_HIDE = 'hide.bs.modal'; 6060 const TRIGGER_HOVER = 'hover'; 6061 const TRIGGER_FOCUS = 'focus'; 6062 const TRIGGER_CLICK = 'click'; 6063 const TRIGGER_MANUAL = 'manual'; 6064 const EVENT_HIDE$2 = 'hide'; 6065 const EVENT_HIDDEN$2 = 'hidden'; 6066 const EVENT_SHOW$2 = 'show'; 6067 const EVENT_SHOWN$2 = 'shown'; 6068 const EVENT_INSERTED = 'inserted'; 6069 const EVENT_CLICK$1 = 'click'; 6070 const EVENT_FOCUSIN$1 = 'focusin'; 6071 const EVENT_FOCUSOUT$1 = 'focusout'; 6072 const EVENT_MOUSEENTER = 'mouseenter'; 6073 const EVENT_MOUSELEAVE = 'mouseleave'; 6074 const AttachmentMap = { 6075 AUTO: 'auto', 6076 TOP: 'top', 6077 RIGHT: isRTL() ? 'left' : 'right', 6078 BOTTOM: 'bottom', 6079 LEFT: isRTL() ? 'right' : 'left' 6080 }; 6081 const Default$3 = { 6082 allowList: DefaultAllowlist, 6083 animation: true, 6084 boundary: 'clippingParents', 6085 container: false, 6086 customClass: '', 6087 delay: 0, 6088 fallbackPlacements: ['top', 'right', 'bottom', 'left'], 6089 html: false, 6090 offset: [0, 0], 6091 placement: 'top', 6092 popperConfig: null, 6093 sanitize: true, 6094 sanitizeFn: null, 6095 selector: false, 6096 template: '<div class="tooltip" role="tooltip">' + '<div class="tooltip-arrow"></div>' + '<div class="tooltip-inner"></div>' + '</div>', 6097 title: '', 6098 trigger: 'hover focus' 6099 }; 6100 const DefaultType$3 = { 6101 allowList: 'object', 6102 animation: 'boolean', 6103 boundary: '(string|element)', 6104 container: '(string|element|boolean)', 6105 customClass: '(string|function)', 6106 delay: '(number|object)', 6107 fallbackPlacements: 'array', 6108 html: 'boolean', 6109 offset: '(array|string|function)', 6110 placement: '(string|function)', 6111 popperConfig: '(null|object|function)', 6112 sanitize: 'boolean', 6113 sanitizeFn: '(null|function)', 6114 selector: '(string|boolean)', 6115 template: 'string', 6116 title: '(string|element|function)', 6117 trigger: 'string' 6118 }; 6119 /** 6120 * Class definition 6121 */ 6122 6123 class Tooltip extends BaseComponent { 6124 constructor(element, config) { 6125 if (typeof Popper === 'undefined') { 6126 throw new TypeError('Bootstrap\'s tooltips require Popper (https://popper.js.org)'); 6127 } 6128 6129 super(element, config); // Private 6130 6131 this._isEnabled = true; 6132 this._timeout = 0; 6133 this._isHovered = null; 6134 this._activeTrigger = {}; 6135 this._popper = null; 6136 this._templateFactory = null; 6137 this._newContent = null; // Protected 6138 6139 this.tip = null; 6140 6141 this._setListeners(); 6142 6143 if (!this._config.selector) { 6144 this._fixTitle(); 6145 } 6146 } // Getters 6147 6148 6149 static get Default() { 6150 return Default$3; 6151 } 6152 6153 static get DefaultType() { 6154 return DefaultType$3; 6155 } 6156 6157 static get NAME() { 6158 return NAME$4; 6159 } // Public 6160 6161 6162 enable() { 6163 this._isEnabled = true; 6164 } 6165 6166 disable() { 6167 this._isEnabled = false; 6168 } 6169 6170 toggleEnabled() { 6171 this._isEnabled = !this._isEnabled; 6172 } 6173 6174 toggle() { 6175 if (!this._isEnabled) { 6176 return; 6177 } 6178 6179 this._activeTrigger.click = !this._activeTrigger.click; 6180 6181 if (this._isShown()) { 6182 this._leave(); 6183 6184 return; 6185 } 6186 6187 this._enter(); 6188 } 6189 6190 dispose() { 6191 clearTimeout(this._timeout); 6192 EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler); 6193 6194 if (this._element.getAttribute('data-bs-original-title')) { 6195 this._element.setAttribute('title', this._element.getAttribute('data-bs-original-title')); 6196 } 6197 6198 this._disposePopper(); 6199 6200 super.dispose(); 6201 } 6202 6203 show() { 6204 if (this._element.style.display === 'none') { 6205 throw new Error('Please use show on visible elements'); 6206 } 6207 6208 if (!(this._isWithContent() && this._isEnabled)) { 6209 return; 6210 } 6211 6212 const showEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOW$2)); 6213 const shadowRoot = findShadowRoot(this._element); 6214 6215 const isInTheDom = (shadowRoot || this._element.ownerDocument.documentElement).contains(this._element); 6216 6217 if (showEvent.defaultPrevented || !isInTheDom) { 6218 return; 6219 } // todo v6 remove this OR make it optional 6220 6221 6222 this._disposePopper(); 6223 6224 const tip = this._getTipElement(); 6225 6226 this._element.setAttribute('aria-describedby', tip.getAttribute('id')); 6227 6228 const { 6229 container 6230 } = this._config; 6231 6232 if (!this._element.ownerDocument.documentElement.contains(this.tip)) { 6233 container.append(tip); 6234 EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED)); 6235 } 6236 6237 this._popper = this._createPopper(tip); 6238 tip.classList.add(CLASS_NAME_SHOW$2); // If this is a touch-enabled device we add extra 6239 // empty mouseover listeners to the body's immediate children; 6240 // only needed because of broken event delegation on iOS 6241 // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html 6242 6243 if ('ontouchstart' in document.documentElement) { 6244 for (const element of [].concat(...document.body.children)) { 6245 EventHandler.on(element, 'mouseover', noop); 6246 } 6247 } 6248 6249 const complete = () => { 6250 EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN$2)); 6251 6252 if (this._isHovered === false) { 6253 this._leave(); 6254 } 6255 6256 this._isHovered = false;
vendor: 2,145 bytes, lines 6257-6336
6257 }; 6258 6259 this._queueCallback(complete, this.tip, this._isAnimated()); 6260 } 6261 6262 hide() { 6263 if (!this._isShown()) { 6264 return; 6265 } 6266 6267 const hideEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDE$2)); 6268 6269 if (hideEvent.defaultPrevented) { 6270 return; 6271 } 6272 6273 const tip = this._getTipElement(); 6274 6275 tip.classList.remove(CLASS_NAME_SHOW$2); // If this is a touch-enabled device we remove the extra 6276 // empty mouseover listeners we added for iOS support 6277 6278 if ('ontouchstart' in document.documentElement) { 6279 for (const element of [].concat(...document.body.children)) { 6280 EventHandler.off(element, 'mouseover', noop); 6281 } 6282 } 6283 6284 this._activeTrigger[TRIGGER_CLICK] = false; 6285 this._activeTrigger[TRIGGER_FOCUS] = false; 6286 this._activeTrigger[TRIGGER_HOVER] = false; 6287 this._isHovered = null; // it is a trick to support manual triggering 6288 6289 const complete = () => { 6290 if (this._isWithActiveTrigger()) { 6291 return; 6292 } 6293 6294 if (!this._isHovered) { 6295 this._disposePopper(); 6296 } 6297 6298 this._element.removeAttribute('aria-describedby'); 6299 6300 EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN$2)); 6301 }; 6302 6303 this._queueCallback(complete, this.tip, this._isAnimated()); 6304 } 6305 6306 update() { 6307 if (this._popper) { 6308 this._popper.update(); 6309 } 6310 } // Protected 6311 6312 6313 _isWithContent() { 6314 return Boolean(this._getTitle()); 6315 } 6316 6317 _getTipElement() { 6318 if (!this.tip) { 6319 this.tip = this._createTipElement(this._newContent || this._getContentForTemplate()); 6320 } 6321 6322 return this.tip; 6323 } 6324 6325 _createTipElement(content) { 6326 const tip = this._getTemplateFactory(content).toHtml(); // todo: remove this check on v6 6327 6328 6329 if (!tip) { 6330 return null; 6331 } 6332 6333 tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$2); // todo: on v6 the following can be achieved with CSS only 6334 6335 tip.classList.add(`bs-${this.constructor.NAME}-auto`); 6336 const tipId = getUID(this.constructor.NAME).toString();
vendor: 5,979 bytes, lines 6337-6535
6337 tip.setAttribute('id', tipId); 6338 6339 if (this._isAnimated()) { 6340 tip.classList.add(CLASS_NAME_FADE$2); 6341 } 6342 6343 return tip; 6344 } 6345 6346 setContent(content) { 6347 this._newContent = content; 6348 6349 if (this._isShown()) { 6350 this._disposePopper(); 6351 6352 this.show(); 6353 } 6354 } 6355 6356 _getTemplateFactory(content) { 6357 if (this._templateFactory) { 6358 this._templateFactory.changeContent(content); 6359 } else { 6360 this._templateFactory = new TemplateFactory({ ...this._config, 6361 // the `content` var has to be after `this._config` 6362 // to override config.content in case of popover 6363 content, 6364 extraClass: this._resolvePossibleFunction(this._config.customClass) 6365 }); 6366 } 6367 6368 return this._templateFactory; 6369 } 6370 6371 _getContentForTemplate() { 6372 return { 6373 [SELECTOR_TOOLTIP_INNER]: this._getTitle() 6374 }; 6375 } 6376 6377 _getTitle() { 6378 return this._resolvePossibleFunction(this._config.title) || this._element.getAttribute('data-bs-original-title'); 6379 } // Private 6380 6381 6382 _initializeOnDelegatedTarget(event) { 6383 return this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig()); 6384 } 6385 6386 _isAnimated() { 6387 return this._config.animation || this.tip && this.tip.classList.contains(CLASS_NAME_FADE$2); 6388 } 6389 6390 _isShown() { 6391 return this.tip && this.tip.classList.contains(CLASS_NAME_SHOW$2); 6392 } 6393 6394 _createPopper(tip) { 6395 const placement = typeof this._config.placement === 'function' ? this._config.placement.call(this, tip, this._element) : this._config.placement; 6396 const attachment = AttachmentMap[placement.toUpperCase()]; 6397 return createPopper(this._element, tip, this._getPopperConfig(attachment)); 6398 } 6399 6400 _getOffset() { 6401 const { 6402 offset 6403 } = this._config; 6404 6405 if (typeof offset === 'string') { 6406 return offset.split(',').map(value => Number.parseInt(value, 10)); 6407 } 6408 6409 if (typeof offset === 'function') { 6410 return popperData => offset(popperData, this._element); 6411 } 6412 6413 return offset; 6414 } 6415 6416 _resolvePossibleFunction(arg) { 6417 return typeof arg === 'function' ? arg.call(this._element) : arg; 6418 } 6419 6420 _getPopperConfig(attachment) { 6421 const defaultBsPopperConfig = { 6422 placement: attachment, 6423 modifiers: [{ 6424 name: 'flip', 6425 options: { 6426 fallbackPlacements: this._config.fallbackPlacements 6427 } 6428 }, { 6429 name: 'offset', 6430 options: { 6431 offset: this._getOffset() 6432 } 6433 }, { 6434 name: 'preventOverflow', 6435 options: { 6436 boundary: this._config.boundary 6437 } 6438 }, { 6439 name: 'arrow', 6440 options: { 6441 element: `.${this.constructor.NAME}-arrow` 6442 } 6443 }, { 6444 name: 'preSetPlacement', 6445 enabled: true, 6446 phase: 'beforeMain', 6447 fn: data => { 6448 // Pre-set Popper's placement attribute in order to read the arrow sizes properly. 6449 // Otherwise, Popper mixes up the width and height dimensions since the initial arrow style is for top placement 6450 this._getTipElement().setAttribute('data-popper-placement', data.state.placement); 6451 } 6452 }] 6453 }; 6454 return { ...defaultBsPopperConfig, 6455 ...(typeof this._config.popperConfig === 'function' ? this._config.popperConfig(defaultBsPopperConfig) : this._config.popperConfig) 6456 }; 6457 } 6458 6459 _setListeners() { 6460 const triggers = this._config.trigger.split(' '); 6461 6462 for (const trigger of triggers) { 6463 if (trigger === 'click') { 6464 EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK$1), this._config.selector, event => { 6465 const context = this._initializeOnDelegatedTarget(event); 6466 6467 context.toggle(); 6468 }); 6469 } else if (trigger !== TRIGGER_MANUAL) { 6470 const eventIn = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSEENTER) : this.constructor.eventName(EVENT_FOCUSIN$1); 6471 const eventOut = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSELEAVE) : this.constructor.eventName(EVENT_FOCUSOUT$1); 6472 EventHandler.on(this._element, eventIn, this._config.selector, event => { 6473 const context = this._initializeOnDelegatedTarget(event); 6474 6475 context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true; 6476 6477 context._enter(); 6478 }); 6479 EventHandler.on(this._element, eventOut, this._config.selector, event => { 6480 const context = this._initializeOnDelegatedTarget(event); 6481 6482 context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = context._element.contains(event.relatedTarget); 6483 6484 context._leave(); 6485 }); 6486 } 6487 } 6488 6489 this._hideModalHandler = () => { 6490 if (this._element) { 6491 this.hide(); 6492 } 6493 }; 6494 6495 EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler); 6496 } 6497 6498 _fixTitle() { 6499 const title = this._element.getAttribute('title'); 6500 6501 if (!title) { 6502 return; 6503 } 6504 6505 if (!this._element.getAttribute('aria-label') && !this._element.textContent.trim()) { 6506 this._element.setAttribute('aria-label', title); 6507 } 6508 6509 this._element.setAttribute('data-bs-original-title', title); // DO NOT USE IT. Is only for backwards compatibility 6510 6511 6512 this._element.removeAttribute('title'); 6513 } 6514 6515 _enter() { 6516 if (this._isShown() || this._isHovered) { 6517 this._isHovered = true; 6518 return; 6519 } 6520 6521 this._isHovered = true; 6522 6523 this._setTimeout(() => { 6524 if (this._isHovered) { 6525 this.show(); 6526 } 6527 }, this._config.delay.show); 6528 } 6529 6530 _leave() { 6531 if (this._isWithActiveTrigger()) { 6532 return; 6533 } 6534 6535 this._isHovered = false;
vendor: 14,315 bytes, lines 6536-7048
6536 6537 this._setTimeout(() => { 6538 if (!this._isHovered) { 6539 this.hide(); 6540 } 6541 }, this._config.delay.hide); 6542 } 6543 6544 _setTimeout(handler, timeout) { 6545 clearTimeout(this._timeout); 6546 this._timeout = setTimeout(handler, timeout); 6547 } 6548 6549 _isWithActiveTrigger() { 6550 return Object.values(this._activeTrigger).includes(true); 6551 } 6552 6553 _getConfig(config) { 6554 const dataAttributes = Manipulator.getDataAttributes(this._element); 6555 6556 for (const dataAttribute of Object.keys(dataAttributes)) { 6557 if (DISALLOWED_ATTRIBUTES.has(dataAttribute)) { 6558 delete dataAttributes[dataAttribute]; 6559 } 6560 } 6561 6562 config = { ...dataAttributes, 6563 ...(typeof config === 'object' && config ? config : {}) 6564 }; 6565 config = this._mergeConfigObj(config); 6566 config = this._configAfterMerge(config); 6567 6568 this._typeCheckConfig(config); 6569 6570 return config; 6571 } 6572 6573 _configAfterMerge(config) { 6574 config.container = config.container === false ? document.body : getElement(config.container); 6575 6576 if (typeof config.delay === 'number') { 6577 config.delay = { 6578 show: config.delay, 6579 hide: config.delay 6580 }; 6581 } 6582 6583 if (typeof config.title === 'number') { 6584 config.title = config.title.toString(); 6585 } 6586 6587 if (typeof config.content === 'number') { 6588 config.content = config.content.toString(); 6589 } 6590 6591 return config; 6592 } 6593 6594 _getDelegateConfig() { 6595 const config = {}; 6596 6597 for (const key in this._config) { 6598 if (this.constructor.Default[key] !== this._config[key]) { 6599 config[key] = this._config[key]; 6600 } 6601 } 6602 6603 config.selector = false; 6604 config.trigger = 'manual'; // In the future can be replaced with: 6605 // const keysWithDifferentValues = Object.entries(this._config).filter(entry => this.constructor.Default[entry[0]] !== this._config[entry[0]]) 6606 // `Object.fromEntries(keysWithDifferentValues)` 6607 6608 return config; 6609 } 6610 6611 _disposePopper() { 6612 if (this._popper) { 6613 this._popper.destroy(); 6614 6615 this._popper = null; 6616 } 6617 6618 if (this.tip) { 6619 this.tip.remove(); 6620 this.tip = null; 6621 } 6622 } // Static 6623 6624 6625 static jQueryInterface(config) { 6626 return this.each(function () { 6627 const data = Tooltip.getOrCreateInstance(this, config); 6628 6629 if (typeof config !== 'string') { 6630 return; 6631 } 6632 6633 if (typeof data[config] === 'undefined') { 6634 throw new TypeError(`No method named "${config}"`); 6635 } 6636 6637 data[config](); 6638 }); 6639 } 6640 6641 } 6642 /** 6643 * jQuery 6644 */ 6645 6646 6647 defineJQueryPlugin(Tooltip); 6648 6649 /** 6650 * -------------------------------------------------------------------------- 6651 * Bootstrap (v5.2.3): popover.js 6652 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 6653 * -------------------------------------------------------------------------- 6654 */ 6655 /** 6656 * Constants 6657 */ 6658 6659 const NAME$3 = 'popover'; 6660 const SELECTOR_TITLE = '.popover-header'; 6661 const SELECTOR_CONTENT = '.popover-body'; 6662 const Default$2 = { ...Tooltip.Default, 6663 content: '', 6664 offset: [0, 8], 6665 placement: 'right', 6666 template: '<div class="popover" role="tooltip">' + '<div class="popover-arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div>' + '</div>', 6667 trigger: 'click' 6668 }; 6669 const DefaultType$2 = { ...Tooltip.DefaultType, 6670 content: '(null|string|element|function)' 6671 }; 6672 /** 6673 * Class definition 6674 */ 6675 6676 class Popover extends Tooltip { 6677 // Getters 6678 static get Default() { 6679 return Default$2; 6680 } 6681 6682 static get DefaultType() { 6683 return DefaultType$2; 6684 } 6685 6686 static get NAME() { 6687 return NAME$3; 6688 } // Overrides 6689 6690 6691 _isWithContent() { 6692 return this._getTitle() || this._getContent(); 6693 } // Private 6694 6695 6696 _getContentForTemplate() { 6697 return { 6698 [SELECTOR_TITLE]: this._getTitle(), 6699 [SELECTOR_CONTENT]: this._getContent() 6700 }; 6701 } 6702 6703 _getContent() { 6704 return this._resolvePossibleFunction(this._config.content); 6705 } // Static 6706 6707 6708 static jQueryInterface(config) { 6709 return this.each(function () { 6710 const data = Popover.getOrCreateInstance(this, config); 6711 6712 if (typeof config !== 'string') { 6713 return; 6714 } 6715 6716 if (typeof data[config] === 'undefined') { 6717 throw new TypeError(`No method named "${config}"`); 6718 } 6719 6720 data[config](); 6721 }); 6722 } 6723 6724 } 6725 /** 6726 * jQuery 6727 */ 6728 6729 6730 defineJQueryPlugin(Popover); 6731 6732 /** 6733 * -------------------------------------------------------------------------- 6734 * Bootstrap (v5.2.3): scrollspy.js 6735 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 6736 * -------------------------------------------------------------------------- 6737 */ 6738 /** 6739 * Constants 6740 */ 6741 6742 const NAME$2 = 'scrollspy'; 6743 const DATA_KEY$2 = 'bs.scrollspy'; 6744 const EVENT_KEY$2 = `.${DATA_KEY$2}`; 6745 const DATA_API_KEY = '.data-api'; 6746 const EVENT_ACTIVATE = `activate${EVENT_KEY$2}`; 6747 const EVENT_CLICK = `click${EVENT_KEY$2}`; 6748 const EVENT_LOAD_DATA_API$1 = `load${EVENT_KEY$2}${DATA_API_KEY}`; 6749 const CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'; 6750 const CLASS_NAME_ACTIVE$1 = 'active'; 6751 const SELECTOR_DATA_SPY = '[data-bs-spy="scroll"]'; 6752 const SELECTOR_TARGET_LINKS = '[href]'; 6753 const SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'; 6754 const SELECTOR_NAV_LINKS = '.nav-link'; 6755 const SELECTOR_NAV_ITEMS = '.nav-item'; 6756 const SELECTOR_LIST_ITEMS = '.list-group-item'; 6757 const SELECTOR_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_NAV_ITEMS} > ${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`; 6758 const SELECTOR_DROPDOWN = '.dropdown'; 6759 const SELECTOR_DROPDOWN_TOGGLE$1 = '.dropdown-toggle'; 6760 const Default$1 = { 6761 offset: null, 6762 // TODO: v6 @deprecated, keep it for backwards compatibility reasons 6763 rootMargin: '0px 0px -25%', 6764 smoothScroll: false, 6765 target: null, 6766 threshold: [0.1, 0.5, 1] 6767 }; 6768 const DefaultType$1 = { 6769 offset: '(number|null)', 6770 // TODO v6 @deprecated, keep it for backwards compatibility reasons 6771 rootMargin: 'string', 6772 smoothScroll: 'boolean', 6773 target: 'element', 6774 threshold: 'array' 6775 }; 6776 /** 6777 * Class definition 6778 */ 6779 6780 class ScrollSpy extends BaseComponent { 6781 constructor(element, config) { 6782 super(element, config); // this._element is the observablesContainer and config.target the menu links wrapper 6783 6784 this._targetLinks = new Map(); 6785 this._observableSections = new Map(); 6786 this._rootElement = getComputedStyle(this._element).overflowY === 'visible' ? null : this._element; 6787 this._activeTarget = null; 6788 this._observer = null; 6789 this._previousScrollData = { 6790 visibleEntryTop: 0, 6791 parentScrollTop: 0 6792 }; 6793 this.refresh(); // initialize 6794 } // Getters 6795 6796 6797 static get Default() { 6798 return Default$1; 6799 } 6800 6801 static get DefaultType() { 6802 return DefaultType$1; 6803 } 6804 6805 static get NAME() { 6806 return NAME$2; 6807 } // Public 6808 6809 6810 refresh() { 6811 this._initializeTargetsAndObservables(); 6812 6813 this._maybeEnableSmoothScroll(); 6814 6815 if (this._observer) { 6816 this._observer.disconnect(); 6817 } else { 6818 this._observer = this._getNewObserver(); 6819 } 6820 6821 for (const section of this._observableSections.values()) { 6822 this._observer.observe(section); 6823 } 6824 } 6825 6826 dispose() { 6827 this._observer.disconnect(); 6828 6829 super.dispose(); 6830 } // Private 6831 6832 6833 _configAfterMerge(config) { 6834 // TODO: on v6 target should be given explicitly & remove the {target: 'ss-target'} case 6835 config.target = getElement(config.target) || document.body; // TODO: v6 Only for backwards compatibility reasons. Use rootMargin only 6836 6837 config.rootMargin = config.offset ? `${config.offset}px 0px -30%` : config.rootMargin; 6838 6839 if (typeof config.threshold === 'string') { 6840 config.threshold = config.threshold.split(',').map(value => Number.parseFloat(value)); 6841 } 6842 6843 return config; 6844 } 6845 6846 _maybeEnableSmoothScroll() { 6847 if (!this._config.smoothScroll) { 6848 return; 6849 } // unregister any previous listeners 6850 6851 6852 EventHandler.off(this._config.target, EVENT_CLICK); 6853 EventHandler.on(this._config.target, EVENT_CLICK, SELECTOR_TARGET_LINKS, event => { 6854 const observableSection = this._observableSections.get(event.target.hash); 6855 6856 if (observableSection) { 6857 event.preventDefault(); 6858 const root = this._rootElement || window; 6859 const height = observableSection.offsetTop - this._element.offsetTop; 6860 6861 if (root.scrollTo) { 6862 root.scrollTo({ 6863 top: height, 6864 behavior: 'smooth' 6865 }); 6866 return; 6867 } // Chrome 60 doesn't support `scrollTo` 6868 6869 6870 root.scrollTop = height; 6871 } 6872 }); 6873 } 6874 6875 _getNewObserver() { 6876 const options = { 6877 root: this._rootElement, 6878 threshold: this._config.threshold, 6879 rootMargin: this._config.rootMargin 6880 }; 6881 return new IntersectionObserver(entries => this._observerCallback(entries), options); 6882 } // The logic of selection 6883 6884 6885 _observerCallback(entries) { 6886 const targetElement = entry => this._targetLinks.get(`#${entry.target.id}`); 6887 6888 const activate = entry => { 6889 this._previousScrollData.visibleEntryTop = entry.target.offsetTop; 6890 6891 this._process(targetElement(entry)); 6892 }; 6893 6894 const parentScrollTop = (this._rootElement || document.documentElement).scrollTop; 6895 const userScrollsDown = parentScrollTop >= this._previousScrollData.parentScrollTop; 6896 this._previousScrollData.parentScrollTop = parentScrollTop; 6897 6898 for (const entry of entries) { 6899 if (!entry.isIntersecting) { 6900 this._activeTarget = null; 6901 6902 this._clearActiveClass(targetElement(entry)); 6903 6904 continue; 6905 } 6906 6907 const entryIsLowerThanPrevious = entry.target.offsetTop >= this._previousScrollData.visibleEntryTop; // if we are scrolling down, pick the bigger offsetTop 6908 6909 if (userScrollsDown && entryIsLowerThanPrevious) { 6910 activate(entry); // if parent isn't scrolled, let's keep the first visible item, breaking the iteration 6911 6912 if (!parentScrollTop) { 6913 return; 6914 } 6915 6916 continue; 6917 } // if we are scrolling up, pick the smallest offsetTop 6918 6919 6920 if (!userScrollsDown && !entryIsLowerThanPrevious) { 6921 activate(entry); 6922 } 6923 } 6924 } 6925 6926 _initializeTargetsAndObservables() { 6927 this._targetLinks = new Map(); 6928 this._observableSections = new Map(); 6929 const targetLinks = SelectorEngine.find(SELECTOR_TARGET_LINKS, this._config.target); 6930 6931 for (const anchor of targetLinks) { 6932 // ensure that the anchor has an id and is not disabled 6933 if (!anchor.hash || isDisabled(anchor)) { 6934 continue; 6935 } 6936 6937 const observableSection = SelectorEngine.findOne(anchor.hash, this._element); // ensure that the observableSection exists & is visible 6938 6939 if (isVisible(observableSection)) { 6940 this._targetLinks.set(anchor.hash, anchor); 6941 6942 this._observableSections.set(anchor.hash, observableSection); 6943 } 6944 } 6945 } 6946 6947 _process(target) { 6948 if (this._activeTarget === target) { 6949 return; 6950 } 6951 6952 this._clearActiveClass(this._config.target); 6953 6954 this._activeTarget = target; 6955 target.classList.add(CLASS_NAME_ACTIVE$1); 6956 6957 this._activateParents(target); 6958 6959 EventHandler.trigger(this._element, EVENT_ACTIVATE, { 6960 relatedTarget: target 6961 }); 6962 } 6963 6964 _activateParents(target) { 6965 // Activate dropdown parents 6966 if (target.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) { 6967 SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE$1, target.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE$1); 6968 return; 6969 } 6970 6971 for (const listGroup of SelectorEngine.parents(target, SELECTOR_NAV_LIST_GROUP)) { 6972 // Set triggered links parents as active 6973 // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor 6974 for (const item of SelectorEngine.prev(listGroup, SELECTOR_LINK_ITEMS)) { 6975 item.classList.add(CLASS_NAME_ACTIVE$1); 6976 } 6977 } 6978 } 6979 6980 _clearActiveClass(parent) { 6981 parent.classList.remove(CLASS_NAME_ACTIVE$1); 6982 const activeNodes = SelectorEngine.find(`${SELECTOR_TARGET_LINKS}.${CLASS_NAME_ACTIVE$1}`, parent); 6983 6984 for (const node of activeNodes) { 6985 node.classList.remove(CLASS_NAME_ACTIVE$1); 6986 } 6987 } // Static 6988 6989 6990 static jQueryInterface(config) { 6991 return this.each(function () { 6992 const data = ScrollSpy.getOrCreateInstance(this, config); 6993 6994 if (typeof config !== 'string') { 6995 return; 6996 } 6997 6998 if (data[config] === undefined || config.startsWith('_') || config === 'constructor') { 6999 throw new TypeError(`No method named "${config}"`); 7000 } 7001 7002 data[config](); 7003 }); 7004 } 7005 7006 } 7007 /** 7008 * Data API implementation 7009 */ 7010 7011 7012 EventHandler.on(window, EVENT_LOAD_DATA_API$1, () => { 7013 for (const spy of SelectorEngine.find(SELECTOR_DATA_SPY)) { 7014 ScrollSpy.getOrCreateInstance(spy); 7015 } 7016 }); 7017 /** 7018 * jQuery 7019 */ 7020 7021 defineJQueryPlugin(ScrollSpy); 7022 7023 /** 7024 * -------------------------------------------------------------------------- 7025 * Bootstrap (v5.2.3): tab.js 7026 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 7027 * -------------------------------------------------------------------------- 7028 */ 7029 /** 7030 * Constants 7031 */ 7032 7033 const NAME$1 = 'tab'; 7034 const DATA_KEY$1 = 'bs.tab'; 7035 const EVENT_KEY$1 = `.${DATA_KEY$1}`; 7036 const EVENT_HIDE$1 = `hide${EVENT_KEY$1}`; 7037 const EVENT_HIDDEN$1 = `hidden${EVENT_KEY$1}`; 7038 const EVENT_SHOW$1 = `show${EVENT_KEY$1}`; 7039 const EVENT_SHOWN$1 = `shown${EVENT_KEY$1}`; 7040 const EVENT_CLICK_DATA_API = `click${EVENT_KEY$1}`; 7041 const EVENT_KEYDOWN = `keydown${EVENT_KEY$1}`; 7042 const EVENT_LOAD_DATA_API = `load${EVENT_KEY$1}`; 7043 const ARROW_LEFT_KEY = 'ArrowLeft'; 7044 const ARROW_RIGHT_KEY = 'ArrowRight'; 7045 const ARROW_UP_KEY = 'ArrowUp'; 7046 const ARROW_DOWN_KEY = 'ArrowDown'; 7047 const CLASS_NAME_ACTIVE = 'active'; 7048 const CLASS_NAME_FADE$1 = 'fade';
vendor: 5,985 bytes, lines 7049-7246
7049 const CLASS_NAME_SHOW$1 = 'show'; 7050 const CLASS_DROPDOWN = 'dropdown'; 7051 const SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'; 7052 const SELECTOR_DROPDOWN_MENU = '.dropdown-menu'; 7053 const NOT_SELECTOR_DROPDOWN_TOGGLE = ':not(.dropdown-toggle)'; 7054 const SELECTOR_TAB_PANEL = '.list-group, .nav, [role="tablist"]'; 7055 const SELECTOR_OUTER = '.nav-item, .list-group-item'; 7056 const SELECTOR_INNER = `.nav-link${NOT_SELECTOR_DROPDOWN_TOGGLE}, .list-group-item${NOT_SELECTOR_DROPDOWN_TOGGLE}, [role="tab"]${NOT_SELECTOR_DROPDOWN_TOGGLE}`; 7057 const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]'; // todo:v6: could be only `tab` 7058 7059 const SELECTOR_INNER_ELEM = `${SELECTOR_INNER}, ${SELECTOR_DATA_TOGGLE}`; 7060 const SELECTOR_DATA_TOGGLE_ACTIVE = `.${CLASS_NAME_ACTIVE}[data-bs-toggle="tab"], .${CLASS_NAME_ACTIVE}[data-bs-toggle="pill"], .${CLASS_NAME_ACTIVE}[data-bs-toggle="list"]`; 7061 /** 7062 * Class definition 7063 */ 7064 7065 class Tab extends BaseComponent { 7066 constructor(element) { 7067 super(element); 7068 this._parent = this._element.closest(SELECTOR_TAB_PANEL); 7069 7070 if (!this._parent) { 7071 return; // todo: should Throw exception on v6 7072 // throw new TypeError(`${element.outerHTML} has not a valid parent ${SELECTOR_INNER_ELEM}`) 7073 } // Set up initial aria attributes 7074 7075 7076 this._setInitialAttributes(this._parent, this._getChildren()); 7077 7078 EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event)); 7079 } // Getters 7080 7081 7082 static get NAME() { 7083 return NAME$1; 7084 } // Public 7085 7086 7087 show() { 7088 // Shows this elem and deactivate the active sibling if exists 7089 const innerElem = this._element; 7090 7091 if (this._elemIsActive(innerElem)) { 7092 return; 7093 } // Search for active tab on same parent to deactivate it 7094 7095 7096 const active = this._getActiveElem(); 7097 7098 const hideEvent = active ? EventHandler.trigger(active, EVENT_HIDE$1, { 7099 relatedTarget: innerElem 7100 }) : null; 7101 const showEvent = EventHandler.trigger(innerElem, EVENT_SHOW$1, { 7102 relatedTarget: active 7103 }); 7104 7105 if (showEvent.defaultPrevented || hideEvent && hideEvent.defaultPrevented) { 7106 return; 7107 } 7108 7109 this._deactivate(active, innerElem); 7110 7111 this._activate(innerElem, active); 7112 } // Private 7113 7114 7115 _activate(element, relatedElem) { 7116 if (!element) { 7117 return; 7118 } 7119 7120 element.classList.add(CLASS_NAME_ACTIVE); 7121 7122 this._activate(getElementFromSelector(element)); // Search and activate/show the proper section 7123 7124 7125 const complete = () => { 7126 if (element.getAttribute('role') !== 'tab') { 7127 element.classList.add(CLASS_NAME_SHOW$1); 7128 return; 7129 } 7130 7131 element.removeAttribute('tabindex'); 7132 element.setAttribute('aria-selected', true); 7133 7134 this._toggleDropDown(element, true); 7135 7136 EventHandler.trigger(element, EVENT_SHOWN$1, { 7137 relatedTarget: relatedElem 7138 }); 7139 }; 7140 7141 this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE$1)); 7142 } 7143 7144 _deactivate(element, relatedElem) { 7145 if (!element) { 7146 return; 7147 } 7148 7149 element.classList.remove(CLASS_NAME_ACTIVE); 7150 element.blur(); 7151 7152 this._deactivate(getElementFromSelector(element)); // Search and deactivate the shown section too 7153 7154 7155 const complete = () => { 7156 if (element.getAttribute('role') !== 'tab') { 7157 element.classList.remove(CLASS_NAME_SHOW$1); 7158 return; 7159 } 7160 7161 element.setAttribute('aria-selected', false); 7162 element.setAttribute('tabindex', '-1'); 7163 7164 this._toggleDropDown(element, false); 7165 7166 EventHandler.trigger(element, EVENT_HIDDEN$1, { 7167 relatedTarget: relatedElem 7168 }); 7169 }; 7170 7171 this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE$1)); 7172 } 7173 7174 _keydown(event) { 7175 if (![ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY].includes(event.key)) { 7176 return; 7177 } 7178 7179 event.stopPropagation(); // stopPropagation/preventDefault both added to support up/down keys without scrolling the page 7180 7181 event.preventDefault(); 7182 const isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key); 7183 const nextActiveElement = getNextActiveElement(this._getChildren().filter(element => !isDisabled(element)), event.target, isNext, true); 7184 7185 if (nextActiveElement) { 7186 nextActiveElement.focus({ 7187 preventScroll: true 7188 }); 7189 Tab.getOrCreateInstance(nextActiveElement).show(); 7190 } 7191 } 7192 7193 _getChildren() { 7194 // collection of inner elements 7195 return SelectorEngine.find(SELECTOR_INNER_ELEM, this._parent); 7196 } 7197 7198 _getActiveElem() { 7199 return this._getChildren().find(child => this._elemIsActive(child)) || null; 7200 } 7201 7202 _setInitialAttributes(parent, children) { 7203 this._setAttributeIfNotExists(parent, 'role', 'tablist'); 7204 7205 for (const child of children) { 7206 this._setInitialAttributesOnChild(child); 7207 } 7208 } 7209 7210 _setInitialAttributesOnChild(child) { 7211 child = this._getInnerElement(child); 7212 7213 const isActive = this._elemIsActive(child); 7214 7215 const outerElem = this._getOuterElement(child); 7216 7217 child.setAttribute('aria-selected', isActive); 7218 7219 if (outerElem !== child) { 7220 this._setAttributeIfNotExists(outerElem, 'role', 'presentation'); 7221 } 7222 7223 if (!isActive) { 7224 child.setAttribute('tabindex', '-1'); 7225 } 7226 7227 this._setAttributeIfNotExists(child, 'role', 'tab'); // set attributes to the related panel too 7228 7229 7230 this._setInitialAttributesOnTargetPanel(child); 7231 } 7232 7233 _setInitialAttributesOnTargetPanel(child) { 7234 const target = getElementFromSelector(child); 7235 7236 if (!target) { 7237 return; 7238 } 7239 7240 this._setAttributeIfNotExists(target, 'role', 'tabpanel'); 7241 7242 if (child.id) { 7243 this._setAttributeIfNotExists(target, 'aria-labelledby', `#${child.id}`); 7244 } 7245 } 7246
vendor: 7,109 bytes, lines 7247-7535
7247 _toggleDropDown(element, open) { 7248 const outerElem = this._getOuterElement(element); 7249 7250 if (!outerElem.classList.contains(CLASS_DROPDOWN)) { 7251 return; 7252 } 7253 7254 const toggle = (selector, className) => { 7255 const element = SelectorEngine.findOne(selector, outerElem); 7256 7257 if (element) { 7258 element.classList.toggle(className, open); 7259 } 7260 }; 7261 7262 toggle(SELECTOR_DROPDOWN_TOGGLE, CLASS_NAME_ACTIVE); 7263 toggle(SELECTOR_DROPDOWN_MENU, CLASS_NAME_SHOW$1); 7264 outerElem.setAttribute('aria-expanded', open); 7265 } 7266 7267 _setAttributeIfNotExists(element, attribute, value) { 7268 if (!element.hasAttribute(attribute)) { 7269 element.setAttribute(attribute, value); 7270 } 7271 } 7272 7273 _elemIsActive(elem) { 7274 return elem.classList.contains(CLASS_NAME_ACTIVE); 7275 } // Try to get the inner element (usually the .nav-link) 7276 7277 7278 _getInnerElement(elem) { 7279 return elem.matches(SELECTOR_INNER_ELEM) ? elem : SelectorEngine.findOne(SELECTOR_INNER_ELEM, elem); 7280 } // Try to get the outer element (usually the .nav-item) 7281 7282 7283 _getOuterElement(elem) { 7284 return elem.closest(SELECTOR_OUTER) || elem; 7285 } // Static 7286 7287 7288 static jQueryInterface(config) { 7289 return this.each(function () { 7290 const data = Tab.getOrCreateInstance(this); 7291 7292 if (typeof config !== 'string') { 7293 return; 7294 } 7295 7296 if (data[config] === undefined || config.startsWith('_') || config === 'constructor') { 7297 throw new TypeError(`No method named "${config}"`); 7298 } 7299 7300 data[config](); 7301 }); 7302 } 7303 7304 } 7305 /** 7306 * Data API implementation 7307 */ 7308 7309 7310 EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) { 7311 if (['A', 'AREA'].includes(this.tagName)) { 7312 event.preventDefault(); 7313 } 7314 7315 if (isDisabled(this)) { 7316 return; 7317 } 7318 7319 Tab.getOrCreateInstance(this).show(); 7320 }); 7321 /** 7322 * Initialize on focus 7323 */ 7324 7325 EventHandler.on(window, EVENT_LOAD_DATA_API, () => { 7326 for (const element of SelectorEngine.find(SELECTOR_DATA_TOGGLE_ACTIVE)) { 7327 Tab.getOrCreateInstance(element); 7328 } 7329 }); 7330 /** 7331 * jQuery 7332 */ 7333 7334 defineJQueryPlugin(Tab); 7335 7336 /** 7337 * -------------------------------------------------------------------------- 7338 * Bootstrap (v5.2.3): toast.js 7339 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 7340 * -------------------------------------------------------------------------- 7341 */ 7342 /** 7343 * Constants 7344 */ 7345 7346 const NAME = 'toast'; 7347 const DATA_KEY = 'bs.toast'; 7348 const EVENT_KEY = `.${DATA_KEY}`; 7349 const EVENT_MOUSEOVER = `mouseover${EVENT_KEY}`; 7350 const EVENT_MOUSEOUT = `mouseout${EVENT_KEY}`; 7351 const EVENT_FOCUSIN = `focusin${EVENT_KEY}`; 7352 const EVENT_FOCUSOUT = `focusout${EVENT_KEY}`; 7353 const EVENT_HIDE = `hide${EVENT_KEY}`; 7354 const EVENT_HIDDEN = `hidden${EVENT_KEY}`; 7355 const EVENT_SHOW = `show${EVENT_KEY}`; 7356 const EVENT_SHOWN = `shown${EVENT_KEY}`; 7357 const CLASS_NAME_FADE = 'fade'; 7358 const CLASS_NAME_HIDE = 'hide'; // @deprecated - kept here only for backwards compatibility 7359 7360 const CLASS_NAME_SHOW = 'show'; 7361 const CLASS_NAME_SHOWING = 'showing'; 7362 const DefaultType = { 7363 animation: 'boolean', 7364 autohide: 'boolean', 7365 delay: 'number' 7366 }; 7367 const Default = { 7368 animation: true, 7369 autohide: true, 7370 delay: 5000 7371 }; 7372 /** 7373 * Class definition 7374 */ 7375 7376 class Toast extends BaseComponent { 7377 constructor(element, config) { 7378 super(element, config); 7379 this._timeout = null; 7380 this._hasMouseInteraction = false; 7381 this._hasKeyboardInteraction = false; 7382 7383 this._setListeners(); 7384 } // Getters 7385 7386 7387 static get Default() { 7388 return Default; 7389 } 7390 7391 static get DefaultType() { 7392 return DefaultType; 7393 } 7394 7395 static get NAME() { 7396 return NAME; 7397 } // Public 7398 7399 7400 show() { 7401 const showEvent = EventHandler.trigger(this._element, EVENT_SHOW); 7402 7403 if (showEvent.defaultPrevented) { 7404 return; 7405 } 7406 7407 this._clearTimeout(); 7408 7409 if (this._config.animation) { 7410 this._element.classList.add(CLASS_NAME_FADE); 7411 } 7412 7413 const complete = () => { 7414 this._element.classList.remove(CLASS_NAME_SHOWING); 7415 7416 EventHandler.trigger(this._element, EVENT_SHOWN); 7417 7418 this._maybeScheduleHide(); 7419 }; 7420 7421 this._element.classList.remove(CLASS_NAME_HIDE); // @deprecated 7422 7423 7424 reflow(this._element); 7425 7426 this._element.classList.add(CLASS_NAME_SHOW, CLASS_NAME_SHOWING); 7427 7428 this._queueCallback(complete, this._element, this._config.animation); 7429 } 7430 7431 hide() { 7432 if (!this.isShown()) { 7433 return; 7434 } 7435 7436 const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE); 7437 7438 if (hideEvent.defaultPrevented) { 7439 return; 7440 } 7441 7442 const complete = () => { 7443 this._element.classList.add(CLASS_NAME_HIDE); // @deprecated 7444 7445 7446 this._element.classList.remove(CLASS_NAME_SHOWING, CLASS_NAME_SHOW); 7447 7448 EventHandler.trigger(this._element, EVENT_HIDDEN); 7449 }; 7450 7451 this._element.classList.add(CLASS_NAME_SHOWING); 7452 7453 this._queueCallback(complete, this._element, this._config.animation); 7454 } 7455 7456 dispose() { 7457 this._clearTimeout(); 7458 7459 if (this.isShown()) { 7460 this._element.classList.remove(CLASS_NAME_SHOW); 7461 } 7462 7463 super.dispose(); 7464 } 7465 7466 isShown() { 7467 return this._element.classList.contains(CLASS_NAME_SHOW); 7468 } // Private 7469 7470 7471 _maybeScheduleHide() { 7472 if (!this._config.autohide) { 7473 return; 7474 } 7475 7476 if (this._hasMouseInteraction || this._hasKeyboardInteraction) { 7477 return; 7478 } 7479 7480 this._timeout = setTimeout(() => { 7481 this.hide(); 7482 }, this._config.delay); 7483 } 7484 7485 _onInteraction(event, isInteracting) { 7486 switch (event.type) { 7487 case 'mouseover': 7488 case 'mouseout': 7489 { 7490 this._hasMouseInteraction = isInteracting; 7491 break; 7492 } 7493 7494 case 'focusin': 7495 case 'focusout': 7496 { 7497 this._hasKeyboardInteraction = isInteracting; 7498 break; 7499 } 7500 } 7501 7502 if (isInteracting) { 7503 this._clearTimeout(); 7504 7505 return; 7506 } 7507 7508 const nextElement = event.relatedTarget; 7509 7510 if (this._element === nextElement || this._element.contains(nextElement)) { 7511 return; 7512 } 7513 7514 this._maybeScheduleHide(); 7515 } 7516 7517 _setListeners() { 7518 EventHandler.on(this._element, EVENT_MOUSEOVER, event => this._onInteraction(event, true)); 7519 EventHandler.on(this._element, EVENT_MOUSEOUT, event => this._onInteraction(event, false)); 7520 EventHandler.on(this._element, EVENT_FOCUSIN, event => this._onInteraction(event, true)); 7521 EventHandler.on(this._element, EVENT_FOCUSOUT, event => this._onInteraction(event, false)); 7522 } 7523 7524 _clearTimeout() { 7525 clearTimeout(this._timeout); 7526 this._timeout = null; 7527 } // Static 7528 7529 7530 static jQueryInterface(config) { 7531 return this.each(function () { 7532 const data = Toast.getOrCreateInstance(this, config); 7533 7534 if (typeof config === 'string') { 7535 if (typeof data[config] === 'undefined') {
7536 throw new TypeError(`No method named "${config}"`); 7537 } 7538 7539 data[config](this); 7540 } 7541 }); 7542 } 7543 7544 } 7545 /** 7546 * Data API implementation 7547 */ 7548 7549 7550 enableDismissTrigger(Toast); 7551 /** 7552 * jQuery 7553 */ 7554 7555 defineJQueryPlugin(Toast); 7556 7557 /** 7558 * -------------------------------------------------------------------------- 7559 * Bootstrap (v5.2.3): index.umd.js 7560 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 7561 * -------------------------------------------------------------------------- 7562 */ 7563 const index_umd = { 7564 Alert, 7565 Button, 7566 Carousel, 7567 Collapse, 7568 Dropdown, 7569 Modal, 7570 Offcanvas, 7571 Popover, 7572 ScrollSpy, 7573 Tab, 7574 Toast, 7575 Tooltip 7576 }; 7577 7578 return index_umd; 7579 7580})); 7581 7582; 7583!function(k,m,v,i){"use strict";var y="slick",C="unslick",b=y+"--initialized",s="."+y,w=".slick__slider",z=".slick__arrow",_=".b-lazy[data-src]:not(.b-loaded)",x=".media__icon--close",P="is-playing",$="is-paused",A=m.blazy||{};function e(s){var n,e,a=k("> "+w,s).length?k("> "+w,s):k(s),l=k("> "+z,s),t=a.data(y)?k.extend({},v.slick,a.data(y)):k.extend({},v.slick),i=!("array"!==k.type(t.responsive)||!t.responsive.length)&&t.responsive,o=t.appendDots,d="blazy"===t.lazyLoad&&A,c=a.find(".media--player").length,r=a.hasClass(C);if(r||(t.appendDots=o===z?l:o||k(a)),i)for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&i[n].settings!==C&&(i[n].settings=k.extend({},v.slick,p(t),i[n].settings));function u(n){a.find(_).length&&((n=a.find(n?".slide:not(.slick-cloned) "+_:".slick-active "+_)).length||(n=a.find(".slick-cloned "+_)),n.length&&A.init&&A.init.load(n))}function f(){c&&h(),d&&u(!1)}function h(){a.removeClass($);var n=a.find("."+P);n.length&&n.removeClass(P).find(x).click()}function g(){a.addClass($).slick("slickPause")}function p(s){return r?{}:{slide:s.slide,lazyLoad:s.lazyLoad,dotsClass:s.dotsClass,rtl:s.rtl,prevArrow:k(".slick-prev",l),nextArrow:k(".slick-next",l),appendArrows:l,customPaging:function(n,e){var t=n.$slides.eq(e).find("[data-thumb]")||null,i='<img alt="'+m.t(t.find("img").attr("alt"))+'" src="'+t.data("thumb")+'">',i=t.length&&0<s.dotsClass.indexOf("thumbnail")?'<div class="slick-dots__thumbnail">'+i+"</div>":"",e=n.defaults.customPaging(n,e);return i?e.add(i):e}}}a.data(y,t),(t=a.data(y)).randomize&&!a.hasClass("slick-initiliazed")&&a.children().sort(function(){return.5-Math.random()}).each(function(){a.append(this)}),r||a.on("init.sl",function(n,e){o===z&&k(e.$dots).insertAfter(e.$prevArrow);e=a.find(".slick-cloned.slick-active "+_);d&&e.length&&A.init&&A.init.load(e)}),d?a.on("beforeChange.sl",function(){u(!0)}):(e=k(".media",a)).length&&(e.find("[data-src]").length||e.hasClass("b-bg"))&&e.closest(".slide__content").addClass("is-loading"),a.on("setPosition.sl",function(n,e){var t,i;e=(t=e).slideCount<=t.options.slidesToShow,i=e||!1===t.options.arrows,a.attr("id")===t.$slider.attr("id")&&(t.options.centerPadding&&"0"!==t.options.centerPadding||t.$list.css("padding",""),e&&(t.$slideTrack.width()<=t.$slider.width()||k(s).hasClass("slick--thumbnail"))&&t.$slideTrack.css({left:"",transform:""}),(t=a.find(".b-loaded ~ .b-loader")).length&&t.remove(),l.length&&k.each(["next","prev"],function(n,e){k(".slick-"+e,l)[i?"addClass":"removeClass"]("visually-hidden")}))}),a.slick(p(t)),a.parent().on("click.sl",".slick-down",function(n){n.preventDefault();n=k(this);k("html, body").stop().animate({scrollTop:k(n.data("target")).offset().top-(n.data("offset")||0)},800,"easeOutQuad"in k.easing&&t.easing?t.easing:"swing")}),t.mouseWheel&&a.on("mousewheel.sl",function(n,e){return n.preventDefault(),a.slick(e<0?"slickNext":"slickPrev")}),d||a.on("lazyLoaded lazyLoadError",function(n,e,t){var i;i=(t=k(i=t)).closest(".slide")||t.closest("."+C),t.parentsUntil(i).removeClass(function(n,e){return(e.match(/(\S+)loading/g)||[]).join(" ")})}),a.on("afterChange.sl",f),c&&(a.on("click.sl",x,h),a.on("click.sl",".media__icon--play",g)),r&&a.slick(C),k(s).addClass(b)}m.behaviors.slick={attach:function(n){i.context&&i.once.find?(n=i.context(n),i.once(e,y,s,n)):(n=(n=(n="length"in(n=n||document)?n[
vendor: 3,865 bytes, lines 7583-7672
75830]:n)instanceof HTMLDocument?n:document).querySelectorAll(s+":not(."+b+")")).length&&i.once(i.forEach(n,e))},detach:function(n,e,t){"unload"===t&&i.once.removeSafely&&(n=i.context(n),i.once.removeSafely(y,s,n))}}}(jQuery,Drupal,drupalSettings,dBlazy); 7584; 7585/******/ (function(modules) { // webpackBootstrap 7586/******/ // The module cache 7587/******/ var installedModules = {}; 7588/******/ 7589/******/ // The require function 7590/******/ function __webpack_require__(moduleId) { 7591/******/ 7592/******/ // Check if module is in cache 7593/******/ if(installedModules[moduleId]) { 7594/******/ return installedModules[moduleId].exports; 7595/******/ } 7596/******/ // Create a new module (and put it into the cache) 7597/******/ var module = installedModules[moduleId] = { 7598/******/ i: moduleId, 7599/******/ l: false, 7600/******/ exports: {} 7601/******/ }; 7602/******/ 7603/******/ // Execute the module function 7604/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); 7605/******/ 7606/******/ // Flag the module as loaded 7607/******/ module.l = true; 7608/******/ 7609/******/ // Return the exports of the module 7610/******/ return module.exports; 7611/******/ } 7612/******/ 7613/******/ 7614/******/ // expose the modules object (__webpack_modules__) 7615/******/ __webpack_require__.m = modules; 7616/******/ 7617/******/ // expose the module cache 7618/******/ __webpack_require__.c = installedModules; 7619/******/ 7620/******/ // define getter function for harmony exports 7621/******/ __webpack_require__.d = function(exports, name, getter) { 7622/******/ if(!__webpack_require__.o(exports, name)) { 7623/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); 7624/******/ } 7625/******/ }; 7626/******/ 7627/******/ // define __esModule on exports 7628/******/ __webpack_require__.r = function(exports) { 7629/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { 7630/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); 7631/******/ } 7632/******/ Object.defineProperty(exports, '__esModule', { value: true }); 7633/******/ }; 7634/******/ 7635/******/ // create a fake namespace object 7636/******/ // mode & 1: value is a module id, require it 7637/******/ // mode & 2: merge all properties of value into the ns 7638/******/ // mode & 4: return value when already ns object 7639/******/ // mode & 8|1: behave like require 7640/******/ __webpack_require__.t = function(value, mode) { 7641/******/ if(mode & 1) value = __webpack_require__(value); 7642/******/ if(mode & 8) return value; 7643/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; 7644/******/ var ns = Object.create(null); 7645/******/ __webpack_require__.r(ns); 7646/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); 7647/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); 7648/******/ return ns; 7649/******/ }; 7650/******/ 7651/******/ // getDefaultExport function for compatibility with non-harmony modules 7652/******/ __webpack_require__.n = function(module) { 7653/******/ var getter = module && module.__esModule ? 7654/******/ function getDefault() { return module['default']; } : 7655/******/ function getModuleExports() { return module; }; 7656/******/ __webpack_require__.d(getter, 'a', getter); 7657/******/ return getter; 7658/******/ }; 7659/******/ 7660/******/ // Object.prototype.hasOwnProperty.call 7661/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; 7662/******/ 7663/******/ // __webpack_public_path__ 7664/******/ __webpack_require__.p = ""; 7665/******/ 7666/******/ 7667/******/ // Load entry module and return exports 7668/******/ return __webpack_require__(__webpack_require__.s = "./js/frontend.js"); 7669/******/ }) 7670/************************************************************************/ 7671/******/ ({ 7672
7673/***/ "./js/frontend.js": 7674/*!************************!*\ 7675 !*** ./js/frontend.js ***! 7676 \************************/ 7677/*! no exports provided */ 7678/***/ (function(module, __webpack_exports__, __webpack_require__) { 7679 7680"use strict"; 7681__webpack_require__.r(__webpack_exports__); 7682/* harmony import */ var _plugin_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./plugin.js */ "./js/plugin.js"); 7683function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } 7684 7685function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } 7686 7687function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } 7688 7689function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } 7690 7691function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } 7692 7693function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } 7694 7695 7696 7697(function (Drupal) { 7698 'use strict'; 7699 7700 Drupal.TBMegaMenu = Drupal.TBMegaMenu || {}; 7701 var focusableSelector = 'a:not([disabled]):not([tabindex="-1"]), button:not([disabled]):not([tabindex="-1"]), input:not([disabled]):not([tabindex="-1"]), select:not([disabled]):not([tabindex="-1"]), textarea:not([disabled]):not([tabindex="-1"]), details:not([disabled]):not([tabindex="-1"]), [tabindex]:not([disabled]):not([tabindex="-1"])'; 7702 7703 var updateTBMenus = function updateTBMenus() { 7704 document.querySelectorAll('.tbm').forEach(function (thisMenu) { 7705 var menuId = thisMenu.getAttribute('id'); 7706 Drupal.TBMegaMenu[menuId] = {}; 7707 var breakpoint = parseInt(thisMenu.getAttribute('data-breakpoint')); 7708 var hideMobileMenu = parseInt(thisMenu.getAttribute('data-hide-mobile-menu')); 7709 7710 if (window.matchMedia("(max-width: ".concat(breakpoint, "px)")).matches) { 7711 thisMenu.classList.add('tbm--mobile'); 7712 7713 if (hideMobileMenu) { 7714 thisMenu.style = 'display: none'; 7715 } 7716 } else { 7717 thisMenu.classList.remove('tbm--mobile'); 7718 thisMenu.style = 'display: block'; 7719 } 7720 7721 var focusable = document.querySelectorAll(focusableSelector); 7722 focusable = _toConsumableArray(focusable); 7723 var topLevel = thisMenu.querySelectorAll('.tbm-link.level-1, .tbm-link.level-1 + .tbm-submenu-toggle'); 7724 topLevel = _toConsumableArray(topLevel); 7725 topLevel = topLevel.filter(function (element) { 7726 return element.offsetWidth > 0 && element.offsetHeight > 0; 7727 }); 7728 Drupal.TBMegaMenu['focusable'] = focusable; 7729 Drupal.TBMegaMenu[menuId]['topLevel'] = topLevel; 7730 }); 7731 }; 7732 7733 var throttled = _.throttle(updateTBMenus, 100); 7734 7735 ['load', 'resize'].forEach(function (event) { 7736 window.addEventListener(event, throttled); 7737 }); 7738 7739 Drupal.TBMegaMenu.getNextPrevElement = function (direction) { 7740 var excludeSubnav = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; 7741 var current = document.activeElement; 7742 var nextElement = null; 7743 7744 if (current) { 7745 var focusable = document.querySelectorAll(focusableSelector); 7746 focusable = _toConsumableArray(focusable); 7747 focusable = Drupal.TBMegaMenu['focusable'].filter(function (element) { 7748 if (excludeSubnav) { 7749 return !element.closest('.tbm-subnav') && element.offsetWidth > 0 && element.offsetHeight > 0; 7750 } 7751 7752 return element.offsetWidth > 0 && element.offsetHeight > 0; 7753 }); 7754 var index = focusable.indexOf(current); 7755 7756 if (index > -1) { 7757 if (direction === 'next') { 7758 nextElement = focusable[index + 1] || focusable[0]; 7759 } else { 7760 nextElement = focusable[index - 1] || focusable[0]; 7761 } 7762 } 7763 } 7764 7765 return nextElement; 7766 }; 7767 7768 Drupal.behaviors.tbMegaMenuInit = { 7769 attach: function attach(context) { 7770 context.querySelectorAll('.tbm').forEach(function (menu) { 7771 if (!menu.getAttribute('data-initialized')) { 7772 menu.setAttribute('data-initialized', 'true'); 7773 var tbMega = new _plugin_js__WEBPACK_IMPORTED_MODULE_0__["TBMegaMenu"](menu.getAttribute('id')); 7774 tbMega.init(); 7775 } 7776 }); 7777 } 7778 }; 7779 Drupal.behaviors.tbMegaMenuRespond = { 7780 attach: function attach(context) { 7781 updateTBMenus(); 7782 } 7783 }; 7784})(Drupal); 7785 7786/***/ }), 7787
7788/***/ "./js/plugin.js": 7789/*!**********************!*\ 7790 !*** ./js/plugin.js ***! 7791 \**********************/ 7792/*! exports provided: TBMegaMenu */ 7793/***/ (function(module, __webpack_exports__, __webpack_require__) { 7794 7795"use strict"; 7796__webpack_require__.r(__webpack_exports__); 7797/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TBMegaMenu", function() { return TBMegaMenu; }); 7798function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 7799 7800function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } 7801 7802function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } 7803 7804function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } 7805 7806var TBMegaMenu = function () { 7807 function TBMegaMenu(id) { 7808 _classCallCheck(this, TBMegaMenu); 7809 7810 _defineProperty(this, 'use strict', void 0); 7811 7812 this.id = id; 7813 this.navParent = document.getElementById(this.id); 7814 this.isTouch = window.matchMedia('(pointer: coarse)').matches; 7815 var menuSettings = drupalSettings['TBMegaMenu'][this.id]; 7816 this.hasArrows = menuSettings['arrows'] === '1'; 7817 var mm_duration = this.navParent.getAttribute('data-duration') ? parseInt(this.navParent.getAttribute('data-duration')) : 0; 7818 this.mm_timeout = mm_duration ? 100 + mm_duration : 500; 7819 } 7820 7821 _createClass(TBMegaMenu, [{ 7822 key: "isMobile", 7823 get: function get() { 7824 return this.navParent.classList.contains('tbm--mobile'); 7825 } 7826 }, { 7827 key: "keyDownHandler", 7828 value: function keyDownHandler(k) { 7829 var _this = this; 7830 7831 var menuId = this.id; 7832 7833 switch (k.keyCode) { 7834 case 9: 7835 if (!_this.isMobile) { 7836 nav_tab(k); 7837 } 7838 7839 break; 7840 7841 case 13: 7842 nav_enter(); 7843 break; 7844 7845 case 27: 7846 nav_esc(); 7847 break; 7848 7849 case 37: 7850 k.preventDefault(); 7851 nav_left(k); 7852 break; 7853 7854 case 38: 7855 k.preventDefault(); 7856 nav_up(k); 7857 break; 7858 7859 case 39: 7860 k.preventDefault(); 7861 nav_right(k); 7862 break; 7863 7864 case 40: 7865 k.preventDefault(); 7866 nav_down(k); 7867 break; 7868 7869 default: 7870 } 7871 7872 function nav_tab(k) { 7873 k.preventDefault(); 7874 7875 if (nav_is_toplink()) { 7876 if (k.shiftKey || k.keyCode === 38 || k.keyCode === 37) { 7877 nav_prev_toplink(); 7878 } else { 7879 nav_next_toplink(); 7880 } 7881 } else { 7882 if (k.shiftKey || k.keyCode === 38 || k.keyCode === 37) { 7883 Drupal.TBMegaMenu.getNextPrevElement('prev').focus(); 7884 } else { 7885 Drupal.TBMegaMenu.getNextPrevElement('next').focus(); 7886 } 7887 } 7888 } 7889 7890 function nav_esc() { 7891 _this.closeMenu(); 7892 } 7893 7894 function nav_enter() { 7895 if (document.activeElement.classList.contains('no-link')) { 7896 document.activeElement.click(); 7897 } 7898 } 7899 7900 function nav_left(k) { 7901 if (nav_is_toplink()) { 7902 nav_prev_toplink(); 7903 } else { 7904 nav_up(k); 7905 } 7906 } 7907 7908 function nav_right(k) { 7909 if (nav_is_toplink()) { 7910 nav_next_toplink(); 7911 } else { 7912 nav_down(k); 7913 } 7914 } 7915 7916 function nav_up(k) { 7917 if (nav_is_toplink()) {} else { 7918 nav_tab(k); 7919 } 7920 } 7921 7922 function nav_down(k) { 7923 if (nav_is_toplink()) { 7924 Drupal.TBMegaMenu.getNextPrevElement('next').focus(); 7925 } else if (Drupal.TBMegaMenu.getNextPrevElement('next').closest('.tbm-item.level-1') !== document.activeElement.closest('.tbm-item.level-1')) {} else { 7926 nav_tab(k); 7927 } 7928 } 7929 7930 function nav_is_toplink() { 7931 var topLevel = Drupal.TBMegaMenu[menuId]['topLevel']; 7932 return topLevel.indexOf(document.activeElement) > -1; 7933 } 7934 7935 function nav_is_last_toplink() { 7936 var topLevel = Drupal.TBMegaMenu[menuId]['topLevel']; 7937 return topLevel.indexOf(document.activeElement) === topLevel.length - 1; 7938 } 7939 7940 function nav_is_first_toplink() { 7941 var topLevel = Drupal.TBMegaMenu[menuId]['topLevel']; 7942 return topLevel.indexOf(document.activeElement) === 0; 7943 } 7944 7945 function nav_next_toplink() { 7946 if (!nav_is_last_toplink()) { 7947 var topLevel = Drupal.TBMegaMenu[menuId]['topLevel']; 7948 var index = topLevel.indexOf(document.activeElement); 7949 7950 if (index > -1) { 7951 topLevel[index + 1].focus(); 7952 } 7953 } else { 7954 Drupal.TBMegaMenu.getNextPrevElement('next', true).focus(); 7955 } 7956 } 7957 7958 function nav_prev_toplink() { 7959 if (!nav_is_first_toplink()) { 7960 var topLevel = Drupal.TBMegaMenu[menuId]['topLevel']; 7961 var index = topLevel.indexOf(document.activeElement); 7962 7963 if (index > -1) { 7964 topLevel[index - 1].focus(); 7965 } 7966 } else { 7967 Drupal.TBMegaMenu.getNextPrevElement('prev', true).focus(); 7968 } 7969 } 7970 } 7971 }, { 7972 key: "handleTouch", 7973 value: function handleTouch(item) { 7974 var _this = this; 7975 7976 var link = item.querySelector(':scope > .tbm-link-container').querySelector(':scope > .tbm-link'); 7977 var tbitem = link.closest('.tbm-item'); 7978 link.addEventListener('click', function (event) { 7979 if (!_this.isMobile && _this.isTouch && !_this.hasArrows) { 7980 if (link.classList.contains('tbm-clicked')) { 7981 var uri = link.getAttribute('href'); 7982
7983 if (uri) { 7984 window.location.href = uri; 7985 } else { 7986 link.classList.remove('tbm-clicked'); 7987 7988 _this.hideMenu(tbitem, _this.mm_timeout); 7989 } 7990 } else { 7991 event.preventDefault(); 7992 7993 var allOpen = _this.navParent.querySelectorAll('.open'); 7994 7995 allOpen.forEach(function (element) { 7996 if (element.contains(link)) {} else { 7997 element.classList.remove('open'); 7998 } 7999 }); 8000 8001 _this.ariaCheck(); 8002 8003 _this.navParent.querySelectorAll('.tbm-clicked').forEach(function (element) { 8004 element.classList.remove('tbm-clicked'); 8005 }); 8006 8007 link.classList.add('tbm-clicked'); 8008 8009 _this.showMenu(tbitem, _this.mm_timeout); 8010 } 8011 } 8012 }); 8013 document.addEventListener('click', function (event) { 8014 if (!event.target.closest('.tbm-nav')) { 8015 if (_this.navParent.querySelectorAll('.open').length > 0) { 8016 _this.closeMenu(); 8017 } 8018 } 8019 }); 8020 document.addEventListener('focusin', function (event) { 8021 if (!event.target.closest('.tbm')) { 8022 _this.closeMenu(); 8023 } 8024 }); 8025 } 8026 }, { 8027 key: "closeMenu", 8028 value: function closeMenu() { 8029 this.navParent.classList.remove('tbm--mobile-show'); 8030 this.navParent.querySelector('.tbm-button').setAttribute('aria-expanded', 'false'); 8031 this.navParent.querySelectorAll('.open').forEach(function (element) { 8032 element.classList.remove('open'); 8033 }); 8034 this.navParent.querySelectorAll('.tbm-clicked').forEach(function (element) { 8035 element.classList.remove('tbm-clicked'); 8036 }); 8037 this.ariaCheck(); 8038 } 8039 }, { 8040 key: "ariaCheck", 8041 value: function ariaCheck() { 8042 var toggleElement = function toggleElement(element, value) { 8043 element.querySelectorAll('.tbm-toggle, .tbm-submenu-toggle').forEach(function (toggle) { 8044 toggle.setAttribute('aria-expanded', value); 8045 }); 8046 }; 8047 8048 this.navParent.querySelectorAll('.tbm-item').forEach(function (element) { 8049 if (element.classList.contains('tbm-group')) { 8050 if (!element.closest('.open')) { 8051 toggleElement(element, 'false'); 8052 } else if (element.closest('.open')) { 8053 toggleElement(element, 'true'); 8054 } 8055 } else if (element.classList.contains('tbm-item--has-dropdown') || element.classList.contains('tbm-item--has-flyout')) { 8056 if (!element.classList.contains('open')) { 8057 toggleElement(element, 'false'); 8058 } else if (element.classList.contains('open')) { 8059 toggleElement(element, 'true'); 8060 } 8061 } else { 8062 element.querySelectorAll('.tbm-toggle, .tbm-submenu-toggle').forEach(function (toggle) { 8063 toggle.removeAttribute('aria-expanded'); 8064 }); 8065 } 8066 }); 8067 } 8068 }, { 8069 key: "showMenu", 8070 value: function showMenu(listItem, mm_timeout) { 8071 var _this = this; 8072 8073 if (listItem.classList.contains('level-1')) { 8074 listItem.classList.add('animating'); 8075 clearTimeout(listItem.animatingTimeout); 8076 listItem.animatingTimeout = setTimeout(function () { 8077 listItem.classList.remove('animating'); 8078 }, mm_timeout); 8079 clearTimeout(listItem.hoverTimeout); 8080 listItem.hoverTimeout = setTimeout(function () { 8081 listItem.classList.add('open'); 8082 8083 _this.ariaCheck(); 8084 }, 100); 8085 } else { 8086 clearTimeout(listItem.hoverTimeout); 8087 listItem.hoverTimeout = setTimeout(function () { 8088 listItem.classList.add('open'); 8089 8090 _this.ariaCheck(); 8091 }, 100); 8092 } 8093 } 8094 }, { 8095 key: "hideMenu", 8096 value: function hideMenu(listItem, mm_timeout) { 8097 var _this = this; 8098 8099 listItem.querySelectorAll('.tbm-toggle, .tbm-submenu-toggle').forEach(function (element) { 8100 element.setAttribute('aria-expanded', false); 8101 }); 8102 8103 if (listItem.classList.contains('level-1')) { 8104 listItem.classList.add('animating'); 8105 clearTimeout(listItem.animatingTimeout); 8106 listItem.animatingTimeout = setTimeout(function () { 8107 listItem.classList.remove('animating'); 8108 }, mm_timeout); 8109 clearTimeout(listItem.hoverTimeout); 8110 listItem.hoverTimeout = setTimeout(function () { 8111 listItem.classList.remove('open'); 8112 8113 _this.ariaCheck(); 8114 }, 100); 8115 } else { 8116 clearTimeout(listItem.hoverTimeout); 8117 listItem.hoverTimeout = setTimeout(function () { 8118 listItem.classList.remove('open'); 8119 8120 _this.ariaCheck(); 8121 }, 100); 8122 } 8123 } 8124 }, { 8125 key: "init",
8126 value: function init() { 8127 var _this = this; 8128 8129 document.querySelectorAll('.tbm-button').forEach(function (element) { 8130 element.addEventListener('click', function (event) { 8131 if (_this.navParent.classList.contains('tbm--mobile-show')) { 8132 _this.closeMenu(); 8133 } else { 8134 _this.navParent.classList.add('tbm--mobile-show'); 8135 8136 event.currentTarget.setAttribute('aria-expanded', 'true'); 8137 } 8138 }); 8139 }); 8140 8141 if (!this.isTouch) { 8142 this.navParent.querySelectorAll('.tbm-item').forEach(function (element) { 8143 element.addEventListener('mouseenter', function (event) { 8144 if (!_this.isMobile && !_this.hasArrows) { 8145 _this.showMenu(element, _this.mm_timeout); 8146 } 8147 }); 8148 element.addEventListener('mouseleave', function (event) { 8149 if (!_this.isMobile && !_this.hasArrows) { 8150 _this.hideMenu(element, _this.mm_timeout); 8151 } 8152 }); 8153 }); 8154 this.navParent.querySelectorAll('.tbm-toggle').forEach(function (element) { 8155 element.addEventListener('focus', function (event) { 8156 if (!_this.isMobile && !_this.hasArrows) { 8157 var listItem = event.currentTarget.closest('li'); 8158 8159 _this.showMenu(listItem, _this.mm_timeout); 8160 8161 document.addEventListener('focusin', function (event) { 8162 if (!_this.isMobile && !_this.hasArrows) { 8163 if (event.target !== listItem && !listItem.contains(event.target)) { 8164 document.removeEventListener('focusin', event); 8165 8166 _this.hideMenu(listItem, _this.mm_timeout); 8167 } 8168 } 8169 }); 8170 } 8171 }); 8172 }); 8173 } 8174 8175 this.navParent.querySelectorAll('.tbm-item').forEach(function (item) { 8176 if (item.querySelector(':scope > .tbm-submenu')) { 8177 _this.handleTouch(item); 8178 } 8179 }); 8180 this.navParent.querySelectorAll('.tbm-submenu-toggle, .tbm-link.no-link').forEach(function (toggleElement) { 8181 toggleElement.addEventListener('click', function (event) { 8182 if (_this.isMobile) { 8183 var parentItem = event.currentTarget.closest('.tbm-item'); 8184 8185 if (parentItem.classList.contains('open')) { 8186 _this.hideMenu(parentItem, _this.mm_timeout); 8187 } else { 8188 _this.showMenu(parentItem, _this.mm_timeout); 8189 } 8190 } 8191 8192 if (!_this.isMobile && !(_this.isTouch && !_this.hasArrows && event.currentTarget.classList.contains('no-link'))) { 8193 var _parentItem = event.currentTarget.closest('.tbm-item'); 8194 8195 if (_parentItem.classList.contains('open')) { 8196 _this.hideMenu(_parentItem, _this.mm_timeout); 8197 8198 _parentItem.querySelectorAll('.open').forEach(function (element) { 8199 _this.hideMenu(element, _this.mm_timeout); 8200 }); 8201 } else { 8202 _this.showMenu(_parentItem, _this.mm_timeout); 8203 8204 var prevSibling = _parentItem.previousElementSibling; 8205 8206 while (prevSibling) { 8207 _this.hideMenu(prevSibling, _this.mm_timeout); 8208 8209 prevSibling.querySelectorAll('.open').forEach(function (item) { 8210 _this.hideMenu(item, _this.mm_timeout); 8211 }); 8212 prevSibling = prevSibling.previousElementSibling; 8213 } 8214 8215 var nextSibling = _parentItem.nextElementSibling; 8216 8217 while (nextSibling) { 8218 _this.hideMenu(nextSibling, _this.mm_timeout); 8219 8220 nextSibling.querySelectorAll('.open').forEach(function (item) { 8221 _this.hideMenu(item, _this.mm_timeout); 8222 }); 8223 nextSibling = nextSibling.nextElementSibling; 8224 } 8225 } 8226 } 8227 }); 8228 }); 8229 this.navParent.addEventListener('keydown', this.keyDownHandler.bind(this)); 8230 } 8231 }]); 8232 8233 return TBMegaMenu; 8234}(); 8235 8236/***/ })
8236 8237 8238/******/ });
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.