vendor: 22,881 bytes, lines 1-2
1/*! jQuery v3.7.1 | (c) OpenJS Foundation and other contributors | jquery.org/license */ 2!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(ie,e){"use strict";var oe=[],r=Object.getPrototypeOf,ae=oe.slice,g=oe.flat?function(e){return oe.flat.call(e)}:function(e){return oe.concat.apply([],e)},s=oe.push,se=oe.indexOf,n={},i=n.toString,ue=n.hasOwnProperty,o=ue.toString,a=o.call(Object),le={},v=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},y=function(e){return null!=e&&e===e.window},C=ie.document,u={type:!0,src:!0,nonce:!0,noModule:!0};function m(e,t,n){var r,i,o=(n=n||C).createElement("script");if(o.text=e,t)for(r in u)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[i.call(e)]||"object":typeof e}var t="3.7.1",l=/HTML$/i,ce=function(e,t){return new ce.fn.init(e,t)};function c(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!v(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}function fe(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}ce.fn=ce.prototype={jquery:t,constructor:ce,length:0,toArray:function(){return ae.call(this)},get:function(e){return null==e?ae.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=ce.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return ce.each(this,e)},map:function(n){return this.pushStack(ce.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(ae.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(ce.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(ce.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:s,sort:oe.sort,splice:oe.splice},ce.extend=ce.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||v(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&&(ce.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||ce.isPlainObject(n)?n:{},i=!1,a[t]=ce.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},ce.extend({expando:"jQuery"+(t+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]"!==i.call(e))&&(!(t=r(e))||"function"==typeof(n=ue.call(t,"constructor")&&t.constructor)&&o.call(n)===a)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t,n){m(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,r=0;if(c(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},text:function(e){var t,n="",r=0,i=e.nodeType;if(!i)while(t=e[r++])n+=ce.text(t);return 1===i||11===i?e.textContent:9===i?e.documentElement.textContent:3===i||4===i?e.nodeValue:n},makeArray:function(e,t){var n=t||[];return null!=e&&(c(Object(e))?ce.merge(n,"string"==typeof e?[e]:e):s.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:se.call(t,e,n)},isXMLDoc:function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!l.test(t||n&&n.nodeName||"HTML")},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(c(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:le}),"function"==typeof Symbol&&(ce.fn[Symbol.iterator]=oe[Symbol.iterator]),ce.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var pe=oe.pop,de=oe.sort,he=oe.splice,ge="[\\x20\\t\\r\\n\\f]",ve=new RegExp("^"+ge+"+|((?:^|[^\\\\])(?:\\\\.)*)"+ge+"+$","g");ce.contains=function(e,t){var n=t&&t.parentNode;return e===n||!(!n||1!==n.nodeType||!(e.contains?e.contains(n):e.compareDocumentPosition&&16&e.compareDocumentPosition(n)))};var f=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g;function p(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e}ce.escapeSelector=function(e){return(e+"").replace(f,p)};var ye=C,me=s;!function(){var e,b,w,o,a,T,r,C,d,i,k=me,S=ce.expando,E=0,n=0,s=W(),c=W(),u=W(),h=W(),l=function(e,t){return e===t&&(a=!0),0},f="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",t="(?:\\\\[\\da-fA-F]{1,6}"+ge+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",p="\\["+ge+"*("+t+")(?:"+ge+"*([*^$|!~]?=)"+ge+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+t+"))|)"+ge+"*\\]",g=":("+t+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+p+")*)|.*)\\)|)",v=new RegExp(ge+"+","g"),y=new RegExp("^"+ge+"*,"+ge+"*"),m=new RegExp("^"+ge+"*([>+~]|"+ge+")"+ge+"*"),x=new RegExp(ge+"|>"),j=new RegExp(g),A=new RegExp("^"+t+"$"),D={ID:new RegExp("^#("+t+")"),CLASS:new RegExp("^\\.("+t+")"),TAG:new RegExp("^("+t+"|[*])"),ATTR:new RegExp("^"+p),PSEUDO:new RegExp("^"+g),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ge+"*(even|odd|(([+-]|)(\\d*)n|)"+ge+"*(?:([+-]|)"+ge+"*(\\d+)|))"+ge+"*\\)|)","i"),bool:new RegExp("^(?:"+f+")$","i"),needsContext:new RegExp("^"+ge+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ge+"*((?:-\\d)?\\d*)"+ge+"*\\)|)(?=[^-]|$)","i")},N=/^(?:input|select|textarea|button)$/i,q=/^h\d$/i,L=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,H=/[+~]/,O=new RegExp("\\\\[\\da-fA-F]{1,6}"+ge+"?|\\\\([^\\r\\n\\f])","g"),P=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))},M=function(){V()},R=J(function(e){return!0===e.disabled&&fe(e,"fieldset")},{dir:"parentNode",next:"legend"});try{k.apply(oe=ae.call(ye.childNodes),ye.childNodes),oe[ye.childNodes.length].nodeType}catch(e){k={apply:function(e,t){me.apply(e,ae.call(t))},call:function(e){me.apply(e,ae.call(arguments,1))}}}function I(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&&(V(e),e=e||T,C)){if(11!==p&&(u=L.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return k.call(n,a),n}else if(f&&(a=f.getElementById(i))&&I.contains(e,a)&&a.id===i)return k.call(n,a),n}else{if(u[2])return k.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&e.getElementsByClassName)return k.apply(n,e.getElementsByClassName(i)),n}if(!(h[t+" "]||d&&d.test(t))){if(c=t,f=e,1===p&&(x.test(t)||m.test(t))){(f=H.test(t)&&U(e.parentNode)||e)==e&&le.scope||((s=e.getAttribute("id"))?s=ce.escapeSelector(s):e.setAttribute("id",s=S)),o=(l=Y(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+Q(l[o]);c=l.join(",")}try{return k.apply(n,f.querySelectorAll(c)),n}catch(e){h(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return re(t.replace(ve,"$1"),e,n,r)}function W(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function F(e){return e[S]=!0,e}function $(e){var t=T.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function B(t){return function(e){return fe(e,"input")&&e.type===t}}function _(t){return function(e){return(fe(e,"input")||fe(e,"button"))&&e.type===t}}function z(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&&R(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function X(a){return F(function(o){return o=+o,F(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 U(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function V(e){var t,n=e?e.ownerDocument||e:ye;return n!=T&&9===n.nodeType&&n.documentElement&&(r=(T=n).documentElement,C=!ce.isXMLDoc(T),i=r.matches||r.webkitMatchesSelector||r.msMatchesSelector,r.msMatchesSelector&&ye!=T&&(t=T.defaultView)&&t.top!==t&&t.addEventListener("unload",M),le.getById=$(function(e){return r.appendChild(e).id=ce.expando,!T.getElementsByName||!T.getElementsByName(ce.expando).length}),le.disconnectedMatch=$(function(e){return i.call(e,"*")}),le.scope=$(function(){return T.querySelectorAll(":scope")}),le.cssHas=$(function(){try{return T.querySelector(":has(*,:jqfake)"),!1}catch(e){return!0}}),le.getById?(b.filter.ID=function(e){var t=e.replace(O,P);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(O,P);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&&C){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=function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):t.querySelectorAll(e)},b.find.CLASS=function(e,t){if("undefined"!=typeof t.getElementsByClassName&&C)return t.getElementsByClassName(e)},d=[],$(function(e){var t;r.appendChild(e).innerHTML="<a id='"+S+"' href='' disabled='disabled'></a><select id='"+S+"-\r\\' disabled='disabled'><option selected=''></option></select>",e.querySelectorAll("[selected]").length||d.push("\\["+ge+"*(?:value|"+f+")"),e.querySelectorAll("[id~="+S+"-]").length||d.push("~="),e.querySelectorAll("a#"+S+"+*").length||d.push(".#.+[+~]"),e.querySelectorAll(":checked").length||d.push(":checked"),(t=T.createElement("input")).setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),r.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&d.push(":enabled",":disabled"),(t=T.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||d.push("\\["+ge+"*name"+ge+"*="+ge+"*(?:''|\"\")")}),le.cssHas||d.push(":has"),d=d.length&&new RegExp(d.join("|")),l=function(e,t){if(e===t)return a=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!le.sortDetached&&t.compareDocumentPosition(e)===n?e===T||e.ownerDocument==ye&&I.contains(ye,e)?-1:t===T||t.ownerDocument==ye&&I.contains(ye,t)?1:o?se.call(o,e)-se.call(o,t):0:4&n?-1:1)}),T}for(e in I.matches=function(e,t){return I(e,null,null,t)},I.matchesSelector=function(e,t){if(V(e),C&&!h[t+" "]&&(!d||!d.test(t)))try{var n=i.call(e,t);if(n||le.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){h(t,!0)}return 0<I(t,T,null,[e]).length},I.contains=function(e,t){return(e.ownerDocument||e)!=T&&V(e),ce.contains(e,t)},I.attr=function(e,t){(e.ownerDocument||e)!=T&&V(e);var n=b.attrHandle[t.toLowerCase()],r=n&&ue.call(b.attrHandle,t.toLowerCase())?n(e,t,!C):void 0;return void 0!==r?r:e.getAttribute(t)},I.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},ce.uniqueSort=function(e){var t,n=[],r=0,i=0;if(a=!le.sortStable,o=!le.sortStable&&ae.call(e,0),de.call(e,l),a){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)he.call(e,n[r],1)}return o=null,e},ce.fn.uniqueSort=function(){return this.pushStack(ce.uniqueSort(ae.apply(this)))},(b=ce.expr={cacheLength:50,createPseudo:F,match:D,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(O,P),e[3]=(e[3]||e[4]||e[5]||"").replace(O,P),"~="===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]||I.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]&&I.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return D.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&j.test(n)&&(t=Y(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(O,P).toLowerCase();return"*"===e?function(){return!0}:function(e){return fe(e,t)}},CLASS:function(e){var t=s[e+" "];return t||(t=new RegExp("(^|"+ge+")"+e+"("+ge+"|$)"))&&s(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=I.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(v," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(d,e,t,h,g){var v="nth"!==d.slice(0,3),y="last"!==d.slice(-4),m="of-type"===e;return 1===h&&0===g?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u=v!==y?"nextSibling":"previousSibling",l=e.parentNode,c=m&&e.nodeName.toLowerCase(),f=!n&&!m,p=!1;if(l){if(v){while(u){o=e;while(o=o[u])if(m?fe(o,c):1===o.nodeType)return!1;s=u="only"===d&&!s&&"nextSibling"}return!0}if(s=[y?l.firstChild:l.lastChild],y&&f){p=(a=(r=(i=l[S]||(l[S]={}))[d]||[])[0]===E&&r[1])&&r[2],o=a&&l.childNodes[a];while(o=++a&&o&&o[u]||(p=a=0)||s.pop())if(1===o.nodeType&&++p&&o===e){i[d]=[E,a,p];break}}else if(f&&(p=a=(r=(i=e[S]||(e[S]={}))[d]||[])[0]===E&&r[1]),!1===p)while(o=++a&&o&&o[u]||(p=a=0)||s.pop())if((m?fe(o,c):1===o.nodeType)&&++p&&(f&&((i=o[S]||(o[S]={}))[d]=[E,p]),o===e))break;return(p-=g)===h||p%h==0&&0<=p/h}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||I.error("unsupported pseudo: "+e);return a[S]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?F(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=se.call(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:F(function(e){var r=[],i=[],s=ne(e.replace(ve,"$1"));return s[S]?F(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:F(function(t){return function(e){return 0<I(t,e).length}}),contains:F(function(t){return t=t.replace(O,P),function(e){return-1<(e.textContent||ce.text(e)).indexOf(t)}}),lang:F(function(n){return A.test(n||"")||I.error("unsupported lang: "+n),n=n.replace(O,P).toLowerCase(),function(e){var t;do{if(t=C?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=ie.location&&ie.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===r},focus:function(e){return e===function(){try{return T.activeElement}catch(e){}}()&&T.hasFocus()&&!!(e.type||e.href||~e.tabIndex)},enabled:z(!1),disabled:z(!0),checked:function(e){return fe(e,"input")&&!!e.checked||fe(e,"option")&&!!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 q.test(e.nodeName)},input:function(e){return N.test(e.nodeName)},button:function(e){return fe(e,"input")&&"button"===e.type||fe(e,"button")},text:function(e){var t;return fe(e,"input")&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:X(function(){return[0]}),last:X(function(e,t){return[t-1]}),eq:X(function(e,t,n){return[n<0?n+t:n]}),even:X(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:X(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:X(function(e,t,n){var r;for(r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:X(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]=B(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=_(e);function G(){}function Y(e,t){var n,r,i,o,a,s,u,l=c[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=y.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=m.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace(ve," ")}),a=a.slice(n.length)),b.filter)!(r=D[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?I.error(e):c(e,s).slice(0)}function Q(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function J(a,e,t){var s=e.dir,u=e.next,l=u||s,c=t&&"parentNode"===l,f=n++;return e.first?function(e,t,n){while(e=e[s])if(1===e.nodeType||c)return a(e,t,n);return!1}:function(e,t,n){var r,i,o=[E,f];if(n){while(e=e[s])if((1===e.nodeType||c)&&a(e,t,n))return!0}else while(e=e[s])if(1===e.nodeType||c)if(i=e[S]||(e[S]={}),u&&fe(e,u))e=e[s]||e;else{if((r=i[l])&&r[0]===E&&r[1]===f)return o[2]=r[2];if((i[l]=o)[2]=a(e,t,n))return!0}return!1}}function K(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 Z(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 ee(d,h,g,v,y,e){return v&&!v[S]&&(v=ee(v)),y&&!y[S]&&(y=ee(y,e)),F(function(e,t,n,r){var i,o,a,s,u=[],l=[],c=t.length,f=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)I(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),p=!d||!e&&h?f:Z(f,u,d,n,r);if(g?g(p,s=y||(e?d:c||v)?[]:t,n,r):s=p,v){i=Z(s,l),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(s[l[o]]=!(p[l[o]]=a))}if(e){if(y||d){if(y){i=[],o=s.length;while(o--)(a=s[o])&&i.push(p[o]=a);y(null,s=[],i,r)}o=s.length;while(o--)(a=s[o])&&-1<(i=y?se.call(e,a):u[o])&&(e[i]=!(t[i]=a))}}else s=Z(s===t?s.splice(c,s.length):s),y?y(null,t,s,r):k.apply(t,s)})}function te(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=J(function(e){return e===i},a,!0),l=J(function(e){return-1<se.call(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=[J(K(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[S]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return ee(1<s&&K(c),1<s&&Q(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(ve,"$1"),t,s<n&&te(e.slice(s,n)),n<r&&te(e=e.slice(n)),n<r&&Q(e))}c.push(t)}return K(c)}function ne(e,t){var n,v,y,m,x,r,i=[],o=[],a=u[e+" "];if(!a){t||(t=Y(e)),n=t.length;while(n--)(a=te(t[n]))[S]?i.push(a):o.push(a);(a=u(e,(v=o,m=0<(y=i).length,x=0<v.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=E+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t==T||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument==T||(V(o),n=!C);while(s=v[a++])if(s(o,t||T,n)){k.call(r,o);break}i&&(E=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=pe.call(r));f=Z(f)}k.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&ce.uniqueSort(r)}return i&&(E=h,w=p),c},m?F(r):r))).selector=e}return a}function re(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&Y(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&&C&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(O,P),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=D.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(O,P),H.test(o[0].type)&&U(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&Q(o)))return k.apply(n,r),n;break}}}return(l||ne(e,c))(r,t,!C,n,!t||H.test(e)&&U(t.parentNode)||t),n}G.prototype=b.filters=b.pseudos,b.setFilters=new G,le.sortStable=S.split("").sort(l).join("")===S,V(),le.sortDetached=$(function(e){return 1&e.compareDocumentPosition(T.createElement("fieldset"))}),ce.find=I,ce.expr[":"]=ce.expr.pseudos,ce.unique=ce.uniqueSort,I.compile=ne,I.select=re,I.setDocument=V,I.tokenize=Y,I.escape=ce.escapeSelector,I.getText=ce.text,I.isXML=ce.isXMLDoc,I.selectors=ce.expr,I.support=ce.support,I.uniqueSort=ce.uniqueSort}();var d=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&ce(e).is(n))break;r.push(e)}return r},h=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},b=ce.expr.match.needsContext,w=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function T(e,n,r){return v(n)?ce.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?ce.grep(e,function(e){return e===n!==r}):"string"!=typeof n?ce.grep(e,function(e){return-1<se.call(n,e)!==r}):ce.filter(n,e,r)}ce.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?ce.find.matchesSelector(r,e)?[r]:[]:ce.find.matches(e,ce.grep(t,function(e){return 1===e.nodeType}))},ce.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(ce(e).filter(function(){for(t=0;t<r;t++)if(ce.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)ce.find(e,i[t],n);return 1<r?ce.uniqueSort(n):n},filter:function(e){return this.pushStack(T(this,e||[],!1))},not:function(e){return this.pushStack(T(this,e||[],!0))},is:function(e){return!!T(this,"string"==typeof e&&b.test(e)?ce(e):e||[],!1).length}});var k,S=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(ce.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||k,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:S.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 ce?t[0]:t,ce.merge(this,ce.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:C,!0)),w.test(r[1])&&ce.isPlainObject(t))for(r in t)v(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=C.getElementById(r[2]))&&(this[0]=i,this.length=1),this}
vendor: 1,967 bytes, line 2
2return e.nodeType?(this[0]=e,this.length=1,this):v(e)?void 0!==n.ready?n.ready(e):e(ce):ce.makeArray(e,this)}).prototype=ce.fn,k=ce(C);var E=/^(?:parents|prev(?:Until|All))/,j={children:!0,contents:!0,next:!0,prev:!0};function A(e,t){while((e=e[t])&&1!==e.nodeType);return e}ce.fn.extend({has:function(e){var t=ce(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(ce.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&ce(e);if(!b.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&&ce.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?ce.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?se.call(ce(e),this[0]):se.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(ce.uniqueSort(ce.merge(this.get(),ce(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),ce.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return d(e,"parentNode")},parentsUntil:function(e,t,n){return d(e,"parentNode",n)},next:function(e){return A(e,"nextSibling")},prev:function(e){return A(e,"previousSibling")},nextAll:function(e){return d(e,"nextSibling")},prevAll:function(e){return d(e,"previousSibling")},nextUntil:function(e,t,n){return d(e,"nextSibling",n)},prevUntil:function(e,t,n){return d(e,"previousSibling",n)},siblings:function(e){return h((e.parentNode||{}).firstChild,e)},children:function(e){return h(e.firstChild)},contents:function(e){return null!=e.contentDocument&&r(e.contentDocument)?e.contentDocument:(fe(e,"template")&&(e=e.content||e),ce.merge([],e.childNodes))}},function(r,i){ce.fn[r]=function(e,t){var n=ce.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=ce.filter(t,n)),1<this.length&&(j[r]||
vendor: 9,546 bytes, line 2
2ce.uniqueSort(n),E.test(r)&&n.reverse()),this.pushStack(n)}});var D=/[^\x20\t\r\n\f]+/g;function N(e){return e}function q(e){throw e}function L(e,t,n,r){var i;try{e&&v(i=e.promise)?i.call(e).done(t).fail(n):e&&v(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}ce.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},ce.each(e.match(D)||[],function(e,t){n[t]=!0}),n):ce.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){ce.each(e,function(e,t){v(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==x(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return ce.each(arguments,function(e,t){var n;while(-1<(n=ce.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<ce.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},ce.extend({Deferred:function(e){var o=[["notify","progress",ce.Callbacks("memory"),ce.Callbacks("memory"),2],["resolve","done",ce.Callbacks("once memory"),ce.Callbacks("once memory"),0,"resolved"],["reject","fail",ce.Callbacks("once memory"),ce.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 ce.Deferred(function(r){ce.each(o,function(e,t){var n=v(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&v(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,v(t)?s?t.call(e,l(u,o,N,s),l(u,o,q,s)):(u++,t.call(e,l(u,o,N,s),l(u,o,q,s),l(u,o,N,o.notifyWith))):(a!==N&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){ce.Deferred.exceptionHook&&ce.Deferred.exceptionHook(e,t.error),u<=i+1&&(a!==q&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(ce.Deferred.getErrorHook?t.error=ce.Deferred.getErrorHook():ce.Deferred.getStackHook&&(t.error=ce.Deferred.getStackHook()),ie.setTimeout(t))}}return ce.Deferred(function(e){o[0][3].add(l(0,e,v(r)?r:N,e.notifyWith)),o[1][3].add(l(0,e,v(t)?t:N)),o[2][3].add(l(0,e,v(n)?n:q))}).promise()},promise:function(e){return null!=e?ce.extend(e,a):a}},s={};return ce.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=ae.call(arguments),o=ce.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?ae.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(L(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||v(i[t]&&i[t].then)))return o.then();while(t--)L(i[t],a(t),o.reject);return o.promise()}});var H=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;ce.Deferred.exceptionHook=function(e,t){ie.console&&ie.console.warn&&e&&H.test(e.name)&&ie.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},ce.readyException=function(e){ie.setTimeout(function(){throw e})};var O=ce.Deferred();function P(){C.removeEventListener("DOMContentLoaded",P),ie.removeEventListener("load",P),ce.ready()}ce.fn.ready=function(e){return O.then(e)["catch"](function(e){ce.readyException(e)}),this},ce.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--ce.readyWait:ce.isReady)||(ce.isReady=!0)!==e&&0<--ce.readyWait||O.resolveWith(C,[ce])}}),ce.ready.then=O.then,"complete"===C.readyState||"loading"!==C.readyState&&!C.documentElement.doScroll?ie.setTimeout(ce.ready):(C.addEventListener("DOMContentLoaded",P),ie.addEventListener("load",P));var M=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===x(n))for(s in i=!0,n)M(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,v(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(ce(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},R=/^-ms-/,I=/-([a-z])/g;function W(e,t){return t.toUpperCase()}function F(e){return e.replace(R,"ms-").replace(I,W)}var $=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function B(){this.expando=ce.expando+B.uid++}B.uid=1,B.prototype={cache:function(e){var t=e[this.expando];return t||(t={},$(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[F(t)]=n;else for(r in t)i[F(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][F(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(F):(t=F(t))in r?[t]:t.match(D)||[]).length;while(n--)delete r[t[n]]}(void 0===t||ce.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&&!ce.isEmptyObject(t)}};var _=new B,z=new B,X=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,U=/[A-Z]/g;function V(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(U,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:X.test(i)?JSON.parse(i):i)}catch(e){}z.set(e,t,n)}else n=void 0;return n}ce.extend({hasData:function(e){return z.hasData(e)||_.hasData(e)},data:function(e,t,n){return z.access(e,t,n)},removeData:function(e,t){z.remove(e,t)},_data:function(e,t,n){return _.access(e,t,n)},_removeData:function(e,t){_.remove(e,t)}}),ce.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=z.get(o),1===o.nodeType&&!_.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=F(r.slice(5)),V(o,r,i[r]));_.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){z.set(this,n)}):M(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=z.get(o,n))?t:void 0!==(t=V(o,n))?t:void 0;this.each(function(){z.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){z.remove(this,e)})}}),ce.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=_.get(e,t),n&&(!r||Array.isArray(n)?r=_.access(e,t,ce.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=ce.queue(e,t),r=n.length,i=n.shift(),o=ce._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){ce.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return _.get(e,n)||_.access(e,n,{empty:ce.Callbacks("once memory").add(function(){_.remove(e,[t+"queue",n])})})}}),ce.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?ce.queue(this[0],t):void 0===n?this:this.each(function(){var e=ce.queue(this,t,n);ce._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&ce.dequeue(this,t)})},dequeue:function(e){return this.each(function(){ce.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=ce.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=_.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var G=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,Y=new RegExp("^(?:([+-])=|)("+G+")([a-z%]*)$","i"),Q=["Top","Right","Bottom","Left"],J=C.documentElement,K=function(e){return ce.contains(e.ownerDocument,e)},Z={composed:!0};J.getRootNode&&(K=function(e){return ce.contains(e.ownerDocument,e)||e.getRootNode(Z)===e.ownerDocument});var ee=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&K(e)&&"none"===ce.css(e,"display")};function te(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return ce.css(e,t,"")},u=s(),l=n&&n[3]||(ce.cssNumber[t]?"":"px"),c=e.nodeType&&(ce.cssNumber[t]||"px"!==l&&+u)&&Y.exec(ce.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)ce.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,ce.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 ne={};function re(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]=_.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&ee(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ne[s])||
vendor: 8,814 bytes, line 2
2(o=a.body.appendChild(a.createElement(s)),u=ce.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ne[s]=u)))):"none"!==n&&(l[c]="none",_.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}ce.fn.extend({show:function(){return re(this,!0)},hide:function(){return re(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ee(this)?ce(this).show():ce(this).hide()})}});var xe,be,we=/^(?:checkbox|radio)$/i,Te=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,Ce=/^$|^module$|\/(?:java|ecma)script/i;xe=C.createDocumentFragment().appendChild(C.createElement("div")),(be=C.createElement("input")).setAttribute("type","radio"),be.setAttribute("checked","checked"),be.setAttribute("name","t"),xe.appendChild(be),le.checkClone=xe.cloneNode(!0).cloneNode(!0).lastChild.checked,xe.innerHTML="<textarea>x</textarea>",le.noCloneChecked=!!xe.cloneNode(!0).lastChild.defaultValue,xe.innerHTML="<option></option>",le.option=!!xe.lastChild;var ke={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 Se(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&fe(e,t)?ce.merge([e],n):n}function Ee(e,t){for(var n=0,r=e.length;n<r;n++)_.set(e[n],"globalEval",!t||_.get(t[n],"globalEval"))}ke.tbody=ke.tfoot=ke.colgroup=ke.caption=ke.thead,ke.th=ke.td,le.option||(ke.optgroup=ke.option=[1,"<select multiple='multiple'>","</select>"]);var je=/<|&#?\w+;/;function Ae(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===x(o))ce.merge(p,o.nodeType?[o]:o);else if(je.test(o)){a=a||f.appendChild(t.createElement("div")),s=(Te.exec(o)||["",""])[1].toLowerCase(),u=ke[s]||ke._default,a.innerHTML=u[1]+ce.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;ce.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<ce.inArray(o,r))i&&i.push(o);else if(l=K(o),a=Se(f.appendChild(o),"script"),l&&Ee(a),n){c=0;while(o=a[c++])Ce.test(o.type||"")&&n.push(o)}return f}var De=/^([^.]*)(?:\.(.+)|)/;function Ne(){return!0}function qe(){return!1}function Le(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)Le(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=qe;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return ce().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=ce.guid++)),e.each(function(){ce.event.add(this,t,i,r,n)})}function He(e,r,t){t?(_.set(e,r,!1),ce.event.add(e,r,{namespace:!1,handler:function(e){var t,n=_.get(this,r);if(1&e.isTrigger&&this[r]){if(n)(ce.event.special[r]||{}).delegateType&&e.stopPropagation();else if(n=ae.call(arguments),_.set(this,r,n),this[r](),t=_.get(this,r),_.set(this,r,!1),n!==t)return e.stopImmediatePropagation(),e.preventDefault(),t}else n&&(_.set(this,r,ce.event.trigger(n[0],n.slice(1),this)),e.stopPropagation(),e.isImmediatePropagationStopped=Ne)}})):void 0===_.get(e,r)&&ce.event.add(e,r,Ne)}ce.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=_.get(t);if($(t)){n.handler&&(n=(o=n).handler,i=o.selector),i&&ce.find.matchesSelector(J,i),n.guid||(n.guid=ce.guid++),(u=v.events)||(u=v.events=Object.create(null)),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof ce&&ce.event.triggered!==e.type?ce.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(D)||[""]).length;while(l--)d=g=(s=De.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=ce.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=ce.event.special[d]||{},c=ce.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&ce.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),ce.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=_.hasData(e)&&_.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(D)||[""]).length;while(l--)if(d=g=(s=De.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=ce.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,v.handle)||ce.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)ce.event.remove(e,d+t[l],n,r,!0);ce.isEmptyObject(u)&&_.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=new Array(arguments.length),u=ce.event.fix(e),l=(_.get(this,"events")||Object.create(null))[u.type]||[],c=ce.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=ce.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=((ce.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<ce(i,this).index(l):ce.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(ce.Event.prototype,t,{enumerable:!0,configurable:!0,get:v(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[ce.expando]?e:new ce.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return we.test(t.type)&&t.click&&fe(t,"input")&&He(t,"click",!0),!1},trigger:function(e){var t=this||e;return we.test(t.type)&&t.click&&fe(t,"input")&&He(t,"click"),!0},_default:function(e){var t=e.target;return we.test(t.type)&&t.click&&fe(t,"input")&&_.get(t,"click")||fe(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},ce.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},ce.Event=function(e,t){if(!(this instanceof ce.Event))return new ce.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?Ne:qe,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&&ce.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[ce.expando]=!0},ce.Event.prototype={constructor:ce.Event,isDefaultPrevented:qe,isPropagationStopped:qe,isImmediatePropagationStopped:qe,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=Ne,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=Ne,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=Ne,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},ce.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},ce.event.addProp),ce.each({focus:"focusin",blur:"focusout"},function(r,i){function o(e){if(C.documentMode){var t=_.get(this,"handle"),n=ce.event.fix(e);
vendor: 14,182 bytes, line 2
2n.type="focusin"===e.type?"focus":"blur",n.isSimulated=!0,t(e),n.target===n.currentTarget&&t(n)}else ce.event.simulate(i,e.target,ce.event.fix(e))}ce.event.special[r]={setup:function(){var e;if(He(this,r,!0),!C.documentMode)return!1;(e=_.get(this,i))||this.addEventListener(i,o),_.set(this,i,(e||0)+1)},trigger:function(){return He(this,r),!0},teardown:function(){var e;if(!C.documentMode)return!1;(e=_.get(this,i)-1)?_.set(this,i,e):(this.removeEventListener(i,o),_.remove(this,i))},_default:function(e){return _.get(e.target,r)},delegateType:i},ce.event.special[i]={setup:function(){var e=this.ownerDocument||this.document||this,t=C.documentMode?this:e,n=_.get(t,i);n||(C.documentMode?this.addEventListener(i,o):e.addEventListener(r,o,!0)),_.set(t,i,(n||0)+1)},teardown:function(){var e=this.ownerDocument||this.document||this,t=C.documentMode?this:e,n=_.get(t,i)-1;n?_.set(t,i,n):(C.documentMode?this.removeEventListener(i,o):e.removeEventListener(r,o,!0),_.remove(t,i))}}}),ce.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){ce.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||ce.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),ce.fn.extend({on:function(e,t,n,r){return Le(this,e,t,n,r)},one:function(e,t,n,r){return Le(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,ce(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=qe),this.each(function(){ce.event.remove(this,e,n,t)})}});var Oe=/<script|<style|<link/i,Pe=/checked\s*(?:[^=]|=\s*.checked.)/i,Me=/^\s*<!\[CDATA\[|\]\]>\s*$/g;function Re(e,t){return fe(e,"table")&&fe(11!==t.nodeType?t:t.firstChild,"tr")&&ce(e).children("tbody")[0]||e}function Ie(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function We(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Fe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(_.hasData(e)&&(s=_.get(e).events))for(i in _.remove(t,"handle events"),s)for(n=0,r=s[i].length;n<r;n++)ce.event.add(t,i,s[i][n]);z.hasData(e)&&(o=z.access(e),a=ce.extend({},o),z.set(t,a))}}function $e(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=v(d);if(h||1<f&&"string"==typeof d&&!le.checkClone&&Pe.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),$e(t,r,i,o)});if(f&&(t=(e=Ae(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=ce.map(Se(e,"script"),Ie)).length;c<f;c++)u=e,c!==p&&(u=ce.clone(u,!0,!0),s&&ce.merge(a,Se(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,ce.map(a,We),c=0;c<s;c++)u=a[c],Ce.test(u.type||"")&&!_.access(u,"globalEval")&&ce.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?ce._evalUrl&&!u.noModule&&ce._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")},l):m(u.textContent.replace(Me,""),u,l))}return n}function Be(e,t,n){for(var r,i=t?ce.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||ce.cleanData(Se(r)),r.parentNode&&(n&&K(r)&&Ee(Se(r,"script")),r.parentNode.removeChild(r));return e}ce.extend({htmlPrefilter:function(e){return e},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=K(e);if(!(le.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||ce.isXMLDoc(e)))for(a=Se(c),r=0,i=(o=Se(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&we.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||Se(e),a=a||Se(c),r=0,i=o.length;r<i;r++)Fe(o[r],a[r]);else Fe(e,c);return 0<(a=Se(c,"script")).length&&Ee(a,!f&&Se(e,"script")),c},cleanData:function(e){for(var t,n,r,i=ce.event.special,o=0;void 0!==(n=e[o]);o++)if($(n)){if(t=n[_.expando]){if(t.events)for(r in t.events)i[r]?ce.event.remove(n,r):ce.removeEvent(n,r,t.handle);n[_.expando]=void 0}n[z.expando]&&(n[z.expando]=void 0)}}}),ce.fn.extend({detach:function(e){return Be(this,e,!0)},remove:function(e){return Be(this,e)},text:function(e){return M(this,function(e){return void 0===e?ce.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 $e(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Re(this,e).appendChild(e)})},prepend:function(){return $e(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Re(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return $e(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return $e(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&&(ce.cleanData(Se(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return ce.clone(this,e,t)})},html:function(e){return M(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&&!Oe.test(e)&&!ke[(Te.exec(e)||["",""])[1].toLowerCase()]){e=ce.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(ce.cleanData(Se(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return $e(this,arguments,function(e){var t=this.parentNode;ce.inArray(this,n)<0&&(ce.cleanData(Se(this)),t&&t.replaceChild(e,this))},n)}}),ce.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){ce.fn[e]=function(e){for(var t,n=[],r=ce(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),ce(r[o])[a](t),s.apply(n,t.get());return this.pushStack(n)}});var _e=new RegExp("^("+G+")(?!px)[a-z%]+$","i"),ze=/^--/,Xe=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=ie),t.getComputedStyle(e)},Ue=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},Ve=new RegExp(Q.join("|"),"i");function Ge(e,t,n){var r,i,o,a,s=ze.test(t),u=e.style;return(n=n||Xe(e))&&(a=n.getPropertyValue(t)||n[t],s&&a&&(a=a.replace(ve,"$1")||void 0),""!==a||K(e)||(a=ce.style(e,t)),!le.pixelBoxStyles()&&_e.test(a)&&Ve.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 Ye(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%",J.appendChild(u).appendChild(l);var e=ie.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),J.removeChild(u),l=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s,u=C.createElement("div"),l=C.createElement("div");l.style&&(l.style.backgroundClip="content-box",l.cloneNode(!0).style.backgroundClip="",le.clearCloneStyle="content-box"===l.style.backgroundClip,ce.extend(le,{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=C.createElement("table"),t=C.createElement("tr"),n=C.createElement("div"),e.style.cssText="position:absolute;left:-11111px;border-collapse:separate",t.style.cssText="box-sizing:content-box;border:1px solid",t.style.height="1px",n.style.height="9px",n.style.display="block",J.appendChild(e).appendChild(t).appendChild(n),r=ie.getComputedStyle(t),a=parseInt(r.height,10)+parseInt(r.borderTopWidth,10)+parseInt(r.borderBottomWidth,10)===t.offsetHeight,J.removeChild(e)),a}}))}();var Qe=["Webkit","Moz","ms"],Je=C.createElement("div").style,Ke={};function Ze(e){var t=ce.cssProps[e]||Ke[e];return t||(e in Je?e:Ke[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Qe.length;while(n--)if((e=Qe[n]+t)in Je)return e}(e)||e)}var et=/^(none|table(?!-c[ea]).+)/,tt={position:"absolute",visibility:"hidden",display:"block"},nt={letterSpacing:"0",fontWeight:"400"};function rt(e,t,n){var r=Y.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function it(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0,l=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(l+=ce.css(e,n+Q[a],!0,i)),r?("content"===n&&(u-=ce.css(e,"padding"+Q[a],!0,i)),"margin"!==n&&(u-=ce.css(e,"border"+Q[a]+"Width",!0,i))):(u+=ce.css(e,"padding"+Q[a],!0,i),"padding"!==n?u+=ce.css(e,"border"+Q[a]+"Width",!0,i):s+=ce.css(e,"border"+Q[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+l}function ot(e,t,n){var r=Xe(e),i=(!le.boxSizingReliable()||n)&&"border-box"===ce.css(e,"boxSizing",!1,r),o=i,a=Ge(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if(_e.test(a)){if(!n)return a;a="auto"}return(!le.boxSizingReliable()&&i||!le.reliableTrDimensions()&&fe(e,"tr")||"auto"===a||!parseFloat(a)&&"inline"===ce.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===ce.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+it(e,t,n||(i?"border":"content"),o,r,a)+"px"}function at(e,t,n,r,i){return new at.prototype.init(e,t,n,r,i)}ce.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Ge(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,aspectRatio:!0,borderImageSlice:!0,columnCount:!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,scale:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeMiterlimit:!0,strokeOpacity:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=F(t),u=ze.test(t),l=e.style;if(u||(t=Ze(s)),a=ce.cssHooks[t]||ce.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=Y.exec(n))&&i[1]&&(n=te(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(ce.cssNumber[s]?"":"px")),le.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=F(t);return ze.test(t)||(t=Ze(s)),(a=ce.cssHooks[t]||ce.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Ge(e,t,r)),"normal"===i&&t in nt&&(i=nt[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),ce.each(["height","width"],function(e,u){ce.cssHooks[u]={get:function(e,t,n){if(t)return!et.test(ce.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?ot(e,u,n):Ue(e,tt,function(){return ot(e,u,n)})},set:function(e,t,n){var r,i=Xe(e),o=!le.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===ce.css(e,"boxSizing",!1,i),s=n?it(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-it(e,u,"border",!1,i)-.5)),s&&(r=Y.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=ce.css(e,u)),rt(0,t,s)}}}),ce.cssHooks.marginLeft=Ye(le.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Ge(e,"marginLeft"))||e.getBoundingClientRect().left-Ue(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),ce.each({margin:"",padding:"",border:"Width"},function(i,o){ce.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+Q[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(ce.cssHooks[i+o].set=rt)}),ce.fn.extend({css:function(e,t){return M(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Xe(e),i=t.length;a<i;a++)o[t[a]]=ce.css(e,t[a],!1,r);return o}return void 0!==n?ce.style(e,t,n):ce.css(e,t)},e,t,1<arguments.length)}}),((ce.Tween=at).prototype={constructor:at,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||ce.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(ce.cssNumber[n]?"":"px")},cur:function(){var e=at.propHooks[this.prop];return e&&e.get?e.get(this):at.propHooks._default.get(this)},run:function(e){var t,n=at.propHooks[this.prop];return this.options.duration?this.pos=t=ce.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):at.propHooks._default.set(this),this}}).init.prototype=at.prototype,(at.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=ce.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){ce.fx.step[e.prop]?ce.fx.step[e.prop](e):1!==e.elem.nodeType||!ce.cssHooks[e.prop]&&null==e.elem.style[Ze(e.prop)]?e.elem[e.prop]=e.now:ce.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=at.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},ce.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},ce.fx=at.prototype.init,ce.fx.step={};var st,ut,lt,ct,ft=/^(?:toggle|show|hide)$/,pt=/queueHooks$/;function dt(){ut&&(!1===C.hidden&&ie.requestAnimationFrame?ie.requestAnimationFrame(dt):ie.setTimeout(dt,ce.fx.interval),ce.fx.tick())}function ht(){return ie.setTimeout(function(){st=void 0}),st=Date.now()}function gt(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=Q[r])]=i["padding"+n]=e;
vendor: 4,590 bytes, line 2
2return t&&(i.opacity=i.width=e),i}function vt(e,t,n){for(var r,i=(yt.tweeners[t]||[]).concat(yt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function yt(o,e,t){var n,a,r=0,i=yt.prefilters.length,s=ce.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=st||ht(),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:ce.extend({},e),opts:ce.extend(!0,{specialEasing:{},easing:ce.easing._default},t),originalProperties:e,originalOptions:t,startTime:st||ht(),duration:t.duration,tweens:[],createTween:function(e,t){var n=ce.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=F(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=ce.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=yt.prefilters[r].call(l,o,c,l.opts))return v(n.stop)&&(ce._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return ce.map(c,vt,l),v(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),ce.fx.timer(ce.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}ce.Animation=ce.extend(yt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return te(n.elem,e,Y.exec(t),n),n}]},tweener:function(e,t){v(e)?(t=e,e=["*"]):e=e.match(D);for(var n,r=0,i=e.length;r<i;r++)n=e[r],yt.tweeners[n]=yt.tweeners[n]||[],yt.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&&ee(e),v=_.get(e,"fxshow");for(r in n.queue||(null==(a=ce._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--,ce.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],ft.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||ce.style(e,r)}if((u=!ce.isEmptyObject(t))||!ce.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=_.get(e,"display")),"none"===(c=ce.css(e,"display"))&&(l?c=l:(re([e],!0),l=e.style.display||l,c=ce.css(e,"display"),re([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===ce.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||(v?"hidden"in v&&(g=v.hidden):v=_.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&re([e],!0),p.done(function(){for(r in g||re([e]),_.remove(e,"fxshow"),d)ce.style(e,r,d[r])})),u=vt(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?yt.prefilters.unshift(e):yt.prefilters.push(e)}}),ce.speed=function(e,t,n){var r=e&&"object"==typeof e?ce.extend({},e):{complete:n||!n&&t||v(e)&&e,duration:e,easing:n&&t||t&&!v(t)&&t};return ce.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in ce.fx.speeds?r.duration=ce.fx.speeds[r.duration]:r.duration=ce.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){v(r.old)&&r.old.call(this),r.queue&&ce.dequeue(this,r.queue)},r},ce.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ee).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=ce.isEmptyObject(t),o=ce.speed(e,n,r),a=function(){var e=yt(this,ce.extend({},t),o);(i||_.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=ce.timers,r=_.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&pt.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)
vendor: 13,972 bytes, line 2
2);!e&&o||ce.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=_.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=ce.timers,o=n?n.length:0;for(t.finish=!0,ce.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})}}),ce.each(["toggle","show","hide"],function(e,r){var i=ce.fn[r];ce.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(gt(r,!0),e,t,n)}}),ce.each({slideDown:gt("show"),slideUp:gt("hide"),slideToggle:gt("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){ce.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),ce.timers=[],ce.fx.tick=function(){var e,t=0,n=ce.timers;for(st=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||ce.fx.stop(),st=void 0},ce.fx.timer=function(e){ce.timers.push(e),ce.fx.start()},ce.fx.interval=13,ce.fx.start=function(){ut||(ut=!0,dt())},ce.fx.stop=function(){ut=null},ce.fx.speeds={slow:600,fast:200,_default:400},ce.fn.delay=function(r,e){return r=ce.fx&&ce.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=ie.setTimeout(e,r);t.stop=function(){ie.clearTimeout(n)}})},lt=C.createElement("input"),ct=C.createElement("select").appendChild(C.createElement("option")),lt.type="checkbox",le.checkOn=""!==lt.value,le.optSelected=ct.selected,(lt=C.createElement("input")).value="t",lt.type="radio",le.radioValue="t"===lt.value;var mt,xt=ce.expr.attrHandle;ce.fn.extend({attr:function(e,t){return M(this,ce.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){ce.removeAttr(this,e)})}}),ce.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?ce.prop(e,t,n):(1===o&&ce.isXMLDoc(e)||(i=ce.attrHooks[t.toLowerCase()]||(ce.expr.match.bool.test(t)?mt:void 0)),void 0!==n?null===n?void ce.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=ce.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!le.radioValue&&"radio"===t&&fe(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(D);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),mt={set:function(e,t,n){return!1===t?ce.removeAttr(e,n):e.setAttribute(n,n),n}},ce.each(ce.expr.match.bool.source.match(/\w+/g),function(e,t){var a=xt[t]||ce.find.attr;xt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=xt[o],xt[o]=r,r=null!=a(e,t,n)?o:null,xt[o]=i),r}});var bt=/^(?:input|select|textarea|button)$/i,wt=/^(?:a|area)$/i;function Tt(e){return(e.match(D)||[]).join(" ")}function Ct(e){return e.getAttribute&&e.getAttribute("class")||""}function kt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(D)||[]}ce.fn.extend({prop:function(e,t){return M(this,ce.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[ce.propFix[e]||e]})}}),ce.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&ce.isXMLDoc(e)||(t=ce.propFix[t]||t,i=ce.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=ce.find.attr(e,"tabindex");return t?parseInt(t,10):bt.test(e.nodeName)||wt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),le.optSelected||(ce.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)}}),ce.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){ce.propFix[this.toLowerCase()]=this}),ce.fn.extend({addClass:function(t){var e,n,r,i,o,a;return v(t)?this.each(function(e){ce(this).addClass(t.call(this,e,Ct(this)))}):(e=kt(t)).length?this.each(function(){if(r=Ct(this),n=1===this.nodeType&&" "+Tt(r)+" "){for(o=0;o<e.length;o++)i=e[o],n.indexOf(" "+i+" ")<0&&(n+=i+" ");a=Tt(n),r!==a&&this.setAttribute("class",a)}}):this},removeClass:function(t){var e,n,r,i,o,a;return v(t)?this.each(function(e){ce(this).removeClass(t.call(this,e,Ct(this)))}):arguments.length?(e=kt(t)).length?this.each(function(){if(r=Ct(this),n=1===this.nodeType&&" "+Tt(r)+" "){for(o=0;o<e.length;o++){i=e[o];while(-1<n.indexOf(" "+i+" "))n=n.replace(" "+i+" "," ")}a=Tt(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 v(t)?this.each(function(e){ce(this).toggleClass(t.call(this,e,Ct(this),n),n)}):"boolean"==typeof n&&s?n?this.addClass(t):this.removeClass(t):(e=kt(t),this.each(function(){if(s)for(o=ce(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=Ct(this))&&_.set(this,"__className__",r),this.setAttribute&&this.setAttribute("class",r||!1===t?"":_.get(this,"__className__")||""))}))},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+Tt(Ct(n))+" ").indexOf(t))return!0;return!1}});var St=/\r/g;ce.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=v(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,ce(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=ce.map(t,function(e){return null==e?"":e+""})),(r=ce.valHooks[this.type]||ce.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=ce.valHooks[t.type]||ce.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(St,""):null==e?"":e:void 0}}),ce.extend({valHooks:{option:{get:function(e){var t=ce.find.attr(e,"value");return null!=t?t:Tt(ce.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||!fe(n.parentNode,"optgroup"))){if(t=ce(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=ce.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<ce.inArray(ce.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),ce.each(["radio","checkbox"],function(){ce.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<ce.inArray(ce(e).val(),t)}},le.checkOn||(ce.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Et=ie.location,jt={guid:Date.now()},At=/\?/;ce.parseXML=function(e){var t,n;if(!e||"string"!=typeof e)return null;try{t=(new ie.DOMParser).parseFromString(e,"text/xml")}catch(e){}return n=t&&t.getElementsByTagName("parsererror")[0],t&&!n||ce.error("Invalid XML: "+(n?ce.map(n.childNodes,function(e){return e.textContent}).join("\n"):e)),t};var Dt=/^(?:focusinfocus|focusoutblur)$/,Nt=function(e){e.stopPropagation()};ce.extend(ce.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||C],d=ue.call(e,"type")?e.type:e,h=ue.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||C,3!==n.nodeType&&8!==n.nodeType&&!Dt.test(d+ce.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[ce.expando]?e:new ce.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]:ce.makeArray(t,[e]),c=ce.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!y(n)){for(s=c.delegateType||d,Dt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||C)&&p.push(a.defaultView||a.parentWindow||ie)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(_.get(o,"events")||Object.create(null))[e.type]&&_.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&$(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)||!$(n)||u&&v(n[d])&&!y(n)&&((a=n[u])&&(n[u]=null),ce.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,Nt),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,Nt),ce.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=ce.extend(new ce.Event,n,{type:e,isSimulated:!0});ce.event.trigger(r,null,t)}}),ce.fn.extend({trigger:function(e,t){return this.each(function(){ce.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return ce.event.trigger(e,t,n,!0)}});var qt=/\[\]$/,Lt=/\r?\n/g,Ht=/^(?:submit|button|image|reset|file)$/i,Ot=/^(?:input|select|textarea|keygen)/i;function Pt(n,e,r,i){var t;if(Array.isArray(e))ce.each(e,function(e,t){r||qt.test(n)?i(n,t):Pt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==x(e))i(n,e);else for(t in e)Pt(n+"["+t+"]",e[t],r,i)}ce.param=function(e,t){var n,r=[],i=function(e,t){var n=v(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!ce.isPlainObject(e))ce.each(e,function(){i(this.name,this.value)});else for(n in e)Pt(n,e[n],t,i);return r.join("&")},ce.fn.extend({serialize:function(){return ce.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=ce.prop(this,"elements");return e?ce.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!ce(this).is(":disabled")&&Ot.test(this.nodeName)&&!Ht.test(e)&&(this.checked||!we.test(e))}).map(function(e,t){var n=ce(this).val();return null==n?null:Array.isArray(n)?ce.map(n,function(e){return{name:t.name,value:e.replace(Lt,"\r\n")}}):{name:t.name,value:n.replace(Lt,"\r\n")}}).get()}});var Mt=/%20/g,Rt=/#.*$/,It=/([?&])_=[^&]*/,Wt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Ft=/^(?:GET|HEAD)$/,$t=/^\/\//,Bt={},_t={},zt="*/".concat("*"),Xt=C.createElement("a");function Ut(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(D)||[];if(v(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function Vt(t,i,o,a){var s={},u=t===_t;function l(e){var r;return s[e]=!0,ce.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 Gt(e,t){var n,r,i=ce.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&ce.extend(!0,e,r),e}Xt.href=Et.href,ce.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":zt,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":ce.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Gt(Gt(e,ce.ajaxSettings),t):Gt(ce.ajaxSettings,e)},ajaxPrefilter:Ut(Bt),ajaxTransport:Ut(_t),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,v=ce.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?ce(y):ce.event,x=ce.Deferred(),b=ce.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Wt.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&&(v.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),v.url=((e||v.url||Et.href)+"").replace($t,Et.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(D)||[""],null==v.crossDomain){r=C.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Xt.protocol+"//"+Xt.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=ce.param(v.data,v.traditional)),Vt(Bt,v,t,T),h)return T;for(i in(g=ce.event&&v.global)&&0==ce.active++&&ce.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Ft.test(v.type),f=v.url.replace(Rt,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Mt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(At.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(It,"$1"),o=(At.test(f)?"&":"?")+"_="+jt.guid+++o),v.url=f+o),v.ifModified&&(ce.lastModified[f]&&T.setRequestHeader("If-Modified-Since",ce.lastModified[f]),ce.etag[f]&&T.setRequestHeader("If-None-Match",ce.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+zt+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);
vendor: 9,033 bytes, line 2
2if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=Vt(_t,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=ie.setTimeout(function(){T.abort("timeout")},v.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&&ie.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]}(v,T,n)),!i&&-1<ce.inArray("script",v.dataTypes)&&ce.inArray("json",v.dataTypes)<0&&(v.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}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(ce.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(ce.etag[f]=u)),204===e||"HEAD"===v.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(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--ce.active||ce.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return ce.get(e,t,n,"json")},getScript:function(e,t){return ce.get(e,void 0,t,"script")}}),ce.each(["get","post"],function(e,i){ce[i]=function(e,t,n,r){return v(t)&&(r=r||n,n=t,t=void 0),ce.ajax(ce.extend({url:e,type:i,dataType:r,data:t,success:n},ce.isPlainObject(e)&&e))}}),ce.ajaxPrefilter(function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")}),ce._evalUrl=function(e,t,n){return ce.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){ce.globalEval(e,t,n)}})},ce.fn.extend({wrapAll:function(e){var t;return this[0]&&(v(e)&&(e=e.call(this[0])),t=ce(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 v(n)?this.each(function(e){ce(this).wrapInner(n.call(this,e))}):this.each(function(){var e=ce(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=v(t);return this.each(function(e){ce(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){ce(this).replaceWith(this.childNodes)}),this}}),ce.expr.pseudos.hidden=function(e){return!ce.expr.pseudos.visible(e)},ce.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},ce.ajaxSettings.xhr=function(){try{return new ie.XMLHttpRequest}catch(e){}};var Yt={0:200,1223:204},Qt=ce.ajaxSettings.xhr();le.cors=!!Qt&&"withCredentials"in Qt,le.ajax=Qt=!!Qt,ce.ajaxTransport(function(i){var o,a;if(le.cors||Qt&&!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(Yt[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&&ie.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()}}}),ce.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),ce.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 ce.globalEval(e),e}}}),ce.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),ce.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=ce("<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)}),C.head.appendChild(r[0])},abort:function(){i&&i()}}});var Jt,Kt=[],Zt=/(=)\?(?=&|$)|\?\?/;ce.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Kt.pop()||ce.expando+"_"+jt.guid++;return this[e]=!0,e}}),ce.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Zt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Zt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=v(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Zt,"$1"+r):!1!==e.jsonp&&(e.url+=(At.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||ce.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=ie[r],ie[r]=function(){o=arguments},n.always(function(){void 0===i?ce(ie).removeProp(r):ie[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Kt.push(r)),o&&v(i)&&i(o[0]),o=i=void 0}),"script"}),le.createHTMLDocument=((Jt=C.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Jt.childNodes.length),ce.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(le.createHTMLDocument?((r=(t=C.implementation.createHTMLDocument("")).createElement("base")).href=C.location.href,t.head.appendChild(r)):t=C),o=!n&&[],(i=w.exec(e))?[t.createElement(i[1])]:(i=Ae([e],t,o),o&&o.length&&ce(o).remove(),ce.merge([],i.childNodes)));var r,i,o},ce.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=Tt(e.slice(s)),e=e.slice(0,s)),v(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&ce.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?ce("<div>").append(ce.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},ce.expr.pseudos.animated=function(t){return ce.grep(ce.timers,function(e){return t===e.elem}).length},ce.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=ce.css(e,"position"),c=ce(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=ce.css(e,"top"),u=ce.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),v(t)&&(t=t.call(e,n,ce.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)}},ce.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){ce.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"===ce.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"===ce.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=ce(e).offset()).top+=ce.css(e,"borderTopWidth",!0),i.left+=ce.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-ce.css(r,"marginTop",!0),left:t.left-i.left-ce.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===ce.css(e,"position"))e=e.offsetParent;return e||J})}}),ce.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;ce.fn[t]=function(e){return
vendor: 2,785 bytes, lines 2-8
2M(this,function(e,t,n){var r;if(y(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)}}),ce.each(["top","left"],function(e,n){ce.cssHooks[n]=Ye(le.pixelPosition,function(e,t){if(t)return t=Ge(e,n),_e.test(t)?ce(e).position()[n]+"px":t})}),ce.each({Height:"height",Width:"width"},function(a,s){ce.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){ce.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return M(this,function(e,t,n){var r;return y(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?ce.css(e,t,i):ce.style(e,t,n,i)},s,n?e:void 0,n)}})}),ce.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){ce.fn[t]=function(e){return this.on(t,e)}}),ce.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.on("mouseenter",e).on("mouseleave",t||e)}}),ce.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){ce.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}});var en=/^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g;ce.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),v(e))return r=ae.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(ae.call(arguments)))}).guid=e.guid=e.guid||ce.guid++,i},ce.holdReady=function(e){e?ce.readyWait++:ce.ready(!0)},ce.isArray=Array.isArray,ce.parseJSON=JSON.parse,ce.nodeName=fe,ce.isFunction=v,ce.isWindow=y,ce.camelCase=F,ce.type=x,ce.now=Date.now,ce.isNumeric=function(e){var t=ce.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},ce.trim=function(e){return null==e?"":(e+"").replace(en,"$1")},"function"==typeof define&&define.amd&&define("jquery",[],function(){return ce});var tn=ie.jQuery,nn=ie.$;return ce.noConflict=function(e){return ie.$===ce&&(ie.$=nn),e&&ie.jQuery===ce&&(ie.jQuery=tn),ce},"undefined"==typeof e&&(ie.jQuery=ie.$=ce),ce}); 3 4/*! 5 * Bootstrap v5.3.3 (https://getbootstrap.com/) 6 * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) 7 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) 8 */
vendor: 21,520 bytes, lines 8-9
8 9!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).bootstrap=e()}(this,(function(){"use strict";const t=new Map,e={set(e,i,n){t.has(e)||t.set(e,new Map);const s=t.get(e);s.has(i)||0===s.size?s.set(i,n):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(s.keys())[0]}.`)},get:(e,i)=>t.has(e)&&t.get(e).get(i)||null,remove(e,i){if(!t.has(e))return;const n=t.get(e);n.delete(i),0===n.size&&t.delete(e)}},i="transitionend",n=t=>(t&&window.CSS&&window.CSS.escape&&(t=t.replace(/#([^\s"#']+)/g,((t,e)=>`#${CSS.escape(e)}`))),t),s=t=>{t.dispatchEvent(new Event(i))},o=t=>!(!t||"object"!=typeof t)&&(void 0!==t.jquery&&(t=t[0]),void 0!==t.nodeType),r=t=>o(t)?t.jquery?t[0]:t:"string"==typeof t&&t.length>0?document.querySelector(n(t)):null,a=t=>{if(!o(t)||0===t.getClientRects().length)return!1;const e="visible"===getComputedStyle(t).getPropertyValue("visibility"),i=t.closest("details:not([open])");if(!i)return e;if(i!==t){const e=t.closest("summary");if(e&&e.parentNode!==i)return!1;if(null===e)return!1}return e},l=t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains("disabled")||(void 0!==t.disabled?t.disabled:t.hasAttribute("disabled")&&"false"!==t.getAttribute("disabled")),c=t=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?c(t.parentNode):null},h=()=>{},d=t=>{t.offsetHeight},u=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,f=[],p=()=>"rtl"===document.documentElement.dir,m=t=>{var e;e=()=>{const e=u();if(e){const i=t.NAME,n=e.fn[i];e.fn[i]=t.jQueryInterface,e.fn[i].Constructor=t,e.fn[i].noConflict=()=>(e.fn[i]=n,t.jQueryInterface)}},"loading"===document.readyState?(f.length||document.addEventListener("DOMContentLoaded",(()=>{for(const t of f)t()})),f.push(e)):e()},g=(t,e=[],i=t)=>"function"==typeof t?t(...e):i,_=(t,e,n=!0)=>{if(!n)return void g(t);const o=(t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:i}=window.getComputedStyle(t);const n=Number.parseFloat(e),s=Number.parseFloat(i);return n||s?(e=e.split(",")[0],i=i.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(i))):0})(e)+5;let r=!1;const a=({target:n})=>{n===e&&(r=!0,e.removeEventListener(i,a),g(t))};e.addEventListener(i,a),setTimeout((()=>{r||s(e)}),o)},b=(t,e,i,n)=>{const s=t.length;let o=t.indexOf(e);return-1===o?!i&&n?t[s-1]:t[0]:(o+=i?1:-1,n&&(o=(o+s)%s),t[Math.max(0,Math.min(o,s-1))])},v=/[^.]*(?=\..*)\.|.*/,y=/\..*/,w=/::\d+$/,A={};let E=1;const T={mouseenter:"mouseover",mouseleave:"mouseout"},C=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"]);function O(t,e){return e&&`${e}::${E++}`||t.uidEvent||E++}function x(t){const e=O(t);return t.uidEvent=e,A[e]=A[e]||{},A[e]}function k(t,e,i=null){return Object.values(t).find((t=>t.callable===e&&t.delegationSelector===i))}function L(t,e,i){const n="string"==typeof e,s=n?i:e||i;let o=I(t);return C.has(o)||(o=t),[n,s,o]}function S(t,e,i,n,s){if("string"!=typeof e||!t)return;let[o,r,a]=L(e,i,n);if(e in T){const t=t=>function(e){if(!e.relatedTarget||e.relatedTarget!==e.delegateTarget&&!e.delegateTarget.contains(e.relatedTarget))return t.call(this,e)};r=t(r)}const l=x(t),c=l[a]||(l[a]={}),h=k(c,r,o?i:null);if(h)return void(h.oneOff=h.oneOff&&s);const d=O(r,e.replace(v,"")),u=o?function(t,e,i){return function n(s){const o=t.querySelectorAll(e);for(let{target:r}=s;r&&r!==this;r=r.parentNode)for(const a of o)if(a===r)return P(s,{delegateTarget:r}),n.oneOff&&N.off(t,s.type,e,i),i.apply(r,[s])}}(t,i,r):function(t,e){return function i(n){return P(n,{delegateTarget:t}),i.oneOff&&N.off(t,n.type,e),e.apply(t,[n])}}(t,r);u.delegationSelector=o?i:null,u.callable=r,u.oneOff=s,u.uidEvent=d,c[d]=u,t.addEventListener(a,u,o)}function D(t,e,i,n,s){const o=k(e[i],n,s);o&&(t.removeEventListener(i,o,Boolean(s)),delete e[i][o.uidEvent])}function $(t,e,i,n){const s=e[i]||{};for(const[o,r]of Object.entries(s))o.includes(n)&&D(t,e,i,r.callable,r.delegationSelector)}function I(t){return t=t.replace(y,""),T[t]||t}const N={on(t,e,i,n){S(t,e,i,n,!1)},one(t,e,i,n){S(t,e,i,n,!0)},off(t,e,i,n){if("string"!=typeof e||!t)return;const[s,o,r]=L(e,i,n),a=r!==e,l=x(t),c=l[r]||{},h=e.startsWith(".");if(void 0===o){if(h)for(const i of Object.keys(l))$(t,l,i,e.slice(1));for(const[i,n]of Object.entries(c)){const s=i.replace(w,"");a&&!e.includes(s)||D(t,l,r,n.callable,n.delegationSelector)}}else{if(!Object.keys(c).length)return;D(t,l,r,o,s?i:null)}},trigger(t,e,i){if("string"!=typeof e||!t)return null;const n=u();let s=null,o=!0,r=!0,a=!1;e!==I(e)&&n&&(s=n.Event(e,i),n(t).trigger(s),o=!s.isPropagationStopped(),r=!s.isImmediatePropagationStopped(),a=s.isDefaultPrevented());const l=P(new Event(e,{bubbles:o,cancelable:!0}),i);return a&&l.preventDefault(),r&&t.dispatchEvent(l),l.defaultPrevented&&s&&s.preventDefault(),l}};function P(t,e={}){for(const[i,n]of Object.entries(e))try{t[i]=n}catch(e){Object.defineProperty(t,i,{configurable:!0,get:()=>n})}return t}function j(t){if("true"===t)return!0;if("false"===t)return!1;if(t===Number(t).toString())return Number(t);if(""===t||"null"===t)return null;if("string"!=typeof t)return t;try{return JSON.parse(decodeURIComponent(t))}catch(e){return t}}function M(t){return t.replace(/[A-Z]/g,(t=>`-${t.toLowerCase()}`))}const F={setDataAttribute(t,e,i){t.setAttribute(`data-bs-${M(e)}`,i)},removeDataAttribute(t,e){t.removeAttribute(`data-bs-${M(e)}`)},getDataAttributes(t){if(!t)return{};const e={},i=Object.keys(t.dataset).filter((t=>t.startsWith("bs")&&!t.startsWith("bsConfig")));for(const n of i){let i=n.replace(/^bs/,"");i=i.charAt(0).toLowerCase()+i.slice(1,i.length),e[i]=j(t.dataset[n])}return e},getDataAttribute:(t,e)=>j(t.getAttribute(`data-bs-${M(e)}`))};class H{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(t){return t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t}_mergeConfigObj(t,e){const i=o(e)?F.getDataAttribute(e,"config"):{};return{...this.constructor.Default,..."object"==typeof i?i:{},...o(e)?F.getDataAttributes(e):{},..."object"==typeof t?t:{}}}_typeCheckConfig(t,e=this.constructor.DefaultType){for(const[n,s]of Object.entries(e)){const e=t[n],r=o(e)?"element":null==(i=e)?`${i}`:Object.prototype.toString.call(i).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(s).test(r))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${n}" provided type "${r}" but expected type "${s}".`)}var i}}class W extends H{constructor(t,i){super(),(t=r(t))&&(this._element=t,this._config=this._getConfig(i),e.set(this._element,this.constructor.DATA_KEY,this))}dispose(){e.remove(this._element,this.constructor.DATA_KEY),N.off(this._element,this.constructor.EVENT_KEY);for(const t of Object.getOwnPropertyNames(this))this[t]=null}_queueCallback(t,e,i=!0){_(t,e,i)}_getConfig(t){return t=this._mergeConfigObj(t,this._element),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}static getInstance(t){return e.get(r(t),this.DATA_KEY)}static getOrCreateInstance(t,e={}){return this.getInstance(t)||new this(t,"object"==typeof e?e:null)}static get VERSION(){return"5.3.3"}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(t){return`${t}${this.EVENT_KEY}`}}const B=t=>{let e=t.getAttribute("data-bs-target");if(!e||"#"===e){let i=t.getAttribute("href");if(!i||!i.includes("#")&&!i.startsWith("."))return null;i.includes("#")&&!i.startsWith("#")&&(i=`#${i.split("#")[1]}`),e=i&&"#"!==i?i.trim():null}return e?e.split(",").map((t=>n(t))).join(","):null},z={find:(t,e=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(e,t)),findOne:(t,e=document.documentElement)=>Element.prototype.querySelector.call(e,t),children:(t,e)=>[].concat(...t.children).filter((t=>t.matches(e))),parents(t,e){const i=[];let n=t.parentNode.closest(e);for(;n;)i.push(n),n=n.parentNode.closest(e);return i},prev(t,e){let i=t.previousElementSibling;for(;i;){if(i.matches(e))return[i];i=i.previousElementSibling}return[]},next(t,e){let i=t.nextElementSibling;for(;i;){if(i.matches(e))return[i];i=i.nextElementSibling}return[]},focusableChildren(t){const e=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map((t=>`${t}:not([tabindex^="-"])`)).join(",");return this.find(e,t).filter((t=>!l(t)&&a(t)))},getSelectorFromElement(t){const e=B(t);return e&&z.findOne(e)?e:null},getElementFromSelector(t){const e=B(t);return e?z.findOne(e):null},getMultipleElementsFromSelector(t){const e=B(t);return e?z.find(e):[]}},R=(t,e="hide")=>{const i=`click.dismiss${t.EVENT_KEY}`,n=t.NAME;N.on(document,i,`[data-bs-dismiss="${n}"]`,(function(i){if(["A","AREA"].includes(this.tagName)&&i.preventDefault(),l(this))return;const s=z.getElementFromSelector(this)||this.closest(`.${n}`);t.getOrCreateInstance(s)[e]()}))},q=".bs.alert",V=`close${q}`,K=`closed${q}`;class Q extends W{static get NAME(){return"alert"}close(){if(N.trigger(this._element,V).defaultPrevented)return;this._element.classList.remove("show");const t=this._element.classList.contains("fade");this._queueCallback((()=>this._destroyElement()),this._element,t)}_destroyElement(){this._element.remove(),N.trigger(this._element,K),this.dispose()}static jQueryInterface(t){return this.each((function(){const e=Q.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}R(Q,"close"),m(Q);const X='[data-bs-toggle="button"]';class Y extends W{static get NAME(){return"button"}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}static jQueryInterface(t){return this.each((function(){const e=Y.getOrCreateInstance(this);"toggle"===t&&e[t]()}))}}N.on(document,"click.bs.button.data-api",X,(t=>{t.preventDefault();const e=t.target.closest(X);Y.getOrCreateInstance(e).toggle()})),m(Y);const U=".bs.swipe",G=`touchstart${U}`,J=`touchmove${U}`,Z=`touchend${U}`,tt=`pointerdown${U}`,et=`pointerup${U}`,it={endCallback:null,leftCallback:null,rightCallback:null},nt={endCallback:"(function|null)",leftCallback:"(function|null)",rightCallback:"(function|null)"};class st extends H{constructor(t,e){super(),this._element=t,t&&st.isSupported()&&(this._config=this._getConfig(e),this._deltaX=0,this._supportPointerEvents=Boolean(window.PointerEvent),this._initEvents())}static get Default(){return it}static get DefaultType(){return nt}static get NAME(){return"swipe"}dispose(){N.off(this._element,U)}_start(t){this._supportPointerEvents?this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX):this._deltaX=t.touches[0].clientX}_end(t){this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX-this._deltaX),this._handleSwipe(),g(this._config.endCallback)}_move(t){this._deltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-this._deltaX}_handleSwipe(){const t=Math.abs(this._deltaX);if(t<=40)return;const e=t/this._deltaX;this._deltaX=0,e&&g(e>0?this._config.rightCallback:this._config.leftCallback)}_initEvents(){this._supportPointerEvents?(N.on(this._element,tt,(t=>this._start(t))),N.on(this._element,et,(t=>this._end(t))),this._element.classList.add("pointer-event")):(N.on(this._element,G,(t=>this._start(t))),N.on(this._element,J,(t=>this._move(t))),N.on(this._element,Z,(t=>this._end(t))))}_eventIsPointerPenTouch(t){return this._supportPointerEvents&&("pen"===t.pointerType||"touch"===t.pointerType)}static isSupported(){return"ontouchstart"in document.documentElement||navigator.maxTouchPoints>0}}const ot=".bs.carousel",rt=".data-api",at="next",lt="prev",ct="left",ht="right",dt=`slide${ot}`,ut=`slid${ot}`,ft=`keydown${ot}`,pt=`mouseenter${ot}`,mt=`mouseleave${ot}`,gt=`dragstart${ot}`,_t=`load${ot}${rt}`,bt=`click${ot}${rt}`,vt="carousel",yt="active",wt=".active",At=".carousel-item",Et=wt+At,Tt={ArrowLeft:ht,ArrowRight:ct},Ct={interval:5e3,keyboard:!0,pause:"hover",ride:!1,touch:!0,wrap:!0},Ot={interval:"(number|boolean)",keyboard:"boolean",pause:"(string|boolean)",ride:"(boolean|string)",touch:"boolean",wrap:"boolean"};class xt extends W{constructor(t,e){super(t,e),this._interval=null,this._activeElement=null,this._isSliding=!1,this.touchTimeout=null,this._swipeHelper=null,this._indicatorsElement=z.findOne(".carousel-indicators",this._element),this._addEventListeners(),this._config.ride===vt&&this.cycle()}static get Default(){return Ct}static get DefaultType(){return Ot}static get NAME(){return"carousel"}next(){this._slide(at)}nextWhenVisible(){!document.hidden&&a(this._element)&&this.next()}prev(){this._slide(lt)}pause(){this._isSliding&&s(this._element),this._clearInterval()}cycle(){this._clearInterval(),this._updateInterval(),this._interval=setInterval((()=>this.nextWhenVisible()),this._config.interval)}_maybeEnableCycle(){this._config.ride&&(this._isSliding?N.one(this._element,ut,(()=>this.cycle())):this.cycle())}to(t){const e=this._getItems();if(t>e.length-1||t<0)return;if(this._isSliding)return void N.one(this._element,ut,(()=>this.to(t)));const i=this._getItemIndex(this._getActive());if(i===t)return;const n=t>i?at:lt;this._slide(n,e[t])}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_configAfterMerge(t){return t.defaultInterval=t.interval,t}_addEventListeners(){this._config.keyboard&&N.on(this._element,ft,(t=>this._keydown(t))),"hover"===this._config.pause&&(N.on(this._element,pt,(()=>this.pause())),N.on(this._element,mt,(()=>this._maybeEnableCycle()))),this._config.touch&&st.isSupported()&&this._addTouchEventListeners()}_addTouchEventListeners(){for(const t of z.find(".carousel-item img",this._element))N.on(t,gt,(t=>t.preventDefault()));const t={leftCallback:()=>this._slide(this._directionToOrder(ct)),rightCallback:()=>this._slide(this._directionToOrder(ht)),endCallback:()=>{"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout((()=>this._maybeEnableCycle()),500+this._config.interval))}};this._swipeHelper=new st(this._element,t)}_keydown(t){if(/input|textarea/i.test(t.target.tagName))return;const e=Tt[t.key];e&&(t.preventDefault(),this._slide(this._directionToOrder(e)))}_getItemIndex(t){return this._getItems().indexOf(t)}_setActiveIndicatorElement(t){if(!this._indicatorsElement)return;const e=z.findOne(wt,this._indicatorsElement);e.classList.remove(yt),e.removeAttribute("aria-current");const i=z.findOne(`[data-bs-slide-to="${t}"]`,this._indicatorsElement);i&&(i.classList.add(yt),i.setAttribute("aria-current","true"))}_updateInterval(){const t=this._activeElement||this._getActive();if(!t)return;const e=Number.parseInt(t.getAttribute("data-bs-interval"),10);this._config.interval=e||this._config.defaultInterval}_slide(t,e=null){if(this._isSliding)return;const i=this._getActive(),n=t===at,s=e||b(this._getItems(),i,n,this._config.wrap);if(s===i)return;const o=this._getItemIndex(s),r=e=>N.trigger(this._element,e,{relatedTarget:s,direction:this._orderToDirection(t),from:this._getItemIndex(i),to:o});if(r(dt).defaultPrevented)return;if(!i||!s)return;const a=Boolean(this._interval);this.pause(),this._isSliding=!0,this._setActiveIndicatorElement(o),this._activeElement=s;const l=n?"carousel-item-start":"carousel-item-end",c=n?"carousel-item-next":"carousel-item-prev";s.classList.add(c),d(s),i.classList.add(l),s.classList.add(l),this._queueCallback((()=>{s.classList.remove(l,c),s.classList.add(yt),i.classList.remove(yt,c,l),this._isSliding=!1,r(ut)}),i,this._isAnimated()),a&&this.cycle()}_isAnimated(){return this._element.classList.contains("slide")}_getActive(){return z.findOne(Et,this._element)}_getItems(){return z.find(At,this._element)}_clearInterval(){this._interval&&(clearInterval(this._interval),this._interval=null)}_directionToOrder(t){return p()?t===ct?lt:at:t===ct?at:lt}_orderToDirection(t){return p()?t===lt?ct:ht:t===lt?ht:ct}static jQueryInterface(t){return this.each((function(){const e=xt.getOrCreateInstance(this,t);if("number"!=typeof t){if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}else e.to(t)}))}}N.on(document,bt,"[data-bs-slide], [data-bs-slide-to]",(function(t){const e=z.getElementFromSelector(this);if(!e||!e.classList.contains(vt))return;t.preventDefault();const i=xt.getOrCreateInstance(e),n=this.getAttribute("data-bs-slide-to");return n?(i.to(n),void i._maybeEnableCycle()):"next"===F.getDataAttribute(this,"slide")?(i.next(),void i._maybeEnableCycle()):(i.prev(),void i._maybeEnableCycle())})),N.on(window,_t,(()=>{const t=z.find('[data-bs-ride="carousel"]');for(const e of t)xt.getOrCreateInstance(e)})),m(xt);const kt=".bs.collapse",Lt=`show${kt}`,St=`shown${kt}`,Dt=`hide${kt}`,$t=`hidden${kt}`,It=`click${kt}.data-api`,Nt="show",Pt="collapse",jt="collapsing",Mt=`:scope .${Pt} .${Pt}`,Ft='[data-bs-toggle="collapse"]',Ht={parent:null,toggle:!0},Wt={parent:"(null|element)",toggle:"boolean"};class Bt extends W{constructor(t,e){super(t,e),this._isTransitioning=!1,this._triggerArray=[];const i=z.find(Ft);for(const t of i){const e=z.getSelectorFromElement(t),i=z.find(e).filter((t=>t===this._element));null!==e&&i.length&&this._triggerArray.push(t)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return Ht}static get DefaultType(){return Wt}static get NAME(){return"collapse"}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t=[];if(this._config.parent&&(t=this._getFirstLevelChildren(".collapse.show, .collapse.collapsing").filter((t=>t!==this._element)).map((t=>Bt.getOrCreateInstance(t,{toggle:!1})))),t.length&&t[0]._isTransitioning)return;if(N.trigger(this._element,Lt).defaultPrevented)return;for(const e of t)e.hide();const e=this._getDimension();this._element.classList.remove(Pt),this._element.classList.add(jt),this._element.style[e]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const i=`scroll${e[0].toUpperCase()+e.slice(1)}`;this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(jt),this._element.classList.add(Pt,Nt),this._element.style[e]="",N.trigger(this._element,St)}),this._element,!0),this._element.style[e]=`${this._element[i]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(N.trigger(this._element,Dt).defaultPrevented)return;const t=this._getDimension();this._element.style[t]=`${this._element.getBoundingClientRect()[t]}px`,d(this._element),this._element.classList.add(jt),this._element.classList.remove(Pt,Nt);for(const t of this._triggerArray){const e=z.getElementFromSelector(t);e&&!this._isShown(e)&&this._addAriaAndCollapsedClass([t],!1)}this._isTransitioning=!0,this._element.style[t]="",this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(jt),this._element.classList.add(Pt),N.trigger(this._element,$t)}),this._element,!0)}_isShown(t=this._element){return t.classList.contains(Nt)}_configAfterMerge(t){return t.toggle=Boolean(t.toggle),t.parent=r(t.parent),t}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const t=this._getFirstLevelChildren(Ft);for(const e of t){const t=z.getElementFromSelector(e);t&&this._addAriaAndCollapsedClass([e],this._isShown(t))}}_getFirstLevelChildren(t){const e=z.find(Mt,this._config.parent);return z.find(t,this._config.parent).filter((t=>!e.includes(t)))}_addAriaAndCollapsedClass(t,e){if(t.length)for(const i of t)i.classList.toggle("collapsed",!e),i.setAttribute("aria-expanded",e)}static jQueryInterface(t){const e={};return"string"==typeof t&&/show|hide/.test(t)&&(e.toggle=!1),this.each((function(){const i=Bt.getOrCreateInstance(this,e);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t]()}}))}}N.on(document,It,Ft,(function(t){("A"===t.target.tagName||t.delegateTarget&&"A"===t.delegateTarget.tagName)&&t.preventDefault();for(const t of z.getMultipleElementsFromSelector(this))Bt.getOrCreateInstance(t,{toggle:!1}).toggle()})),m(Bt);var zt="top",Rt="bottom",qt="right",Vt="left",Kt="auto",Qt=[zt,Rt,qt,Vt],Xt="start",Yt="end",Ut="clippingParents",Gt="viewport",Jt="popper",Zt="reference",te=Qt.reduce((function(t,e){return t.concat([e+"-"+Xt,e+"-"+Yt])}),[]),ee=[].concat(Qt,[Kt]).reduce((function(t,e){return t.concat([e,e+"-"+Xt,e+"-"+Yt])}),[]),ie="beforeRead",ne="read",se="afterRead",oe="beforeMain",re="main",ae="afterMain",le="beforeWrite",ce="write",he="afterWrite",de=[ie,ne,se,oe,re,ae,le,ce,he];
vendor: 18,133 bytes, line 9
9function ue(t){return t?(t.nodeName||"").toLowerCase():null}function fe(t){if(null==t)return window;if("[object Window]"!==t.toString()){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function pe(t){return t instanceof fe(t).Element||t instanceof Element}function me(t){return t instanceof fe(t).HTMLElement||t instanceof HTMLElement}function ge(t){return"undefined"!=typeof ShadowRoot&&(t instanceof fe(t).ShadowRoot||t instanceof ShadowRoot)}const _e={name:"applyStyles",enabled:!0,phase:"write",fn:function(t){var e=t.state;Object.keys(e.elements).forEach((function(t){var i=e.styles[t]||{},n=e.attributes[t]||{},s=e.elements[t];me(s)&&ue(s)&&(Object.assign(s.style,i),Object.keys(n).forEach((function(t){var e=n[t];!1===e?s.removeAttribute(t):s.setAttribute(t,!0===e?"":e)})))}))},effect:function(t){var e=t.state,i={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,i.popper),e.styles=i,e.elements.arrow&&Object.assign(e.elements.arrow.style,i.arrow),function(){Object.keys(e.elements).forEach((function(t){var n=e.elements[t],s=e.attributes[t]||{},o=Object.keys(e.styles.hasOwnProperty(t)?e.styles[t]:i[t]).reduce((function(t,e){return t[e]="",t}),{});me(n)&&ue(n)&&(Object.assign(n.style,o),Object.keys(s).forEach((function(t){n.removeAttribute(t)})))}))}},requires:["computeStyles"]};function be(t){return t.split("-")[0]}var ve=Math.max,ye=Math.min,we=Math.round;function Ae(){var t=navigator.userAgentData;return null!=t&&t.brands&&Array.isArray(t.brands)?t.brands.map((function(t){return t.brand+"/"+t.version})).join(" "):navigator.userAgent}function Ee(){return!/^((?!chrome|android).)*safari/i.test(Ae())}function Te(t,e,i){void 0===e&&(e=!1),void 0===i&&(i=!1);var n=t.getBoundingClientRect(),s=1,o=1;e&&me(t)&&(s=t.offsetWidth>0&&we(n.width)/t.offsetWidth||1,o=t.offsetHeight>0&&we(n.height)/t.offsetHeight||1);var r=(pe(t)?fe(t):window).visualViewport,a=!Ee()&&i,l=(n.left+(a&&r?r.offsetLeft:0))/s,c=(n.top+(a&&r?r.offsetTop:0))/o,h=n.width/s,d=n.height/o;return{width:h,height:d,top:c,right:l+h,bottom:c+d,left:l,x:l,y:c}}function Ce(t){var e=Te(t),i=t.offsetWidth,n=t.offsetHeight;return Math.abs(e.width-i)<=1&&(i=e.width),Math.abs(e.height-n)<=1&&(n=e.height),{x:t.offsetLeft,y:t.offsetTop,width:i,height:n}}function Oe(t,e){var i=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(i&&ge(i)){var n=e;do{if(n&&t.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function xe(t){return fe(t).getComputedStyle(t)}function ke(t){return["table","td","th"].indexOf(ue(t))>=0}function Le(t){return((pe(t)?t.ownerDocument:t.document)||window.document).documentElement}function Se(t){return"html"===ue(t)?t:t.assignedSlot||t.parentNode||(ge(t)?t.host:null)||Le(t)}function De(t){return me(t)&&"fixed"!==xe(t).position?t.offsetParent:null}function $e(t){for(var e=fe(t),i=De(t);i&&ke(i)&&"static"===xe(i).position;)i=De(i);return i&&("html"===ue(i)||"body"===ue(i)&&"static"===xe(i).position)?e:i||function(t){var e=/firefox/i.test(Ae());if(/Trident/i.test(Ae())&&me(t)&&"fixed"===xe(t).position)return null;var i=Se(t);for(ge(i)&&(i=i.host);me(i)&&["html","body"].indexOf(ue(i))<0;){var n=xe(i);if("none"!==n.transform||"none"!==n.perspective||"paint"===n.contain||-1!==["transform","perspective"].indexOf(n.willChange)||e&&"filter"===n.willChange||e&&n.filter&&"none"!==n.filter)return i;i=i.parentNode}return null}(t)||e}function Ie(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function Ne(t,e,i){return ve(t,ye(e,i))}function Pe(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function je(t,e){return e.reduce((function(e,i){return e[i]=t,e}),{})}const Me={name:"arrow",enabled:!0,phase:"main",fn:function(t){var e,i=t.state,n=t.name,s=t.options,o=i.elements.arrow,r=i.modifiersData.popperOffsets,a=be(i.placement),l=Ie(a),c=[Vt,qt].indexOf(a)>=0?"height":"width";if(o&&r){var h=function(t,e){return Pe("number"!=typeof(t="function"==typeof t?t(Object.assign({},e.rects,{placement:e.placement})):t)?t:je(t,Qt))}(s.padding,i),d=Ce(o),u="y"===l?zt:Vt,f="y"===l?Rt:qt,p=i.rects.reference[c]+i.rects.reference[l]-r[l]-i.rects.popper[c],m=r[l]-i.rects.reference[l],g=$e(o),_=g?"y"===l?g.clientHeight||0:g.clientWidth||0:0,b=p/2-m/2,v=h[u],y=_-d[c]-h[f],w=_/2-d[c]/2+b,A=Ne(v,w,y),E=l;i.modifiersData[n]=((e={})[E]=A,e.centerOffset=A-w,e)}},effect:function(t){var e=t.state,i=t.options.element,n=void 0===i?"[data-popper-arrow]":i;null!=n&&("string"!=typeof n||(n=e.elements.popper.querySelector(n)))&&Oe(e.elements.popper,n)&&(e.elements.arrow=n)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Fe(t){return t.split("-")[1]}var He={top:"auto",right:"auto",bottom:"auto",left:"auto"};function We(t){var e,i=t.popper,n=t.popperRect,s=t.placement,o=t.variation,r=t.offsets,a=t.position,l=t.gpuAcceleration,c=t.adaptive,h=t.roundOffsets,d=t.isFixed,u=r.x,f=void 0===u?0:u,p=r.y,m=void 0===p?0:p,g="function"==typeof h?h({x:f,y:m}):{x:f,y:m};f=g.x,m=g.y;var _=r.hasOwnProperty("x"),b=r.hasOwnProperty("y"),v=Vt,y=zt,w=window;if(c){var A=$e(i),E="clientHeight",T="clientWidth";A===fe(i)&&"static"!==xe(A=Le(i)).position&&"absolute"===a&&(E="scrollHeight",T="scrollWidth"),(s===zt||(s===Vt||s===qt)&&o===Yt)&&(y=Rt,m-=(d&&A===w&&w.visualViewport?w.visualViewport.height:A[E])-n.height,m*=l?1:-1),s!==Vt&&(s!==zt&&s!==Rt||o!==Yt)||(v=qt,f-=(d&&A===w&&w.visualViewport?w.visualViewport.width:A[T])-n.width,f*=l?1:-1)}var C,O=Object.assign({position:a},c&&He),x=!0===h?function(t,e){var i=t.x,n=t.y,s=e.devicePixelRatio||1;return{x:we(i*s)/s||0,y:we(n*s)/s||0}}({x:f,y:m},fe(i)):{x:f,y:m};return f=x.x,m=x.y,l?Object.assign({},O,((C={})[y]=b?"0":"",C[v]=_?"0":"",C.transform=(w.devicePixelRatio||1)<=1?"translate("+f+"px, "+m+"px)":"translate3d("+f+"px, "+m+"px, 0)",C)):Object.assign({},O,((e={})[y]=b?m+"px":"",e[v]=_?f+"px":"",e.transform="",e))}const Be={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(t){var e=t.state,i=t.options,n=i.gpuAcceleration,s=void 0===n||n,o=i.adaptive,r=void 0===o||o,a=i.roundOffsets,l=void 0===a||a,c={placement:be(e.placement),variation:Fe(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:s,isFixed:"fixed"===e.options.strategy};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,We(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:r,roundOffsets:l})))),null!=e.modifiersData.arrow&&(e.styles.arrow=Object.assign({},e.styles.arrow,We(Object.assign({},c,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})},data:{}};var ze={passive:!0};const Re={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(t){var e=t.state,i=t.instance,n=t.options,s=n.scroll,o=void 0===s||s,r=n.resize,a=void 0===r||r,l=fe(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return o&&c.forEach((function(t){t.addEventListener("scroll",i.update,ze)})),a&&l.addEventListener("resize",i.update,ze),function(){o&&c.forEach((function(t){t.removeEventListener("scroll",i.update,ze)})),a&&l.removeEventListener("resize",i.update,ze)}},data:{}};var qe={left:"right",right:"left",bottom:"top",top:"bottom"};function Ve(t){return t.replace(/left|right|bottom|top/g,(function(t){return qe[t]}))}var Ke={start:"end",end:"start"};function Qe(t){return t.replace(/start|end/g,(function(t){return Ke[t]}))}function Xe(t){var e=fe(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function Ye(t){return Te(Le(t)).left+Xe(t).scrollLeft}function Ue(t){var e=xe(t),i=e.overflow,n=e.overflowX,s=e.overflowY;return/auto|scroll|overlay|hidden/.test(i+s+n)}function Ge(t){return["html","body","#document"].indexOf(ue(t))>=0?t.ownerDocument.body:me(t)&&Ue(t)?t:Ge(Se(t))}function Je(t,e){var i;void 0===e&&(e=[]);var n=Ge(t),s=n===(null==(i=t.ownerDocument)?void 0:i.body),o=fe(n),r=s?[o].concat(o.visualViewport||[],Ue(n)?n:[]):n,a=e.concat(r);return s?a:a.concat(Je(Se(r)))}function Ze(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function ti(t,e,i){return e===Gt?Ze(function(t,e){var i=fe(t),n=Le(t),s=i.visualViewport,o=n.clientWidth,r=n.clientHeight,a=0,l=0;if(s){o=s.width,r=s.height;var c=Ee();(c||!c&&"fixed"===e)&&(a=s.offsetLeft,l=s.offsetTop)}return{width:o,height:r,x:a+Ye(t),y:l}}(t,i)):pe(e)?function(t,e){var i=Te(t,!1,"fixed"===e);return i.top=i.top+t.clientTop,i.left=i.left+t.clientLeft,i.bottom=i.top+t.clientHeight,i.right=i.left+t.clientWidth,i.width=t.clientWidth,i.height=t.clientHeight,i.x=i.left,i.y=i.top,i}(e,i):Ze(function(t){var e,i=Le(t),n=Xe(t),s=null==(e=t.ownerDocument)?void 0:e.body,o=ve(i.scrollWidth,i.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),r=ve(i.scrollHeight,i.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),a=-n.scrollLeft+Ye(t),l=-n.scrollTop;return"rtl"===xe(s||i).direction&&(a+=ve(i.clientWidth,s?s.clientWidth:0)-o),{width:o,height:r,x:a,y:l}}(Le(t)))}function ei(t){var e,i=t.reference,n=t.element,s=t.placement,o=s?be(s):null,r=s?Fe(s):null,a=i.x+i.width/2-n.width/2,l=i.y+i.height/2-n.height/2;switch(o){case zt:e={x:a,y:i.y-n.height};break;case Rt:e={x:a,y:i.y+i.height};break;case qt:e={x:i.x+i.width,y:l};break;case Vt:e={x:i.x-n.width,y:l};break;default:e={x:i.x,y:i.y}}var c=o?Ie(o):null;if(null!=c){var h="y"===c?"height":"width";switch(r){case Xt:e[c]=e[c]-(i[h]/2-n[h]/2);break;case Yt:e[c]=e[c]+(i[h]/2-n[h]/2)}}return e}function ii(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=void 0===n?t.placement:n,o=i.strategy,r=void 0===o?t.strategy:o,a=i.boundary,l=void 0===a?Ut:a,c=i.rootBoundary,h=void 0===c?Gt:c,d=i.elementContext,u=void 0===d?Jt:d,f=i.altBoundary,p=void 0!==f&&f,m=i.padding,g=void 0===m?0:m,_=Pe("number"!=typeof g?g:je(g,Qt)),b=u===Jt?Zt:Jt,v=t.rects.popper,y=t.elements[p?b:u],w=function(t,e,i,n){var s="clippingParents"===e?function(t){var e=Je(Se(t)),i=["absolute","fixed"].indexOf(xe(t).position)>=0&&me(t)?$e(t):t;return pe(i)?e.filter((function(t){return pe(t)&&Oe(t,i)&&"body"!==ue(t)})):[]}(t):[].concat(e),o=[].concat(s,[i]),r=o[0],a=o.reduce((function(e,i){var s=ti(t,i,n);return e.top=ve(s.top,e.top),e.right=ye(s.right,e.right),e.bottom=ye(s.bottom,e.bottom),e.left=ve(s.left,e.left),e}),ti(t,r,n));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}(pe(y)?y:y.contextElement||Le(t.elements.popper),l,h,r),A=Te(t.elements.reference),E=ei({reference:A,element:v,strategy:"absolute",placement:s}),T=Ze(Object.assign({},v,E)),C=u===Jt?T:A,O={top:w.top-C.top+_.top,bottom:C.bottom-w.bottom+_.bottom,left:w.left-C.left+_.left,right:C.right-w.right+_.right},x=t.modifiersData.offset;if(u===Jt&&x){var k=x[s];Object.keys(O).forEach((function(t){var e=[qt,Rt].indexOf(t)>=0?1:-1,i=[zt,Rt].indexOf(t)>=0?"y":"x";O[t]+=k[i]*e}))}return O}function ni(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=i.boundary,o=i.rootBoundary,r=i.padding,a=i.flipVariations,l=i.allowedAutoPlacements,c=void 0===l?ee:l,h=Fe(n),d=h?a?te:te.filter((function(t){return Fe(t)===h})):Qt,u=d.filter((function(t){return c.indexOf(t)>=0}));0===u.length&&(u=d);var f=u.reduce((function(e,i){return e[i]=ii(t,{placement:i,boundary:s,rootBoundary:o,padding:r})[be(i)],e}),{});return Object.keys(f).sort((function(t,e){return f[t]-f[e]}))}const si={name:"flip",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name;if(!e.modifiersData[n]._skip){for(var s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0===r||r,l=i.fallbackPlacements,c=i.padding,h=i.boundary,d=i.rootBoundary,u=i.altBoundary,f=i.flipVariations,p=void 0===f||f,m=i.allowedAutoPlacements,g=e.options.placement,_=be(g),b=l||(_!==g&&p?function(t){if(be(t)===Kt)return[];var e=Ve(t);return[Qe(t),e,Qe(e)]}(g):[Ve(g)]),v=[g].concat(b).reduce((function(t,i){return t.concat(be(i)===Kt?ni(e,{placement:i,boundary:h,rootBoundary:d,padding:c,flipVariations:p,allowedAutoPlacements:m}):i)}),[]),y=e.rects.reference,w=e.rects.popper,A=new Map,E=!0,T=v[0],C=0;C<v.length;C++){var O=v[C],x=be(O),k=Fe(O)===Xt,L=[zt,Rt].indexOf(x)>=0,S=L?"width":"height",D=ii(e,{placement:O,boundary:h,rootBoundary:d,altBoundary:u,padding:c}),$=L?k?qt:Vt:k?Rt:zt;y[S]>w[S]&&($=Ve($));var I=Ve($),N=[];if(o&&N.push(D[x]<=0),a&&N.push(D[$]<=0,D[I]<=0),N.every((function(t){return t}))){T=O,E=!1;break}A.set(O,N)}if(E)for(var P=function(t){var e=v.find((function(e){var i=A.get(e);if(i)return i.slice(0,t).every((function(t){return t}))}));if(e)return T=e,"break"},j=p?3:1;j>0&&"break"!==P(j);j--);e.placement!==T&&(e.modifiersData[n]._skip=!0,e.placement=T,e.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function oi(t,e,i){return void 0===i&&(i={x:0,y:0}),{top:t.top-e.height-i.y,right:t.right-e.width+i.x,bottom:t.bottom-e.height+i.y,left:t.left-e.width-i.x}}function ri(t){return[zt,qt,Rt,Vt].some((function(e){return t[e]>=0}))}const ai={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(t){var e=t.state,i=t.name,n=e.rects.reference,s=e.rects.popper,o=e.modifiersData.preventOverflow,r=ii(e,{elementContext:"reference"}),a=ii(e,{altBoundary:!0}),l=oi(r,n),c=oi(a,s,o),h=ri(l),d=ri(c);e.modifiersData[i]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:h,hasPopperEscaped:d},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":h,"data-popper-escaped":d})}},li={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.offset,o=void 0===s?[0,0]:s,r=ee.reduce((function(t,i){return t[i]=function(t,e,i){var n=be(t),s=[Vt,zt].indexOf(n)>=0?-1:1,o="function"==typeof i?i(Object.assign({},e,{placement:t})):i,r=o[0],a=o[1];return r=r||0,a=(a||0)*s,[Vt,qt].indexOf(n)>=0?{x:a,y:r}:{x:r,y:a}}(i,e.rects,o),t}),{}),a=r[e.placement],l=a.x,c=a.y;null!=e.modifiersData.popperOffsets&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=c),e.modifiersData[n]=r}},ci={name:"popperOffsets",enabled:!0,phase:"read",fn:function(t){var e=t.state,i=t.name;e.modifiersData[i]=ei({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})},data:{}},hi={name:"preventOverflow",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0!==r&&r,l=i.boundary,c=i.rootBoundary,h=i.altBoundary,d=i.padding,u=i.tether,f=void 0===u||u,p=i.tetherOffset,m=void 0===p?0:p,g=ii(e,{boundary:l,rootBoundary:c,padding:d,altBoundary:h}),_=be(e.placement),b=Fe(e.placement),v=!b,y=Ie(_),w="x"===y?"y":"x",A=e.modifiersData.popperOffsets,E=e.rects.reference,T=e.rects.popper,C="function"==typeof m?m(Object.assign({},e.rects,{placement:e.placement})):m,O="number"==typeof C?{mainAxis:C,altAxis:C}:Object.assign({mainAxis:0,altAxis:0},C),x=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,k={x:0,y:0};if(A){if(o){var L,S="y"===y?zt:Vt,D="y"===y?Rt:qt,$="y"===y?"height":"width",I=A[y],N=I+g[S],P=I-g[D],j=f?-T[$]/2:0,M=b===Xt?E[$]:T[$],F=b===Xt?-T[$]:-E[$],H=e.elements.arrow,W=f&&H?Ce(H):{width:0,height:0},B=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},z=B[S],R=B[D],q=Ne(0,E[$],W[$]),V=v?E[$]/2-j-q-z-O.mainAxis:M-q-z-O.mainAxis,K=v?-E[$]/2+j+q+R+O.mainAxis:F+q+R+O.mainAxis,Q=e.elements.arrow&&$e(e.elements.arrow),X=Q?"y"===y?Q.clientTop||0:Q.clientLeft||0:0,Y=null!=(L=null==x?void 0:x[y])?L:0,U=I+K-Y,G=Ne(f?ye(N,I+V-Y-X):N,I,f?ve(P,U):P);A[y]=G,k[y]=G-I}if(a){var J,Z="x"===y?zt:Vt,tt="x"===y?Rt:qt,et=A[w],it="y"===w?"height":"width",nt=et+g[Z],st=et-g[tt],ot=-1!==[zt,Vt].indexOf(_),rt=null!=(J=null==x?void 0:x[w])?J:0,at=ot?nt:et-E[it]-T[it]-rt+O.altAxis,lt=ot?et+E[it]+T[it]-rt-O.altAxis:st,ct=f&&ot?function(t,e,i){var n=Ne(t,e,i);return n>i?i:n}(at,et,lt):Ne(f?at:nt,et,f?lt:st);A[w]=ct,k[w]=ct-et}e.modifiersData[n]=k}},requiresIfExists:["offset"]};function di(t,e,i){void 0===i&&(i=!1);var n,s,o=me(e),r=me(e)&&function(t){var e=t.getBoundingClientRect(),i=we(e.width)/t.offsetWidth||1,n=we(e.height)/t.offsetHeight||1;return 1!==i||1!==n}(e),a=Le(e),l=Te(t,r,i),c={scrollLeft:0,scrollTop:0},h={x:0,y:0};return(o||!o&&!i)&&(("body"!==ue(e)||Ue(a))&&(c=(n=e)!==fe(n)&&me(n)?{scrollLeft:(s=n).scrollLeft,scrollTop:s.scrollTop}:Xe(n)),me(e)?((h=Te(e,!0)).x+=e.clientLeft,h.y+=e.clientTop):a&&(h.x=Ye(a))),{x:l.left+c.scrollLeft-h.x,y:l.top+c.scrollTop-h.y,width:l.width,height:l.height}}function ui(t){var e=new Map,i=new Set,n=[];function s(t){i.add(t.name),[].concat(t.requires||[],t.requiresIfExists||[]).forEach((function(t){if(!i.has(t)){var n=e.get(t);n&&s(n)}})),n.push(t)}return t.forEach((function(t){e.set(t.name,t)})),t.forEach((function(t){i.has(t.name)||s(t)})),n}var fi={placement:"bottom",modifiers:[],strategy:"absolute"};function pi(){for(var t=arguments.length,e=new Array(t),i=0;i<t;i++)e[i]=arguments[i];return!e.some((function(t){return!(t&&"function"==typeof t.getBoundingClientRect)}))}function mi(t){void 0===t&&(t={});var e=t,i=e.defaultModifiers,n=void 0===i?[]:i,s=e.defaultOptions,o=void 0===s?fi:s;return function(t,e,i){void 0===i&&(i=o);var s,r,a={placement:"bottom",orderedModifiers:[],options:Object.assign({},fi,o),modifiersData:{},elements:{reference:t,popper:e},attributes:{},styles:{}},l=[],c=!1,h={state:a,setOptions:function(i){var s="function"==typeof i?i(a.options):i;d(),a.options=Object.assign({},o,a.options,s),a.scrollParents={reference:pe(t)?Je(t):t.contextElement?Je(t.contextElement):[],popper:Je(e)};var r,c,u=function(t){var e=ui(t);return de.reduce((function(t,i){return t.concat(e.filter((function(t){return t.phase===i})))}),[])}((r=[].concat(n,a.options.modifiers),c=r.reduce((function(t,e){var i=t[e.name];return t[e.name]=i?Object.assign({},i,e,{options:Object.assign({},i.options,e.options),data:Object.assign({},i.data,e.data)}):e,t}),{}),Object.keys(c).map((function(t){return c[t]}))));return a.orderedModifiers=u.filter((function(t){return t.enabled}
vendor: 5,266 bytes, line 9
9)),a.orderedModifiers.forEach((function(t){var e=t.name,i=t.options,n=void 0===i?{}:i,s=t.effect;if("function"==typeof s){var o=s({state:a,name:e,instance:h,options:n});l.push(o||function(){})}})),h.update()},forceUpdate:function(){if(!c){var t=a.elements,e=t.reference,i=t.popper;if(pi(e,i)){a.rects={reference:di(e,$e(i),"fixed"===a.options.strategy),popper:Ce(i)},a.reset=!1,a.placement=a.options.placement,a.orderedModifiers.forEach((function(t){return a.modifiersData[t.name]=Object.assign({},t.data)}));for(var n=0;n<a.orderedModifiers.length;n++)if(!0!==a.reset){var s=a.orderedModifiers[n],o=s.fn,r=s.options,l=void 0===r?{}:r,d=s.name;"function"==typeof o&&(a=o({state:a,options:l,name:d,instance:h})||a)}else a.reset=!1,n=-1}}},update:(s=function(){return new Promise((function(t){h.forceUpdate(),t(a)}))},function(){return r||(r=new Promise((function(t){Promise.resolve().then((function(){r=void 0,t(s())}))}))),r}),destroy:function(){d(),c=!0}};if(!pi(t,e))return h;function d(){l.forEach((function(t){return t()})),l=[]}return h.setOptions(i).then((function(t){!c&&i.onFirstUpdate&&i.onFirstUpdate(t)})),h}}var gi=mi(),_i=mi({defaultModifiers:[Re,ci,Be,_e]}),bi=mi({defaultModifiers:[Re,ci,Be,_e,li,si,hi,Me,ai]});const vi=Object.freeze(Object.defineProperty({__proto__:null,afterMain:ae,afterRead:se,afterWrite:he,applyStyles:_e,arrow:Me,auto:Kt,basePlacements:Qt,beforeMain:oe,beforeRead:ie,beforeWrite:le,bottom:Rt,clippingParents:Ut,computeStyles:Be,createPopper:bi,createPopperBase:gi,createPopperLite:_i,detectOverflow:ii,end:Yt,eventListeners:Re,flip:si,hide:ai,left:Vt,main:re,modifierPhases:de,offset:li,placements:ee,popper:Jt,popperGenerator:mi,popperOffsets:ci,preventOverflow:hi,read:ne,reference:Zt,right:qt,start:Xt,top:zt,variationPlacements:te,viewport:Gt,write:ce},Symbol.toStringTag,{value:"Module"})),yi="dropdown",wi=".bs.dropdown",Ai=".data-api",Ei="ArrowUp",Ti="ArrowDown",Ci=`hide${wi}`,Oi=`hidden${wi}`,xi=`show${wi}`,ki=`shown${wi}`,Li=`click${wi}${Ai}`,Si=`keydown${wi}${Ai}`,Di=`keyup${wi}${Ai}`,$i="show",Ii='[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)',Ni=`${Ii}.${$i}`,Pi=".dropdown-menu",ji=p()?"top-end":"top-start",Mi=p()?"top-start":"top-end",Fi=p()?"bottom-end":"bottom-start",Hi=p()?"bottom-start":"bottom-end",Wi=p()?"left-start":"right-start",Bi=p()?"right-start":"left-start",zi={autoClose:!0,boundary:"clippingParents",display:"dynamic",offset:[0,2],popperConfig:null,reference:"toggle"},Ri={autoClose:"(boolean|string)",boundary:"(string|element)",display:"string",offset:"(array|string|function)",popperConfig:"(null|object|function)",reference:"(string|element|object)"};class qi extends W{constructor(t,e){super(t,e),this._popper=null,this._parent=this._element.parentNode,this._menu=z.next(this._element,Pi)[0]||z.prev(this._element,Pi)[0]||z.findOne(Pi,this._parent),this._inNavbar=this._detectNavbar()}static get Default(){return zi}static get DefaultType(){return Ri}static get NAME(){return yi}toggle(){return this._isShown()?this.hide():this.show()}show(){if(l(this._element)||this._isShown())return;const t={relatedTarget:this._element};if(!N.trigger(this._element,xi,t).defaultPrevented){if(this._createPopper(),"ontouchstart"in document.documentElement&&!this._parent.closest(".navbar-nav"))for(const t of[].concat(...document.body.children))N.on(t,"mouseover",h);this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.add($i),this._element.classList.add($i),N.trigger(this._element,ki,t)}}hide(){if(l(this._element)||!this._isShown())return;const t={relatedTarget:this._element};this._completeHide(t)}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_completeHide(t){if(!N.trigger(this._element,Ci,t).defaultPrevented){if("ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))N.off(t,"mouseover",h);this._popper&&this._popper.destroy(),this._menu.classList.remove($i),this._element.classList.remove($i),this._element.setAttribute("aria-expanded","false"),F.removeDataAttribute(this._menu,"popper"),N.trigger(this._element,Oi,t)}}_getConfig(t){if("object"==typeof(t=super._getConfig(t)).reference&&!o(t.reference)&&"function"!=typeof t.reference.getBoundingClientRect)throw new TypeError(`${yi.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);return t}_createPopper(){if(void 0===vi)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let t=this._element;"parent"===this._config.reference?t=this._parent:o(this._config.reference)?t=r(this._config.reference):"object"==typeof this._config.reference&&(t=this._config.reference);const e=this._getPopperConfig();this._popper=bi(t,this._menu,e)}_isShown(){return this._menu.classList.contains($i)}_getPlacement(){const t=this._parent;if(t.classList.contains("dropend"))return Wi;if(t.classList.contains("dropstart"))return Bi;if(t.classList.contains("dropup-center"))return"top";if(t.classList.contains("dropdown-center"))return"bottom";const e="end"===getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();return t.classList.contains("dropup")?e?Mi:ji:e?Hi:Fi}
vendor: 10,248 bytes, line 9
9_detectNavbar(){return null!==this._element.closest(".navbar")}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return(this._inNavbar||"static"===this._config.display)&&(F.setDataAttribute(this._menu,"popper","static"),t.modifiers=[{name:"applyStyles",enabled:!1}]),{...t,...g(this._config.popperConfig,[t])}}_selectMenuItem({key:t,target:e}){const i=z.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter((t=>a(t)));i.length&&b(i,e,t===Ti,!i.includes(e)).focus()}static jQueryInterface(t){return this.each((function(){const e=qi.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}static clearMenus(t){if(2===t.button||"keyup"===t.type&&"Tab"!==t.key)return;const e=z.find(Ni);for(const i of e){const e=qi.getInstance(i);if(!e||!1===e._config.autoClose)continue;const n=t.composedPath(),s=n.includes(e._menu);if(n.includes(e._element)||"inside"===e._config.autoClose&&!s||"outside"===e._config.autoClose&&s)continue;if(e._menu.contains(t.target)&&("keyup"===t.type&&"Tab"===t.key||/input|select|option|textarea|form/i.test(t.target.tagName)))continue;const o={relatedTarget:e._element};"click"===t.type&&(o.clickEvent=t),e._completeHide(o)}}static dataApiKeydownHandler(t){const e=/input|textarea/i.test(t.target.tagName),i="Escape"===t.key,n=[Ei,Ti].includes(t.key);if(!n&&!i)return;if(e&&!i)return;t.preventDefault();const s=this.matches(Ii)?this:z.prev(this,Ii)[0]||z.next(this,Ii)[0]||z.findOne(Ii,t.delegateTarget.parentNode),o=qi.getOrCreateInstance(s);if(n)return t.stopPropagation(),o.show(),void o._selectMenuItem(t);o._isShown()&&(t.stopPropagation(),o.hide(),s.focus())}}N.on(document,Si,Ii,qi.dataApiKeydownHandler),N.on(document,Si,Pi,qi.dataApiKeydownHandler),N.on(document,Li,qi.clearMenus),N.on(document,Di,qi.clearMenus),N.on(document,Li,Ii,(function(t){t.preventDefault(),qi.getOrCreateInstance(this).toggle()})),m(qi);const Vi="backdrop",Ki="show",Qi=`mousedown.bs.${Vi}`,Xi={className:"modal-backdrop",clickCallback:null,isAnimated:!1,isVisible:!0,rootElement:"body"},Yi={className:"string",clickCallback:"(function|null)",isAnimated:"boolean",isVisible:"boolean",rootElement:"(element|string)"};class Ui extends H{constructor(t){super(),this._config=this._getConfig(t),this._isAppended=!1,this._element=null}static get Default(){return Xi}static get DefaultType(){return Yi}static get NAME(){return Vi}show(t){if(!this._config.isVisible)return void g(t);this._append();const e=this._getElement();this._config.isAnimated&&d(e),e.classList.add(Ki),this._emulateAnimation((()=>{g(t)}))}hide(t){this._config.isVisible?(this._getElement().classList.remove(Ki),this._emulateAnimation((()=>{this.dispose(),g(t)}))):g(t)}dispose(){this._isAppended&&(N.off(this._element,Qi),this._element.remove(),this._isAppended=!1)}_getElement(){if(!this._element){const t=document.createElement("div");t.className=this._config.className,this._config.isAnimated&&t.classList.add("fade"),this._element=t}return this._element}_configAfterMerge(t){return t.rootElement=r(t.rootElement),t}_append(){if(this._isAppended)return;const t=this._getElement();this._config.rootElement.append(t),N.on(t,Qi,(()=>{g(this._config.clickCallback)})),this._isAppended=!0}_emulateAnimation(t){_(t,this._getElement(),this._config.isAnimated)}}const Gi=".bs.focustrap",Ji=`focusin${Gi}`,Zi=`keydown.tab${Gi}`,tn="backward",en={autofocus:!0,trapElement:null},nn={autofocus:"boolean",trapElement:"element"};class sn extends H{constructor(t){super(),this._config=this._getConfig(t),this._isActive=!1,this._lastTabNavDirection=null}static get Default(){return en}static get DefaultType(){return nn}static get NAME(){return"focustrap"}activate(){this._isActive||(this._config.autofocus&&this._config.trapElement.focus(),N.off(document,Gi),N.on(document,Ji,(t=>this._handleFocusin(t))),N.on(document,Zi,(t=>this._handleKeydown(t))),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,N.off(document,Gi))}_handleFocusin(t){const{trapElement:e}=this._config;if(t.target===document||t.target===e||e.contains(t.target))return;const i=z.focusableChildren(e);0===i.length?e.focus():this._lastTabNavDirection===tn?i[i.length-1].focus():i[0].focus()}_handleKeydown(t){"Tab"===t.key&&(this._lastTabNavDirection=t.shiftKey?tn:"forward")}}const on=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",rn=".sticky-top",an="padding-right",ln="margin-right";class cn{constructor(){this._element=document.body}getWidth(){const t=document.documentElement.clientWidth;return Math.abs(window.innerWidth-t)}hide(){const t=this.getWidth();this._disableOverFlow(),this._setElementAttributes(this._element,an,(e=>e+t)),this._setElementAttributes(on,an,(e=>e+t)),this._setElementAttributes(rn,ln,(e=>e-t))}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,an),this._resetElementAttributes(on,an),this._resetElementAttributes(rn,ln)}isOverflowing(){return this.getWidth()>0}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(t,e,i){const n=this.getWidth();this._applyManipulationCallback(t,(t=>{if(t!==this._element&&window.innerWidth>t.clientWidth+n)return;this._saveInitialAttribute(t,e);const s=window.getComputedStyle(t).getPropertyValue(e);t.style.setProperty(e,`${i(Number.parseFloat(s))}px`)}))}_saveInitialAttribute(t,e){const i=t.style.getPropertyValue(e);i&&F.setDataAttribute(t,e,i)}_resetElementAttributes(t,e){this._applyManipulationCallback(t,(t=>{const i=F.getDataAttribute(t,e);null!==i?(F.removeDataAttribute(t,e),t.style.setProperty(e,i)):t.style.removeProperty(e)}))}_applyManipulationCallback(t,e){if(o(t))e(t);else for(const i of z.find(t,this._element))e(i)}}const hn=".bs.modal",dn=`hide${hn}`,un=`hidePrevented${hn}`,fn=`hidden${hn}`,pn=`show${hn}`,mn=`shown${hn}`,gn=`resize${hn}`,_n=`click.dismiss${hn}`,bn=`mousedown.dismiss${hn}`,vn=`keydown.dismiss${hn}`,yn=`click${hn}.data-api`,wn="modal-open",An="show",En="modal-static",Tn={backdrop:!0,focus:!0,keyboard:!0},Cn={backdrop:"(boolean|string)",focus:"boolean",keyboard:"boolean"};class On extends W{constructor(t,e){super(t,e),this._dialog=z.findOne(".modal-dialog",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new cn,this._addEventListeners()}static get Default(){return Tn}static get DefaultType(){return Cn}static get NAME(){return"modal"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||this._isTransitioning||N.trigger(this._element,pn,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add(wn),this._adjustDialog(),this._backdrop.show((()=>this._showElement(t))))}hide(){this._isShown&&!this._isTransitioning&&(N.trigger(this._element,dn).defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove(An),this._queueCallback((()=>this._hideModal()),this._element,this._isAnimated())))}dispose(){N.off(window,hn),N.off(this._dialog,hn),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new Ui({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new sn({trapElement:this._element})}_showElement(t){document.body.contains(this._element)||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0;const e=z.findOne(".modal-body",this._dialog);e&&(e.scrollTop=0),d(this._element),this._element.classList.add(An),this._queueCallback((()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,N.trigger(this._element,mn,{relatedTarget:t})}),this._dialog,this._isAnimated())}_addEventListeners(){N.on(this._element,vn,(t=>{"Escape"===t.key&&(this._config.keyboard?this.hide():this._triggerBackdropTransition())})),N.on(window,gn,(()=>{this._isShown&&!this._isTransitioning&&this._adjustDialog()})),N.on(this._element,bn,(t=>{N.one(this._element,_n,(e=>{this._element===t.target&&this._element===e.target&&("static"!==this._config.backdrop?this._config.backdrop&&this.hide():this._triggerBackdropTransition())}))}))}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide((()=>{document.body.classList.remove(wn),this._resetAdjustments(),this._scrollBar.reset(),N.trigger(this._element,fn)}))}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(N.trigger(this._element,un).defaultPrevented)return;const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._element.style.overflowY;"hidden"===e||this._element.classList.contains(En)||(t||(this._element.style.overflowY="hidden"),this._element.classList.add(En),this._queueCallback((()=>{this._element.classList.remove(En),this._queueCallback((()=>{this._element.style.overflowY=e}),this._dialog)}),this._dialog),this._element.focus())}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._scrollBar.getWidth(),i=e>0;if(i&&!t){const t=p()?"paddingLeft":"paddingRight";this._element.style[t]=`${e}px`}if(!i&&t){const t=p()?"paddingRight":"paddingLeft";this._element.style[t]=`${e}px`}}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(t,e){return this.each((function(){const i=On.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method n
vendor: 9,229 bytes, line 9
9amed "${t}"`);i[t](e)}}))}}N.on(document,yn,'[data-bs-toggle="modal"]',(function(t){const e=z.getElementFromSelector(this);["A","AREA"].includes(this.tagName)&&t.preventDefault(),N.one(e,pn,(t=>{t.defaultPrevented||N.one(e,fn,(()=>{a(this)&&this.focus()}))}));const i=z.findOne(".modal.show");i&&On.getInstance(i).hide(),On.getOrCreateInstance(e).toggle(this)})),R(On),m(On);const xn=".bs.offcanvas",kn=".data-api",Ln=`load${xn}${kn}`,Sn="show",Dn="showing",$n="hiding",In=".offcanvas.show",Nn=`show${xn}`,Pn=`shown${xn}`,jn=`hide${xn}`,Mn=`hidePrevented${xn}`,Fn=`hidden${xn}`,Hn=`resize${xn}`,Wn=`click${xn}${kn}`,Bn=`keydown.dismiss${xn}`,zn={backdrop:!0,keyboard:!0,scroll:!1},Rn={backdrop:"(boolean|string)",keyboard:"boolean",scroll:"boolean"};class qn extends W{constructor(t,e){super(t,e),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get Default(){return zn}static get DefaultType(){return Rn}static get NAME(){return"offcanvas"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||N.trigger(this._element,Nn,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._backdrop.show(),this._config.scroll||(new cn).hide(),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add(Dn),this._queueCallback((()=>{this._config.scroll&&!this._config.backdrop||this._focustrap.activate(),this._element.classList.add(Sn),this._element.classList.remove(Dn),N.trigger(this._element,Pn,{relatedTarget:t})}),this._element,!0))}hide(){this._isShown&&(N.trigger(this._element,jn).defaultPrevented||(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.add($n),this._backdrop.hide(),this._queueCallback((()=>{this._element.classList.remove(Sn,$n),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._config.scroll||(new cn).reset(),N.trigger(this._element,Fn)}),this._element,!0)))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_initializeBackDrop(){const t=Boolean(this._config.backdrop);return new Ui({className:"offcanvas-backdrop",isVisible:t,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:t?()=>{"static"!==this._config.backdrop?this.hide():N.trigger(this._element,Mn)}:null})}_initializeFocusTrap(){return new sn({trapElement:this._element})}_addEventListeners(){N.on(this._element,Bn,(t=>{"Escape"===t.key&&(this._config.keyboard?this.hide():N.trigger(this._element,Mn))}))}static jQueryInterface(t){return this.each((function(){const e=qn.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}N.on(document,Wn,'[data-bs-toggle="offcanvas"]',(function(t){const e=z.getElementFromSelector(this);if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),l(this))return;N.one(e,Fn,(()=>{a(this)&&this.focus()}));const i=z.findOne(In);i&&i!==e&&qn.getInstance(i).hide(),qn.getOrCreateInstance(e).toggle(this)})),N.on(window,Ln,(()=>{for(const t of z.find(In))qn.getOrCreateInstance(t).show()})),N.on(window,Hn,(()=>{for(const t of z.find("[aria-modal][class*=show][class*=offcanvas-]"))"fixed"!==getComputedStyle(t).position&&qn.getOrCreateInstance(t).hide()})),R(qn),m(qn);const Vn={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],dd:[],div:[],dl:[],dt:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},Kn=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),Qn=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,Xn=(t,e)=>{const i=t.nodeName.toLowerCase();return e.includes(i)?!Kn.has(i)||Boolean(Qn.test(t.nodeValue)):e.filter((t=>t instanceof RegExp)).some((t=>t.test(i)))},Yn={allowList:Vn,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"<div></div>"},Un={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},Gn={entry:"(string|element|function|null)",selector:"(string|element)"};class Jn extends H{constructor(t){super(),this._config=this._getConfig(t)}static get Default(){return Yn}static get DefaultType(){return Un}static get NAME(){return"TemplateFactory"}getContent(){return Object.values(this._config.content).map((t=>this._resolvePossibleFunction(t))).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(t){return this._checkContent(t),this._config.content={...this._config.content,...t},this}toHtml(){const t=document.createElement("div");t.innerHTML=this._maybeSanitize(this._config.template);for(const[e,i]of Object.entries(this._config.content))this._setContent(t,i,e);const e=t.children[0],i=this._resolvePossibleFunction(this._config.extraClass);return i&&e.classList.add(...i.split(" ")),e}_typeCheckConfig(t){super._typeCheckConfig(t),this._checkContent(t.content)}_checkContent(t){for(const[e,i]of Object.entries(t))super._typeCheckConfig({selector:e,entry:i},Gn)}_setContent(t,e,i){const n=z.findOne(i,t);n&&((e=this._resolvePossibleFunction(e))?o(e)?this._putElementInTemplate(r(e),n):this._config.html?n.innerHTML=this._maybeSanitize(e):n.textContent=e:n.remove())}_maybeSanitize(t){return this._config.sanitize?function(t,e,i){if(!t.length)return t;if(i&&"function"==typeof i)return i(t);const n=(new window.DOMParser).parseFromString(t,"text/html"),s=[].concat(...n.body.querySelectorAll("*"));for(const t of s){const i=t.nodeName.toLowerCase();if(!Object.keys(e).includes(i)){t.remove();continue}const n=[].concat(...t.attributes),s=[].concat(e["*"]||[],e[i]||[]);for(const e of n)Xn(e,s)||t.removeAttribute(e.nodeName)}return n.body.innerHTML}(t,this._config.allowList,this._config.sanitizeFn):t}_resolvePossibleFunction(t){return g(t,[this])}_putElementInTemplate(t,e){if(this._config.html)return e.innerHTML="",void e.append(t);e.textContent=t.textContent}}const Zn=new Set(["sanitize","allowList","sanitizeFn"]),ts="fade",es="show",is=".modal",ns="hide.bs.modal",ss="hover",os="focus",rs={AUTO:"auto",TOP:"top",RIGHT:p()?"left":"right",BOTTOM:"bottom",LEFT:p()?"right":"left"},as={allowList:Vn,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,6],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',title:"",trigger:"hover focus"},ls={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class cs extends W{constructor(t,e){if(void 0===vi)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(t,e),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return as}static get DefaultType(){return ls}static get NAME(){return"tooltip"}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._activeTrigger.click=!this._activeTrigger.click,this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),N.off(this._element.closest(is),ns,this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this._isWithContent()||!this._isEnabled)return;const t=N.trigger(this._element,this.constructor.eventName("show")),e=(c(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(t.defaultPrevented||!e)return;this._disposePopper();const i=this._getTipElement();this._element.setAttribute("aria-describedby",i.getAttribute("id"));const{container:n}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(n.append(i),N.trigger(this._element,this.constructor.eventName("inserted"))),this._popper=this._createPopper(i),i.classList.add(es),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))N.on(t,"mouseover",h);this._queueCallback((()=>{N.trigger(this._element,this.constructor.eventName("shown")),!1===this._isHovered&&this._leave(),this._isHovered=!1}),this.tip,this._isAnimated())}
vendor: 5,396 bytes, line 9
9hide(){if(this._isShown()&&!N.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented){if(this._getTipElement().classList.remove(es),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))N.off(t,"mouseover",h);this._activeTrigger.click=!1,this._activeTrigger[os]=!1,this._activeTrigger[ss]=!1,this._isHovered=null,this._queueCallback((()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),N.trigger(this._element,this.constructor.eventName("hidden")))}),this.tip,this._isAnimated())}}update(){this._popper&&this._popper.update()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(t){const e=this._getTemplateFactory(t).toHtml();if(!e)return null;e.classList.remove(ts,es),e.classList.add(`bs-${this.constructor.NAME}-auto`);const i=(t=>{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t})(this.constructor.NAME).toString();return e.setAttribute("id",i),this._isAnimated()&&e.classList.add(ts),e}setContent(t){this._newContent=t,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(t){return this._templateFactory?this._templateFactory.changeContent(t):this._templateFactory=new Jn({...this._config,content:t,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{".tooltip-inner":this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(t){return this.constructor.getOrCreateInstance(t.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(ts)}_isShown(){return this.tip&&this.tip.classList.contains(es)}_createPopper(t){const e=g(this._config.placement,[this,t,this._element]),i=rs[e.toUpperCase()];return bi(this._element,t,this._getPopperConfig(i))}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_resolvePossibleFunction(t){return g(t,[this._element])}_getPopperConfig(t){const e={placement:t,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:t=>{this._getTipElement().setAttribute("data-popper-placement",t.state.placement)}}]};return{...e,...g(this._config.popperConfig,[e])}}_setListeners(){const t=this._config.trigger.split(" ");for(const e of t)if("click"===e)N.on(this._element,this.constructor.eventName("click"),this._config.selector,(t=>{this._initializeOnDelegatedTarget(t).toggle()}));else if("manual"!==e){const t=e===ss?this.constructor.eventName("mouseenter"):this.constructor.eventName("focusin"),i=e===ss?this.constructor.eventName("mouseleave"):this.constructor.eventName("focusout");N.on(this._element,t,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusin"===t.type?os:ss]=!0,e._enter()})),N.on(this._element,i,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusout"===t.type?os:ss]=e._element.contains(t.relatedTarget),e._leave()}))}this._hideModalHandler=()=>{this._element&&this.hide()},N.on(this._element.closest(is),ns,this._hideModalHandler)}_fixTitle(){const t=this._element.getAttribute("title");t&&(this._element.getAttribute("aria-label")||this._element.textContent.trim()||this._element.setAttribute("aria-label",t),this._element.setAttribute("data-bs-original-title",t),this._element.removeAttribute("title"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout((()=>{this._isHovered&&this.show()}),this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout((()=>{this._isHovered||this.hide()}),this._config.delay.hide))}_setTimeout(t,e){clearTimeout(this._timeout),this._timeout=setTimeout(t,e)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(t){const e=F.getDataAttributes(this._element);for(const t of Object.keys(e))Zn.has(t)&&delete e[t];return t={...e,..."object"==typeof t&&t?t:{}},t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t.container=!1===t.container?document.body:r(t.container),"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),t}_getDelegateConfig(){const t={};for(const[e,i]of Object.entries(this._config))this.constructor.Default[e]!==i&&(t[e]=i);return t.selector=!1,t.trigger="manual",t}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(t){return this.each((function(){const e=cs.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method n
vendor: 10,644 bytes, line 9
9amed "${t}"`);e[t]()}}))}}m(cs);const hs={...cs.Default,content:"",offset:[0,8],placement:"right",template:'<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>',trigger:"click"},ds={...cs.DefaultType,content:"(null|string|element|function)"};class us extends cs{static get Default(){return hs}static get DefaultType(){return ds}static get NAME(){return"popover"}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{".popover-header":this._getTitle(),".popover-body":this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}static jQueryInterface(t){return this.each((function(){const e=us.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}m(us);const fs=".bs.scrollspy",ps=`activate${fs}`,ms=`click${fs}`,gs=`load${fs}.data-api`,_s="active",bs="[href]",vs=".nav-link",ys=`${vs}, .nav-item > ${vs}, .list-group-item`,ws={offset:null,rootMargin:"0px 0px -25%",smoothScroll:!1,target:null,threshold:[.1,.5,1]},As={offset:"(number|null)",rootMargin:"string",smoothScroll:"boolean",target:"element",threshold:"array"};class Es extends W{constructor(t,e){super(t,e),this._targetLinks=new Map,this._observableSections=new Map,this._rootElement="visible"===getComputedStyle(this._element).overflowY?null:this._element,this._activeTarget=null,this._observer=null,this._previousScrollData={visibleEntryTop:0,parentScrollTop:0},this.refresh()}static get Default(){return ws}static get DefaultType(){return As}static get NAME(){return"scrollspy"}refresh(){this._initializeTargetsAndObservables(),this._maybeEnableSmoothScroll(),this._observer?this._observer.disconnect():this._observer=this._getNewObserver();for(const t of this._observableSections.values())this._observer.observe(t)}dispose(){this._observer.disconnect(),super.dispose()}_configAfterMerge(t){return t.target=r(t.target)||document.body,t.rootMargin=t.offset?`${t.offset}px 0px -30%`:t.rootMargin,"string"==typeof t.threshold&&(t.threshold=t.threshold.split(",").map((t=>Number.parseFloat(t)))),t}_maybeEnableSmoothScroll(){this._config.smoothScroll&&(N.off(this._config.target,ms),N.on(this._config.target,ms,bs,(t=>{const e=this._observableSections.get(t.target.hash);if(e){t.preventDefault();const i=this._rootElement||window,n=e.offsetTop-this._element.offsetTop;if(i.scrollTo)return void i.scrollTo({top:n,behavior:"smooth"});i.scrollTop=n}})))}_getNewObserver(){const t={root:this._rootElement,threshold:this._config.threshold,rootMargin:this._config.rootMargin};return new IntersectionObserver((t=>this._observerCallback(t)),t)}_observerCallback(t){const e=t=>this._targetLinks.get(`#${t.target.id}`),i=t=>{this._previousScrollData.visibleEntryTop=t.target.offsetTop,this._process(e(t))},n=(this._rootElement||document.documentElement).scrollTop,s=n>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=n;for(const o of t){if(!o.isIntersecting){this._activeTarget=null,this._clearActiveClass(e(o));continue}const t=o.target.offsetTop>=this._previousScrollData.visibleEntryTop;if(s&&t){if(i(o),!n)return}else s||t||i(o)}}_initializeTargetsAndObservables(){this._targetLinks=new Map,this._observableSections=new Map;const t=z.find(bs,this._config.target);for(const e of t){if(!e.hash||l(e))continue;const t=z.findOne(decodeURI(e.hash),this._element);a(t)&&(this._targetLinks.set(decodeURI(e.hash),e),this._observableSections.set(e.hash,t))}}_process(t){this._activeTarget!==t&&(this._clearActiveClass(this._config.target),this._activeTarget=t,t.classList.add(_s),this._activateParents(t),N.trigger(this._element,ps,{relatedTarget:t}))}_activateParents(t){if(t.classList.contains("dropdown-item"))z.findOne(".dropdown-toggle",t.closest(".dropdown")).classList.add(_s);else for(const e of z.parents(t,".nav, .list-group"))for(const t of z.prev(e,ys))t.classList.add(_s)}_clearActiveClass(t){t.classList.remove(_s);const e=z.find(`${bs}.${_s}`,t);for(const t of e)t.classList.remove(_s)}static jQueryInterface(t){return this.each((function(){const e=Es.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}))}}N.on(window,gs,(()=>{for(const t of z.find('[data-bs-spy="scroll"]'))Es.getOrCreateInstance(t)})),m(Es);const Ts=".bs.tab",Cs=`hide${Ts}`,Os=`hidden${Ts}`,xs=`show${Ts}`,ks=`shown${Ts}`,Ls=`click${Ts}`,Ss=`keydown${Ts}`,Ds=`load${Ts}`,$s="ArrowLeft",Is="ArrowRight",Ns="ArrowUp",Ps="ArrowDown",js="Home",Ms="End",Fs="active",Hs="fade",Ws="show",Bs=".dropdown-toggle",zs=`:not(${Bs})`,Rs='[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',qs=`.nav-link${zs}, .list-group-item${zs}, [role="tab"]${zs}, ${Rs}`,Vs=`.${Fs}[data-bs-toggle="tab"], .${Fs}[data-bs-toggle="pill"], .${Fs}[data-bs-toggle="list"]`;class Ks extends W{constructor(t){super(t),this._parent=this._element.closest('.list-group, .nav, [role="tablist"]'),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),N.on(this._element,Ss,(t=>this._keydown(t))))}static get NAME(){return"tab"}show(){const t=this._element;if(this._elemIsActive(t))return;const e=this._getActiveElem(),i=e?N.trigger(e,Cs,{relatedTarget:t}):null;N.trigger(t,xs,{relatedTarget:e}).defaultPrevented||i&&i.defaultPrevented||(this._deactivate(e,t),this._activate(t,e))}_activate(t,e){t&&(t.classList.add(Fs),this._activate(z.getElementFromSelector(t)),this._queueCallback((()=>{"tab"===t.getAttribute("role")?(t.removeAttribute("tabindex"),t.setAttribute("aria-selected",!0),this._toggleDropDown(t,!0),N.trigger(t,ks,{relatedTarget:e})):t.classList.add(Ws)}),t,t.classList.contains(Hs)))}_deactivate(t,e){t&&(t.classList.remove(Fs),t.blur(),this._deactivate(z.getElementFromSelector(t)),this._queueCallback((()=>{"tab"===t.getAttribute("role")?(t.setAttribute("aria-selected",!1),t.setAttribute("tabindex","-1"),this._toggleDropDown(t,!1),N.trigger(t,Os,{relatedTarget:e})):t.classList.remove(Ws)}),t,t.classList.contains(Hs)))}_keydown(t){if(![$s,Is,Ns,Ps,js,Ms].includes(t.key))return;t.stopPropagation(),t.preventDefault();const e=this._getChildren().filter((t=>!l(t)));let i;if([js,Ms].includes(t.key))i=e[t.key===js?0:e.length-1];else{const n=[Is,Ps].includes(t.key);i=b(e,t.target,n,!0)}i&&(i.focus({preventScroll:!0}),Ks.getOrCreateInstance(i).show())}_getChildren(){return z.find(qs,this._parent)}_getActiveElem(){return this._getChildren().find((t=>this._elemIsActive(t)))||null}_setInitialAttributes(t,e){this._setAttributeIfNotExists(t,"role","tablist");for(const t of e)this._setInitialAttributesOnChild(t)}_setInitialAttributesOnChild(t){t=this._getInnerElement(t);const e=this._elemIsActive(t),i=this._getOuterElement(t);t.setAttribute("aria-selected",e),i!==t&&this._setAttributeIfNotExists(i,"role","presentation"),e||t.setAttribute("tabindex","-1"),this._setAttributeIfNotExists(t,"role","tab"),this._setInitialAttributesOnTargetPanel(t)}_setInitialAttributesOnTargetPanel(t){const e=z.getElementFromSelector(t);e&&(this._setAttributeIfNotExists(e,"role","tabpanel"),t.id&&this._setAttributeIfNotExists(e,"aria-labelledby",`${t.id}`))}_toggleDropDown(t,e){const i=this._getOuterElement(t);if(!i.classList.contains("dropdown"))return;const n=(t,n)=>{const s=z.findOne(t,i);s&&s.classList.toggle(n,e)};n(Bs,Fs),n(".dropdown-menu",Ws),i.setAttribute("aria-expanded",e)}_setAttributeIfNotExists(t,e,i){t.hasAttribute(e)||t.setAttribute(e,i)}_elemIsActive(t){return t.classList.contains(Fs)}_getInnerElement(t){return t.matches(qs)?t:z.findOne(qs,t)}_getOuterElement(t){return t.closest(".nav-item, .list-group-item")||t}static jQueryInterface(t){return this.each((function(){const e=Ks.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}))}}N.on(document,Ls,Rs,(function(t){["A","AREA"].includes(this.tagName)&&t.preventDefault(),l(this)||Ks.getOrCreateInstance(this).show()})),N.on(window,Ds,(()=>{for(const t of z.find(Vs))Ks.getOrCreateInstance(t)})),m(Ks);const Qs=".bs.toast",Xs=`mouseover${Qs}`,Ys=`mouseout${Qs}`,Us=`focusin${Qs}`,Gs=`focusout${Qs}`,Js=`hide${Qs}`,Zs=`hidden${Qs}`,to=`show${Qs}`,eo=`shown${Qs}`,io="hide",no="show",so="showing",oo={animation:"boolean",autohide:"boolean",delay:"number"},ro={animation:!0,autohide:!0,delay:5e3};class ao extends W{constructor(t,e){super(t,e),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return ro}static get DefaultType(){return oo}static get NAME(){return"toast"}show(){N.trigger(this._element,to).defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),this._element.classList.remove(io),d(this._element),this._element.classList.add(no,so),this._queueCallback((()=>{this._element.classList.remove(so),N.trigger(this._element,eo),this._maybeScheduleHide()}),this._element,this._config.animation))}hide(){this.isShown()&&(N.trigger(this._element,Js).defaultPrevented||(this._element.classList.add(so),this._queueCallback((()=>{this._element.classList.add(io),this._element.classList.remove(so,no),N.trigger(this._element,Zs)}),this._element,this._config.animation)))}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove(no),super.dispose()}isShown(){return this._element.classList.contains(no)}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout((()=>{this.hide()}),this._config.delay)))}_onInteraction(t,e){switch(t.type){case"mouseover":case"mouseout":this._hasMouseInteraction=e;break;case"focusin":case"focusout":this._hasKeyboardInteraction=e}if(e)return void this._clearTimeout();const i=t.relatedTarget;this._element===i||this._element.contains(i)||this._maybeScheduleHide()}_setListeners(){N.on(this._element,Xs,(t=>this._onInteraction(t,!0))),N.on(this._element,Ys,(t=>this._onInteraction(t,!1))),N.on(this._element,Us,(t=>this._onInteraction(t,!0))),N.on(this._element,Gs,(t=>this._onInteraction(t,!1)))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(t){return this.each((function(){const e=ao.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}return R(ao),m(ao),{Alert:Q,Button:Y,Carousel:xt,Collapse:Bt,Dropdown:qi,Modal:On,Offcanvas:qn,Popover:us,ScrollSpy:Es,Tab:Ks,Toast:ao,Tooltip:cs}}));
vendor: 5,256 bytes, lines 9-20
9 10 11/*! 12 * GSAP 3.12.5 13 * https://gsap.com 14 * 15 * @license Copyright 2024, GreenSock. All rights reserved. 16 * Subject to the terms at https://gsap.com/standard-license or for Club GSAP members, the agreement issued with that membership. 17 * @author: Jack Doyle, [email protected] 18 */ 19 20!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t=t||self).window=t.window||{})}(this,function(e){"use strict";function _inheritsLoose(t,e){t.prototype=Object.create(e.prototype),(t.prototype.constructor=t).__proto__=e}function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function r(t){return"string"==typeof t}function s(t){return"function"==typeof t}function t(t){return"number"==typeof t}function u(t){return void 0===t}function v(t){return"object"==typeof t}function w(t){return!1!==t}function x(){return"undefined"!=typeof window}function y(t){return s(t)||r(t)}function P(t){return(i=yt(t,ot))&&ze}function Q(t,e){return console.warn("Invalid property",t,"set to",e,"Missing plugin? gsap.registerPlugin()")}function R(t,e){return!e&&console.warn(t)}function S(t,e){return t&&(ot[t]=e)&&i&&(i[t]=e)||ot}function T(){return 0}function ea(t){var e,r,i=t[0];if(v(i)||s(i)||(t=[t]),!(e=(i._gsap||{}).harness)){for(r=gt.length;r--&&!gt[r].targetTest(i););e=gt[r]}for(r=t.length;r--;)t[r]&&(t[r]._gsap||(t[r]._gsap=new Vt(t[r],e)))||t.splice(r,1);return t}function fa(t){return t._gsap||ea(Mt(t))[0]._gsap}function ga(t,e,r){return(r=t[e])&&s(r)?t[e]():u(r)&&t.getAttribute&&t.getAttribute(e)||r}function ha(t,e){return(t=t.split(",")).forEach(e)||t}function ia(t){return Math.round(1e5*t)/1e5||0}function ja(t){return Math.round(1e7*t)/1e7||0}function ka(t,e){var r=e.charAt(0),i=parseFloat(e.substr(2));return t=parseFloat(t),"+"===r?t+i:"-"===r?t-i:"*"===r?t*i:t/i}function la(t,e){for(var r=e.length,i=0;t.indexOf(e[i])<0&&++i<r;);return i<r}function ma(){var t,e,r=dt.length,i=dt.slice(0);for(ct={},t=dt.length=0;t<r;t++)(e=i[t])&&e._lazy&&(e.render(e._lazy[0],e._lazy[1],!0)._lazy=0)}function na(t,e,r,i){dt.length&&!L&&ma(),t.render(e,r,i||L&&e<0&&(t._initted||t._startAt)),dt.length&&!L&&ma()}function oa(t){var e=parseFloat(t);return(e||0===e)&&(t+"").match(at).length<2?e:r(t)?t.trim():t}function pa(t){return t}function qa(t,e){for(var r in e)r in t||(t[r]=e[r]);return t}function ta(t,e){for(var r in e)"__proto__"!==r&&"constructor"!==r&&"prototype"!==r&&(t[r]=v(e[r])?ta(t[r]||(t[r]={}),e[r]):e[r]);return t}function ua(t,e){var r,i={};for(r in t)r in e||(i[r]=t[r]);return i}function va(t){var e=t.parent||I,r=t.keyframes?function _setKeyframeDefaults(i){return function(t,e){for(var r in e)r in t||"duration"===r&&i||"ease"===r||(t[r]=e[r])}}(Z(t.keyframes)):qa;if(w(t.inherit))for(;e;)r(t,e.vars.defaults),e=e.parent||e._dp;return t}function xa(t,e,r,i,n){void 0===r&&(r="_first"),void 0===i&&(i="_last");var a,s=t[i];if(n)for(a=e[n];s&&s[n]>a;)s=s._prev;return s?(e._next=s._next,s._next=e):(e._next=t[r],t[r]=e),e._next?e._next._prev=e:t[i]=e,e._prev=s,e.parent=e._dp=t,e}function ya(t,e,r,i){void 0===r&&(r="_first"),void 0===i&&(i="_last");var n=e._prev,a=e._next;n?n._next=a:t[r]===e&&(t[r]=a),a?a._prev=n:t[i]===e&&(t[i]=n),e._next=e._prev=e.parent=null}function za(t,e){t.parent&&(!e||t.parent.autoRemoveChildren)&&t.parent.remove&&t.parent.remove(t),t._act=0}function Aa(t,e){if(t&&(!e||e._end>t._dur||e._start<0))for(var r=t;r;)r._dirty=1,r=r.parent;return t}function Ca(t,e,r,i){return t._startAt&&(L?t._startAt.revert(ht):t.vars.immediateRender&&!t.vars.autoRevert||t._startAt.render(e,!0,i))}function Ea(t){return t._repeat?Tt(t._tTime,t=t.duration()+t._rDelay)*t:0}function Ga(t,e){return(t-e._start)*e._ts+(0<=e._ts?0:e._dirty?e.totalDuration():e._tDur)}function Ha(t){return t._end=ja(t._start+(t._tDur/Math.abs(t._ts||t._rts||X)||0))}function Ia(t,e){var r=t._dp;return r&&r.smoothChildTiming&&t._ts&&(t._start=ja(r._time-(0<t._ts?e/t._ts:((t._dirty?t.totalDuration():t._tDur)-e)/-t._ts)),Ha(t),r._dirty||Aa(r,t)),t}function Ja(t,e){var r;if((e._time||!e._dur&&e._initted||e._start<t._time&&(e._dur||!e.add))&&(r=Ga(t.rawTime(),e),(!e._dur||Ot(0,e.totalDuration(),r)-e._tTime>X)&&e.render(r,!0)),Aa(t,e)._dp&&t._initted&&t._time>=t._dur&&t._ts){if(t._dur<t.duration())for(r=t;r._dp;)0<=r.rawTime()&&r.totalTime(r._tTime),r=r._dp;t._zTime=-X}}function Ka(e,r,i,n){return r.parent&&za(r),r._start=ja((t(i)?i:i||e!==I?xt(e,i,r):e._time)+r._delay),r._end=ja(r._start+(r.totalDuration()/Math.abs(r.timeScale())||0)),xa(e,r,"_first","_last",e._sort?"_start":0),bt(r)||(e._recent=r),n||Ja(e,r),e._ts<0&&Ia(e,e._tTime),e}function La(t,e){return(ot.ScrollTrigger||Q("scrollTrigger",e))&&ot.ScrollTrigger.create(e,t)}function Ma(t,e,r,i,n){return Qt(t,e,n),t._initted?!r&&t._pt&&!L&&(t._dur&&!1!==t.vars.lazy||!t._dur&&t.vars.lazy)&&f!==Rt.frame?(dt.push(t),t._lazy=[n,i],1):void 0:1}function Ra(t,e,r,i){var n=t._repeat,a=ja(e)||0,s=t._tTime/t._tDur;return s&&!i&&(t._time*=a/t._dur),t._dur=a,t._tDur=n?n<0?1e10:ja(a*(n+1)+t._rDelay*n):a,0<s&&!i&&Ia(t,t._tTime=t._tDur*s),t.parent&&Ha(t),r||Aa(t.parent,t),t}function Sa(t){return t instanceof Xt?Aa(t):Ra(t,t._dur)}
vendor: 6,707 bytes, line 20
20function Va(e,r,i){var n,a,s=t(r[1]),o=(s?2:1)+(e<2?0:1),u=r[o];if(s&&(u.duration=r[1]),u.parent=i,e){for(n=u,a=i;a&&!("immediateRender"in n);)n=a.vars.defaults||{},a=w(a.vars.inherit)&&a.parent;u.immediateRender=w(n.immediateRender),e<2?u.runBackwards=1:u.startAt=r[o-1]}return new $t(r[0],u,r[1+o])}function Wa(t,e){return t||0===t?e(t):e}function Ya(t,e){return r(t)&&(e=st.exec(t))?e[1]:""}function _a(t,e){return t&&v(t)&&"length"in t&&(!e&&!t.length||t.length-1 in t&&v(t[0]))&&!t.nodeType&&t!==h}function cb(r){return r=Mt(r)[0]||R("Invalid scope")||{},function(t){var e=r.current||r.nativeElement||r;return Mt(t,e.querySelectorAll?e:e===r?R("Invalid scope")||a.createElement("div"):r)}}function db(t){return t.sort(function(){return.5-Math.random()})}function eb(t){if(s(t))return t;var p=v(t)?t:{each:t},_=jt(p.ease),m=p.from||0,g=parseFloat(p.base)||0,y={},e=0<m&&m<1,T=isNaN(m)||e,b=p.axis,w=m,x=m;return r(m)?w=x={center:.5,edges:.5,end:1}[m]||0:!e&&T&&(w=m[0],x=m[1]),function(t,e,r){var i,n,a,s,o,u,h,l,f,d=(r||p).length,c=y[d];if(!c){if(!(f="auto"===p.grid?0:(p.grid||[1,U])[1])){for(h=-U;h<(h=r[f++].getBoundingClientRect().left)&&f<d;);f<d&&f--}for(c=y[d]=[],i=T?Math.min(f,d)*w-.5:m%f,n=f===U?0:T?d*x/f-.5:m/f|0,l=U,u=h=0;u<d;u++)a=u%f-i,s=n-(u/f|0),c[u]=o=b?Math.abs("y"===b?s:a):K(a*a+s*s),h<o&&(h=o),o<l&&(l=o);"random"===m&&db(c),c.max=h-l,c.min=l,c.v=d=(parseFloat(p.amount)||parseFloat(p.each)*(d<f?d-1:b?"y"===b?d/f:f:Math.max(f,d/f))||0)*("edges"===m?-1:1),c.b=d<0?g-d:g,c.u=Ya(p.amount||p.each)||0,_=_&&d<0?Yt(_):_}return d=(c[t]-c.min)/c.max||0,ja(c.b+(_?_(d):d)*c.v)+c.u}}function fb(i){var n=Math.pow(10,((i+"").split(".")[1]||"").length);return function(e){var r=ja(Math.round(parseFloat(e)/i)*i*n);return(r-r%1)/n+(t(e)?0:Ya(e))}}function gb(h,e){var l,f,r=Z(h);return!r&&v(h)&&(l=r=h.radius||U,h.values?(h=Mt(h.values),(f=!t(h[0]))&&(l*=l)):h=fb(h.increment)),Wa(e,r?s(h)?function(t){return f=h(t),Math.abs(f-t)<=l?f:t}:function(e){for(var r,i,n=parseFloat(f?e.x:e),a=parseFloat(f?e.y:0),s=U,o=0,u=h.length;u--;)(r=f?(r=h[u].x-n)*r+(i=h[u].y-a)*i:Math.abs(h[u]-n))<s&&(s=r,o=u);return o=!l||s<=l?h[o]:e,f||o===e||t(e)?o:o+Ya(e)}:fb(h))}function hb(t,e,r,i){return Wa(Z(t)?!e:!0===r?!!(r=0):!i,function(){return Z(t)?t[~~(Math.random()*t.length)]:(r=r||1e-5)&&(i=r<1?Math.pow(10,(r+"").length-2):1)&&Math.floor(Math.round((t-r/2+Math.random()*(e-t+.99*r))/r)*r*i)/i})}function lb(e,r,t){return Wa(t,function(t){return e[~~r(t)]})}function ob(t){for(var e,r,i,n,a=0,s="";~(e=t.indexOf("random(",a));)i=t.indexOf(")",e),n="["===t.charAt(e+7),r=t.substr(e+7,i-e-7).match(n?at:tt),s+=t.substr(a,e-a)+hb(n?r:+r[0],n?0:+r[1],+r[2]||1e-5),a=i+1;return s+t.substr(a,t.length-a)}function rb(t,e,r){var i,n,a,s=t.labels,o=U;for(i in s)(n=s[i]-e)<0==!!r&&n&&o>(n=Math.abs(n))&&(a=i,o=n);return a}function tb(t){return za(t),t.scrollTrigger&&t.scrollTrigger.kill(!!L),t.progress()<1&&Ct(t,"onInterrupt"),t}function wb(t){if(t)if(t=!t.name&&t.default||t,x()||t.headless){var e=t.name,r=s(t),i=e&&!r&&t.init?function(){this._props=[]}:t,n={init:T,render:he,add:Wt,kill:ce,modifier:fe,rawVars:0},a={targetTest:0,get:0,getSetter:ne,aliases:{},register:0};if(Ft(),t!==i){if(pt[e])return;qa(i,qa(ua(t,n),a)),yt(i.prototype,yt(n,ua(t,a))),pt[i.prop=e]=i,t.targetTest&&(gt.push(i),ft[e]=1),e=("css"===e?"CSS":e.charAt(0).toUpperCase()+e.substr(1))+"Plugin"}S(e,i),t.register&&t.register(ze,i,_e)}else At.push(t)}function zb(t,e,r){return(6*(t+=t<0?1:1<t?-1:0)<1?e+(r-e)*t*6:t<.5?r:3*t<2?e+(r-e)*(2/3-t)*6:e)*St+.5|0}function Ab(e,r,i){var n,a,s,o,u,h,l,f,d,c,p=e?t(e)?[e>>16,e>>8&St,e&St]:0:zt.black;if(!p){if(","===e.substr(-1)&&(e=e.substr(0,e.length-1)),zt[e])p=zt[e];else if("#"===e.charAt(0)){if(e.length<6&&(e="#"+(n=e.charAt(1))+n+(a=e.charAt(2))+a+(s=e.charAt(3))+s+(5===e.length?e.charAt(4)+e.charAt(4):"")),9===e.length)return[(p=parseInt(e.substr(1,6),16))>>16,p>>8&St,p&St,parseInt(e.substr(7),16)/255];p=[(e=parseInt(e.substr(1),16))>>16,e>>8&St,e&St]}else if("hsl"===e.substr(0,3))if(p=c=e.match(tt),r){if(~e.indexOf("="))return p=e.match(et),i&&p.length<4&&(p[3]=1),p}else o=+p[0]%360/360,u=p[1]/100,n=2*(h=p[2]/100)-(a=h<=.5?h*(u+1):h+u-h*u),3<p.length&&(p[3]*=1),p[0]=zb(o+1/3,n,a),p[1]=zb(o,n,a),p[2]=zb(o-1/3,n,a);else p=e.match(tt)||zt.transparent;p=p.map(Number)}return r&&!c&&(n=p[0]/St,a=p[1]/St,s=p[2]/St,h=((l=Math.max(n,a,s))+(f=Math.min(n,a,s)))/2,l===f?o=u=0:(d=l-f,u=.5<h?d/(2-l-f):d/(l+f),o=l===n?(a-s)/d+(a<s?6:0):l===a?(s-n)/d+2:(n-a)/d+4,o*=60),p[0]=~~(o+.5),p[1]=~~(100*u+.5),p[2]=~~(100*h+.5)),i&&p.length<4&&(p[3]=1),p}function Bb(t){var r=[],i=[],n=-1;return t.split(Et).forEach(function(t){var e=t.match(rt)||[];r.push.apply(r,e),i.push(n+=e.length+1)}),r.c=i,r}function Cb(t,e,r){var i,n,a,s,o="",u=(t+o).match(Et),h=e?"hsla(":"rgba(",l=0;if(!u)return t;if(u=u.map(function(t){return(t=Ab(t,e,1))&&h+(e?t[0]+","+t[1]+"%,"+t[2]+"%,"+t[3]:t.join(","))+")"}),r&&(a=Bb(t),(i=r.c).join(o)!==a.c.join(o)))for(s=(n=t.replace(Et,"1").split(rt)).length-1;l<s;l++)o+=n[l]+(~i.indexOf(l)?u.shift()||h+"0,0,0,0)":(a.length?a:u.length?u:r).shift());if(!n)for(s=(n=t.split(Et)).length-1;l<s;l++)o+=n[l]+u[l];return o+n[s]}function Fb(t){var e,r=t.join(" ");if(Et.lastIndex=0,Et.test(r))return e=Dt.test(r),t[1]=Cb(t[1],e),t[0]=Cb(t[0],e,Bb(t[1])),!0}function Ob(t){var e=(t+"").split("("),r=Lt[e[0]];return r&&1<e.length&&r.config?r.config.apply(null,~t.indexOf("{")?[function _parseObjectInString(t){for(var e,r,i,n={},a=t.substr(1,t.length-3).split(":"),s=a[0],o=1,u=a.length;o<u;o++)r=a[o],e=o!==u-1?r.lastIndexOf(","):r.length,i=r.substr(0,e),n[s]=isNaN(i)?i.replace(Bt,"").trim():+i,s=r.substr(e+1).trim();return n}(e[1])]:function _valueInParentheses(t){var e=t.indexOf("(")+1,r=t.indexOf(")"),i=t.indexOf("(",e);return t.substring(e,~i&&i<r?t.indexOf(")",r+1):r)}(t).split(",").map(oa)):Lt._CE&&It.test(t)?Lt._CE("",t):r}function Qb(t,e){for(var r,i=t._first;i;)i instanceof Xt?Qb(i,e):!i.vars.yoyoEase||i._yoyo&&i._repeat||i._yoyo===e||(i.timeline?Qb(i.timeline,e):(r=i._ease,i._ease=i._yEase,i._yEase=r,i._yoyo=e)),i=i._next}function Sb(t,e,r,i){void 0===r&&(r=function easeOut(t){return 1-e(1-t)}),void 0===i&&(i=function easeInOut(t){return t<.5?e(2*t)/2:1-e(2*(1-t))/2});var n,a={easeIn:e,easeOut:r,easeInOut:i};return ha(t,function(t){for(var e in Lt[t]=ot[t]=a,Lt[n=t.toLowerCase()]=r,a)Lt[n+("easeIn"===e?".in":"easeOut"===e?".out":".inOut")]=Lt[t+"."+e]=a[e]}),a}function Tb(e){return function(t){return t<.5?(1-e(1-2*t))/2:.5+e(2*(t-.5))/2}}function Ub(r,t,e){function Jm(t){return 1===t?1:i*Math.pow(2,-10*t)*H((t-a)*n)+1}var i=1<=t?t:1,n=(e||(r?.3:.45))/(t<1?t:1),a=n/N*(Math.asin(1/i)||0),s="out"===r?Jm:"in"===r?function(t){return 1-Jm(1-t)}:Tb(Jm);
vendor: 5,255 bytes, line 20
20return n=N/n,s.config=function(t,e){return Ub(r,t,e)},s}function Vb(e,r){function Rm(t){return t?--t*t*((r+1)*t+r)+1:0}void 0===r&&(r=1.70158);var t="out"===e?Rm:"in"===e?function(t){return 1-Rm(1-t)}:Tb(Rm);return t.config=function(t){return Vb(e,t)},t}var F,L,l,I,h,n,a,i,o,f,d,c,p,_,m,g,b,O,k,M,C,A,z,E,D,B,Y,j,q={autoSleep:120,force3D:"auto",nullTargetWarn:1,units:{lineHeight:""}},V={duration:.5,overwrite:!1,delay:0},U=1e8,X=1/U,N=2*Math.PI,G=N/4,W=0,K=Math.sqrt,J=Math.cos,H=Math.sin,$="function"==typeof ArrayBuffer&&ArrayBuffer.isView||function(){},Z=Array.isArray,tt=/(?:-?\.?\d|\.)+/gi,et=/[-+=.]*\d+[.e\-+]*\d*[e\-+]*\d*/g,rt=/[-+=.]*\d+[.e-]*\d*[a-z%]*/g,it=/[-+=.]*\d+\.?\d*(?:e-|e\+)?\d*/gi,nt=/[+-]=-?[.\d]+/,at=/[^,'"\[\]\s]+/gi,st=/^[+\-=e\s\d]*\d+[.\d]*([a-z]*|%)\s*$/i,ot={},ut={suppressEvents:!0,isStart:!0,kill:!1},ht={suppressEvents:!0,kill:!1},lt={suppressEvents:!0},ft={},dt=[],ct={},pt={},_t={},mt=30,gt=[],vt="",yt=function _merge(t,e){for(var r in e)t[r]=e[r];return t},Tt=function _animationCycle(t,e){var r=Math.floor(t/=e);return t&&r===t?r-1:r},bt=function _isFromOrFromStart(t){var e=t.data;return"isFromStart"===e||"isStart"===e},wt={_start:0,endTime:T,totalDuration:T},xt=function _parsePosition(t,e,i){var n,a,s,o=t.labels,u=t._recent||wt,h=t.duration()>=U?u.endTime(!1):t._dur;return r(e)&&(isNaN(e)||e in o)?(a=e.charAt(0),s="%"===e.substr(-1),n=e.indexOf("="),"<"===a||">"===a?(0<=n&&(e=e.replace(/=/,"")),("<"===a?u._start:u.endTime(0<=u._repeat))+(parseFloat(e.substr(1))||0)*(s?(n<0?u:i).totalDuration()/100:1)):n<0?(e in o||(o[e]=h),o[e]):(a=parseFloat(e.charAt(n-1)+e.substr(n+1)),s&&i&&(a=a/100*(Z(i)?i[0]:i).totalDuration()),1<n?_parsePosition(t,e.substr(0,n-1),i)+a:h+a)):null==e?h:+e},Ot=function _clamp(t,e,r){return r<t?t:e<r?e:r},kt=[].slice,Mt=function toArray(t,e,i){return l&&!e&&l.selector?l.selector(t):!r(t)||i||!n&&Ft()?Z(t)?function _flatten(t,e,i){return void 0===i&&(i=[]),t.forEach(function(t){return r(t)&&!e||_a(t,1)?i.push.apply(i,Mt(t)):i.push(t)})||i}(t,i):_a(t)?kt.call(t,0):t?[t]:[]:kt.call((e||a).querySelectorAll(t),0)},Pt=function mapRange(e,t,r,i,n){var a=t-e,s=i-r;return Wa(n,function(t){return r+((t-e)/a*s||0)})},Ct=function _callback(t,e,r){var i,n,a,s=t.vars,o=s[e],u=l,h=t._ctx;if(o)return i=s[e+"Params"],n=s.callbackScope||t,r&&dt.length&&ma(),h&&(l=h),a=i?o.apply(n,i):o.call(n),l=u,a},At=[],St=255,zt={aqua:[0,St,St],lime:[0,St,0],silver:[192,192,192],black:[0,0,0],maroon:[128,0,0],teal:[0,128,128],blue:[0,0,St],navy:[0,0,128],white:[St,St,St],olive:[128,128,0],yellow:[St,St,0],orange:[St,165,0],gray:[128,128,128],purple:[128,0,128],green:[0,128,0],red:[St,0,0],pink:[St,192,203],cyan:[0,St,St],transparent:[St,St,St,0]},Et=function(){var t,e="(?:\\b(?:(?:rgb|rgba|hsl|hsla)\\(.+?\\))|\\B#(?:[0-9a-f]{3,4}){1,2}\\b";for(t in zt)e+="|"+t+"\\b";return new RegExp(e+")","gi")}(),Dt=/hsl[a]?\(/,Rt=(k=Date.now,M=500,C=33,A=k(),z=A,D=E=1e3/240,g={time:0,frame:0,tick:function tick(){yl(!0)},deltaRatio:function deltaRatio(t){return b/(1e3/(t||60))},wake:function wake(){o&&(!n&&x()&&(h=n=window,a=h.document||{},ot.gsap=ze,(h.gsapVersions||(h.gsapVersions=[])).push(ze.version),P(i||h.GreenSockGlobals||!h.gsap&&h||{}),At.forEach(wb)),m="undefined"!=typeof requestAnimationFrame&&requestAnimationFrame,p&&g.sleep(),_=m||function(t){return setTimeout(t,D-1e3*g.time+1|0)},c=1,yl(2))},sleep:function sleep(){(m?cancelAnimationFrame:clearTimeout)(p),c=0,_=T},lagSmoothing:function lagSmoothing(t,e){M=t||1/0,C=Math.min(e||33,M)},fps:function fps(t){E=1e3/(t||240),D=1e3*g.time+E},add:function add(n,t,e){var a=t?function(t,e,r,i){n(t,e,r,i),g.remove(a)}:n;return g.remove(n),B[e?"unshift":"push"](a),Ft(),a},remove:function remove(t,e){~(e=B.indexOf(t))&&B.splice(e,1)&&e<=O&&O--},_listeners:B=[]}),Ft=function _wake(){return!c&&Rt.wake()},Lt={},It=/^[\d.\-M][\d.\-,\s]/,Bt=/["']/g,Yt=function _invertEase(e){return function(t){return 1-e(1-t)}},jt=function _parseEase(t,e){return t&&(s(t)?t:Lt[t]||Ob(t))||e};function yl(t){var e,r,i,n,a=k()-z,s=!0===t;if((M<a||a<0)&&(A+=a-C),(0<(e=(i=(z+=a)-A)-D)||s)&&(n=++g.frame,b=i-1e3*g.time,g.time=i/=1e3,D+=e+(E<=e?4:E-e),r=1),s||(p=_(yl)),r)for(O=0;O<B.length;O++)B[O](i,b,n,t)}function gn(t){return t<j?Y*t*t:t<.7272727272727273?Y*Math.pow(t-1.5/2.75,2)+.75:t<.9090909090909092?Y*(t-=2.25/2.75)*t+.9375:Y*Math.pow(t-2.625/2.75,2)+.984375}ha("Linear,Quad,Cubic,Quart,Quint,Strong",function(t,e){var r=e<5?e+1:e;Sb(t+",Power"+(r-1),e?function(t){return Math.pow(t,r)}:function(t){return t},function(t){return 1-Math.pow(1-t,r)},function(t){return t<.5?Math.pow(2*t,r)/2:1-Math.pow(2*(1-t),r)/2})}),Lt.Linear.easeNone=Lt.none=Lt.Linear.easeIn,Sb("Elastic",Ub("in"),Ub("out"),Ub()),Y=7.5625,j=1/2.75,Sb("Bounce",function(t){return 1-gn(1-t)},gn),Sb("Expo",function(t){return t?Math.pow(2,10*(t-1)):0}),Sb("Circ",function(t){return-(K(1-t*t)-1)}),Sb("Sine",function(t){return 1===t?1:1-J(t*G)}),Sb("Back",Vb("in"),Vb("out"),Vb()),Lt.SteppedEase=Lt.steps=ot.SteppedEase={config:function config(t,e){void 0===t&&(t=1);var r=1/t,i=t+(e?0:1),n=e?1:0;return function(t){return((i*Ot(0,.99999999,t)|0)+n)*r}}},V.ease=Lt["quad.out"],ha("onComplete,onUpdate,onStart,onRepeat,onReverseComplete,onInterrupt",function(t){return vt+=t+","+t+"Param
20s,"});var qt,Vt=function GSCache(t,e){this.id=W++,(t._gsap=this).target=t,this.harness=e,this.get=e?e.get:ga,this.set=e?e.getSetter:ne},Ut=((qt=Animation.prototype).delay=function delay(t){return t||0===t?(this.parent&&this.parent.smoothChildTiming&&this.startTime(this._start+t-this._delay),this._delay=t,this):this._delay},qt.duration=function duration(t){return arguments.length?this.totalDuration(0<this._repeat?t+(t+this._rDelay)*this._repeat:t):this.totalDuration()&&this._dur},qt.totalDuration=function totalDuration(t){return arguments.length?(this._dirty=0,Ra(this,this._repeat<0?t:(t-this._repeat*this._rDelay)/(this._repeat+1))):this._tDur},qt.totalTime=function totalTime(t,e){if(Ft(),!arguments.length)return this._tTime;var r=this._dp;if(r&&r.smoothChildTiming&&this._ts){for(Ia(this,t),!r._dp||r.parent||Ja(r,this);r&&r.parent;)r.parent._time!==r._start+(0<=r._ts?r._tTime/r._ts:(r.totalDuration()-r._tTime)/-r._ts)&&r.totalTime(r._tTime,!0),r=r.parent;!this.parent&&this._dp.autoRemoveChildren&&(0<this._ts&&t<this._tDur||this._ts<0&&0<t||!this._tDur&&!t)&&Ka(this._dp,this,this._start-this._delay)}return(this._tTime!==t||!this._dur&&!e||this._initted&&Math.abs(this._zTime)===X||!t&&!this._initted&&(this.add||this._ptLookup))&&(this._ts||(this._pTime=t),na(this,t,e)),this},qt.time=function time(t,e){return arguments.length?this.totalTime(Math.min(this.totalDuration(),t+Ea(this))%(this._dur+this._rDelay)||(t?this._dur:0),e):this._time},qt.totalProgress=function totalProgress(t,e){return arguments.length?this.totalTime(this.totalDuration()*t,e):this.totalDuration()?Math.min(1,this._tTime/this._tDur):0<this.rawTime()?1:0},qt.progress=function progress(t,e){return arguments.length?this.totalTime(this.duration()*(!this._yoyo||1&this.iteration()?t:1-t)+Ea(this),e):this.duration()?Math.min(1,this._time/this._dur):0<this.rawTime()?1:0},qt.iteration=function iteration(t,e){var r=this.duration()+this._rDelay;return arguments.length?this.totalTime(this._time+(t-1)*r,e):this._repeat?Tt(this._tTime,r)+1:1},qt.timeScale=function timeScale(t,e){if(!arguments.length)return this._rts===-X?0:this._rts;if(this._rts===t)return this;var r=this.parent&&this._ts?Ga(this.parent._time,this):this._tTime;return this._rts=+t||0,this._ts=this._ps||t===-X?0:this._rts,this.totalTime(Ot(-Math.abs(this._delay),this._tDur,r),!1!==e),Ha(this),function _recacheAncestors(t){for(var e=t.parent;e&&e.parent;)e._dirty=1,e.totalDuration(),e=e.parent;return t}(this)},qt.paused=function paused(t){return arguments.length?(this._ps!==t&&((this._ps=t)?(this._pTime=this._tTime||Math.max(-this._delay,this.rawTime()),this._ts=this._act=0):(Ft(),this._ts=this._rts,this.totalTime(this.parent&&!this.parent.smoothChildTiming?this.rawTime():this._tTime||this._pTime,1===this.progress()&&Math.abs(this._zTime)!==X&&(this._tTime-=X)))),this):this._ps},qt.startTime=function startTime(t){if(arguments.length){this._start=t;var e=this.parent||this._dp;return!e||!e._sort&&this.parent||Ka(e,this,t-this._delay),this}return this._start},qt.endTime=function endTime(t){return this._start+(w(t)?this.totalDuration():this.duration())/Math.abs(this._ts||1)},qt.rawTime=function rawTime(t){var e=this.parent||this._dp;return e?t&&(!this._ts||this._repeat&&this._time&&this.totalProgress()<1)?this._tTime%(this._dur+this._rDelay):this._ts?Ga(e.rawTime(t),this):this._tTime:this._tTime},qt.revert=function revert(t){void 0===t&&(t=lt);var e=L;return L=t,(this._initted||this._startAt)&&(this.timeline&&this.timeline.revert(t),this.totalTime(-.01,t.suppressEvents)),"nested"!==this.data&&!1!==t.kill&&this.kill(),L=e,this},qt.globalTime=function globalTime(t){for(var e=this,r=arguments.length?t:e.rawTime();e;)r=e._start+r/(Math.abs(e._ts)||1),e=e._dp;return!this.parent&&this._sat?this._sat.globalTime(t):r},qt.repeat=function repeat(t){return arguments.length?(this._repeat=t===1/0?-2:t,Sa(this)):-2===this._repeat?1/0:this._repeat},qt.repeatDelay=function repeatDelay(t){if(arguments.length){var e=this._time;return this._rDelay=t,Sa(this),e?this.time(e):this}return this._rDelay},qt.yoyo=function yoyo(t){return arguments.length?(this._yoyo=t,this):this._yoyo},qt.seek=function seek(t,e){return this.totalTime(xt(this,t),w(e))},qt.restart=function restart(t,e){return this.play().totalTime(t?-this._delay:0,w(e))},qt.play=function play(t,e){return null!=t&&this.seek(t,e),this.reversed(!1).paused(!1)},qt.reverse=function reverse(t,e){return null!=t&&this.seek(t||this.totalDuration(),e),this.reversed(!0).paused(!1)},qt.pause=function pause(t,e){return null!=t&&this.seek(t,e),this.paused(!0)},qt.resume=function resume(){return this.paused(!1)},qt.reversed=function reversed(t){return arguments.length?(!!t!==this.reversed()&&this.timeScale(-this._rts||(t?-X:0)),this):this._rts<0}
vendor: 3,228 bytes, line 20
20,qt.invalidate=function invalidate(){return this._initted=this._act=0,this._zTime=-X,this},qt.isActive=function isActive(){var t,e=this.parent||this._dp,r=this._start;return!(e&&!(this._ts&&this._initted&&e.isActive()&&(t=e.rawTime(!0))>=r&&t<this.endTime(!0)-X))},qt.eventCallback=function eventCallback(t,e,r){var i=this.vars;return 1<arguments.length?(e?(i[t]=e,r&&(i[t+"Params"]=r),"onUpdate"===t&&(this._onUpdate=e)):delete i[t],this):i[t]},qt.then=function then(t){var i=this;return new Promise(function(e){function Co(){var t=i.then;i.then=null,s(r)&&(r=r(i))&&(r.then||r===i)&&(i.then=t),e(r),i.then=t}var r=s(t)?t:pa;i._initted&&1===i.totalProgress()&&0<=i._ts||!i._tTime&&i._ts<0?Co():i._prom=Co})},qt.kill=function kill(){tb(this)},Animation);function Animation(t){this.vars=t,this._delay=+t.delay||0,(this._repeat=t.repeat===1/0?-2:t.repeat||0)&&(this._rDelay=t.repeatDelay||0,this._yoyo=!!t.yoyo||!!t.yoyoEase),this._ts=1,Ra(this,+t.duration,1,1),this.data=t.data,l&&(this._ctx=l).data.push(this),c||Rt.wake()}qa(Ut.prototype,{_time:0,_start:0,_end:0,_tTime:0,_tDur:0,_dirty:0,_repeat:0,_yoyo:!1,parent:null,_initted:!1,_rDelay:0,_ts:1,_dp:0,ratio:0,_zTime:-X,_prom:0,_ps:!1,_rts:1});var Xt=function(i){function Timeline(t,e){var r;return void 0===t&&(t={}),(r=i.call(this,t)||this).labels={},r.smoothChildTiming=!!t.smoothChildTiming,r.autoRemoveChildren=!!t.autoRemoveChildren,r._sort=w(t.sortChildren),I&&Ka(t.parent||I,_assertThisInitialized(r),e),t.reversed&&r.reverse(),t.paused&&r.paused(!0),t.scrollTrigger&&La(_assertThisInitialized(r),t.scrollTrigger),r}_inheritsLoose(Timeline,i);var e=Timeline.prototype;return e.to=function to(t,e,r){return Va(0,arguments,this),this},e.from=function from(t,e,r){return Va(1,arguments,this),this},e.fromTo=function fromTo(t,e,r,i){return Va(2,arguments,this),this},e.set=function set(t,e,r){return e.duration=0,e.parent=this,va(e).repeatDelay||(e.repeat=0),e.immediateRender=!!e.immediateRender,new $t(t,e,xt(this,r),1),this},e.call=function call(t,e,r){return Ka(this,$t.delayedCall(0,t,e),r)},e.staggerTo=function staggerTo(t,e,r,i,n,a,s){return r.duration=e,r.stagger=r.stagger||i,r.onComplete=a,r.onCompleteParams=s,r.parent=this,new $t(t,r,xt(this,n)),this},e.staggerFrom=function staggerFrom(t,e,r,i,n,a,s){return r.runBackwards=1,va(r).immediateRender=w(r.immediateRender),this.staggerTo(t,e,r,i,n,a,s)},e.staggerFromTo=function staggerFromTo(t,e,r,i,n,a,s,o){return i.startAt=r,va(i).immediateRender=w(i.immediateRender),this.staggerTo(t,e,i,n,a,s,o)},e.render=function render(t,e,r){var i,n,a,s,o,u,h,l,f,d,c,p,_=this._time,m=this._dirty?this.totalDuration():this._tDur,g=this._dur,v=t<=0?0:ja(t),y=this._zTime<0!=t<0&&(this._initted||!g);if(this!==I&&m<v&&0<=t&&(v=m),v!==this._tTime||r||y){if(_!==this._time&&g&&(v+=this._time-_,t+=this._time-_),i=v,f=this._start,u=!(l=this._ts),y&&(g||(_=this._zTime),!t&&e||(this._zTime=t)),this._repeat){if(c=this._yoyo,o=g+this._rDelay,this._repeat<-1&&t<0)return this.totalTime(100*o+t,e,r);if(i=ja(v%o),v===m?(s=this._repeat,i=g):((s=~~(v/o))&&s===v/o&&(i=g,s--),g<i&&(i=g)),d=Tt(this._tTime,o),!_&&this._tTime&&d!==s&&this._tTime-d*o-this._dur<=0&&(d=s),c&&1&s&&(i=g-i,p=1),s!==d&&!this._lock){var T=c&&1&d,b=T===(c&&
vendor: 44,758 bytes, line 20
201&s);if(s<d&&(T=!T),_=T?0:v%g?g:v,this._lock=1,this.render(_||(p?0:ja(s*o)),e,!g)._lock=0,this._tTime=v,!e&&this.parent&&Ct(this,"onRepeat"),this.vars.repeatRefresh&&!p&&(this.invalidate()._lock=1),_&&_!==this._time||u!=!this._ts||this.vars.onRepeat&&!this.parent&&!this._act)return this;if(g=this._dur,m=this._tDur,b&&(this._lock=2,_=T?g:-1e-4,this.render(_,!0),this.vars.repeatRefresh&&!p&&this.invalidate()),this._lock=0,!this._ts&&!u)return this;Qb(this,p)}}if(this._hasPause&&!this._forcing&&this._lock<2&&(h=function _findNextPauseTween(t,e,r){var i;if(e<r)for(i=t._first;i&&i._start<=r;){if("isPause"===i.data&&i._start>e)return i;i=i._next}else for(i=t._last;i&&i._start>=r;){if("isPause"===i.data&&i._start<e)return i;i=i._prev}}(this,ja(_),ja(i)))&&(v-=i-(i=h._start)),this._tTime=v,this._time=i,this._act=!l,this._initted||(this._onUpdate=this.vars.onUpdate,this._initted=1,this._zTime=t,_=0),!_&&i&&!e&&!s&&(Ct(this,"onStart"),this._tTime!==v))return this;if(_<=i&&0<=t)for(n=this._first;n;){if(a=n._next,(n._act||i>=n._start)&&n._ts&&h!==n){if(n.parent!==this)return this.render(t,e,r);if(n.render(0<n._ts?(i-n._start)*n._ts:(n._dirty?n.totalDuration():n._tDur)+(i-n._start)*n._ts,e,r),i!==this._time||!this._ts&&!u){h=0,a&&(v+=this._zTime=-X);break}}n=a}else{n=this._last;for(var w=t<0?t:i;n;){if(a=n._prev,(n._act||w<=n._end)&&n._ts&&h!==n){if(n.parent!==this)return this.render(t,e,r);if(n.render(0<n._ts?(w-n._start)*n._ts:(n._dirty?n.totalDuration():n._tDur)+(w-n._start)*n._ts,e,r||L&&(n._initted||n._startAt)),i!==this._time||!this._ts&&!u){h=0,a&&(v+=this._zTime=w?-X:X);break}}n=a}}if(h&&!e&&(this.pause(),h.render(_<=i?0:-X)._zTime=_<=i?1:-1,this._ts))return this._start=f,Ha(this),this.render(t,e,r);this._onUpdate&&!e&&Ct(this,"onUpdate",!0),(v===m&&this._tTime>=this.totalDuration()||!v&&_)&&(f!==this._start&&Math.abs(l)===Math.abs(this._ts)||this._lock||(!t&&g||!(v===m&&0<this._ts||!v&&this._ts<0)||za(this,1),e||t<0&&!_||!v&&!_&&m||(Ct(this,v===m&&0<=t?"onComplete":"onReverseComplete",!0),!this._prom||v<m&&0<this.timeScale()||this._prom())))}return this},e.add=function add(e,i){var n=this;if(t(i)||(i=xt(this,i,e)),!(e instanceof Ut)){if(Z(e))return e.forEach(function(t){return n.add(t,i)}),this;if(r(e))return this.addLabel(e,i);if(!s(e))return this;e=$t.delayedCall(0,e)}return this!==e?Ka(this,e,i):this},e.getChildren=function getChildren(t,e,r,i){void 0===t&&(t=!0),void 0===e&&(e=!0),void 0===r&&(r=!0),void 0===i&&(i=-U);for(var n=[],a=this._first;a;)a._start>=i&&(a instanceof $t?e&&n.push(a):(r&&n.push(a),t&&n.push.apply(n,a.getChildren(!0,e,r)))),a=a._next;return n},e.getById=function getById(t){for(var e=this.getChildren(1,1,1),r=e.length;r--;)if(e[r].vars.id===t)return e[r]},e.remove=function remove(t){return r(t)?this.removeLabel(t):s(t)?this.killTweensOf(t):(ya(this,t),t===this._recent&&(this._recent=this._last),Aa(this))},e.totalTime=function totalTime(t,e){return arguments.length?(this._forcing=1,!this._dp&&this._ts&&(this._start=ja(Rt.time-(0<this._ts?t/this._ts:(this.totalDuration()-t)/-this._ts))),i.prototype.totalTime.call(this,t,e),this._forcing=0,this):this._tTime},e.addLabel=function addLabel(t,e){return this.labels[t]=xt(this,e),this},e.removeLabel=function removeLabel(t){return delete this.labels[t],this},e.addPause=function addPause(t,e,r){var i=$t.delayedCall(0,e||T,r);return i.data="isPause",this._hasPause=1,Ka(this,i,xt(this,t))},e.removePause=function removePause(t){var e=this._first;for(t=xt(this,t);e;)e._start===t&&"isPause"===e.data&&za(e),e=e._next},e.killTweensOf=function killTweensOf(t,e,r){for(var i=this.getTweensOf(t,r),n=i.length;n--;)Nt!==i[n]&&i[n].kill(t,e);return this},e.getTweensOf=function getTweensOf(e,r){for(var i,n=[],a=Mt(e),s=this._first,o=t(r);s;)s instanceof $t?la(s._targets,a)&&(o?(!Nt||s._initted&&s._ts)&&s.globalTime(0)<=r&&s.globalTime(s.totalDuration())>r:!r||s.isActive())&&n.push(s):(i=s.getTweensOf(a,r)).length&&n.push.apply(n,i),s=s._next;return n},e.tweenTo=function tweenTo(t,e){e=e||{};var r,i=this,n=xt(i,t),a=e.startAt,s=e.onStart,o=e.onStartParams,u=e.immediateRender,h=$t.to(i,qa({ease:e.ease||"none",lazy:!1,immediateRender:!1,time:n,overwrite:"auto",duration:e.duration||Math.abs((n-(a&&"time"in a?a.time:i._time))/i.timeScale())||X,onStart:function onStart(){if(i.pause(),!r){var t=e.duration||Math.abs((n-(a&&"time"in a?a.time:i._time))/i.timeScale());h._dur!==t&&Ra(h,t,0,1).render(h._time,!0,!0),r=1}s&&s.apply(h,o||[])}},e));return u?h.render(0):h},e.tweenFromTo=function tweenFromTo(t,e,r){return this.tweenTo(e,qa({startAt:{time:xt(this,t)}},r))},e.recent=function recent(){return this._recent},e.nextLabel=function nextLabel(t){return void 0===t&&(t=this._time),rb(this,xt(this,t))},e.previousLabel=function previousLabel(t){return void 0===t&&(t=this._time),rb(this,xt(this,t),1)},e.currentLabel=function currentLabel(t){return arguments.length?this.seek(t,!0):this.previousLabel(this._time+X)},e.shiftChildren=function shiftChildren(t,e,r){void 0===r&&(r=0);for(var i,n=this._first,a=this.labels;n;)n._start>=r&&(n._start+=t,n._end+=t),n=n._next;if(e)for(i in a)a[i]>=r&&(a[i]+=t);return Aa(this)},e.invalidate=function invalidate(t){var e=this._first;for(this._lock=0;e;)e.invalidate(t),e=e._next;return i.prototype.invalidate.call(this,t)},e.clear=function clear(t){void 0===t&&(t=!0);for(var e,r=this._first;r;)e=r._next,this.remove(r),r=e;return this._dp&&(this._time=this._tTime=this._pTime=0),t&&(this.labels={}),Aa(this)},e.totalDuration=function totalDuration(t){var e,r,i,n=0,a=this,s=a._last,o=U;if(arguments.length)return a.timeScale((a._repeat<0?a.duration():a.totalDuration())/(a.reversed()?-t:t));if(a._dirty){for(i=a.parent;s;)e=s._prev,s._dirty&&s.totalDuration(),o<(r=s._start)&&a._sort&&s._ts&&!a._lock?(a._lock=1,Ka(a,s,r-s._delay,1)._lock=0):o=r,r<0&&s._ts&&(n-=r,(!i&&!a._dp||i&&i.smoothChildTiming)&&(a._start+=r/a._ts,a._time-=r,a._tTime-=r),a.shiftChildren(-r,!1,-Infinity),o=0),s._end>n&&s._ts&&(n=s._end),s=e;Ra(a,a===I&&a._time>n?a._time:n,1,1),a._dirty=0}return a._tDur},Timeline.updateRoot=function updateRoot(t){if(I._ts&&(na(I,Ga(t,I)),f=Rt.frame),Rt.frame>=mt){mt+=q.autoSleep||120;var e=I._first;if((!e||!e._ts)&&q.autoSleep&&Rt._listeners.length<2){for(;e&&!e._ts;)e=e._next;e||Rt.sleep()}}},Timeline}(Ut);qa(Xt.prototype,{_lock:0,_hasPause:0,_forcing:0});function ac(t,e,i,n,a,o){var u,h,l,f;if(pt[t]&&!1!==(u=new pt[t]).init(a,u.rawVars?e[t]:function _processVars(t,e,i,n,a){if(s(t)&&(t=Kt(t,a,e,i,n)),!v(t)||t.style&&t.nodeType||Z(t)||$(t))return r(t)?Kt(t,a,e,i,n):t;var o,u={};for(o in t)u[o]=Kt(t[o],a,e,i,n);return u}(e[t],n,a,o,i),i,n,o)&&(i._pt=h=new _e(i._pt,a,t,0,1,u.render,u,0,u.priority),i!==d))for(l=i._ptLookup[i._targets.indexOf(a)],f=u._props.length;f--;)l[u._props[f]]=h;return u}function gc(t,r,e,i){var n,a,s=r.ease||i||"power1.inOut";if(Z(r))a=e[t]||(e[t]=[]),r.forEach(function(t,e){return a.push({t:e/(r.length-1)*100,v:t,e:s})});else for(n in r)a=e[n]||(e[n]=[]),"ease"===n||a.push({t:parseFloat(t),v:r[n],e:s})}var Nt,Gt,Wt=function _addPropTween(t,e,i,n,a,o,u,h,l,f){s(n)&&(n=n(a||0,t,o));var d,c=t[e],p="get"!==i?i:s(c)?l?t[e.indexOf("set")||!s(t["get"+e.substr(3)])?e:"get"+e.substr(3)](l):t[e]():c,_=s(c)?l?re:te:Zt;if(r(n)&&(~n.indexOf("random(")&&(n=ob(n)),"="===n.charAt(1)&&(!(d=ka(p,n)+(Ya(p)||0))&&0!==d||(n=d))),!f||p!==n||Gt)return isNaN(p*n)||""===n?(c||e in t||Q(e,n),function _addComplexStringPropTween(t,e,r,i,n,a,s){var o,u,h,l,f,d,c,p,_=new _e(this._pt,t,e,0,1,ue,null,n),m=0,g=0;for(_.b=r,_.e=i,r+="",(c=~(i+="").indexOf("random("))&&(i=ob(i)),a&&(a(p=[r,i],t,e),r=p[0],i=p[1]),u=r.match(it)||[];o=it.exec(i);)l=o[0],f=i.substring(m,o.index),h?h=(h+1)%5:"rgba("===f.substr(-5)&&(h=1),l!==u[g++]&&(d=parseFloat(u[g-1])||0,_._pt={_next:_._pt,p:f||1===g?f:",",s:d,c:"="===l.charAt(1)?ka(d,l)-d:parseFloat(l)-d,m:h&&h<4?Math.round:0},m=it.lastIndex);return _.c=m<i.length?i.substring(m,i.length):"",_.fp=s,(nt.test(i)||c)&&(_.e=0),this._pt=_}.call(this,t,e,p,n,_,h||q.stringFilter,l)):(d=new _e(this._pt,t,e,+p||0,n-(p||0),"boolean"==typeof c?se:ae,0,_),l&&(d.fp=l),u&&d.modifier(u,this,t),this._pt=d)},Qt=function _initTween(t,e,r){var i,n,a,s,o,u,h,l,f,d,c,p,_,m=t.vars,g=m.ease,v=m.startAt,y=m.immediateRender,T=m.lazy,b=m.onUpdate,x=m.runBackwards,O=m.yoyoEase,k=m.keyframes,M=m.autoRevert,P=t._dur,C=t._startAt,A=t._targets,S=t.parent,z=S&&"nested"===S.data?S.vars.targets:A,E="auto"===t._overwrite&&!F,D=t.timeline;if(!D||k&&g||(g="none"),t._ease=jt(g,V.ease),t._yEase=O?Yt(jt(!0===O?g:O,V.ease)):0,O&&t._yoyo&&!t._repeat&&(O=t._yEase,t._yEase=t._ease,t._ease=O),t._from=!D&&!!m.runBackwards,!D||k&&!m.stagger){if(p=(l=A[0]?fa(A[0]).harness:0)&&m[l.prop],i=ua(m,ft),C&&(C._zTime<0&&C.progress(1),e<0&&x&&y&&!M?C.render(-1,!0):C.revert(x&&P?ht:ut),C._lazy=0),v){if(za(t._startAt=$t.set(A,qa({data:"isStart",overwrite:!1,parent:S,immediateRender:!0,lazy:!C&&w(T),startAt:null,delay:0,onUpdate:b&&function(){return Ct(t,"onUpdate")},stagger:0},v))),t._startAt._dp=0,t._startAt._sat=t,e<0&&(L||!y&&!M)&&t._startAt.revert(ht),y&&P&&e<=0&&r<=0)return void(e&&(t._zTime=e))}else if(x&&P&&!C)if(e&&(y=!1),a=qa({overwrite:!1,data:"isFromStart",lazy:y&&!C&&w(T),immediateRender:y,stagger:0,parent:S},i),p&&(a[l.prop]=p),za(t._startAt=$t.set(A,a)),t._startAt._dp=0,t._startAt._sat=t,e<0&&(L?t._startAt.revert(ht):t._startAt.render(-1,!0)),t._zTime=e,y){if(!e)return}else _initTween(t._startAt,X,X);for(t._pt=t._ptCache=0,T=P&&w(T)||T&&!P,n=0;n<A.length;n++){if(h=(o=A[n])._gsap||ea(A)[n]._gsap,t._ptLookup[n]=d={},ct[h.id]&&dt.length&&ma(),c=z===A?n:z.indexOf(o),l&&!1!==(f=new l).init(o,p||i,t,c,z)&&(t._pt=s=new _e(t._pt,o,f.name,0,1,f.render,f,0,f.priority),f._props.forEach(function(t){d[t]=s}),f.priority&&(u=1)),!l||p)for(a in i)pt[a]&&(f=ac(a,i,t,c,o,z))?f.priority&&(u=1):d[a]=s=Wt.call(t,o,a,"get",i[a],c,z,0,m.stringFilter);t._op&&t._op[n]&&t.kill(o,t._op[n]),E&&t._pt&&(Nt=t,I.killTweensOf(o,d,t.globalTime(e)),_=!t.parent,Nt=0),t._pt&&T&&(ct[h.id]=1)}u&&pe(t),t._onInit&&t._onInit(t)}t._onUpdate=b,t._initted=(!t._op||t._pt)&&!_,k&&e<=0&&D.render(U,!0,!0)},Kt=function _parseFuncOrString(t,e,i,n,a){return s(t)?t.call(e,i,n,a):r(t)&&~t.indexOf("random(")?ob(t):t},Jt=vt+"repeat,repeatDelay,yoyo,repeatRefresh,yoyoEase,autoRevert",Ht={};ha(Jt+",id,stagger,delay,duration,paused,scrollTrigger",function(t){return Ht[t]=1});var $t=function(D){function Tween(e,r,i,n){var a;"number"==typeof r&&(i.duration=r,r=i,i=null);var s,o,u,h,l,f,d,c,p=(a=D.call(this,n?r:va(r))||this).vars,_=p.duration,m=p.delay,g=p.immediateRender,T=p.stagger,b=p.overwrite,x=p.keyframes,O=p.defaults,k=p.scrollTrigger,M=p.yoyoEase,P=r.parent||I,C=(Z(e)||$(e)?t(e[0]):"length"in r)?[e]:Mt(e);if(a._targets=C.length?ea(C):R("GSAP target "+e+" not found. https://gsap.com",!q.nullTargetWarn)||[],a._ptLookup=[],a._overwrite=b,x||T||y(_)||y(m)){if(r=a.vars,(s=a.timeline=new Xt({data:"nested",defaults:O||{},targets:P&&"nested"===P.data?P.vars.targets:C})).kill(),s.parent=s._dp=_assertThisInitialized(a),s._start=0,T||y(_)||y(m)){if(h=C.length,d=T&&eb(T),v(T))for(l in T)~Jt.indexOf(l)&&((c=c||{})[l]=T[l]);for(o=0;o<h;o++)(u=ua(r,Ht)).stagger=0,M&&(u.yoyoEase=M),c&&yt(u,c),f=C[o],u.duration=+Kt(_,_assertThisInitialized(a),o,f,C),u.delay=(+Kt(m,_assertThisInitialized(a),o,f,C)||0)-a._delay,!T&&1===h&&u.delay&&(a._delay=m=u.delay,a._start+=m,u.delay=0),s.to(f,u,d?d(o,f,C):0),s._ease=Lt.none;s.duration()?_=m=0:a.timeline=0}else if(x){va(qa(s.vars.defaults,{ease:"none"})),s._ease=jt(x.ease||r.ease||"none");var A,S,z,E=0;if(Z(x))x.forEach(function(t){return s.to(C,t,">")}),s.duration();else{for(l in u={},x)"ease"===l||"easeEach"===l||gc(l,x[l],u,x.easeEach);for(l in u)for(A=u[l].sort(function(t,e){return t.t-e.t}),o=E=0;o<A.length;o++)(z={ease:(S=A[o]).e,duration:(S.t-(o?A[o-1].t:0))/100*_})[l]=S.v,s.to(C,z,E),E+=z.duration;s.duration()<_&&s.to({},{duration:_-s.duration()})}}_||a.duration(_=s.duration())}else a.timeline=0;return!0!==b||F||(Nt=_assertThisInitialized(a),I.killTweensOf(C),Nt=0),Ka(P,_assertThisInitialized(a),i),r.reversed&&a.reverse(),r.paused&&a.paused(!0),(g||!_&&!x&&a._start===ja(P._time)&&w(g)&&function _hasNoPausedAncestors(t){return!t||t._ts&&_hasNoPausedAncestors(t.parent)}(_assertThisInitialized(a))&&"nested"!==P.data)&&(a._tTime=-X,a.render(Math.max(0,-m)||0)),k&&La(_assertThisInitialized(a),k),a}_inheritsLoose(Tween,D);var e=Tween.prototype;return e.render=function render(t,e,r){var i,n,a,s,o,u,h,l,f,d=this._time,c=this._tDur,p=this._dur,_=t<0,m=c-X<t&&!_?c:t<X?0:t;if(p){if(m!==this._tTime||!t||r||!this._initted&&this._tTime||this._startAt&&this._zTime<0!=_){if(i=m,l=this.timeline,this._repeat){if(s=p+this._rDelay,this._repeat<-1&&_)return this.totalTime(100*s+t,e,r);if(i=ja(m%s),m===c?(a=this._repeat,i=p):((a=~~(m/s))&&a===ja(m/s)&&(i=p,a--),p<i&&(i=p)),(u=this._yoyo&&1&a)&&(f=this._yEase,i=p-i),o=Tt(this._tTime,s),i===d&&!r&&this._initted&&a===o)return this._tTime=m,this;a!==o&&(l&&this._yEase&&Qb(l,u),this.vars.repeatRefresh&&!u&&!this._lock&&this._time!==s&&this._initted&&(this._lock=r=1,this.render(ja(s*a),!0).invalidate()._lock=0))}if(!this._initted){if(Ma(this,_?t:i,r,e,m))return this._tTime=0,this;if(!(d===this._time||r&&this.vars.repeatRefresh&&a!==o))return this;if(p!==this._dur)return this.render(t,e,r)}if(this._tTime=m,this._time=i,!this._act&&this._ts&&(this._act=1,this._lazy=0),this.ratio=h=(f||this._ease)(i/p),this._from&&(this.ratio=h=1-h),i&&!d&&!e&&!a&&(Ct(this,"onStart"),this._tTime!==m))return this;for(n=this._pt;n;)n.r(h,n.d),n=n._next;l&&l.render(t<0?t:l._dur*l._ease(i/this._dur),e,r)||this._startAt&&(this._zTime=t),this._onUpdate&&!e&&(_&&Ca(this,t,0,r),Ct(this,"onUpdate")),this._repeat&&a!==o&&this.vars.onRepeat&&!e&&this.parent&&Ct(this,"onRepeat"),m!==this._tDur&&m||this._tTime!==m||(_&&!this._onUpdate&&Ca(this,t,0,!0),!t&&p||!(m===this._tDur&&0<this._ts||!m&&this._ts<0)||za(this,1),e||_&&!d||!(m||d||u)||(Ct(this,m===c?"onComplete":"onReverseComplete",!0),!this._prom||m<c&&0<this.timeScale()||this._prom()))}}else!function _renderZeroDurationTween(t,e,r,i){var n,a,s,o=t.ratio,u=e<0||!e&&(!t._start&&function _parentPlayheadIsBeforeStart(t){var e=t.parent;return e&&e._ts&&e._initted&&!e._lock&&(e.rawTime()<0||_parentPlayheadIsBeforeStart(e))}(t)&&(t._initted||!bt(t))||(t._ts<0||t._dp._ts<0)&&!bt(t))?0:1,h=t._rDelay,l=0;if(h&&t._repeat&&(l=Ot(0,t._tDur,e),a=Tt(l,h),t._yoyo&&1&a&&(u=1-u),a!==Tt(t._tTime,h)&&(o=1-u,t.vars.repeatRefresh&&t._initted&&t.invalidate())),u!==o||L||i||t._zTime===X||!e&&t._zTime){if(!t._initted&&Ma(t,e,i,r,l))return;for(s=t._zTime,t._zTime=e||(r?X:0),r=r||e&&!s,t.ratio=u,t._from&&(u=1-u),t._time=0,t._tTime=l,n=t._pt;n;)n.r(u,n.d),n=n._next;e<0&&Ca(t,e,0,!0),t._onUpdate&&!r&&Ct(t,"onUpdate"),l&&t._repeat&&!r&&t.parent&&Ct(t,"onRepeat"),(e>=t._tDur||e<0)&&t.ratio===u&&(u&&za(t,1),r||L||(Ct(t,u?"onComplete":"onReverseComplete",!0),t._prom&&t._prom()))}else t._zTime||(t._zTime=e)}(this,t,e,r);return this},e.targets=function targets(){return this._targets},e.invalidate=function invalidate(t){return t&&this.vars.runBackwards||(this._startAt=0),this._pt=this._op=this._onUpdate=this._lazy=this.ratio=0,this._ptLookup=[],this.timeline&&this.timeline.invalidate(t),D.prototype.invalidate.call(this,t)},e.resetTo=function resetTo(t,e,r,i,n){c||Rt.wake(),this._ts||this.play();var a,s=Math.min(this._dur,(this._dp._time-this._start)*this._ts);return this._initted||Qt(this,s),a=this._ease(s/this._dur),function _updatePropTweens(t,e,r,i,n,a,s,o){var u,h,l,f,d=(t._pt&&t._ptCache||(t._ptCache={}))[e];if(!d)for(d=t._ptCache[e]=[],l=t._ptLookup,f=t._targets.length;f--;){if((u=l[f][e])&&u.d&&u.d._pt)for(u=u.d._pt;u&&u.p!==e&&u.fp!==e;)u=u._next;if(!u)return Gt=1,t.vars[e]="+=0",Qt(t,s),Gt=0,o?R(e+" not eligible for reset"):1;d.push(u)}for(f=d.length;f--;)(u=(h=d[f])._pt||h).s=!i&&0!==i||n?u.s+(i||0)+a*u.c:i,u.c=r-u.s,h.e&&(h.e=ia(r)+Ya(h.e)),h.b&&(h.b=u.s+Ya(h.b))}(this,t,e,r,i,a,s,n)?this.resetTo(t,e,r,i,1):(Ia(this,0),this.parent||xa(this._dp,this,"_first","_last",this._dp._sort?"_start":0),this.render(0))},e.kill=function kill(t,e){if(void 0===e&&(e="all"),!(t||e&&"all"!==e))return this._lazy=this._pt=0,this.parent?tb(this):this;if(this.timeline){var i=this.timeline.totalDuration();return this.timeline.killTweensOf(t,e,Nt&&!0!==Nt.vars.overwrite)._first||tb(this),this.parent&&i!==this.timeline.totalDuration()&&Ra(this,this._dur*this.timeline._tDur/i,0,1),this}var n,a,s,o,u,h,l,f=this._targets,d=t?Mt(t):f,c=this._ptLookup,p=this._pt;if((!e||"all"===e)&&function _arraysMatch(t,e){for(var r=t.length,i=r===e.length;i&&r--&&t[r]===e[r];);return r<0}(f,d))return"all"===e&&(this._pt=0),tb(this);for(n=this._op=this._op||[],"all"!==e&&(r(e)&&(u={},ha(e,function(t){return u[t]=1}),e=u),e=function _addAliasesToVars(t,e){var r,i,n,a,s=t[0]?fa(t[0]).harness:0,o=s&&s.aliases;if(!o)return e;for(i in r=yt({},e),o)if(i in r)for(n=(a=o[i].split(",")).length;n--;)r[a[n]]=r[i];return r}(f,e)),l=f.length;l--;)if(~d.indexOf(f[l]))for(u in a=c[l],"all"===e?(n[l]=e,o=a,s={}):(s=n[l]=n[l]||{},o=e),o)(h=a&&a[u])&&("kill"in h.d&&!0!==h.d.kill(u)||ya(this,h,"_pt"),delete a[u]),"all"!==s&&(s[u]=1);return this._initted&&!this._pt&&p&&tb(this),this},Tween.to=function to(t,e,r){return new Tween(t,e,r)},Tween.from=function from(t,e){return Va(1,arguments)},Tween.delayedCall=function delayedCall(t,e,r,i){return new Tween(e,0,{immediateRender:!1,lazy:!1,overwrite:!1,delay:t,onComplete:e,onReverseComplete:e,onCompleteParams:r,onReverseCompleteParams:r,callbackScope:i})},Tween.fromTo=function fromTo(t,e,r){return Va(2,arguments)},Tween.set=function set(t,e){return e.duration=0,e.repeatDelay||(e.repeat=0),new Tween(t,e)},Tween.killTweensOf=function killTweensOf(t,e,r){return I.killTweensOf(t,e,r)},Tween}(Ut);qa($t.prototype,{_targets:[],_lazy:0,_startAt:0,_op:0,_onInit:0}),ha("staggerTo,staggerFrom,staggerFromTo",function(r){$t[r]=function(){var t=new Xt,e=kt.call(arguments,0);return e.splice("staggerFromTo"===r?5:4,0,0),t[r].apply(t,e)}});function oc(t,e,r){return t.setAttribute(e,r)}function wc(t,e,r,i){i.mSet(t,e,i.m.call(i.tween,r,i.mt),i)}var Zt=function _setterPlain(t,e,r){return t[e]=r},te=function _setterFunc(t,e,r){return t[e](r)},re=function _setterFuncWithParam(t,e,r,i){return t[e](i.fp,r)},ne=function _getSetter(t,e){return s(t[e])?te:u(t[e])&&t.setAttribute?oc:Zt},ae=function _renderPlain(t,e){return e.set(e.t,e.p,Math.round(1e6*(e.s+e.c*t))/1e6,e)},se=function _renderBoolean(t,e){return e.set(e.t,e.p,!!(e.s+e.c*t),e)},ue=function _renderComplexString(t,e){var r=e._pt,i="";if(!t&&e.b)i=e.b;else if(1===t&&e.e)i=e.e;else{for(;r;)i=r.p+(r.m?r.m(r.s+r.c*t):Math.round(1e4*(r.s+r.c*t))/1e4)+i,r=r._next;i+=e.c}e.set(e.t,e.p,i,e)},he=function _renderPropTweens(t,e){for(var r=e._pt;r;)r.r(t,r.d),r=r._next},fe=function _addPluginModifier(t,e,r,i){for(var n,a=this._pt;a;)n=a._next,a.p===i&&a.modifier(t,e,r),a=n},ce=function _killPropTweensOf(t){for(var e,r,i=this._pt;i;)r=i._next,i.p===t&&!i.op||i.op===t?ya(this,i,"_pt"):i.dep||(e=1),i=r;return!e},pe=function _sortPropTweensByPriority(t){for(var e,r,i,n,a=t._pt;a;){for(e=a._next,r=i;r&&r.pr>a.pr;)r=r._next;(a._prev=r?r._prev:n)?a._prev._next=a:i=a,(a._next=r)?r._prev=a:n=a,a=e}t._pt=i},_e=(PropTween.prototype.modifier=function modifier(t,e,r){this.mSet=this.mSet||this.set,this.set=wc,this.m=t,this.mt=r,this.tween=e},PropTween);function PropTween(t,e,r,i,n,a,s,o,u){this.t=e,this.s=i,this.c=n,this.p=r,this.r=a||ae,this.d=s||this,this.set=o||Zt,this.pr=u||0,(this._next=t)&&(t._prev=this)}ha(vt+"parent,duration,ease,delay,overwrite,runBackwards,startAt,yoyo,immediateRender,repeat,repeatDelay,data,paused,reversed,lazy,callbackScope,stringFilter,id,yoyoEase,stagger,inherit,repeatRefresh,keyframes,autoRevert,scrollTrigger",function(t){return ft[t]=1}),ot.TweenMax=ot.TweenLite=$t,ot.TimelineLite=ot.TimelineMax=Xt,I=new Xt({sortChildren:!1,defaults:V,autoRemoveChildren:!0,id:"root",smoothChildTiming:!0}),q.stringFilter=Fb;function Ec(t){return(ye[t]||Te).map(function(t){return t()})}function Fc(){var t=Date.now(),o=[];2<t-Oe&&(Ec("matchMediaInit"),ge.forEach(function(t){var e,r,i,n,a=t.queries,s=t.conditions;for(r in a)(e=h.matchMedia(a[r]).matches)&&(i=1),e!==s[r]&&(s[r]=e,n=1);n&&(t.revert(),i&&o.push(t))}),Ec("matchMediaRevert"),o.forEach(function(e){return e.onMatch(e,function(t){return e.add(null,t)})}),Oe=t,Ec("matchMedia"))}var me,ge=[],ye={},Te=[],Oe=0,Me=0,Pe=((me=Context.prototype).add=function add(t,i,n){function Gw(){var t,e=l,r=a.selector;return e&&e!==a&&e.data.push(a),n&&(a.selector=cb(n)),l=a,t=i.apply(a,arguments),s(t)&&a._r.push(t),l=e,a.selector=r,a.isReverted=!1,t}s(t)&&(n=i,i=t,t=s);var a=this;return a.last=Gw,t===s?Gw(a,function(t){return a.add(null,t)}):t?a[t]=Gw:Gw},me.ignore=function ignore(t){var e=l;l=null,t(this),l=e},me.getTweens=function getTweens(){var e=[];return this.data.forEach(function(t){return t instanceof Context?e.push.apply(e,t.getTweens()):t instanceof $t&&!(t.parent&&"nested"===t.parent.data)&&e.push(t)}),e},me.clear=function clear(){this._r.length=this.data.length=0},me.kill=function kill(i,t){var n=this;if(i?function(){for(var t,e=n.getTweens(),r=n.data.length;r--;)"isFlip"===(t=n.data[r]).data&&(t.revert(),t.getChildren(!0,!0,!1).forEach(function(t){return e.splice(e.indexOf(t),1)}));for(e.map(function(t){return{g:t._dur||t._delay||t._sat&&!t._sat.vars.immediateRender?t.globalTime(0):-1/0,t:t}}).sort(function(t,e){return e.g-t.g||-1/0}).forEach(function(t){return t.t.revert(i)}),r=n.data.length;r--;)(t=n.data[r])instanceof Xt?"nested"!==t.data&&(t.scrollTrigger&&t.scrollTrigger.revert(),t.kill()):t instanceof $t||!t.revert||t.revert(i);n._r.forEach(function(t){return t(i,n)}),n.isReverted=!0}():this.data.forEach(function(t){return t.kill&&t.kill()}),this.clear(),t)for(var e=ge.length;e--;)ge[e].id===this.id&&ge.splice(e,1)},me.revert=function revert(t){this.kill(t||{})},Context);function Context(t,e){this.selector=e&&cb(e),this.data=[],this._r=[],this.isReverted=!1,this.id=Me++,t&&this.add(t)}var Ce,Ae=((Ce=MatchMedia.prototype).add=function add(t,e,r){v(t)||(t={matches:t});var i,n,a,s=new Pe(0,r||this.scope),o=s.conditions={};for(n in l&&!s.selector&&(s.selector=l.selector),this.contexts.push(s),e=s.add("onMatch",e),s.queries=t)"all"===n?a=1:(i=h.matchMedia(t[n]))&&(ge.indexOf(s)<0&&ge.push(s),(o[n]=i.matches)&&(a=1),i.addListener?i.addListener(Fc):i.addEventListener("change",Fc));return a&&e(s,function(t){return s.add(null,t)}),this},Ce.revert=function revert(t){this.kill(t||{})},Ce.kill=function kill(e){this.contexts.forEach(function(t){return t.kill(e,!0)})},MatchMedia);function MatchMedia(t){this.contexts=[],this.scope=t,l&&l.data.push(this)}var Se={registerPlugin:function registerPlugin(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];e.forEach(function(t){return wb(t)})},timeline:function timeline(t){return new Xt(t)},getTweensOf:function getTweensOf(t,e){return I.getTweensOf(t,e)},getProperty:function getProperty(i,t,e,n){r(i)&&(i=Mt(i)[0]);var a=fa(i||{}).get,s=e?pa:oa;return"native"===e&&(e=""),i?t?s((pt[t]&&pt[t].get||a)(i,t,e,n)):function(t,e,r){return s((pt[t]&&pt[t].get||a)(i,t,e,r))}:i},quickSetter:function quickSetter(r,e,i){if(1<(r=Mt(r)).length){var n=r.map(function(t){return ze.quickSetter(t,e,i)}),a=n.length;return function(t){for(var e=a;e--;)n[e](t)}}r=r[0]||{};var s=pt[e],o=fa(r),u=o.harness&&(o.harness.aliases||{})[e]||e,h=s?function(t){var e=new s;d._pt=0,e.init(r,i?t+i:t,d,0,[r]),e.render(1,e),d._pt&&he(1,d)}:o.set(r,u);return s?h:function(t){return h(r,u,i?t+i:t,o,1)}},quickTo:function quickTo(t,i,e){function $x(t,e,r){return n.resetTo(i,t,e,r)}var r,n=ze.to(t,yt(((r={})[i]="+=0.1",r.paused=!0,r),e||{}));return $x.tween=n,$x},isTweening:function isTweening(t){return 0<I.getTweensOf(t,!0).length},defaults:function defaults(t){return t&&t.ease&&(t.ease=jt(t.ease,V.ease)),ta(V,t||{})},config:function config(t){return ta(q,t||{})},registerEffect:function registerEffect(t){var i=t.name,n=t.effect,e=t.plugins,a=t.defaults,r=t.extendTimeline;(e||"").split(",").forEach(function(t){return t&&!pt[t]&&!ot[t]&&R(i+" effect requires "+t+" plugin.")}),_t[i]=function(t,e,r){return n(Mt(t),qa(e||{},a),r)},r&&(Xt.prototype[i]=function(t,e,r){return this.add(_t[i](t,v(e)?e:(r=e)&&{},this),r)})},registerEase:function registerEase(t,e){Lt[t]=jt(e)},parseEase:function parseEase(t,e){return arguments.length?jt(t,e):Lt},getById:function getById(t){return I.getById(t)},exportRoot:function exportRoot(t,e){void 0===t&&(t={});var r,i,n=new Xt(t);for(n.smoothChildTiming=w(t.smoothChildTiming),I.remove(n),n._dp=0,n._time=n._tTime=I._time,r=I._first;r;)i=r._next,!e&&!r._dur&&r instanceof $t&&r.vars.onComplete===r._targets[0]||Ka(n,r,r._start-r._delay),r=i;return Ka(I,n,0),n},context:function context(t,e){return t?new Pe(t,e):l},matchMedia:function matchMedia(t){return new Ae(t)},matchMediaRefresh:function matchMediaRefresh(){return ge.forEach(function(t){var e,r,i=t.conditions;for(r in i)i[r]&&(i[r]=!1,e=1);e&&t.revert()})||Fc()},addEventListener:function addEventListener(t,e){var r=ye[t]||(ye[t]=[]);~r.indexOf(e)||r.push(e)},removeEventListener:function removeEventListener(t,e){var r=ye[t],i=r&&r.indexOf(e);0<=i&&r.splice(i,1)},utils:{wrap:function wrap(e,t,r){var i=t-e;return Z(e)?lb(e,wrap(0,e.length),t):Wa(r,function(t){return(i+(t-e)%i)%i+e})},wrapYoyo:function wrapYoyo(e,t,r){var i=t-e,n=2*i;return Z(e)?lb(e,wrapYoyo(0,e.length-1),t):Wa(r,function(t){return e+(i<(t=(n+(t-e)%n)%n||0)?n-t:t)})},distribute:eb,random:hb,snap:gb,normalize:function normalize(t,e,r){return Pt(t,e,0,1,r)},getUnit:Ya,clamp:function clamp(e,r,t){return Wa(t,function(t){return Ot(e,r,t)})},splitColor:Ab,toArray:Mt,selector:cb,mapRange:Pt,pipe:function pipe(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];return function(t){return e.reduce(function(t,e){return e(t)},t)}},unitize:function unitize(e,r){return function(t){return e(parseFloat(t))+(r||Ya(t))}},interpolate:function interpolate(e,i,t,n){var a=isNaN(e+i)?0:function(t){return(1-t)*e+t*i};if(!a){var s,o,u,h,l,f=r(e),d={};if(!0===t&&(n=1)&&(t=null),f)e={p:e},i={p:i};else if(Z(e)&&!Z(i)){for(u=[],h=e.length,l=h-2,o=1;o<h;o++)u.push(interpolate(e[o-1],e[o]));h--,a=function func(t){t*=h;var e=Math.min(l,~~t);return u[e](t-e)},t=i}else n||(e=yt(Z(e)?[]:{},e));if(!u){for(s in i)Wt.call(d,e,s,"get",i[s]);a=function func(t){return he(t,d)||(f?e.p:e)}}}return Wa(t,a)},shuffle:db},install:P,effects:_t,ticker:Rt,updateRoot:Xt.updateRoot,plugins:pt,globalTimeline:I,core:{PropTween:_e,globals:S,Tween:$t,Timeline:Xt,Animation:Ut,getCache:fa,_removeLinkedListItem:ya,reverting:function reverting(){return L},context:function context(t){return t&&l&&(l.data.push(t),t._ctx=l),l},suppressOverwrites:function suppressOverwrites(t){return F=t}}};ha("to,from,fromTo,delayedCall,set,killTweensOf",function(t){return Se[t]=$t[t]}),Rt.add(Xt.updateRoot),d=Se.to({},{duration:0});function Jc(t,e){for(var r=t._pt;r&&r.p!==e&&r.op!==e&&r.fp!==e;)r=r._next;return r}function Lc(t,a){return{name:t,rawVars:1,init:function init(t,n,e){e._onInit=function(t){var e,i;if(r(n)&&(e={},ha(n,function(t){return e[t]=1}),n=e),a){for(i in e={},n)e[i]=a(n[i]);n=e}!function _addModifiers(t,e){var r,i,n,a=t._targets;for(r in e)for(i=a.length;i--;)(n=(n=t._ptLookup[i][r])&&n.d)&&(n._pt&&(n=Jc(n,r)),n&&n.modifier&&n.modifier(e[r],t,a[i],r))}(t,n)}}}}var ze=Se.registerPlugin({name:"attr",init:function init(t,e,r,i,n){var a,s,o;for(a in this.tween=r,e)o=t.getAttribute(a)||"",(s=this.add(t,"setAttribute",(o||0)+"",e[a],i,n,0,0,a)).op=a,s.b=o,this._props.push(a)},render:function render(t,e){for(var r=e._pt;r;)L?r.set(r.t,r.p,r.b,r):r.r(t,r.d),r=r._next}},{name:"endArray",init:function init(t,e){for(var r=e.length;r--;)this.add(t,r,t[r]||0,e[r],0,0,0,0,0,1)}},Lc("roundProps",fb),Lc("modifiers"),Lc("snap",gb))||Se;$t.version=Xt.version=ze.version="3.12.5",o=1,x()&&Ft();function vd(t,e){return e.set(e.t,e.p,Math.round(1e4*(e.s+e.c*t))/1e4+e.u,e)}function wd(t,e){return e.set(e.t,e.p,1===t?e.e:Math.round(1e4*(e.s+e.c*t))/1e4+e.u,e)}function xd(t,e){return e.set(e.t,e.p,t?Math.round(1e4*(e.s+e.c*t))/1e4+e.u:e.b,e)}function yd(t,e){var r=e.s+e.c*t;e.set(e.t,e.p,~~(r+(r<0?-.5:.5))+e.u,e)}function zd(t,e){return e.set(e.t,e.p,t?e.e:e.b,e)}function Ad(t,e){return e.set(e.t,e.p,1!==t?e.b:e.e,e)}function Bd(t,e,r){return t.style[e]=r}function Cd(t,e,r){return t.style.setProperty(e,r)}function Dd(t,e,r){return t._gsap[e]=r}function Ed(t,e,r){return t._gsap.scaleX=t._gsap.scaleY=r}function Fd(t,e,r,i,n){var a=t._gsap;a.scaleX=a.scaleY=r,a.renderTransform(n,a)}function Gd(t,e,r,i,n){var a=t._gsap;a[e]=r,a.renderTransform(n,a)}function Jd(t,e){var r=this,i=this.target,n=i.style,a=i._gsap;if(t in ar&&n){if(this.tfm=this.tfm||{},"transform"===t)return dr.transform.split(",").forEach(function(t){return Jd.call(r,t,e)});if(~(t=dr[t]||t).indexOf(",")?t.split(",").forEach(function(t){return r.tfm[t]=yr(i,t)}):this.tfm[t]=a.x?a[t]:yr(i,t),t===pr&&(this.tfm.zOrigin=a.zOrigin),0<=this.props.indexOf(cr))return;a.svg&&(this.svgo=i.getAttribute("data-svg-origin"),this.props.push(pr,e,"")),t=cr}(n||e)&&this.props.push(t,e,n[t])}function Kd(t){t.translate&&(t.removeProperty("translate"),t.removeProperty("scale"),t.removeProperty("rotate"))}function Ld(){var t,e,r=this.props,i=this.target,n=i.style,a=i._gsap;for(t=0;t<r.length;t+=3)r[t+1]?i[r[t]]=r[t+2]:r[t+2]?n[r[t]]=r[t+2]:n.removeProperty("--"===r[t].substr(0,2)?r[t]:r[t].replace(hr,"-$1").toLowerCase());if(this.tfm){for(e in this.tfm)a[e]=this.tfm[e];a.svg&&(a.renderTransform(),i.setAttribute("data-svg-origin",this.svgo||"")),(t=Be())&&t.isStart||n[cr]||(Kd(n),a.zOrigin&&n[pr]&&(n[pr]+=" "+a.zOrigin+"px",a.zOrigin=0,a.renderTransform()),a.uncache=1)}}function Md(t,e){var r={target:t,props:[],revert:Ld,save:Jd};return t._gsap||ze.core.getCache(t),e&&e.split(",").forEach(function(t){return r.save(t)}),r}function Od(t,e){var r=De.createElementNS?De.createElementNS((e||"http://www.w3.org/1999/xhtml").replace(/^https/,"http"),t):De.createElement(t);return r&&r.style?r:De.createElement(t)}function Pd(t,e,r){var i=getComputedStyle(t);return i[e]||i.getPropertyValue(e.replace(hr,"-$1").toLowerCase())||i.getPropertyValue(e)||!r&&Pd(t,mr(e)||e,1)||""}function Sd(){(function _windowExists(){return"undefined"!=typeof window})()&&window.document&&(Ee=window,De=Ee.document,Re=De.documentElement,Le=Od("div")||{style:{}},Od("div"),cr=mr(cr),pr=cr+"Origin",Le.style.cssText="border-width:0;line-height:0;position:absolute;padding:0",Ye=!!mr("perspective"),Be=ze.core.reverting,Fe=1)}function Td(t){var e,r=Od("svg",this.ownerSVGElement&&this.ownerSVGElement.getAttribute("xmlns")||"http://www.w3.org/2000/svg"),i=this.parentNode,n=this.nextSibling,a=this.style.cssText;if(Re.appendChild(r),r.appendChild(this),this.style.display="block",t)try{e=this.getBBox(),this._gsapBBox=this.getBBox,this.getBBox=Td}catch(t){}else this._gsapBBox&&(e=this._gsapBBox());return i&&(n?i.insertBefore(this,n):i.appendChild(this)),Re.removeChild(r),this.style.cssText=a,e}function Ud(t,e){for(var r=e.length;r--;)if(t.hasAttribute(e[r]))return t.getAttribute(e[r])}function Vd(e){var r;try{r=e.getBBox()}catch(t){r=Td.call(e,!0)}return r&&(r.width||r.height)||e.getBBox===Td||(r=Td.call(e,!0)),!r||r.width||r.x||r.y?r:{x:+Ud(e,["x","cx","x1"])||0,y:+Ud(e,["y","cy","y1"])||0,width:0,height:0}}function Wd(t){return!(!t.getCTM||t.parentNode&&!t.ownerSVGElement||!Vd(t))}function Xd(t,e){if(e){var r,i=t.style;e in ar&&e!==pr&&(e=cr),i.removeProperty?("ms"!==(r=e.substr(0,2))&&"webkit"!==e.substr(0,6)||(e="-"+e),i.removeProperty("--"===r?e:e.replace(hr,"-$1").toLowerCase())):i.removeAttribute(e)}}function Yd(t,e,r,i,n,a){var s=new _e(t._pt,e,r,0,1,a?Ad:zd);return(t._pt=s).b=i,s.e=n,t._props.push(r),s}function _d(t,e,r,i){var n,a,s,o,u=parseFloat(r)||0,h=(r+"").trim().substr((u+"").length)||"px",l=Le.style,f=lr.test(e),d="svg"===t.tagName.toLowerCase(),c=(d?"client":"offset")+(f?"Width":"Height"),p="px"===i,_="%"===i;if(i===h||!u||gr[i]||gr[h])return u;if("px"===h||p||(u=_d(t,e,r,"px")),o=t.getCTM&&Wd(t),(_||"%"===h)&&(ar[e]||~e.indexOf("adius")))return n=o?t.getBBox()[f?"width":"height"]:t[c],ia(_?u/n*100:u/100*n);if(l[f?"width":"height"]=100+(p?h:i),a=~e.indexOf("adius")||"em"===i&&t.appendChild&&!d?t:t.parentNode,o&&(a=(t.ownerSVGElement||{}).parentNode),a&&a!==De&&a.appendChild||(a=De.body),(s=a._gsap)&&_&&s.width&&f&&s.time===Rt.time&&!s.uncache)return ia(u/s.width*100);if(!_||"height"!==e&&"width"!==e)!_&&"%"!==h||vr[Pd(a,"display")]||(l.position=Pd(t,"position")),a===t&&(l.position="static"),a.appendChild(Le),n=Le[c],a.removeChild(Le),l.position="absolute";else{var m=t.style[e];t.style[e]=100+i,n=t[c],m?t.style[e]=m:Xd(t,e)}return f&&_&&((s=fa(a)).time=Rt.time,s.width=a[c]),ia(p?n*u/100:n&&u?100/n*u:0)}function be(t,e,r,i){if(!r||"none"===r){var n=mr(e,t,1),a=n&&Pd(t,n,1);a&&a!==r?(e=n,r=a):"borderColor"===e&&(r=Pd(t,"borderTopColor"))}var s,o,u,h,l,f,d,c,p,_,m,g=new _e(this._pt,t.style,e,0,1,ue),v=0,y=0;if(g.b=r,g.e=i,r+="","auto"===(i+="")&&(f=t.style[e],t.style[e]=i,i=Pd(t,e)||i,f?t.style[e]=f:Xd(t,e)),Fb(s=[r,i]),i=s[1],u=(r=s[0]).match(rt)||[],(i.match(rt)||[]).length){for(;o=rt.exec(i);)d=o[0],p=i.substring(v,o.index),l?l=(l+1)%5:"rgba("!==p.substr(-5)&&"hsla("!==p.substr(-5)||(l=1),d!==(f=u[y++]||"")&&(h=parseFloat(f)||0,m=f.substr((h+"").length),"="===d.charAt(1)&&(d=ka(h,d)+m),c=parseFloat(d),_=d.substr((c+"").length),v=rt.lastIndex-_.length,_||(_=_||q.units[e]||m,v===i.length&&(i+=_,g.e+=_)),m!==_&&(h=_d(t,e,f,_)||0),g._pt={_next:g._pt,p:p||1===y?p:",",s:h,c:c-h,m:l&&l<4||"zIndex"===e?Math.round:0});g.c=v<i.length?i.substring(v,i.length):""}else g.r="display"===e&&"none"===i?Ad:zd;return nt.test(i)&&(g.e=0),this._pt=g}function de(t){var e=t.split(" "),r=e[0],i=e[1]||"50%";return"top"!==r&&"bottom"!==r&&"left"!==i&&"right"!==i||(t=r,r=i,i=t),e[0]=Tr[r]||r,e[1]=Tr[i]||i,e.join(" ")}function ee(t,e){if(e.tween&&e.tween._time===e.tween._dur){var r,i,n,a=e.t,s=a.style,o=e.u,u=a._gsap;if("all"===o||!0===o)s.cssText="",i=1;else for(n=(o=o.split(",")).length;-1<--n;)r=o[n],ar[r]&&(i=1,r="transformOrigin"===r?pr:cr),Xd(a,r);i&&(Xd(a,cr),u&&(u.svg&&a.removeAttribute("transform"),Or(a,1),u.uncache=1,Kd(s)))}}function ie(t){return"matrix(1, 0, 0, 1, 0, 0)"===t||"none"===t||!t}function je(t){var e=Pd(t,cr);return ie(e)?wr:e.substr(7).match(et).map(ia)}function ke(t,e){var r,i,n,a,s=t._gsap||fa(t),o=t.style,u=je(t);return s.svg&&t.getAttribute("transform")?"1,0,0,1,0,0"===(u=[(n=t.transform.baseVal.consolidate().matrix).a,n.b,n.c,n.d,n.e,n.f]).join(",")?wr:u:(u!==wr||t.offsetParent||t===Re||s.svg||(n=o.display,o.display="block",(r=t.parentNode)&&t.offsetParent||(a=1,i=t.nextElementSibling,Re.appendChild(t)),u=je(t),n?o.display=n:Xd(t,"display"),a&&(i?r.insertBefore(t,i):r?r.appendChild(t):Re.removeChild(t))),e&&6<u.length?[u[0],u[1],u[4],u[5],u[12],u[13]]:u)}function le(t,e,r,i,n,a){var s,o,u,h=t._gsap,l=n||ke(t,!0),f=h.xOrigin||0,d=h.yOrigin||0,c=h.xOffset||0,p=h.yOffset||0,_=l[0],m=l[1],g=l[2],v=l[3],y=l[4],T=l[5],b=e.split(" "),w=parseFloat(b[0])||0,x=parseFloat(b[1])||0;r?l!==wr&&(o=_*v-m*g)&&(u=w*(-m/o)+x*(_/o)-(_*T-m*y)/o,w=w*(v/o)+x*(-g/o)+(g*T-v*y)/o,x=u):(w=(s=Vd(t)).x+(~b[0].indexOf("%")?w/100*s.width:w),x=s.y+(~(b[1]||b[0]).indexOf("%")?x/100*s.height:x)),i||!1!==i&&h.smooth?(y=w-f,T=x-d,h.xOffset=c+(y*_+T*g)-y,h.yOffset=p+(y*m+T*v)-T):h.xOffset=h.yOffset=0,h.xOrigin=w,h.yOrigin=x,h.smooth=!!i,h.origin=e,h.originIsAbsolute=!!r,t.style[pr]="0px 0px",a&&(Yd(a,h,"xOrigin",f,w),Yd(a,h,"yOrigin",d,x),Yd(a,h,"xOffset",c,h.xOffset),Yd(a,h,"yOffset",p,h.yOffset)),t.setAttribute("data-svg-origin",w+" "+x)}function oe(t,e,r){var i=Ya(e);return ia(parseFloat(e)+parseFloat(_d(t,"x",r+"px",i)))+i}function ve(t,e,i,n,a){var s,o,u=360,h=r(a),l=parseFloat(a)*(h&&~a.indexOf("rad")?sr:1)-n,f=n+l+"deg";return h&&("short"===(s=a.split("_")[1])&&(l%=u)!==l%180&&(l+=l<0?u:-u),"cw"===s&&l<0?l=(l+36e9)%u-~~(l/u)*u:"ccw"===s&&0<l&&(l=(l-36e9)%u-~~(l/u)*u)),t._pt=o=new _e(t._pt,e,i,n,l,wd),o.e=f,o.u="deg",t._props.push(i),o}function we(t,e){for(var r in e)t[r]=e[r];return t}function xe(t,e,r){var i,n,a,s,o,u,h,l=we({},r._gsap),f=r.style;for(n in l.svg?(a=r.getAttribute("transform"),r.setAttribute("transform",""),f[cr]=e,i=Or(r,1),Xd(r,cr),r.setAttribute("transform",a)):(a=getComputedStyle(r)[cr],f[cr]=e,i=Or(r,1),f[cr]=a),ar)(a=l[n])!==(s=i[n])&&"perspective,force3D,transformOrigin,svgOrigin".indexOf(n)<0&&(o=Ya(a)!==(h=Ya(s))?_d(r,n,a,h):parseFloat(a),u=parseFloat(s),t._pt=new _e(t._pt,i,n,o,u-o,vd),t._pt.u=h||0,t._props.push(n));we(i,l)}var Ee,De,Re,Fe,Le,Ie,Be,Ye,qe=Lt.Power0,Ve=Lt.Power1,Ue=Lt.Power2,Xe=Lt.Power3,Ne=Lt.Power4,Ge=Lt.Linear,We=Lt.Quad,Qe=Lt.Cubic,Ke=Lt.Quart,Je=Lt.Quint,He=Lt.Strong,$e=Lt.Elastic,Ze=Lt.Back,tr=Lt.SteppedEase,er=Lt.Bounce,rr=Lt.Sine,ir=Lt.Expo,nr=Lt.Circ,ar={},sr=180/Math.PI,or=Math.PI/180,ur=Math.atan2,hr=/([A-Z])/g,lr=/(left|right|width|margin|padding|x)/i,fr=/[\s,\(]\S/,dr={autoAlpha:"opacity,visibility",scale:"scaleX,scaleY",alpha:"opacity"},cr="transform",pr=cr+"Origin",_r="O,Moz,ms,Ms,Webkit".split(","),mr=function _checkPropPrefix(t,e,r){var i=(e||Le).style,n=5;if(t in i&&!r)return t;for(t=t.charAt(0).toUpperCase()+t.substr(1);n--&&!(_r[n]+t in i););return n<0?null:(3===n?"ms":0<=n?_r[n]:"")+t},gr={deg:1,rad:1,turn:1},vr={grid:1,flex:1},yr=function _get(t,e,r,i){var n;return Fe||Sd(),e in dr&&"transform"!==e&&~(e=dr[e]).indexOf(",")&&(e=e.split(",")[0]),ar[e]&&"transform"!==e?(n=Or(t,i),n="transformOrigin"!==e?n[e]:n.svg?n.origin:kr(Pd(t,pr))+" "+n.zOrigin+"px"):(n=t.style[e])&&"auto"!==n&&!i&&!~(n+"").indexOf("calc(")||(n=br[e]&&br[e](t,e,r)||Pd(t,e)||ga(t,e)||("opacity"===e?1:0)),r&&!~(n+"").trim().indexOf(" ")?_d(t,e,n,r)+r:n},Tr={top:"0%",bottom:"100%",left:"0%",right:"100%",center:"50%"},br={clearProps:function clearProps(t,e,r,i,n){if("isFromStart"!==n.data){var a=t._pt=new _e(t._pt,e,r,0,0,ee);return a.u=i,a.pr=-10,a.tween=n,t._props.push(r),1}}},wr=[1,0,0,1,0,0],xr={},Or=function _parseTransform(t,e){var r=t._gsap||new Vt(t);if("x"in r&&!e&&!r.uncache)return r;var i,n,a,s,o,u,h,l,f,d,c,p,_,m,g,v,y,T,b,w,x,O,k,M,P,C,A,S,z,E,D,R,F=t.style,L=r.scaleX<0,I="deg",B=getComputedStyle(t),Y=Pd(t,pr)||"0";return i=n=a=u=h=l=f=d=c=0,s=o=1,r.svg=!(!t.getCTM||!Wd(t)),B.translate&&("none"===B.translate&&"none"===B.scale&&"none"===B.rotate||(F[cr]=("none"!==B.translate?"translate3d("+(B.translate+" 0 0").split(" ").slice(0,3).join(", ")+") ":"")+("none"!==B.rotate?"rotate("+B.rotate+") ":"")+("none"!==B.scale?"scale("+B.scale.split(" ").join(",")+") ":"")+("none"!==B[cr]?B[cr]:"")),F.scale=F.rotate=F.translate="none"),m=ke(t,r.svg),r.svg&&(M=r.uncache?(P=t.getBBox(),Y=r.xOrigin-P.x+"px "+(r.yOrigin-P.y)+"px",""):!e&&t.getAttribute("data-svg-origin"),le(t,M||Y,!!M||r.originIsAbsolute,!1!==r.smooth,m)),p=r.xOrigin||0,_=r.yOrigin||0,m!==wr&&(T=m[0],b=m[1],w=m[2],x=m[3],i=O=m[4],n=k=m[5],6===m.length?(s=Math.sqrt(T*T+b*b),o=Math.sqrt(x*x+w*w),u=T||b?ur(b,T)*sr:0,(f=w||x?ur(w,x)*sr+u:0)&&(o*=Math.abs(Math.cos(f*or))),r.svg&&(i-=p-(p*T+_*w),n-=_-(p*b+_*x))):(R=m[6],E=m[7],A=m[8],S=m[9],z=m[10],D=m[11],i=m[12],n=m[13],a=m[14],h=(g=ur(R,z))*sr,g&&(M=O*(v=Math.cos(-g))+A*(y=Math.sin(-g)),P=k*v+S*y,C=R*v+z*y,A=O*-y+A*v,S=k*-y+S*v,z=R*-y+z*v,D=E*-y+D*v,O=M,k=P,R=C),l=(g=ur(-w,z))*sr,g&&(v=Math.cos(-g),D=x*(y=Math.sin(-g))+D*v,T=M=T*v-A*y,b=P=b*v-S*y,w=C=w*v-z*y),u=(g=ur(b,T))*sr,g&&(M=T*(v=Math.cos(g))+b*(y=Math.sin(g)),P=O*v+k*y,b=b*v-T*y,k=k*v-O*y,T=M,O=P),h&&359.9<Math.abs(h)+Math.abs(u)&&(h=u=0,l=180-l),s=ia(Math.sqrt(T*T+b*b+w*w)),o=ia(Math.sqrt(k*k+R*R)),g=ur(O,k),f=2e-4<Math.abs(g)?g*sr:0,c=D?1/(D<0?-D:D):0),r.svg&&(M=t.getAttribute("transform"),r.forceCSS=t.setAttribute("transform","")||!ie(Pd(t,cr)),M&&t.setAttribute("transform",M))),90<Math.abs(f)&&Math.abs(f)<270&&(L?(s*=-1,f+=u<=0?180:-180,u+=u<=0?180:-180):(o*=-1,f+=f<=0?180:-180)),e=e||r.uncache,r.x=i-((r.xPercent=i&&(!e&&r.xPercent||(Math.round(t.offsetWidth/2)===Math.round(-i)?-50:0)))?t.offsetWidth*r.xPercent/100:0)+"px",r.y=n-((r.yPercent=n&&(!e&&r.yPercent||(Math.round(t.offsetHeight/2)===Math.round(-n)?-50:0)))?t.offsetHeight*r.yPercent/100:0)+"px",r.z=a+"px",r.scaleX=ia(s),r.scaleY=ia(o),r.rotation=ia(u)+I,r.rotationX=ia(h)+I,r.rotationY=ia(l)+I,r.skewX=f+I,r.skewY=d+I,r.transformPerspective=c+"px",(r.zOrigin=parseFloat(Y.split(" ")[2])||!e&&r.zOrigin||0)&&(F[pr]=kr(Y)),r.xOffset=r.yOffset=0,r.force3D=q.force3D,r.renderTransform=r.svg?zr:Ye?Sr:Mr,r.uncache=0,r},kr=function _firstTwoOnly(t){return(t=t.split(" "))[0]+" "+t[1]},Mr=function _renderNon3DTransforms(t,e){e.z="0px",e.rotationY=e.rotationX="0deg",e.force3D=0,Sr(t,e)},Pr="0deg",Cr="0px",Ar=") ",Sr=function _renderCSSTransforms(t,e){var r=e||this,i=r.xPercent,n=r.yPercent,a=r.x,s=r.y,o=r.z,u=r.rotation,h=r.rotationY,l=r.rotationX,f=r.skewX,d=r.skewY,c=r.scaleX,p=r.scaleY,_=r.transformPerspective,m=r.force3D,g=r.target,v=r.zOrigin,y="",T="auto"===m&&t&&1!==t||!0===m;if(v&&(l!==Pr||h!==Pr)){var b,w=parseFloat(h)*or,x=Math.sin(w),O=Math.cos(w);w=parseFloat(l)*or,b=Math.cos(w),a=oe(g,a,x*b*-v),s=oe(g,s,-Math.sin(w)*-v),o=oe(g,o,O*b*-v+v)}_!==Cr&&(y+="perspective("+_+Ar),(i||n)&&(y+="translate("+i+"%, "+n+"%) "),!T&&a===Cr&&s===Cr&&o===Cr||(y+=o!==Cr||T?"translate3d("+a+", "+s+", "+o+") ":"translate("+a+", "+s+Ar),u!==Pr&&(y+="rotate("+u+Ar),h!==Pr&&(y+="rotateY("+h+Ar),l!==Pr&&(y+="rotateX("+l+Ar),f===Pr&&d===Pr||(y+="skew("+f+", "+d+Ar),1===c&&1===p||(y+="scale("+c+", "+p+Ar),g.style[cr]=y||"translate(0, 0)"},zr=function _renderSVGTransforms(t,e){var r,i,n,a,s,o=e||this,u=o.xPercent,h=o.yPercent,l=o.x,f=o.y,d=o.rotation,c=o.skewX,p=o.skewY,_=o.scaleX,m=o.scaleY,g=o.target,v=o.xOrigin,y=o.yOrigin,T=o.xOffset,b=o.yOffset,w=o.forceCSS,x=parseFloat(l),O=parseFloat(f);d=parseFloat(d),c=parseFloat(c),(p=parseFloat(p))&&(c+=p=parseFloat(p),d+=p),d||c?(d*=or,c*=or,r=Math.cos(d)*_,i=Math.sin(d)*_,n=Math.sin(d-c)*-m,a=Math.cos(d-c)*m,c&&(p*=or,s=Math.tan(c-p),n*=s=Math.sqrt(1+s*s),a*=s,p&&(s=Math.tan(p),r*=s=Math.sqrt(1+s*s),i*=s)),r=ia(r),i=ia(i),n=ia(n),a=ia(a)):(r=_,a=m,i=n=0),(x&&!~(l+"").indexOf("px")||O&&!~(f+"").indexOf("px"))&&(x=_d(g,"x",l,"px"),O=_d(g,"y",f,"px")),(v||y||T||b)&&(x=ia(x+v-(v*r+y*n)+T),O=ia(O+y-(v*i+y*a)+b)),(u||h)&&(s=g.getBBox(),x=ia(x+u/100*s.width),O=ia(O+h/100*s.height)),s="matrix("+r+","+i+","+n+","+a+","+x+","+O+")",g.setAttribute("transform",s),w&&(g.style[cr]=s)};ha("padding,margin,Width,Radius",function(e,r){var t="Right",i="Bottom",n="Left",o=(r<3?["Top",t,i,n]:["Top"+n,"Top"+t,i+t,i+n]).map(function(t){return r<2?e+t:"border"+t+e});br[1<r?"border"+e:e]=function(e,t,r,i,n){var a,s;if(arguments.length<4)return a=o.map(function(t){return yr(e,t,r)}),5===(s=a.join(" ")).split(a[0]).length?a[0]:s;a=(i+"").split(" "),s={},o.forEach(function(t,e){return s[t]=a[e]=a[e]||a[(e-1)/2|0]}),e.init(t,s,n)}});var Er,Dr,Rr,Fr={name:"css",register:Sd,targetTest:function targetTest(t){return t.style&&t.nodeType},init:function init(t,e,i,n,a){var s,o,u,h,l,f,d,c,p,_,m,g,v,y,T,b,w=this._props,x=t.style,O=i.vars.startAt;for(d in Fe||Sd(),this.styles=this.styles||Md(t),b=this.styles.props,this.tween=i,e)if("autoRound"!==d&&(o=e[d],!pt[d]||!ac(d,e,i,n,t,a)))if(l=typeof o,f=br[d],"function"===l&&(l=typeof(o=o.call(i,n,t,a))),"string"===l&&~o.indexOf("random(")&&(o=ob(o)),f)f(this,t,d,o,i)&&(T=1);else if("--"===d.substr(0,2))s=(getComputedStyle(t).getPropertyValue(d)+"").trim(),o+="",Et.lastIndex=0,Et.test(s)||(c=Ya(s),p=Ya(o)),p?c!==p&&(s=_d(t,d,s,p)+p):c&&(o+=c),this.add(x,"setProperty",s,o,n,a,0,0,d),w.push(d),b.push(d,0,x[d]);else if("undefined"!==l){if(O&&d in O?(s="function"==typeof O[d]?O[d].call(i,n,t,a):O[d],r(s)&&~s.indexOf("random(")&&(s=ob(s)),Ya(s+"")||"auto"===s||(s+=q.units[d]||Ya(yr(t,d))||""),"="===(s+"").charAt(1)&&(s=yr(t,d))):s=yr(t,d),h=parseFloat(s),(_="string"===l&&"="===o.charAt(1)&&o.substr(0,2))&&(o=o.substr(2)),u=parseFloat(o),d in dr&&("autoAlpha"===d&&(1===h&&"hidden"===yr(t,"visibility")&&u&&(h=0),b.push("visibility",0,x.visibility),Yd(this,x,"visibility",h?"inherit":"hidden",u?"inherit":"hidden",!u)),"scale"!==d&&"transform"!==d&&~(d=dr[d]).indexOf(",")&&(d=d.split(",")[0])),m=d in ar)if(this.styles.save(d),g||((v=t._gsap).renderTransform&&!e.parseTransform||Or(t,e.parseTransform),y=!1!==e.smoothOrigin&&v.smooth,(g=this._pt=new _e(this._pt,x,cr,0,1,v.renderTransform,v,0,-1)).dep=1),"scale"===d)this._pt=new _e(this._pt,v,"scaleY",v.scaleY,(_?ka(v.scaleY,_+u):u)-v.scaleY||0,vd),this._pt.u=0,w.push("scaleY",d),d+="X";else{if("transformOrigin"===d){b.push(pr,0,x[pr]),o=de(o),v.svg?le(t,o,0,y,0,this):((p=parseFloat(o.split(" ")[2])||0)!==v.zOrigin&&Yd(this,v,"zOrigin",v.zOrigin,p),Yd(this,x,d,kr(s),kr(o)));continue}if("svgOrigin"===d){le(t,o,1,y,0,this);continue}
20if(d in xr){ve(this,v,d,h,_?ka(h,_+o):o);continue}if("smoothOrigin"===d){Yd(this,v,"smooth",v.smooth,o);continue}if("force3D"===d){v[d]=o;continue}if("transform"===d){xe(this,o,t);continue}}else d in x||(d=mr(d)||d);if(m||(u||0===u)&&(h||0===h)&&!fr.test(o)&&d in x)u=u||0,(c=(s+"").substr((h+"").length))!==(p=Ya(o)||(d in q.units?q.units[d]:c))&&(h=_d(t,d,s,p)),this._pt=new _e(this._pt,m?v:x,d,h,(_?ka(h,_+u):u)-h,m||"px"!==p&&"zIndex"!==d||!1===e.autoRound?vd:yd),this._pt.u=p||0,c!==p&&"%"!==p&&(this._pt.b=s,this._pt.r=xd);else if(d in x)be.call(this,t,d,s,_?_+o:o);else if(d in t)this.add(t,d,s||t[d],_?_+o:o,n,a);else if("parseTransform"!==d){Q(d,o);continue}m||(d in x?b.push(d,0,x[d]):b.push(d,1,s||t[d])),w.push(d)}T&&pe(this)},render:function render(t,e){if(e.tween._time||!Be())for(var r=e._pt;r;)r.r(t,r.d),r=r._next;else e.styles.revert()},get:yr,aliases:dr,getSetter:function getSetter(t,e,r){var i=dr[e];return i&&i.indexOf(",")<0&&(e=i),e in ar&&e!==pr&&(t._gsap.x||yr(t,"x"))?r&&Ie===r?"scale"===e?Ed:Dd:(Ie=r||{})&&("scale"===e?Fd:Gd):t.style&&!u(t.style[e])?Bd:~e.indexOf("-")?Cd:ne(t,e)},core:{_removeProperty:Xd,_getMatrix:ke}};ze.utils.checkPrefix=mr,ze.core.getStyleSaver=Md,Rr=ha((Er="x,y,z,scale,scaleX,scaleY,xPercent,yPercent")+","+(Dr="rotation,rotationX,rotationY,skewX,skewY")+",transform,transformOrigin,svgOrigin,force3D,smoothOrigin,transformPerspective",function(t){ar[t]=1}),ha(Dr,function(t){q.units[t]="deg",xr[t]=1}),dr[Rr[13]]=Er+","+Dr,ha("0:translateX,1:translateY,2:translateZ,8:rotate,8:rotationZ,8:rotateZ,9:rotateX,10:rotateY",function(t){var e=t.split(":");dr[e[1]]=Rr[e[0]]}),ha("x,y,z,top,right,bottom,left,width,height,fontSize,padding,margin,perspective",function(t){q.units[t]="px"}),ze.registerPlugin(Fr);var Lr=ze.registerPlugin(Fr)||ze,Ir=Lr.core.Tween;e.Back=Ze,e.Bounce=er,e.CSSPlugin=Fr,e.Circ=nr,e.Cubic=Qe,e.Elastic=$e,e.Expo=ir,e.Linear=Ge,e.Power0=qe,e.Power1=Ve,e.Power2=Ue,e.Power3=Xe,e.Power4=Ne,e.Quad=We,e.Quart=Ke,e.Quint=Je,e.Sine=rr,e.SteppedEase=tr,e.Strong=He,e.TimelineLite=Xt,e.TimelineMax=Xt,e.TweenLite=$t,e.TweenMax=Ir,e.default=Lr,e.gsap=Lr;if (typeof(window)==="undefined"||window!==e){Object.defineProperty(e,"__esModule",{value:!0})} else {delete e.default}}); 21 22 23/*! 24 * ScrollTrigger 3.12.5 25 * https://gsap.com 26 * 27 * @license Copyright 2024, GreenSock. All rights reserved. 28 * Subject to the terms at https://gsap.com/standard-license or for Club GSAP members, the agreement issued with that membership. 29 * @author: Jack Doyle, [email protected] 30 */ 31 32!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e=e||self).window=e.window||{})}(this,function(e){"use strict";function _defineProperties(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function r(){return Ce||"undefined"!=typeof window&&(Ce=window.gsap)&&Ce.registerPlugin&&Ce}function z(e,t){return~Le.indexOf(e)&&Le[Le.indexOf(e)+1][t]}function A(e){return!!~t.indexOf(e)}function B(e,t,r,n,o){return e.addEventListener(t,r,{passive:!1!==n,capture:!!o})}function C(e,t,r,n){return e.removeEventListener(t,r,!!n)}function F(){return De&&De.isPressed||Ie.cache++}function G(r,n){function dd(e){if(e||0===e){o&&(Se.history.scrollRestoration="manual");var t=De&&De.isPressed;e=dd.v=Math.round(e)||(De&&De.iOS?1:0),r(e),dd.cacheID=Ie.cache,t&&i("ss",e)}else(n||Ie.cache!==dd.cacheID||i("ref"))&&(dd.cacheID=Ie.cache,dd.v=r());return dd.v+dd.offset}return dd.offset=0,r&&dd}function J(e,t){return(t&&t._ctx&&t._ctx.selector||Ce.utils.toArray)(e)[0]||("string"==typeof e&&!1!==Ce.config().nullTargetWarn?console.warn("Element not found:",e):null)}function K(t,e){var r=e.s,n=e.sc;A(t)&&(t=ke.scrollingElement||Pe);var o=Ie.indexOf(t),i=n===Fe.sc?1:2;~o||(o=Ie.push(t)-1),Ie[o+i]||B(t,"scroll",F);var a=Ie[o+i],s=a||(Ie[o+i]=G(z(t,r),!0)||(A(t)?n:G(function(e){return arguments.length?t[r]=e:t[r]})));return s.target=t,a||(s.smooth="smooth"===Ce.getProperty(t,"scrollBehavior")),s}function L(e,t,o){function Cd(e,t){var r=ze();t||n<r-s?(a=i,i=e,l=s,s=r):o?i+=e:i=a+(e-a)/(r-l)*(s-l)}var i=e,a=e,s=ze(),l=s,n=t||50,c=Math.max(500,3*n);return{update:Cd,reset:function reset(){a=i=o?0:i,l=s=0},getVelocity:function getVelocity(e){var t=l,r=a,n=ze();return!e&&0!==e||e===i||Cd(e),s===l||c<n-l?0:(i+(o?r:-r))/((o?n:s)-t)*1e3}}}function M(e,t){return t&&!e._gsapAllow&&e.preventDefault(),e.changedTouches?e.changedTouches[0]:e}function N(e){var t=Math.max.apply(Math,e),r=Math.min.apply(Math,e);return Math.abs(t)>=Math.abs(r)?t:r}function O(){(Ae=Ce.core.globals().ScrollTrigger)&&Ae.core&&function _integrate(){var e=Ae.core,r=e.bridge||{},t=e._scrollers,n=e._proxies;t.push.apply(t,Ie),n.push.apply(n,Le),Ie=t,Le=n,i=function _bridge(e,t){return r[e](t)}}()}function P(e){return Ce=e||r(),!Te&&Ce&&"undefined"!=typeof document&&document.body&&(Se=window,Pe=(ke=
vendor: 38,423 bytes, line 32
32document).documentElement,Me=ke.body,t=[Se,ke,Pe,Me],Ce.utils.clamp,Be=Ce.core.context||function(){},Oe="onpointerenter"in Me?"pointer":"mouse",Ee=k.isTouch=Se.matchMedia&&Se.matchMedia("(hover: none), (pointer: coarse)").matches?1:"ontouchstart"in Se||0<navigator.maxTouchPoints||0<navigator.msMaxTouchPoints?2:0,Re=k.eventTypes=("ontouchstart"in Pe?"touchstart,touchmove,touchcancel,touchend":"onpointerdown"in Pe?"pointerdown,pointermove,pointercancel,pointerup":"mousedown,mousemove,mouseup,mouseup").split(","),setTimeout(function(){return o=0},500),O(),Te=1),Te}var Ce,Te,Se,ke,Pe,Me,Ee,Oe,Ae,t,De,Re,Be,o=1,qe=[],Ie=[],Le=[],ze=Date.now,i=function _bridge(e,t){return t},n="scrollLeft",a="scrollTop",Ye={s:n,p:"left",p2:"Left",os:"right",os2:"Right",d:"width",d2:"Width",a:"x",sc:G(function(e){return arguments.length?Se.scrollTo(e,Fe.sc()):Se.pageXOffset||ke[n]||Pe[n]||Me[n]||0})},Fe={s:a,p:"top",p2:"Top",os:"bottom",os2:"Bottom",d:"height",d2:"Height",a:"y",op:Ye,sc:G(function(e){return arguments.length?Se.scrollTo(Ye.sc(),e):Se.pageYOffset||ke[a]||Pe[a]||Me[a]||0})};Ye.op=Fe,Ie.cache=0;var k=(Observer.prototype.init=function init(e){Te||P(Ce)||console.warn("Please gsap.registerPlugin(Observer)"),Ae||O();var o=e.tolerance,a=e.dragMinimum,t=e.type,i=e.target,r=e.lineHeight,n=e.debounce,s=e.preventDefault,l=e.onStop,c=e.onStopDelay,u=e.ignore,f=e.wheelSpeed,d=e.event,p=e.onDragStart,g=e.onDragEnd,h=e.onDrag,v=e.onPress,b=e.onRelease,m=e.onRight,y=e.onLeft,x=e.onUp,w=e.onDown,_=e.onChangeX,T=e.onChangeY,S=e.onChange,k=e.onToggleX,E=e.onToggleY,D=e.onHover,R=e.onHoverEnd,q=e.onMove,I=e.ignoreCheck,z=e.isNormalizer,Y=e.onGestureStart,H=e.onGestureEnd,X=e.onWheel,W=e.onEnable,V=e.onDisable,U=e.onClick,j=e.scrollSpeed,G=e.capture,Q=e.allowClicks,Z=e.lockAxis,$=e.onLockAxis;function cf(){return xe=ze()}function df(e,t){return(se.event=e)&&u&&~u.indexOf(e.target)||t&&he&&"touch"!==e.pointerType||I&&I(e,t)}function ff(){var e=se.deltaX=N(me),t=se.deltaY=N(ye),r=Math.abs(e)>=o,n=Math.abs(t)>=o;S&&(r||n)&&S(se,e,t,me,ye),r&&(m&&0<se.deltaX&&m(se),y&&se.deltaX<0&&y(se),_&&_(se),k&&se.deltaX<0!=le<0&&k(se),le=se.deltaX,me[0]=me[1]=me[2]=0),n&&(w&&0<se.deltaY&&w(se),x&&se.deltaY<0&&x(se),T&&T(se),E&&se.deltaY<0!=ce<0&&E(se),ce=se.deltaY,ye[0]=ye[1]=ye[2]=0),(ne||re)&&(q&&q(se),re&&(h(se),re=!1),ne=!1),ie&&!(ie=!1)&&$&&$(se),oe&&(X(se),oe=!1),ee=0}function gf(e,t,r){me[r]+=e,ye[r]+=t,se._vx.update(e),se._vy.update(t),n?ee=ee||requestAnimationFrame(ff):ff()}function hf(e,t){Z&&!ae&&(se.axis=ae=Math.abs(e)>Math.abs(t)?"x":"y",ie=!0),"y"!==ae&&(me[2]+=e,se._vx.update(e,!0)),"x"!==ae&&(ye[2]+=t,se._vy.update(t,!0)),n?ee=ee||requestAnimationFrame(ff):ff()}function jf(e){if(!df(e,1)){var t=(e=M(e,s)).clientX,r=e.clientY,n=t-se.x,o=r-se.y,i=se.isDragging;se.x=t,se.y=r,(i||Math.abs(se.startX-t)>=a||Math.abs(se.startY-r)>=a)&&(h&&(re=!0),i||(se.isDragging=!0),hf(n,o),i||p&&p(se))}}function mf(e){return e.touches&&1<e.touches.length&&(se.isGesturing=!0)&&Y(e,se.isDragging)}function nf(){return(se.isGesturing=!1)||H(se)}function of(e){if(!df(e)){var t=fe(),r=de();gf((t-pe)*j,(r-ge)*j,1),pe=t,ge=r,l&&te.restart(!0)}}function pf(e){if(!df(e)){e=M(e,s),X&&(oe=!0);var t=(1===e.deltaMode?r:2===e.deltaMode?Se.innerHeight:1)*f;gf(e.deltaX*t,e.deltaY*t,0),l&&!z&&te.restart(!0)}}function qf(e){if(!df(e)){var t=e.clientX,r=e.clientY,n=t-se.x,o=r-se.y;se.x=t,se.y=r,ne=!0,l&&te.restart(!0),(n||o)&&hf(n,o)}}function rf(e){se.event=e,D(se)}function sf(e){se.event=e,R(se)}function tf(e){return df(e)||M(e,s)&&U(se)}this.target=i=J(i)||Pe,this.vars=e,u=u&&Ce.utils.toArray(u),o=o||1e-9,a=a||0,f=f||1,j=j||1,t=t||"wheel,touch,pointer",n=!1!==n,r=r||parseFloat(Se.getComputedStyle(Me).lineHeight)||22;var ee,te,re,ne,oe,ie,ae,se=this,le=0,ce=0,ue=e.passive||!s,fe=K(i,Ye),de=K(i,Fe),pe=fe(),ge=de(),he=~t.indexOf("touch")&&!~t.indexOf("pointer")&&"pointerdown"===Re[0],ve=A(i),be=i.ownerDocument||ke,me=[0,0,0],ye=[0,0,0],xe=0,we=se.onPress=function(e){df(e,1)||e&&e.button||(se.axis=ae=null,te.pause(),se.isPressed=!0,e=M(e),le=ce=0,se.startX=se.x=e.clientX,se.startY=se.y=e.clientY,se._vx.reset(),se._vy.reset(),B(z?i:be,Re[1],jf,ue,!0),se.deltaX=se.deltaY=0,v&&v(se))},_e=se.onRelease=function(t){if(!df(t,1)){C(z?i:be,Re[1],jf,!0);var e=!isNaN(se.y-se.startY),r=se.isDragging,n=r&&(3<Math.abs(se.x-se.startX)||3<Math.abs(se.y-se.startY)),o=M(t);!n&&e&&(se._vx.reset(),se._vy.reset(),s&&Q&&Ce.delayedCall(.08,function(){if(300<ze()-xe&&!t.defaultPrevented)if(t.target.click)t.target.click();else if(be.createEvent){var e=be.createEvent("MouseEvents");e.initMouseEvent("click",!0,!0,Se,1,o.screenX,o.screenY,o.clientX,o.clientY,!1,!1,!1,!1,0,null),t.target.dispatchEvent(e)}})),se.isDragging=se.isGesturing=se.isPressed=!1,l&&r&&!z&&te.restart(!0),g&&r&&g(se),b&&b(se,n)}};te=se._dc=Ce.delayedCall(c||.25,function onStopFunc(){se._vx.reset(),se._vy.reset(),te.pause(),l&&l(se)}).pause(),se.deltaX=se.deltaY=0,se._vx=L(0,50,!0),se._vy=L(0,50,!0),se.scrollX=fe,se.scrollY=de,se.isDragging=se.isGesturing=se.isPressed=!1,Be(this),se.enable=function(e){return se.isEnabled||(B(ve?be:i,"scroll",F),0<=t.indexOf("scroll")&&B(ve?be:i,"scroll",of,ue,G),0<=t.indexOf("wheel")&&B(i,"wheel",pf,ue,G),(0<=t.indexOf("touch")&&Ee||0<=t.indexOf("pointer"))&&(B(i,Re[0],we,ue,G),B(be,Re[2],_e),B(be,Re[3],_e),Q&&B(i,"click",cf,!0,!0),U&&B(i,"click",tf),Y&&B(be,"gesturestart",mf),H&&B(be,"gestureend",nf),D&&B(i,Oe+"enter",rf),R&&B(i,Oe+"leave",sf),q&&B(i,Oe+"move",qf)),se.isEnabled=!0,e&&e.type&&we(e),W&&W(se)),se},se.disable=function(){se.isEnabled&&(qe.filter(function(e){return e!==se&&A(e.target)}).length||C(ve?be:i,"scroll",F),se.isPressed&&(se._vx.reset(),se._vy.reset(),C(z?i:be,Re[1],jf,!0)),C(ve?be:i,"scroll",of,G),C(i,"wheel",pf,G),C(i,Re[0],we,G),C(be,Re[2],_e),C(be,Re[3],_e),C(i,"click",cf,!0),C(i,"click",tf),C(be,"gesturestart",mf),C(be,"gestureend",nf),C(i,Oe+"enter",rf),C(i,Oe+"leave",sf),C(i,Oe+"move",qf),se.isEnabled=se.isPressed=se.isDragging=!1,V&&V(se))},se.kill=se.revert=function(){se.disable();var e=qe.indexOf(se);0<=e&&qe.splice(e,1),De===se&&(De=0)},qe.push(se),z&&A(i)&&(De=se),se.enable(d)},function _createClass(e,t,r){return t&&_defineProperties(e.prototype,t),r&&_defineProperties(e,r),e}(Observer,[{key:"velocityX",get:function get(){return this._vx.getVelocity()}},{key:"velocityY",get:function get(){return this._vy.getVelocity()}}]),Observer);function Observer(e){this.init(e)}k.version="3.12.5",k.create=function(e){return new k(e)},k.register=P,k.getAll=function(){return qe.slice()},k.getById=function(t){return qe.filter(function(e){return e.vars.id===t})[0]},r()&&Ce.registerPlugin(k);function Ca(e,t,r){var n=ct(e)&&("clamp("===e.substr(0,6)||-1<e.indexOf("max"));return(r["_"+t+"Clamp"]=n)?e.substr(6,e.length-7):e}function Da(e,t){return!t||ct(e)&&"clamp("===e.substr(0,6)?e:"clamp("+e+")"}function Fa(){return Ge=1}function Ga(){return Ge=0}function Ha(e){return e}function Ia(e){return Math.round(1e5*e)/1e5||0}function Ja(){return"undefined"!=typeof window}function Ka(){return He||Ja()&&(He=window.gsap)&&He.registerPlugin&&He}function La(e){return!!~l.indexOf(e)}function Ma(e){return("Height"===e?T:Ne["inner"+e])||Je["client"+e]||We["client"+e]}function Na(e){return z(e,"getBoundingClientRect")||(La(e)?function(){return Ot.width=Ne.innerWidth,Ot.height=T,Ot}:function(){return wt(e)})}function Qa(e,t){var r=t.s,n=t.d2,o=t.d,i=t.a;return Math.max(0,(r="scroll"+n)&&(i=z(e,r))?i()-Na(e)()[o]:La(e)?(Je[r]||We[r])-Ma(n):e[r]-e["offset"+n])}function Ra(e,t){for(var r=0;r<g.length;r+=3)t&&!~t.indexOf(g[r+1])||e(g[r],g[r+1],g[r+2])}function Ta(e){return"function"==typeof e}function Ua(e){return"number"==typeof e}function Va(e){return"object"==typeof e}function Wa(e,t,r){return e&&e.progress(t?0:1)&&r&&e.pause()}function Xa(e,t){if(e.enabled){var r=e._ctx?e._ctx.add(function(){return t(e)}):t(e);r&&r.totalTime&&(e.callbackAnimation=r)}}function mb(e){return Ne.getComputedStyle(e)}function ob(e,t){for(var r in t)r in e||(e[r]=t[r]);return e}function qb(e,t){var r=t.d2;return e["offset"+r]||e["client"+r]||0}function rb(e){var t,r=[],n=e.labels,o=e.duration();for(t in n)r.push(n[t]/o);return r}function tb(o){var i=He.utils.snap(o),a=Array.isArray(o)&&o.slice(0).sort(function(e,t){return e-t});return a?function(e,t,r){var n;if(void 0===r&&(r=.001),!t)return i(e);if(0<t){for(e-=r,n=0;n<a.length;n++)if(a[n]>=e)return a[n];return a[n-1]}for(n=a.length,e+=r;n--;)if(a[n]<=e)return a[n];return a[0]}:function(e,t,r){void 0===r&&(r=.001);var n=i(e);return!t||Math.abs(n-e)<r||n-e<0==t<0?n:i(t<0?e-o:e+o)}}function vb(t,r,e,n){return e.split(",").forEach(function(e){return t(r,e,n)})}function wb(e,t,r,n,o){return e.addEventListener(t,r,{passive:!n,capture:!!o})}function xb(e,t,r,n){return e.removeEventListener(t,r,!!n)}function yb(e,t,r){(r=r&&r.wheelHandler)&&(e(t,"wheel",r),e(t,"touchmove",r))}function Cb(e,t){if(ct(e)){var r=e.indexOf("="),n=~r?(e.charAt(r-1)+1)*parseFloat(e.substr(r+1)):0;~r&&(e.indexOf("%")>r&&(n*=t/100),e=e.substr(0,r-1)),e=n+(e in H?H[e]*t:~e.indexOf("%")?parseFloat(e)*t/100:parseFloat(e)||0)}return e}function Db(e,t,r,n,o,i,a,s){var l=o.startColor,c=o.endColor,u=o.fontSize,f=o.indent,d=o.fontWeight,p=Xe.createElement("div"),g=La(r)||"fixed"===z(r,"pinType"),h=-1!==e.indexOf("scroller"),v=g?We:r,b=-1!==e.indexOf("start"),m=b?l:c,y="border-color:"+m+";font-size:"+u+";color:"+m+";font-weight:"+d+";pointer-events:none;white-space:nowrap;font-family:sans-serif,Arial;z-index:1000;padding:4px 8px;border-width:0;border-style:solid;";return y+="position:"+((h||s)&&g?"fixed;":"absolute;"),!h&&!s&&g||(y+=(n===Fe?q:I)+":"+(i+parseFloat(f))+"px;"),a&&(y+="box-sizing:border-box;text-align:left;width:"+a.offsetWidth+"px;"),p._isStart=b,p.setAttribute("class","gsap-marker-"+e+(t?" marker-"+t:"")),p.style.cssText=y,p.innerText=t||0===t?e+"-"+t:e,v.children[0]?v.insertBefore(p,v.children[0]):v.appendChild(p),p._offset=p["offset"+n.op.d2],X(p,0,n,b),p}function Ib(){return 34<at()-st&&(D=D||requestAnimationFrame(Z))}function Jb(){v&&v.isPressed&&!(v.startX>We.clientWidth)||(Ie.cache++,v?D=D||requestAnimationFrame(Z):Z(),st||U("scrollStart"),st=at())}function Kb(){y=Ne.innerWidth,m=Ne.innerHeight}function Lb(){Ie.cache++,je||h||Xe.fullscreenElement||Xe.webkitFullscreenElement||b&&y===Ne.innerWidth&&!(Math.abs(Ne.innerHeight-m)>.25*Ne.innerHeight)||c.restart(!0)}function Ob(){return xb(ne,"scrollEnd",Ob)||Pt(!0)}function Rb(e){for(var t=0;t<j.length;t+=5)(!e||j[t+4]&&j[t+4].query===e)&&(j[t].style.cssText=j[t+1],j[t].getBBox&&j[t].setAttribute("transform",j[t+2]||""),j[t+3].uncache=1)}function Sb(e,t){var r;for(Qe=0;Qe<Tt.length;Qe++)!(r=Tt[Qe])||t&&r._ctx!==t||(e?r.kill(1):r.revert(!0,!0));S=!0,t&&Rb(t),t||U("revert")}function Tb(e,t){Ie.cache++,!t&&rt||Ie.forEach(function(e){return Ta(e)&&e.cacheID++&&(e.rec=0)}),ct(e)&&(Ne.history.scrollRestoration=w=e)}function Yb(){We.appendChild(_),T=!v&&_.offsetHeight||Ne.innerHeight,We.removeChild(_)}function Zb(t){return Ve(".gsap-marker-start, .gsap-marker-end, .gsap-marker-scroller-start, .gsap-marker-scroller-end").forEach(function(e){return e.style.display=t?"none":"block"})}function gc(e,t,r,n){if(!e._gsap.swappedIn){for(var o,i=$.length,a=t.style,s=e.style;i--;)a[o=$[i]]=r[o];a.position="absolute"===r.position?"absolute":"relative","inline"===r.display&&(a.display="inline-block"),s[I]=s[q]="auto",a.flexBasis=r.flexBasis||"auto",a.overflow="visible",a.boxSizing="border-box",a[ft]=qb(e,Ye)+xt,a[dt]=qb(e,Fe)+xt,a[bt]=s[mt]=s.top=s.left="0",Et(n),s[ft]=s.maxWidth=r[ft],s[dt]=s.maxHeight=r[dt],s[bt]=r[bt],e.parentNode!==t&&(e.parentNode.insertBefore(t,e),t.appendChild(e)),e._gsap.swappedIn=!0}}function jc(e){for(var t=ee.length,r=e.style,n=[],o=0;o<t;o++)n.push(ee[o],r[ee[o]]);return n.t=e,n}function mc(e,t,r,n,o,i,a,s,l,c,u,f,d,p){Ta(e)&&(e=e(s)),ct(e)&&"max"===e.substr(0,3)&&(e=f+("="===e.charAt(4)?Cb("0"+e.substr(3),r):0));var g,h,v,b=d?d.time():0;if(d&&d.seek(0),isNaN(e)||(e=+e),Ua(e))d&&(e=He.utils.mapRange(d.scrollTrigger.start,d.scrollTrigger.end,0,f,e)),a&&X(a,r,n,!0);else{Ta(t)&&(t=t(s));var m,y,x,w,_=(e||"0").split(" ");v=J(t,s)||We,(m=wt(v)||{})&&(m.left||m.top)||"none"!==mb(v).display||(w=v.style.display,v.style.display="block",m=wt(v),w?v.style.display=w:v.style.removeProperty("display")),y=Cb(_[0],m[n.d]),x=Cb(_[1]||"0",r),e=m[n.p]-l[n.p]-c+y+o-x,a&&X(a,x,n,r-x<20||a._isStart&&20<x),r-=r-x}if(p&&(s[p]=e||-.001,e<0&&(e=0)),i){var C=e+r,T=i._isStart;g="scroll"+n.d2,X(i,C,n,T&&20<C||!T&&(u?Math.max(We[g],Je[g]):i.parentNode[g])<=C+1),u&&(l=wt(a),u&&(i.style[n.op.p]=l[n.op.p]-n.op.m-i._offset+xt))}return d&&v&&(g=wt(v),d.seek(f),h=wt(v),d._caScrollDist=g[n.p]-h[n.p],e=e/d._caScrollDist*f),d&&d.seek(b),d?e:Math.round(e)}function oc(e,t,r,n){if(e.parentNode!==t){var o,i,a=e.style;if(t===We){for(o in e._stOrig=a.cssText,i=mb(e))+o||re.test(o)||!i[o]||"string"!=typeof a[o]||"0"===o||(a[o]=i[o]);a.top=r,a.left=n}else a.cssText=e._stOrig;He.core.getCache(e).uncache=1,t.appendChild(e)}}function pc(r,e,n){var o=e,i=o;return function(e){var t=Math.round(r());return t!==o&&t!==i&&3<Math.abs(t-o)&&3<Math.abs(t-i)&&(e=t,n&&n()),i=o,o=e}}function qc(e,t,r){var n={};n[t.p]="+="+r,He.set(e,n)}function rc(c,e){function Ck(e,t,r,n,o){var i=Ck.tween,a=t.onComplete,s={};r=r||u();var l=pc(u,r,function(){i.kill(),Ck.tween=0});return o=n&&o||0,n=n||e-r,i&&i.kill(),t[f]=e,t.inherit=!1,(t.modifiers=s)[f]=function(){return l(r+n*i.ratio+o*i.ratio*i.ratio)},t.onUpdate=function(){Ie.cache++,Ck.tween&&Z()},t.onComplete=function(){Ck.tween=0,a&&a.call(i)},i=Ck.tween=He.to(c,t)}var u=K(c,e),f="_scroll"+e.p2;return(c[f]=u).wheelHandler=function(){return Ck.tween&&Ck.tween.kill()&&(Ck.tween=0)},wb(c,"wheel",u.wheelHandler),ne.isTouch&&wb(c,"touchmove",u.wheelHandler),Ck}var He,s,Ne,Xe,Je,We,l,c,Ve,Ue,Ke,u,je,Ge,f,Qe,d,p,g,Ze,$e,h,v,b,m,y,E,x,w,_,T,S,et,tt,D,rt,nt,ot,it=1,at=Date.now,R=at(),st=0,lt=0,ct=function _isString(e){return"string"==typeof e},ut=Math.abs,q="right",I="bottom",ft="width",dt="height",pt="Right",gt="Left",ht="Top",vt="Bottom",bt="padding",mt="margin",yt="Width",Y="Height",xt="px",wt=function _getBounds(e,t){var r=t&&"matrix(1, 0, 0, 1, 0, 0)"!==mb(e)[f]&&He.to(e,{x:0,y:0,xPercent:0,yPercent:0,rotation:0,rotationX:0,rotationY:0,scale:1,skewX:0,skewY:0}).progress(1),n=e.getBoundingClientRect();return r&&r.progress(0).kill(),n},_t={startColor:"green",endColor:"red",indent:0,fontSize:"16px",fontWeight:"normal"},Ct={toggleActions:"play",anticipatePin:0},H={top:0,left:0,center:.5,bottom:1,right:1},X=function _positionMarker(e,t,r,n){var o={display:"block"},i=r[n?"os2":"p2"],a=r[n?"p2":"os2"];e._isFlipped=n,o[r.a+"Percent"]=n?-100:0,o[r.a]=n?"1px":0,o["border"+i+yt]=1,o["border"+a+yt]=0,o[r.p]=t+"px",He.set(e,o)},Tt=[],St={},W={},V=[],U=function _dispatch(e){return W[e]&&W[e].map(function(e){return e()})||V},j=[],kt=0,Pt=function _refreshAll(e,t){if(!st||e||S){Yb(),rt=ne.isRefreshing=!0,Ie.forEach(function(e){return Ta(e)&&++e.cacheID&&(e.rec=e())});var r=U("refreshInit");Ze&&ne.sort(),t||Sb(),Ie.forEach(function(e){Ta(e)&&(e.smooth&&(e.target.style.scrollBehavior="auto"),e(0))}),Tt.slice(0).forEach(function(e){return e.refresh()}),S=!1,Tt.forEach(function(e){if(e._subPinOffset&&e.pin){var t=e.vars.horizontal?"offsetWidth":"offsetHeight",r=e.pin[t];e.revert(!0,1),e.adjustPinSpacing(e.pin[t]-r),e.refresh()}}),et=1,Zb(!0),Tt.forEach(function(e){var t=Qa(e.scroller,e._dir),r="max"===e.vars.end||e._endClamp&&e.end>t,n=e._startClamp&&e.start>=t;(r||n)&&e.setPositions(n?t-1:e.start,r?Math.max(n?t:e.start+1,t):e.end,!0)}),Zb(!1),et=0,r.forEach(function(e){return e&&e.render&&e.render(-1)}),Ie.forEach(function(e){Ta(e)&&(e.smooth&&requestAnimationFrame(function(){return e.target.style.scrollBehavior="smooth"}),e.rec&&e(e.rec))}),Tb(w,1),c.pause(),kt++,Z(rt=2),Tt.forEach(function(e){return Ta(e.vars.onRefresh)&&e.vars.onRefresh(e)}),rt=ne.isRefreshing=!1,U("refresh")}else wb(ne,"scrollEnd",Ob)},Q=0,Mt=1,Z=function _updateAll(e){if(2===e||!rt&&!S){ne.isUpdating=!0,ot&&ot.update(0);var t=Tt.length,r=at(),n=50<=r-R,o=t&&Tt[0].scroll();if(Mt=o<Q?-1:1,rt||(Q=o),n&&(st&&!Ge&&200<r-st&&(st=0,U("scrollEnd")),Ke=R,R=r),Mt<0){for(Qe=t;0<Qe--;)Tt[Qe]&&Tt[Qe].update(0,n);Mt=1}else for(Qe=0;Qe<t;Qe++)Tt[Qe]&&Tt[Qe].update(0,n);ne.isUpdating=!1}D=0},$=["left","top",I,q,mt+vt,mt+pt,mt+ht,mt+gt,"display","flexShrink","float","zIndex","gridColumnStart","gridColumnEnd","gridRowStart","gridRowEnd","gridArea","justifySelf","alignSelf","placeSelf","order"],ee=$.concat([ft,dt,"boxSizing","max"+yt,"max"+Y,"position",mt,bt,bt+ht,bt+pt,bt+vt,bt+gt]),te=/([A-Z])/g,Et=function _setState(e){if(e){var t,r,n=e.t.style,o=e.length,i=0;for((e.t._gsap||He.core.getCache(e.t)).uncache=1;i<o;i+=2)r=e[i+1],t=e[i],r?n[t]=r:n[t]&&n.removeProperty(t.replace(te,"-$1").toLowerCase())}},Ot={left:0,top:0},re=/(webkit|moz|length|cssText|inset)/i,ne=(ScrollTrigger.prototype.init=function init(E,O){if(this.progress=this.start=0,this.vars&&this.kill(!0,!0),lt){var A,n,p,D,R,B,q,I,L,Y,F,e,H,N,X,W,V,U,t,j,b,G,Q,m,Z,y,$,x,r,w,_,ee,o,g,te,re,ne,C,i,T=(E=ob(ct(E)||Ua(E)||E.nodeType?{trigger:E}:E,Ct)).onUpdate,S=E.toggleClass,a=E.id,k=E.onToggle,oe=E.onRefresh,P=E.scrub,ie=E.trigger,ae=E.pin,se=E.pinSpacing,le=E.invalidateOnRefresh,M=E.anticipatePin,s=E.onScrubComplete,h=E.onSnapComplete,ce=E.once,ue=E.snap,fe=E.pinReparent,l=E.pinSpacer,de=E.containerAnimation,pe=E.fastScrollEnd,ge=E.preventOverlaps,he=E.horizontal||E.containerAnimation&&!1!==E.horizontal?Ye:Fe,ve=!P&&0!==P,be=J(E.scroller||Ne),c=He.core.getCache(be),me=La(be),ye="fixed"===("pinType"in E?E.pinType:z(be,"pinType")||me&&"fixed"),xe=[E.onEnter,E.onLeave,E.onEnterBack,E.onLeaveBack],we=ve&&E.toggleActions.split(" "),_e="markers"in E?E.markers:Ct.markers,Ce=me?0:parseFloat(mb(be)["border"+he.p2+yt])||0,Te=this,Se=E.onRefreshInit&&function(){return E.onRefreshInit(Te)},ke=function _getSizeFunc(e,t,r){var n=r.d,o=r.d2,i=r.a;return(i=z(e,"getBoundingClientRect"))?function(){return i()[n]}:function(){return(t?Ma(o):e["client"+o])||0}}(be,me,he),Pe=function _getOffsetsFunc(e,t){return!t||~Le.indexOf(e)?Na(e):function(){return Ot}}(be,me),Me=0,Ee=0,Oe=0,Ae=K(be,he);if(Te._startClamp=Te._endClamp=!1,Te._dir=he,M*=45,Te.scroller=be,Te.scroll=de?de.time.bind(de):Ae,D=Ae(),Te.vars=E,O=O||E.animation,"refreshPriority"in E&&(Ze=1,-9999===E.refreshPriority&&(ot=Te)),c.tweenScroll=c.tweenScroll||{top:rc(be,Fe),left:rc(be,Ye)},Te.tweenTo=A=c.tweenScroll[he.p],Te.scrubDuration=function(e){(o=Ua(e)&&e)?ee?ee.duration(e):ee=He.to(O,{ease:"expo",totalProgress:"+=0",inherit:!1,duration:o,paused:!0,onComplete:function onComplete(){return s&&s(Te)}}):(ee&&ee.progress(1).kill(),ee=0)},O&&(O.vars.lazy=!1,O._initted&&!Te.isReverted||!1!==O.vars.immediateRender&&!1!==E.immediateRender&&O.duration()&&O.render(0,!0,!0),Te.animation=O.pause(),(O.scrollTrigger=Te).scrubDuration(P),w=0,a=a||O.vars.id),ue&&(Va(ue)&&!ue.push||(ue={snapTo:ue}),"scrollBehavior"in We.style&&He.set(me?[We,Je]:be,{scrollBehavior:"auto"}),Ie.forEach(function(e){return Ta(e)&&e.target===(me?Xe.scrollingElement||Je:be)&&(e.smooth=!1)}),p=Ta(ue.snapTo)?ue.snapTo:"labels"===ue.snapTo?function _getClosestLabel(t){return function(e){return He.utils.snap(rb(t),e)}}(O):"labelsDirectional"===ue.snapTo?function _getLabelAtDirection(r){return function(e,t){return tb(rb(r))(e,t.direction)}}(O):!1!==ue.directional?function(e,t){return tb(ue.snapTo)(e,at()-Ee<500?0:t.direction)}:He.utils.snap(ue.snapTo),g=ue.duration||{min:.1,max:2},g=Va(g)?Ue(g.min,g.max):Ue(g,g),te=He.delayedCall(ue.delay||o/2||.1,function(){var e=Ae(),t=at()-Ee<500,r=A.tween;if(!(t||Math.abs(Te.getVelocity())<10)||r||Ge||Me===e)Te.isActive&&Me!==e&&te.restart(!0);else{var n,o,i=(e-B)/N,a=O&&!ve?O.totalProgress():i,s=t?0:(a-_)/(at()-Ke)*1e3||0,l=He.utils.clamp(-i,1-i,ut(s/2)*s/.185),c=i+(!1===ue.inertia?0:l),u=ue.onStart,f=ue.onInterrupt,d=ue.onComplete;if(n=p(c,Te),Ua(n)||(n=c),o=Math.round(B+n*N),e<=q&&B<=e&&o!==e){if(r&&!r._initted&&r.data<=ut(o-e))return;!1===ue.inertia&&(l=n-i),A(o,{duration:g(ut(.185*Math.max(ut(c-a),ut(n-a))/s/.05||0)),ease:ue.ease||"power3",data:ut(o-e),onInterrupt:function onInterrupt(){return te.restart(!0)&&f&&f(Te)},onComplete:function onComplete(){Te.update(),Me=Ae(),O&&(ee?ee.resetTo("totalProgress",n,O._tTime/O._tDur):O.progress(n)),w=_=O&&!ve?O.totalProgress():Te.progress,h&&h(Te),d&&d(Te)}},e,l*N,o-e-l*N),u&&u(Te,A.tween)}}}).pause()),a&&(St[a]=Te),i=(i=(ie=Te.trigger=J(ie||!0!==ae&&ae))&&ie._gsap&&ie._gsap.stRevert)&&i(Te),ae=!0===ae?ie:J(ae),ct(S)&&(S={targets:ie,className:S}),ae&&(!1===se||se===mt||(se=!(!se&&ae.parentNode&&ae.parentNode.style&&"flex"===mb(ae.parentNode).display)&&bt),Te.pin=ae,(n=He.core.getCache(ae)).spacer?X=n.pinState:(l&&((l=J(l))&&!l.nodeType&&(l=l.current||l.nativeElement),n.spacerIsNative=!!l,l&&(n.spacerState=jc(l))),n.spacer=U=l||Xe.createElement("div"),U.classList.add("pin-spacer"),a&&U.classList.add("pin-spacer-"+a),n.pinState=X=jc(ae)),!1!==E.force3D&&He.set(ae,{force3D:!0}),Te.spacer=U=n.spacer,r=mb(ae),m=r[se+he.os2],j=He.getProperty(ae),b=He.quickSetter(ae,he.a,xt),gc(ae,U,r),V=jc(ae)),_e){e=Va(_e)?ob(_e,_t):_t,Y=Db("scroller-start",a,be,he,e,0),F=Db("scroller-end",a,be,he,e,0,Y),t=Y["offset"+he.op.d2];var u=J(z(be,"content")||be);I=this.markerStart=Db("start",a,u,he,e,t,0,de),L=this.markerEnd=Db("end",a,u,he,e,t,0,de),de&&(C=He.quickSetter([I,L],he.a,xt)),ye||Le.length&&!0===z(be,"fixedMarkers")||(function _makePositionable(e){var t=mb(e).position;e.style.position="absolute"===t||"fixed"===t?t:"relative"}(me?We:be),He.set([Y,F],{force3D:!0}),y=He.quickSetter(Y,he.a,xt),x=He.quickSetter(F,he.a,xt))}if(de){var f=de.vars.onUpdate,d=de.vars.onUpdateParams;de.eventCallback("onUpdate",function(){Te.update(0,0,1),f&&f.apply(de,d||[])})}if(Te.previous=function(){return Tt[Tt.indexOf(Te)-1]},Te.next=function(){return Tt[Tt.indexOf(Te)+1]},Te.revert=function(e,t){if(!t)return Te.kill(!0);var r=!1!==e||!Te.enabled,n=je;r!==Te.isReverted&&(r&&(re=Math.max(Ae(),Te.scroll.rec||0),Oe=Te.progress,ne=O&&O.progress()),I&&[I,L,Y,F].forEach(function(e){return e.style.display=r?"none":"block"}),r&&(je=Te).update(r),!ae||fe&&Te.isActive||(r?function _swapPinOut(e,t,r){Et(r);var n=e._gsap;if(n.spacerIsNative)Et(n.spacerState);else if(e._gsap.swappedIn){var o=t.parentNode;o&&(o.insertBefore(e,t),o.removeChild(t))}e._gsap.swappedIn=!1}(ae,U,X):gc(ae,U,mb(ae),Z)),r||Te.update(r),je=n,Te.isReverted=r)},Te.refresh=function(e,t,r,n){if(!je&&Te.enabled||t)if(ae&&e&&st)wb(ScrollTrigger,"scrollEnd",Ob);else{!rt&&Se&&Se(Te),je=Te,A.tween&&!r&&(A.tween.kill(),A.tween=0),ee&&ee.pause(),le&&O&&O.revert({kill:!1}).invalidate(),Te.isReverted||Te.revert(!0,!0),Te._subPinOffset=!1;var o,i,a,s,l,c,u,f,d,p,g,h,v,b=ke(),m=Pe(),y=de?de.duration():Qa(be,he),x=N<=.01,w=0,_=n||0,C=Va(r)?r.end:E.end,T=E.endTrigger||ie,S=Va(r)?r.start:E.start||(0!==E.start&&ie?ae?"0 0":"0 100%":0),k=Te.pinnedContainer=E.pinnedContainer&&J(E.pinnedContainer,Te),P=ie&&Math.max(0,Tt.indexOf(Te))||0,M=P;for(_e&&Va(r)&&(h=He.getProperty(Y,he.p),v=He.getProperty(F,he.p));M--;)(c=Tt[M]).end||c.refresh(0,1)||(je=Te),!(u=c.pin)||u!==ie&&u!==ae&&u!==k||c.isReverted||((p=p||[]).unshift(c),c.revert(!0,!0)),c!==Tt[M]&&(P--,M--);for(Ta(S)&&(S=S(Te)),S=Ca(S,"start",Te),B=mc(S,ie,b,he,Ae(),I,Y,Te,m,Ce,ye,y,de,Te._startClamp&&"_startClamp")||(ae?-.001:0),Ta(C)&&(C=C(Te)),ct(C)&&!C.indexOf("+=")&&(~C.indexOf(" ")?C=(ct(S)?S.split(" ")[0]:"")+C:(w=Cb(C.substr(2),b),C=ct(S)?S:(de?He.utils.mapRange(0,de.duration(),de.scrollTrigger.start,de.scrollTrigger.end,B):B)+w,T=ie)),C=Ca(C,"end",Te),q=Math.max(B,mc(C||(T?"100% 0":y),T,b,he,Ae()+w,L,F,Te,m,Ce,ye,y,de,Te._endClamp&&"_endClamp"))||-.001,w=0,M=P;M--;)(u=(c=Tt[M]).pin)&&c.start-c._pinPush<=B&&!de&&0<c.end&&(o=c.end-(Te._startClamp?Math.max(0,c.start):c.start),(u===ie&&c.start-c._pinPush<B||u===k)&&isNaN(S)&&(w+=o*(1-c.progress)),u===ae&&(_+=o));if(B+=w,q+=w,Te._startClamp&&(Te._startClamp+=w),Te._endClamp&&!rt&&(Te._endClamp=q||-.001,q=Math.min(q,Qa(be,he))),N=q-B||(B-=.01)&&.001,x&&(Oe=He.utils.clamp(0,1,He.utils.normalize(B,q,re))),Te._pinPush=_,I&&w&&((o={})[he.a]="+="+w,k&&(o[he.p]="-="+Ae()),He.set([I,L],o)),!ae||et&&Te.end>=Qa(be,he)){if(ie&&Ae()&&!de)for(i=ie.parentNode;i&&i!==We;)i._pinOffset&&(B-=i._pinOffset,q-=i._pinOffset),i=i.parentNode}else o=mb(ae),s=he===Fe,a=Ae(),G=parseFloat(j(he.a))+_,!y&&1<q&&(g={style:g=(me?Xe.scrollingElement||Je:be).style,value:g["overflow"+he.a.toUpperCase()]},me&&"scroll"!==mb(We)["overflow"+he.a.toUpperCase()]&&(g.style["overflow"+he.a.toUpperCase()]="scroll")),gc(ae,U,o),V=jc(ae),i=wt(ae,!0),f=ye&&K(be,s?Ye:Fe)(),se?((Z=[se+he.os2,N+_+xt]).t=U,(M=se===bt?qb(ae,he)+N+_:0)&&(Z.push(he.d,M+xt),"auto"!==U.style.flexBasis&&(U.style.flexBasis=M+xt)),Et(Z),k&&Tt.forEach(function(e){e.pin===k&&!1!==e.vars.pinSpacing&&(e._subPinOffset=!0)}),ye&&Ae(re)):(M=qb(ae,he))&&"auto"!==U.style.flexBasis&&(U.style.flexBasis=M+xt),ye&&((l={top:i.top+(s?a-B:f)+xt,left:i.left+(s?f:a-B)+xt,boxSizing:"border-box",position:"fixed"})[ft]=l.maxWidth=Math.ceil(i.width)+xt,l[dt]=l.maxHeight=Math.ceil(i.height)+xt,l[mt]=l[mt+ht]=l[mt+pt]=l[mt+vt]=l[mt+gt]="0",l[bt]=o[bt],l[bt+ht]=o[bt+ht],l[bt+pt]=o[bt+pt],l[bt+vt]=o[bt+vt],l[bt+gt]=o[bt+gt],W=function _copyState(e,t,r){for(var n,o=[],i=e.length,a=r?8:0;a<i;a+=2)n=e[a],o.push(n,n in t?t[n]:e[a+1]);return o.t=e.t,o}(X,l,fe),rt&&Ae(0)),O?(d=O._initted,$e(1),O.render(O.duration(),!0,!0),Q=j(he.a)-G+N+_,$=1<Math.abs(N-Q),ye&&$&&W.splice(W.length-2,2),O.render(0,!0,!0),d||O.invalidate(!0),O.parent||O.totalTime(O.totalTime()),$e(0)):Q=N,g&&(g.value?g.style["overflow"+he.a.toUpperCase()]=g.value:g.style.removeProperty("overflow-"+he.a));p&&p.forEach(function(e){return e.revert(!1,!0)}),Te.start=B,Te.end=q,D=R=rt?re:Ae(),de||rt||(D<re&&Ae(re),Te.scroll.rec=0),Te.revert(!1,!0),Ee=at(),te&&(Me=-1,te.restart(!0)),je=0,O&&ve&&(O._initted||ne)&&O.progress()!==ne&&O.progress(ne||0,!0).render(O.time(),!0,!0),(x||Oe!==Te.progress||de||le)&&(O&&!ve&&O.totalProgress(de&&B<-.001&&!Oe?He.utils.normalize(B,q,0):Oe,!0),Te.progress=x||(D-B)/N===Oe?0:Oe),ae&&se&&(U._pinOffset=Math.round(Te.progress*Q)),ee&&ee.invalidate(),isNaN(h)||(h-=He.getProperty(Y,he.p),v-=He.getProperty(F,he.p),qc(Y,he,h),qc(I,he,h-(n||0)),qc(F,he,v),qc(L,he,v-(n||0))),x&&!rt&&Te.update(),!oe||rt||H||(H=!0,oe(Te),H=!1)}},Te.getVelocity=function(){return(Ae()-R)/(at()-Ke)*1e3||0},Te.endAnimation=function(){Wa(Te.callbackAnimation),O&&(ee?ee.progress(1):O.paused()?ve||Wa(O,Te.direction<0,1):Wa(O,O.reversed()))},Te.labelToScroll=function(e){return O&&O.labels&&(B||Te.refresh()||B)+O.labels[e]/O.duration()*N||0},Te.getTrailing=function(t){var e=Tt.indexOf(Te),r=0<Te.direction?Tt.slice(0,e).reverse():Tt.slice(e+1);return(ct(t)?r.filter(function(e){return e.vars.preventOverlaps===t}):r).filter(function(e){return 0<Te.direction?e.end<=B:e.start>=q})},Te.update=function(e,t,r){if(!de||r||e){var n,o,i,a,s,l,c,u=!0===rt?re:Te.scroll(),f=e?0:(u-B)/N,d=f<0?0:1<f?1:f||0,p=Te.progress;if(t&&(R=D,D=de?Ae():u,ue&&(_=w,w=O&&!ve?O.totalProgress():d)),M&&ae&&!je&&!it&&st&&(!d&&B<u+(u-R)/(at()-Ke)*M?d=1e-4:1===d&&q>u+(u-R)/(at()-Ke)*M&&(d=.9999)),d!==p&&Te.enabled){if(a=(s=(n=Te.isActive=!!d&&d<1)!=(!!p&&p<1))||!!d!=!!p,Te.direction=p<d?1:-1,Te.progress=d,a&&!je&&(o=d&&!p?0:1===d?1:1===p?2:3,ve&&(i=!s&&"none"!==we[o+1]&&we[o+1]||we[o],c=O&&("complete"===i||"reset"===i||i in O))),ge&&(s||c)&&(c||P||!O)&&(Ta(ge)?ge(Te):Te.getTrailing(ge).forEach(function(e){return e.endAnimation()})),ve||(!ee||je||it?O&&O.totalProgress(d,!(!je||!Ee&&!e)):(ee._dp._time-ee._start!==ee._time&&ee.render(ee._dp._time-ee._start),ee.resetTo?ee.resetTo("totalProgress",d,O._tTime/O._tDur):(ee.vars.totalProgress=d,ee.invalidate().restart()))),ae)if(e&&se&&(U.style[se+he.os2]=m),ye){if(a){if(l=!e&&p<d&&u<q+1&&u+1>=Qa(be,he),fe)if(e||!n&&!l)oc(ae,U);else{var g=wt(ae,!0),h=u-B;oc(ae,We,g.top+(he===Fe?h:0)+xt,g.left+(he===Fe?0:h)+xt)}Et(n||l?W:V),$&&d<1&&n||b(G+(1!==d||l?0:Q))}}else b(Ia(G+Q*d));!ue||A.tween||je||it||te.restart(!0),S&&(s||ce&&d&&(d<1||!tt))&&Ve(S.targets).forEach(function(e){return e.classList[n||ce?"add":"remove"](S.className)}),!T||ve||e||T(Te),a&&!je?(ve&&(c&&("complete"===i?O.pause().totalProgress(1):"reset"===i?O.restart(!0).pause():"restart"===i?O.restart(!0):O[i]()),T&&T(Te)),!s&&tt||(k&&s&&Xa(Te,k),xe[o]&&Xa(Te,xe[o]),ce&&(1===d?Te.kill(!1,1):xe[o]=0),s||xe[o=1===d?1:3]&&Xa(Te,xe[o])),pe&&!n&&Math.abs(Te.getVelocity())>(Ua(pe)?pe:2500)&&(Wa(Te.callbackAnimation),ee?ee.progress(1):Wa(O,"reverse"===i?1:!d,1))):ve&&T&&!je&&T(Te)}if(x){var v=de?u/de.duration()*(de._caScrollDist||0):u;y(v+(Y._isFlipped?1:0)),x(v)}C&&C(-u/de.duration()*(de._caScrollDist||0))}},Te.enable=function(e,t){Te.enabled||(Te.enabled=!0,wb(be,"resize",Lb),me||wb(be,"scroll",Jb),Se&&wb(ScrollTrigger,"refreshInit",Se),!1!==e&&(Te.progress=Oe=0,D=R=Me=Ae()),!1!==t&&Te.refresh())},Te.getTween=function(e){return e&&A?A.tween:ee},Te.setPositions=function(e,t,r,n){if(de){var o=de.scrollTrigger,i=de.duration(),a=o.end-o.start;e=o.start+a*e/i,t=o.start+a*t/i}Te.refresh(!1,!1,{start:Da(e,r&&!!Te._startClamp),end:Da(t,r&&!!Te._endClamp)},n),Te.update()},Te.adjustPinSpacing=function(e){if(Z&&e){var t=Z.indexOf(he.d)+1;Z[t]=parseFloat(Z[t])+e+xt,Z[1]=parseFloat(Z[1])+e+xt,Et(Z)}},Te.disable=function(e,t){if(Te.enabled&&(!1!==e&&Te.revert(!0,!0),Te.enabled=Te.isActive=!1,t||ee&&ee.pause(),re=0,n&&(n.uncache=1),Se&&xb(ScrollTrigger,"refreshInit",Se),te&&(te.pause(),A.tween&&A.tween.kill()&&(A.tween=0)),!me)){for(var r=Tt.length;r--;)if(Tt[r].scroller===be&&Tt[r]!==Te)return;xb(be,"resize",Lb),me||xb(be,"scroll",Jb)}},Te.kill=function(e,t){Te.disable(e,t),ee&&!t&&ee.kill(),a&&delete St[a];var r=Tt.indexOf(Te);0<=r&&Tt.splice(r,1),r===Qe&&0<Mt&&Qe--,r=0,Tt.forEach(function(e){return e.scroller===Te.scroller&&(r=1)}),r||rt||(Te.scroll.rec=0),O&&(O.scrollTrigger=null,e&&O.revert({kill:!1}),t||O.kill()),I&&[I,L,Y,F].forEach(function(e){return e.parentNode&&e.parentNode.removeChild(e)}),ot===Te&&(ot=0),ae&&(n&&(n.uncache=1),r=0,Tt.forEach(function(e){return e.pin===ae&&r++}),r||(n.spacer=0)),E.onKill&&E.onKill(Te)},Tt.push(Te),Te.enable(!1,!1),i&&i(Te),O&&O.add&&!N){var v=Te.update;Te.update=function(){Te.update=v,B||q||Te.refresh()},He.delayedCall(.01,Te.update),N=.01,B=q=0}else Te.refresh();ae&&function _queueRefreshAll(){if(nt!==kt){var e=nt=kt;requestAnimationFrame(function(){return e===kt&&Pt(!0)})}}()}else this.update=this.refresh=this.kill=Ha},ScrollTrigger.register=function register(e){return s||(He=e||Ka(),Ja()&&window.document&&ScrollTrigger.enable(),s=lt),s},ScrollTrigger.defaults=function defaults(e){if(e)for(var t in e)Ct[t]=e[t];return Ct},ScrollTrigger.disable=function disable(t,r){lt=0,Tt.forEach(function(e){return e[r?"kill":"disable"](t)}),xb(Ne,"wheel",Jb),xb(Xe,"scroll",Jb),clearInterval(u),xb(Xe,"touchcancel",Ha),xb(We,"touchstart",Ha),vb(xb,Xe,"pointerdown,touchstart,mousedown",Fa),vb(xb,Xe,"pointerup,touchend,mouseup",Ga),c.kill(),Ra(xb);for(var e=0;e<Ie.length;e+=3)yb(xb,Ie[e],Ie[e+1]),yb(xb,Ie[e],Ie[e+2])},ScrollTrigger.enable=function enable(){if(Ne=window,Xe=document,Je=Xe.documentElement,We=Xe.body,He&&(Ve=He.utils.toArray,Ue=He.utils.clamp,x=He.core.context||Ha,$e=He.core.suppressOverwrites||Ha,w=Ne.history.scrollRestoration||"auto",Q=Ne.pageYOffset,He.core.globals("ScrollTrigger",ScrollTrigger),We)){lt=1,(_=document.createElement("div")).style.height="100vh",_.style.position="absolute",Yb(),function _rafBugFix(){return lt&&requestAnimationFrame(_rafBugFix)}(),k.register(He),ScrollTrigger.isTouch=k.isTouch,E=k.isTouch&&/(iPad|iPhone|iPod|Mac)/g.test(navigator.userAgent),b=1===k.isTouch,wb(Ne,"wheel",Jb),l=[Ne,Xe,Je,We],He.matchMedia?(ScrollTrigger.matchMedia=function(e){var t,r=He.matchMedia();for(t in e)r.add(t,e[t]);return r},He.addEventListener("matchMediaInit",function(){return Sb()}),He.addEventListener("matchMediaRevert",function(){return Rb()}),He.addEventListener("matchMedia",function(){Pt(0,1),U("matchMedia")}),He.matchMedia("(orientation: portrait)",function(){return Kb(),Kb})):console.warn("Requires GSAP 3.11.0 or later"),Kb(),wb(Xe,"scroll",Jb);var e,t,r=We.style,n=r.borderTopStyle,o=He.core.Animation.prototype;for(o.revert||Object.defineProperty(o,"revert",{value:function value(){return this.time(-.01,!0)}}),r.borderTopStyle="solid",e=wt(We),Fe.m=Math.round(e.top+Fe.sc())||0,Ye.m=Math.round(e.left+Ye.sc())||0,n?r.borderTopStyle=n:r.removeProperty("border-top-style"),u=setInterval(Ib,250),He.delayedCall(.5,function(){return it=0}),wb(Xe,"touchcancel",Ha),wb(We,"touchstart",Ha),vb(wb,Xe,"pointerdown,touchstart,mousedown",Fa),vb(wb,Xe,"pointerup,touchend,mouseup",Ga),f=He.utils.checkPrefix("transform"),ee.push(f),s=at(),c=He.delayedCall(.2,Pt).pause(),g=[Xe,"visibilitychange",function(){var e=Ne.innerWidth,t=Ne.innerHeight;Xe.hidden?(d=e,p=t):d===e&&p===t||Lb()},Xe,"DOMContentLoaded",Pt,Ne,"load",Pt,Ne,"resize",Lb],Ra(wb),Tt.forEach(function(e){return e.enable(0,1)}),t=0;t<Ie.length;t+=3)yb(xb,Ie[t],Ie[t+1]),yb(xb,Ie[t],Ie[t+2])}},ScrollTrigger.config=function config(e){"limitCallbacks"in e&&(tt=!!e.limitCallbacks);var t=e.syncInterval;t&&clearInterval(u)||(u=t)&&setInterval(Ib,t),"ignoreMobileResize"in e&&(b=1===ScrollTrigger.isTouch&&e.ignoreMobileResize),"autoRefreshEvents"in e&&(Ra(xb)||Ra(wb,e.autoRefreshEvents||"none"),h=-1===(e.autoRefreshEvents+"").indexOf("resize"))},ScrollTrigger.scrollerProxy=function scrollerProxy(e,t){var r=J(e),n=Ie.indexOf(r),o=La(r);~n&&Ie.splice(n,o?6:2),t&&(o?Le.unshift(Ne,t,We,t,Je,t):Le.unshift(r,t))},ScrollTrigger.clearMatchMedia=function clearMatchMedia(t){Tt.forEach(function(e){return e._ctx&&e._ctx.query===t&&e._ctx.kill(!0,!0)})},ScrollTrigger.isInViewport=function isInViewport(e,t,r){var n=(ct(e)?J(e):e).getBoundingClientRect(),o=n[r?ft:dt]*t||0;return r?0<n.right-o&&n.left+o<Ne.innerWidth:0<n.bottom-o&&n.top+o<Ne.innerHeight},ScrollTrigger.positionInViewport=function positionInViewport(e,t,r){ct(e)&&(e=J(e));var n=e.getBoundingClientRect(),o=n[r?ft:dt],i=null==t?o/2:t in H?H[t]*o:~t.indexOf("%")?parseFloat(t)*o/100:parseFloat(t)||0;return r?(n.left+i)/Ne.innerWidth:(n.top+i)/Ne.innerHeight},ScrollTrigger.killAll=function killAll(e){if(Tt.slice(0).forEach(function(e){return"ScrollSmoother"!==e.vars.id&&e.kill()}),!0!==e){var t=W.killAll||[];W={},t.forEach(function(e){return e()})}},ScrollTrigger);function ScrollTrigger(e,t){s||ScrollTrigger.register(He)||console.warn("Please gsap.registerPlugin(ScrollTrigger)"),x(this),this.init(e,t)}ne.version="3.12.5",ne.saveStyles=function(e){return e?Ve(e).forEach(function(e){if(e&&e.style){var t=j.indexOf(e);0<=t&&j.splice(t,5),j.push(e,e.style.cssText,e.getBBox&&e.getAttribute("transform"),He.core.getCache(e),x())}}):j},ne.revert=function(e,t){return Sb(!e,t)},ne.create=function(e,t){return new ne(e,t)},ne.refresh=function(e){return e?Lb():(s||ne.register())&&Pt(!0)},ne.update=function(e){return++Ie.cache&&Z(!0===e?2:0)},ne.clearScrollMemory=Tb,ne.maxScroll=function(e,t){return Qa(e,t?Ye:Fe)},ne.getScrollFunc=function(e,t){return K(J(e),t?Ye:Fe)},ne.getById=function(e){return St[e]},ne.getAll=function(){return Tt.filter(function(e){return"ScrollSmoother"!==e.vars.id})},ne.isScrolling=function(){return!!st},ne.snapDirectional=tb,ne.addEventListener=function(e,t){var r=W[e]||(W[e]=[]);~r.indexOf(t)||r.push(t)},ne.removeEventListener=function(e,t){var r=W[e],n=r&&r.indexOf(t);0<=n&&r.splice(n,1)},ne.batch=function(e,t){function Cp(e,t){var r=[],n=[],o=He.delayedCall(i,function(){t(r,n),r=[],n=[]}).pause();return function(e){r.length||o.restart(!0),r.push(e.trigger),n.push(e),a<=r.length&&o.progress(1)}}var r,n=[],o={},i=t.interval||.016,a=t.batchMax||1e9;for(r in t)o[r]="on"===r.substr(0,2)&&Ta(t[r])&&"onRefreshInit"!==r?Cp(0,t[r]):t[r];return Ta(a)&&(a=a(),wb(ne,"refresh",function(){return a=t.batchMax()})),Ve(e).forEach(function(e){var t={};for(r in o)t[r]=o[r];t.trigger=e,n.push(ne.create(t))}),n};function tc(e,t,r,n){return n<t?e(n):t<0&&e(0),n<r?(n-t)/(r-t):r<0?t/(t-r):1}function uc(e,t){!0===t?e.style.removeProperty("touch-action"):e.style.touchAction=!0===t?"auto":t?"pan-"+t+(k.isTouch?" pinch-zoom":""):"none",e===Je&&uc(We,t)}function wc(e){var t,r=e.event,n=e.target,o=e.axis,i=(r.changedTouches?r.changedTouches[0]:r).target,a=i._gsap||He.core.getCache(i),s=at();if(!a._isScrollT||2e3<s-a._isScrollT){for(;i&&i!==We&&(i.scrollHeight<=i.clientHeight&&i.scrollWidth<=i.clientWidth||!ie[(t=mb(i)).overflowY]&&!ie[t.overflowX]);)i=i.parentNode;a._isScroll=i&&i!==n&&!La(i)&&(ie[(t=mb(i)).overflowY]||ie[t.overflowX]),a._isScrollT=s}!a._isScroll&&"x"!==o||(r.stopPropagation(),r._gsapAllow=!0)}function xc(e,t,r,n){return k.create({target:e,capture:!0,debounce:!1,lockAxis:!0,type:t,onWheel:n=n&&wc,onPress:n,onDrag:n,onScroll:n,onEnable:function onEnable(){return r&&wb(Xe,k.eventTypes[0],se,!1,!0)},onDisable:function onDisable(){return xb(Xe,k.eventTypes[0],se,!0)}})}function Bc(e){function zq(){return o=!1}function Cq(){i=Qa(p,Fe),S=Ue(E?1:0,i),f&&(T=Ue(0,Qa(p,Ye))),l=kt}function Dq(){v._gsap.y=Ia(parseFloat(v._gsap.y)+b.offset)+"px",v.style.transform="matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, "+parseFloat(v._gsap.y)+", 0, 1)",b.offset=b.cacheID=0}function Jq(){Cq(),a.isActive()&&a.vars.scrollY>i&&(b()>i?a.progress(1)&&b(i):a.resetTo("scrollY",i))}Va(e)||(e={}),e.preventDefault=e.isNormalizer=e.allowClicks=!0,e.type||(e.type="wheel,touch"),e.debounce=!!e.debounce,e.id=e.id||"normalizer";var n,i,l,o,a,c,u,s,f=e.normalizeScrollX,t=e.momentum,r=e.allowNestedScroll,d=e.onRelease,p=J(e.target)||Je,g=He.core.globals().ScrollSmoother,h=g&&g.get(),v=E&&(e.content&&J(e.content)||h&&!1!==e.content&&!h.smooth()&&h.content()),b=K(p,Fe),m=K(p,Ye),y=1,x=(k.isTouch&&Ne.visualViewport?Ne.visualViewport.scale*Ne.visualViewport.width:Ne.outerWidth)/Ne.innerWidth,w=0,_=Ta(t)?function(){return t(n)}:function(){return t||2.8},C=xc(p,e.type,!0,r),T=Ha,S=Ha;return v&&He.set(v,{y:"+=0"}),e.ignoreCheck=function(e){return E&&"touchmove"===e.type&&function ignoreDrag(){if(o){requestAnimationFrame(zq);var e=Ia(n.deltaY/2),t=S(b.v-e);if(v&&t!==b.v+b.offset){b.offset=t-b.v;var r=Ia((parseFloat(v&&v._gsap.y)||0)-b.offset);v.style.transform="matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, "+r+", 0, 1)",v._gsap.y=r+"px",b.cacheID=Ie.cache,Z()}return!0}b.offset&&Dq(),o=!0}()||1.05<y&&"touchstart"!==e.type||n.isGesturing||e.touches&&1<e.touches.length},e.onPress=function(){o=!1;var e=y;
32y=Ia((Ne.visualViewport&&Ne.visualViewport.scale||1)/x),a.pause(),e!==y&&uc(p,1.01<y||!f&&"x"),c=m(),u=b(),Cq(),l=kt},e.onRelease=e.onGestureStart=function(e,t){if(b.offset&&Dq(),t){Ie.cache++;var r,n,o=_();f&&(n=(r=m())+.05*o*-e.velocityX/.227,o*=tc(m,r,n,Qa(p,Ye)),a.vars.scrollX=T(n)),n=(r=b())+.05*o*-e.velocityY/.227,o*=tc(b,r,n,Qa(p,Fe)),a.vars.scrollY=S(n),a.invalidate().duration(o).play(.01),(E&&a.vars.scrollY>=i||i-1<=r)&&He.to({},{onUpdate:Jq,duration:o})}else s.restart(!0);d&&d(e)},e.onWheel=function(){a._ts&&a.pause(),1e3<at()-w&&(l=0,w=at())},e.onChange=function(e,t,r,n,o){if(kt!==l&&Cq(),t&&f&&m(T(n[2]===t?c+(e.startX-e.x):m()+t-n[1])),r){b.offset&&Dq();var i=o[2]===r,a=i?u+e.startY-e.y:b()+r-o[1],s=S(a);i&&a!==s&&(u+=s-a),b(s)}(r||t)&&Z()},e.onEnable=function(){uc(p,!f&&"x"),ne.addEventListener("refresh",Jq),wb(Ne,"resize",Jq),b.smooth&&(b.target.style.scrollBehavior="auto",b.smooth=m.smooth=!1),C.enable()},e.onDisable=function(){uc(p,!0),xb(Ne,"resize",Jq),ne.removeEventListener("refresh",Jq),C.kill()},e.lockAxis=!1!==e.lockAxis,((n=new k(e)).iOS=E)&&!b()&&b(1),E&&He.ticker.add(Ha),s=n._dc,a=He.to(n,{ease:"power4",paused:!0,inherit:!1,scrollX:f?"+=0.1":"+=0",scrollY:"+=0.1",modifiers:{scrollY:pc(b,b(),function(){return a.pause()})},onUpdate:Z,onComplete:s.vars.onComplete}),n}var oe,ie={auto:1,scroll:1},ae=/(input|label|select|textarea)/i,se=function _captureInputs(e){var t=ae.test(e.target.tagName);(t||oe)&&(e._gsapAllow=!0,oe=t)};ne.sort=function(e){return Tt.sort(e||function(e,t){return-1e6*(e.vars.refreshPriority||0)+e.start-(t.start+-1e6*(t.vars.refreshPriority||0))})},ne.observe=function(e){return new k(e)},ne.normalizeScroll=function(e){if(void 0===e)return v;if(!0===e&&v)return v.enable();if(!1===e)return v&&v.kill(),void(v=e);var t=e instanceof k?e:Bc(e);return v&&v.target===t.target&&v.kill(),La(t.target)&&(v=t),t},ne.core={_getVelocityProp:L,_inputObserver:xc,_scrollers:Ie,_proxies:Le,bridge:{ss:function ss(){st||U("scrollStart"),st=at()},ref:function ref(){return je}}},Ka()&&He.registerPlugin(ne),e.ScrollTrigger=ne,e.default=ne;if (typeof(window)==="undefined"||window!==e){Object.defineProperty(e,"__esModule",{value:!0})} else {delete e.default}}); 33 34 35!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).window=t.window||{})}(this,(function(t){"use strict";const e=(t,e=1e4)=>(t=parseFloat(t+"")||0,Math.round((t+Number.EPSILON)*e)/e),i=function(t){if(!(t&&t instanceof Element&&t.offsetParent))return!1;const e=t.scrollHeight>t.clientHeight,i=window.getComputedStyle(t).overflowY,n=-1!==i.indexOf("hidden"),s=-1!==i.indexOf("visible");return e&&!n&&!s},n=function(t,e=void 0){return!(!t||t===document.body||e&&t===e)&&(i(t)?t:n(t.parentElement,e))},s=function(t){var e=(new DOMParser).parseFromString(t,"text/html").body;if(e.childElementCount>1){for(var i=document.createElement("div");e.firstChild;)i.appendChild(e.firstChild);return i}return e.firstChild},o=t=>`${t||""}`.split(" ").filter((t=>!!t)),a=(t,e,i)=>{t&&o(e).forEach((e=>{t.classList.toggle(e,i||!1)}))};class r{constructor(t){Object.defineProperty(this,"pageX",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"pageY",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"clientX",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"clientY",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"id",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"time",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"nativePointer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.nativePointer=t,this.pageX=t.pageX,this.pageY=t.pageY,this.clientX=t.clientX,this.clientY=t.clientY,this.id=self.Touch&&t instanceof Touch?t.identifier:-1,this.time=Date.now()}}const l={passive:!1};class c{constructor(t,{start:e=(()=>!0),move:i=(()=>{}),end:n=(()=>{})}){Object.defineProperty(this,"element",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"startCallback",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"moveCallback",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"endCallback",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"currentPointers",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"startPointers",{enumerable:!0,configurable:!0,writable:!0,value:[]}),this.element=t,this.startCallback=e,this.moveCallback=i,this.endCallback=n;for(const t of["onPointerStart","onTouchStart","onMove","onTouchEnd","onPointerEnd","onWindowBlur"])this[t]=this[t].bind(this);this.element.addEventListener("mousedown",this.onPointerStart,l),this.element.addEventListener("touchstart",this.onTouchStart,l),this.element.addEventListener("touchmove",this.onMove,l),this.element.addEventListener("touchend",this.onTouchEnd),this.element.addEventListener("touchcancel",this.onTouchEnd)}onPointerStart(t){if(!t.buttons||0!==t.button)return;const e=new r(t);this.currentPointers.some((t=>
vendor: 21,981 bytes, line 35
35t.id===e.id))||this.triggerPointerStart(e,t)&&(window.addEventListener("mousemove",this.onMove),window.addEventListener("mouseup",this.onPointerEnd),window.addEventListener("blur",this.onWindowBlur))}onTouchStart(t){for(const e of Array.from(t.changedTouches||[]))this.triggerPointerStart(new r(e),t);window.addEventListener("blur",this.onWindowBlur)}onMove(t){const e=this.currentPointers.slice(),i="changedTouches"in t?Array.from(t.changedTouches||[]).map((t=>new r(t))):[new r(t)],n=[];for(const t of i){const e=this.currentPointers.findIndex((e=>e.id===t.id));e<0||(n.push(t),this.currentPointers[e]=t)}n.length&&this.moveCallback(t,this.currentPointers.slice(),e)}onPointerEnd(t){t.buttons>0&&0!==t.button||(this.triggerPointerEnd(t,new r(t)),window.removeEventListener("mousemove",this.onMove),window.removeEventListener("mouseup",this.onPointerEnd),window.removeEventListener("blur",this.onWindowBlur))}onTouchEnd(t){for(const e of Array.from(t.changedTouches||[]))this.triggerPointerEnd(t,new r(e))}triggerPointerStart(t,e){return!!this.startCallback(e,t,this.currentPointers.slice())&&(this.currentPointers.push(t),this.startPointers.push(t),!0)}triggerPointerEnd(t,e){const i=this.currentPointers.findIndex((t=>t.id===e.id));i<0||(this.currentPointers.splice(i,1),this.startPointers.splice(i,1),this.endCallback(t,e,this.currentPointers.slice()))}onWindowBlur(){this.clear()}clear(){for(;this.currentPointers.length;){const t=this.currentPointers[this.currentPointers.length-1];this.currentPointers.splice(this.currentPointers.length-1,1),this.startPointers.splice(this.currentPointers.length-1,1),this.endCallback(new Event("touchend",{bubbles:!0,cancelable:!0,clientX:t.clientX,clientY:t.clientY}),t,this.currentPointers.slice())}}stop(){this.element.removeEventListener("mousedown",this.onPointerStart,l),this.element.removeEventListener("touchstart",this.onTouchStart,l),this.element.removeEventListener("touchmove",this.onMove,l),this.element.removeEventListener("touchend",this.onTouchEnd),this.element.removeEventListener("touchcancel",this.onTouchEnd),window.removeEventListener("mousemove",this.onMove),window.removeEventListener("mouseup",this.onPointerEnd),window.removeEventListener("blur",this.onWindowBlur)}}function h(t,e){return e?Math.sqrt(Math.pow(e.clientX-t.clientX,2)+Math.pow(e.clientY-t.clientY,2)):0}function d(t,e){return e?{clientX:(t.clientX+e.clientX)/2,clientY:(t.clientY+e.clientY)/2}:t}const u=t=>"object"==typeof t&&null!==t&&t.constructor===Object&&"[object Object]"===Object.prototype.toString.call(t),p=(t,...e)=>{const i=e.length;for(let n=0;n<i;n++){const i=e[n]||{};Object.entries(i).forEach((([e,i])=>{const n=Array.isArray(i)?[]:{};t[e]||Object.assign(t,{[e]:n}),u(i)?Object.assign(t[e],p(n,i)):Array.isArray(i)?Object.assign(t,{[e]:[...i]}):Object.assign(t,{[e]:i})}))}return t},f=function(t,e){return t.split(".").reduce(((t,e)=>"object"==typeof t?t[e]:void 0),e)};class g{constructor(t={}){Object.defineProperty(this,"options",{enumerable:!0,configurable:!0,writable:!0,value:t}),Object.defineProperty(this,"events",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),this.setOptions(t);for(const t of Object.getOwnPropertyNames(Object.getPrototypeOf(this)))t.startsWith("on")&&"function"==typeof this[t]&&(this[t]=this[t].bind(this))}setOptions(t){this.options=t?p({},this.constructor.defaults,t):{};for(const[t,e]of Object.entries(this.option("on")||{}))this.on(t,e)}option(t,...e){let i=f(t,this.options);return i&&"function"==typeof i&&(i=i.call(this,this,...e)),i}optionFor(t,e,i,...n){let s=f(e,t);var o;"string"!=typeof(o=s)||isNaN(o)||isNaN(parseFloat(o))||(s=parseFloat(s)),"true"===s&&(s=!0),"false"===s&&(s=!1),s&&"function"==typeof s&&(s=s.call(this,this,t,...n));let a=f(e,this.options);return a&&"function"==typeof a?s=a.call(this,this,t,...n,s):void 0===s&&(s=a),void 0===s?i:s}cn(t){const e=this.options.classes;return e&&e[t]||""}localize(t,e=[]){t=String(t).replace(/\{\{(\w+).?(\w+)?\}\}/g,((t,e,i)=>{let n="";return i?n=this.option(`${e[0]+e.toLowerCase().substring(1)}.l10n.${i}`):e&&(n=this.option(`l10n.${e}`)),n||(n=t),n}));for(let i=0;i<e.length;i++)t=t.split(e[i][0]).join(e[i][1]);return t=t.replace(/\{\{(.*?)\}\}/g,((t,e)=>e))}on(t,e){let i=[];"string"==typeof t?i=t.split(" "):Array.isArray(t)&&(i=t),this.events||(this.events=new Map),i.forEach((t=>{let i=this.events.get(t);i||(this.events.set(t,[]),i=[]),i.includes(e)||i.push(e),this.events.set(t,i)}))}off(t,e){let i=[];"string"==typeof t?i=t.split(" "):Array.isArray(t)&&(i=t),i.forEach((t=>{const i=this.events.get(t);if(Array.isArray(i)){const t=i.indexOf(e);t>-1&&i.splice(t,1)}}))}emit(t,...e){[...this.events.get(t)||[]].forEach((t=>t(this,...e))),"*"!==t&&this.emit("*",t,...e)}}Object.defineProperty(g,"version",{enumerable:!0,configurable:!0,writable:!0,value:"5.0.36"}),Object.defineProperty(g,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:{}});class m extends g{constructor(t={}){super(t),Object.defineProperty(this,"plugins",{enumerable:!0,configurable:!0,writable:!0,value:{}})}attachPlugins(t={}){const e=new Map;for(const[i,n]of Object.entries(t)){const t=this.option(i),s=this.plugins[i];s||!1===t?s&&!1===t&&(s.detach(),delete this.plugins[i]):e.set(i,new n(this,t||{}))}for(const[t,i]of e)this.plugins[t]=i,i.attach()}detachPlugins(t){t=t||Object.keys(this.plugins);for(const e of t){const t=this.plugins[e];t&&t.detach(),delete this.plugins[e]}return this.emit("detachPlugins"),this}}var v;!function(t){t[t.Init=0]="Init",t[t.Error=1]="Error",t[t.Ready=2]="Ready",t[t.Panning=3]="Panning",t[t.Mousemove=4]="Mousemove",t[t.Destroy=5]="Destroy"}(v||(v={}));const b=["a","b","c","d","e","f"],y={PANUP:"Move up",PANDOWN:"Move down",PANLEFT:"Move left",PANRIGHT:"Move right",ZOOMIN:"Zoom in",ZOOMOUT:"Zoom out",TOGGLEZOOM:"Toggle zoom level",TOGGLE1TO1:"Toggle zoom level",ITERATEZOOM:"Toggle zoom level",ROTATECCW:"Rotate counterclockwise",ROTATECW:"Rotate clockwise",FLIPX:"Flip horizontally",FLIPY:"Flip vertically",FITX:"Fit horizontally",FITY:"Fit vertically",RESET:"Reset",TOGGLEFS:"Toggle fullscreen"},w={content:null,width:"auto",height:"auto",panMode:"drag",touch:!0,dragMinThreshold:3,lockAxis:!1,mouseMoveFactor:1,mouseMoveFriction:.12,zoom:!0,pinchToZoom:!0,panOnlyZoomed:"auto",minScale:1,maxScale:2,friction:.25,dragFriction:.35,decelFriction:.05,click:"toggleZoom",dblClick:!1,wheel:"zoom",wheelLimit:7,spinner:!0,bounds:"auto",infinite:!1,rubberband:!0,bounce:!0,maxVelocity:75,transformParent:!1,classes:{content:"f-panzoom__content",isLoading:"is-loading",canZoomIn:"can-zoom_in",canZoomOut:"can-zoom_out",isDraggable:"is-draggable",isDragging:"is-dragging",inFullscreen:"in-fullscreen",htmlHasFullscreen:"with-panzoom-in-fullscreen"},l10n:y},x='<circle cx="25" cy="25" r="20"></circle>',E='<div class="f-spinner"><svg viewBox="0 0 50 50">'+x+x+"</svg></div>",S=t=>t&&null!==t&&t instanceof Element&&"nodeType"in t,P=(t,e)=>{t&&o(e).forEach((e=>{t.classList.remove(e)}))},C=(t,e)=>{t&&o(e).forEach((e=>{t.classList.add(e)}))},T={a:1,b:0,c:0,d:1,e:0,f:0},M=1e5,O=1e4,A="mousemove",L="drag",z="content",R="auto";let k=null,I=null;class D extends m{get fits(){return this.contentRect.width-this.contentRect.fitWidth<1&&this.contentRect.height-this.contentRect.fitHeight<1}get isTouchDevice(){return null===I&&(I=window.matchMedia("(hover: none)").matches),I}get isMobile(){return null===k&&(k=/iPhone|iPad|iPod|Android/i.test(navigator.userAgent)),k}get panMode(){return this.options.panMode!==A||this.isTouchDevice?L:A}get panOnlyZoomed(){const t=this.options.panOnlyZoomed;return t===R?this.isTouchDevice:t}get isInfinite(){return this.option("infinite")}get angle(){return 180*Math.atan2(this.current.b,this.current.a)/Math.PI||0}get targetAngle(){return 180*Math.atan2(this.target.b,this.target.a)/Math.PI||0}get scale(){const{a:t,b:e}=this.current;return Math.sqrt(t*t+e*e)||1}get targetScale(){const{a:t,b:e}=this.target;return Math.sqrt(t*t+e*e)||1}get minScale(){return this.option("minScale")||1}get fullScale(){const{contentRect:t}=this;return t.fullWidth/t.fitWidth||1}get maxScale(){return this.fullScale*(this.option("maxScale")||1)||1}get coverScale(){const{containerRect:t,contentRect:e}=this,i=Math.max(t.height/e.fitHeight,t.width/e.fitWidth)||1;return Math.min(this.fullScale,i)}get isScaling(){return Math.abs(this.targetScale-this.scale)>1e-5&&!this.isResting}get isContentLoading(){const t=this.content;return!!(t&&t instanceof HTMLImageElement)&&!t.complete}get isResting(){if(this.isBouncingX||this.isBouncingY)return!1;for(const t of b){const e="e"==t||"f"===t?1e-4:1e-5;if(Math.abs(this.target[t]-this.current[t])>e)return!1}return!(!this.ignoreBounds&&!this.checkBounds().inBounds)}constructor(t,e={},i={}){var n;if(super(e),Object.defineProperty(this,"pointerTracker",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"resizeObserver",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"updateTimer",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"clickTimer",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"rAF",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"isTicking",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"ignoreBounds",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"isBouncingX",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"isBouncingY",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"clicks",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"trackingPoints",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"pwt",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"cwd",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"pmme",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"friction",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"state",{enumerable:!0,configurable:!0,writable:!0,value:v.Init}),Object.defineProperty(this,"isDragging",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"container",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"content",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"spinner",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"containerRect",{enumerable:!0,configurable:!0,writable:!0,value:{width:0,height:0,innerWidth:0,innerHeight:0}}),Object.defineProperty(this,"contentRect",{enumerable:!0,configurable:!0,writable:!0,value:{top:0,right:0,bottom:0,left:0,fullWidth:0,fullHeight:0,fitWidth:0,fitHeight:0,width:0,height:0}}),Object.defineProperty(this,"dragStart",{enumerable:!0,configurable:!0,writable:!0,value:{x:0,y:0,top:0,left:0,time:0}}),Object.defineProperty(this,"dragOffset",{enumerable:!0,configurable:!0,writable:!0,value:{x:0,y:0,time:0}}),Object.defineProperty(this,"current",{enumerable:!0,configurable:!0,writable:!0,value:Object.assign({},T)}),Object.defineProperty(this,"target",{enumerable:!0,configurable:!0,writable:!0,value:Object.assign({},T)}),Object.defineProperty(this,"velocity",{enumerable:!0,configurable:!0,writable:!0,value:{a:0,b:0,c:0,d:0,e:0,f:0}}),Object.defineProperty(this,"lockedAxis",{enumerable:!0,configurable:!0,writable:!0,value:!1}),!t)throw new Error("Container Element Not Found");this.container=t,this.initContent(),this.attachPlugins(Object.assign(Object.assign({},D.Plugins),i)),this.emit("attachPlugins"),this.emit("init");const o=this.content;if(o.addEventListener("load",this.onLoad),o.addEventListener("error",this.onError),this.isContentLoading){if(this.option("spinner")){t.classList.add(this.cn("isLoading"));const e=s(E);!t.contains(o)||o.parentElement instanceof HTMLPictureElement?this.spinner=t.appendChild(e):this.spinner=(null===(n=o.parentElement)||void 0===n?void 0:n.insertBefore(e,o))||null}this.emit("beforeLoad")}else queueMicrotask((()=>{this.enable()}))}initContent(){const{container:t}=this,e=this.cn(z);let i=this.option(z)||t.querySelector(`.${e}`);if(i||(i=t.querySelector("img,picture")||t.firstElementChild,i&&C(i,e)),i instanceof HTMLPictureElement&&(i=i.querySelector("img")),!i)throw new Error("No content found");this.content=i}onLoad(){const{spinner:t,container:e,state:i}=this;t&&(t.remove(),this.spinner=null),this.option("spinner")&&e.classList.remove(this.cn("isLoading")),this.emit("afterLoad"),i===v.Init?this.enable():this.updateMetrics()}onError(){this.state!==v.Destroy&&(this.spinner&&(this.spinner.remove(),this.spinner=null),this.stop(),this.detachEvents(),this.state=v.Error,this.emit("error"))}getNextScale(t){const{fullScale:e,targetScale:i,coverScale:n,maxScale:s,minScale:o}=this;let a=o;switch(t){case"toggleMax":a=i-o<.5*(s-o)?s:o;break;case"toggleCover":a=i-o<.5*(n-o)?n:o;break;case"toggleZoom":a=i-o<.5*(e-o)?e:o;break;case"iterateZoom":let t=[1,e,s].sort(((t,e)=>t-e)),r=t.findIndex((t=>t>i+1e-5));a=t[r]||1}return a}attachObserver(){var t;const e=()=>{const{container:t,containerRect:e}=this;return Math.abs(e.width-t.getBoundingClientRect().width)>.1||Math.abs(e.height-t.getBoundingClientRect().height)>.1};this.resizeObserver||void 0===window.ResizeObserver||(this.resizeObserver=new ResizeObserver((()=>{this.updateTimer||(e()?(this.onResize(),this.isMobile&&(this.updateTimer=setTimeout((()=>{e()&&this.onResize(),this.updateTimer=null}),500))):this.updateTimer&&(clearTimeout(this.updateTimer),this.updateTimer=null))}))),null===(t=this.resizeObserver)||void 0===t||t.observe(this.container)}detachObserver(){var t;null===(t=this.resizeObserver)||void 0===t||t.disconnect()}attachEvents(){const{container:t}=this;t.addEventListener("click",this.onClick,{passive:!1,capture:!1}),t.addEventListener("wheel",this.onWheel,{passive:!1}),this.pointerTracker=new c(t,{start:this.onPointerDown,move:this.onPointerMove,end:this.onPointerUp}),document.addEventListener(A,this.onMouseMove)}detachEvents(){var t;const{container:e}=this;e.removeEventListener("click",this.onClick,{passive:!1,capture:!1}),e.removeEventListener("wheel",this.onWheel,{passive:!1}),null===(t=this.pointerTracker)||void 0===t||t.stop(),this.pointerTracker=null,document.removeEventListener(A,this.onMouseMove),document.removeEventListener("keydown",this.onKeydown,!0),this.clickTimer&&(clearTimeout(this.clickTimer),this.clickTimer=null),this.updateTimer&&(clearTimeout(this.updateTimer),this.updateTimer=null)}animate(){this.setTargetForce();const t=this.friction,e=this.option("maxVelocity");for(const i of b)t?(this.velocity[i]*=1-t,e&&!this.isScaling&&(this.velocity[i]=Math.max(Math.min(this.velocity[i],e),-1*e)),this.current[i]+=this.velocity[i]):this.current[i]=this.target[i];this.setTransform(),this.setEdgeForce(),!this.isResting||this.isDragging?this.rAF=requestAnimationFrame((()=>this.animate())):this.stop("current")}setTargetForce(){for(const t of b)"e"===t&&this.isBouncingX||"f"===t&&this.isBouncingY||(this.velocity[t]=(1/(1-this.friction)-1)*(this.target[t]-this.current[t]))}checkBounds(t=0,e=0){const{current:i}=this,n=i.e+t,s=i.f+e,o=this.getBounds(),{x:a,y:r}=o,l=a.min,c=a.max,h=r.min,d=r.max;let u=0,p=0;return l!==1/0&&n<l?u=l-n:c!==1/0&&n>c&&(u=c-n),h!==1/0&&s<h?p=h-s:d!==1/0&&s>d&&(p=d-s),Math.abs(u)<1e-4&&(u=0),Math.abs(p)<1e-4&&(p=0),Object.assign(Object.assign({},o),{xDiff:u,yDiff:p,inBounds:!u&&!p})}clampTargetBounds(){const{target:t}=this,{x:e,y:i}=this.getBounds();e.min!==1/0&&(t.e=Math.max(t.e,e.min)),e.max!==1/0&&(t.e=Math.min(t.e,e.max)),i.min!==1/0&&(t.f=Math.max(t.f,i.min)),i.max!==1/0&&(t.f=Math.min(t.f,i.max))}calculateContentDim(t=this.current){const{content:e,contentRect:i}=this,{fitWidth:n,fitHeight:s,fullWidth:o,fullHeight:a}=i;let r=o,l=a;if(this.option("zoom")||0!==this.angle){const i=!(e instanceof HTMLImageElement)&&("none"===window.getComputedStyle(e).maxWidth||"none"===window.getComputedStyle(e).maxHeight),c=i?o:n,h=i?a:s,d=this.getMatrix(t),u=new DOMPoint(0,0).matrixTransform(d),p=new DOMPoint(0+c,0).matrixTransform(d),f=new DOMPoint(0+c,0+h).matrixTransform(d),g=new DOMPoint(0,0+h).matrixTransform(d),m=Math.abs(f.x-u.x),v=Math.abs(f.y-u.y),b=Math.abs(g.x-p.x),y=Math.abs(g.y-p.y);r=Math.max(m,b),l=Math.max(v,y)}return{contentWidth:r,contentHeight:l}}setEdgeForce(){if(this.ignoreBounds||this.isDragging||this.panMode===A||this.targetScale<this.scale)return this.isBouncingX=!1,void(this.isBouncingY=!1);const{target:t}=this,{x:e,y:i,xDiff:n,yDiff:s}=this.checkBounds();const o=this.option("maxVelocity");let a=this.velocity.e,r=this.velocity.f;0!==n?(this.isBouncingX=!0,n*a<=0?a+=.14*n:(a=.14*n,e.min!==1/0&&(this.target.e=Math.max(t.e,e.min)),e.max!==1/0&&(this.target.e=Math.min(t.e,e.max))),o&&(a=Math.max(Math.min(a,o),-1*o))):this.isBouncingX=!1,0!==s?(this.isBouncingY=!0,s*r<=0?r+=.14*s:(r=.14*s,i.min!==1/0&&(this.target.f=Math.max(t.f,i.min)),i.max!==1/0&&(this.target.f=Math.min(t.f,i.max))),o&&(r=Math.max(Math.min(r,o),-1*o))):this.isBouncingY=!1,this.isBouncingX&&(this.velocity.e=a),this.isBouncingY&&(this.velocity.f=r)}enable(){const{content:t}=this,e=new DOMMatrixReadOnly(window.getComputedStyle(t).transform);for(const t of b)this.current[t]=this.target[t]=e[t];this.updateMetrics(),this.attachObserver(),this.attachEvents(),this.state=v.Ready,this.emit("ready")}onClick(t){var e;"click"===t.type&&0===t.detail&&(this.dragOffset.x=0,this.dragOffset.y=0),this.isDragging&&(null===(e=this.pointerTracker)||void 0===e||e.clear(),this.trackingPoints=[],this.startDecelAnim());const i=t.target;if(!i||t.defaultPrevented)return;if(i.hasAttribute("disabled"))return t.preventDefault(),void t.stopPropagation();if((()=>{const t=window.getSelection();return t&&"Range"===t.type})()&&!i.closest("button"))return;const n=i.closest("[data-panzoom-action]"),s=i.closest("[data-panzoom-change]"),o=n||s,a=o&&S(o)?o.dataset:null;if(a){const e=a.panzoomChange,i=a.panzoomAction;if((e||i)&&t.preventDefault(),e){let t={};try{t=JSON.parse(e)}catch(t){console&&console.warn("The given data was not valid JSON")}return void this.applyChange(t)}if(i)return void(this[i]&&this[i]())}if(Math.abs(this.dragOffset.x)>3||Math.abs(this.dragOffset.y)>3)return t.preventDefault(),void t.stopPropagation();if(i.closest("[data-fancybox]"))return;const r=this.content.getBoundingClientRect(),l=this.dragStart;if(l.time&&!this.canZoomOut()&&(Math.abs(r.x-l.x)>2||Math.abs(r.y-l.y)>2))return;this.dragStart.time=0;const c=e=>{this.option("zoom",t)&&e&&"string"==typeof e&&/(iterateZoom)|(toggle(Zoom|Full|Cover|Max)|(zoomTo(Fit|Cover|Max)))/.test(e)&&"function"==typeof this[e]&&(t.preventDefault(),this[e]({event:t}))},h=this.option("click",t),d=this.option("dblClick",t);d?(this.clicks++,1==this.clicks&&(this.clickTimer=setTimeout((()=>{1===this.clicks?(this.emit("click",t),!t.defaultPrevented&&h&&c(h)):(this.emit("dblClick",t),t.defaultPrevented||c(d)),this.clicks=0,this.clickTimer=null}),350))):(this.emit("click",t),!t.defaultPrevented&&h&&c(h))}addTrackingPoint(t){const e=this.trackingPoints.filter((t=>t.time>Date.now()-100));e.push(t),this.trackingPoints=e}onPointerDown(t,e,i){var n;if(!1===this.option("touch",t))return!1;this.pwt=0,this.dragOffset={x:0,y:0,time:0},this.trackingPoints=[];const s=this.content.getBoundingClientRect();if(this.dragStart={x:s.x,y:s.y,top:s.top,left:s.left,time:Date.now()},this.clickTimer)return!1;if(this.panMode===A&&this.targetScale>1)return t.preventDefault(),t.stopPropagation(),!1;const o=t.composedPath()[0];if(!i.length){if(["TEXTAREA","OPTION","INPUT","SELECT","VIDEO","IFRAME"].includes(o.nodeName)||o.closest("[contenteditable],[data-selectable],[data-draggable],[data-clickable],[data-panzoom-change],[data-panzoom-action]"))return!1;null===(n=window.getSelection())||void 0===n||n.removeAllRanges()}if("mousedown"===t.type)["A","BUTTON"].includes(o.nodeName)||t.preventDefault();else if(Math.abs(this.velocity.a)>.3)return!1;return this.target.e=this.current.e,this.target.f=this.current.f,this.stop(),this.isDragging||(this.isDragging=!0,this.addTrackingPoint(e),this.emit("touchStart",t)),!0}onPointerMove(t,i,s){if(!1===this.option("touch",t))return;if(!this.isDragging)return;if(i.length<2&&this.panOnlyZoomed&&e(this.targetScale)<=e(this.minScale))return;if(this.emit("touchMove",t),t.defaultPrevented)return;this.addTrackingPoint(i[0]);const{content:o}=this,a=d(s[0],s[1]),r=d(i[0],i[1]);let l=0,c=0;if(i.length>1){const t=o.getBoundingClientRect();l=a.clientX-t.left-.5*t.width,c=a.clientY-t.top-.5*t.height}const u=h(s[0],s[1]),p=h(i[0],i[1]);let f=u?p/u:1,g=r.clientX-a.clientX,m=r.clientY-a.clientY;this.dragOffset.x+=g,this.dragOffset.y+=m,this.dragOffset.time=Date.now()-this.dragStart.time;let v=e(this.targetScale)===e(this.minScale)&&this.option("lockAxis");if(v&&!this.lockedAxis)if("xy"===v||"y"===v||"touchmove"===t.type){if(Math.abs(this.dragOffset.x)<6&&Math.abs(this.dragOffset.y)<6)return void t.preventDefault();const e=Math.abs(180*Math.atan2(this.dragOffset.y,this.dragOffset.x)/Math.PI);this.lockedAxis=e>45&&e<135?"y":"x",this.dragOffset.x=0,this.dragOffset.y=0,g=0,m=0}else this.lockedAxis=v;if(n(t.target,this.content)&&(v="x",this.dragOffset.y=0),v&&"xy"!==v&&this.lockedAxis!==v&&e(this.targetScale)===e(this.minScale))return;t.cancelable&&t.preventDefault(),this.container.classList.add(this.cn("isDragging"));const b=this.checkBounds(g,m);this.option("rubberband")?("x"!==this.isInfinite&&(b.xDiff>0&&g<0||b.xDiff<0&&g>0)&&(g*=Math.max(0,.5-Math.abs(.75/this.contentRect.fitWidth*b.xDiff))),"y"!==this.isInfinite&&(b.yDiff>0&&m<0||b.yDiff<0&&m>0)&&(m*=Math.max(0,.5-Math.abs(.75/this.contentRect.fitHeight*b.yDiff)))):(b.xDiff&&(g=0),b.yDiff&&(m=0));const y=this.targetScale,w=this.minScale,x=this.maxScale;y<.5*w&&(f=Math.max(f,w)),y>
vendor: 13,574 bytes, line 35
351.5*x&&(f=Math.min(f,x)),"y"===this.lockedAxis&&e(y)===e(w)&&(g=0),"x"===this.lockedAxis&&e(y)===e(w)&&(m=0),this.applyChange({originX:l,originY:c,panX:g,panY:m,scale:f,friction:this.option("dragFriction"),ignoreBounds:!0})}onPointerUp(t,e,i){if(i.length)return this.dragOffset.x=0,this.dragOffset.y=0,void(this.trackingPoints=[]);this.container.classList.remove(this.cn("isDragging")),this.isDragging&&(this.addTrackingPoint(e),this.panOnlyZoomed&&this.contentRect.width-this.contentRect.fitWidth<1&&this.contentRect.height-this.contentRect.fitHeight<1&&(this.trackingPoints=[]),n(t.target,this.content)&&"y"===this.lockedAxis&&(this.trackingPoints=[]),this.emit("touchEnd",t),this.isDragging=!1,this.lockedAxis=!1,this.state!==v.Destroy&&(t.defaultPrevented||this.startDecelAnim()))}startDecelAnim(){var t;const i=this.isScaling;this.rAF&&(cancelAnimationFrame(this.rAF),this.rAF=null),this.isBouncingX=!1,this.isBouncingY=!1;for(const t of b)this.velocity[t]=0;this.target.e=this.current.e,this.target.f=this.current.f,P(this.container,"is-scaling"),P(this.container,"is-animating"),this.isTicking=!1;const{trackingPoints:n}=this,s=n[0],o=n[n.length-1];let a=0,r=0,l=0;o&&s&&(a=o.clientX-s.clientX,r=o.clientY-s.clientY,l=o.time-s.time);const c=(null===(t=window.visualViewport)||void 0===t?void 0:t.scale)||1;1!==c&&(a*=c,r*=c);let h=0,d=0,u=0,p=0,f=this.option("decelFriction");const g=this.targetScale;if(l>0){u=Math.abs(a)>3?a/(l/30):0,p=Math.abs(r)>3?r/(l/30):0;const t=this.option("maxVelocity");t&&(u=Math.max(Math.min(u,t),-1*t),p=Math.max(Math.min(p,t),-1*t))}u&&(h=u/(1/(1-f)-1)),p&&(d=p/(1/(1-f)-1)),("y"===this.option("lockAxis")||"xy"===this.option("lockAxis")&&"y"===this.lockedAxis&&e(g)===this.minScale)&&(h=u=0),("x"===this.option("lockAxis")||"xy"===this.option("lockAxis")&&"x"===this.lockedAxis&&e(g)===this.minScale)&&(d=p=0);const m=this.dragOffset.x,v=this.dragOffset.y,y=this.option("dragMinThreshold")||0;Math.abs(m)<y&&Math.abs(v)<y&&(h=d=0,u=p=0),(this.option("zoom")&&(g<this.minScale-1e-5||g>this.maxScale+1e-5)||i&&!h&&!d)&&(f=.35),this.applyChange({panX:h,panY:d,friction:f}),this.emit("decel",u,p,m,v)}onWheel(t){var e=[-t.deltaX||0,-t.deltaY||0,-t.detail||0].reduce((function(t,e){return Math.abs(e)>Math.abs(t)?e:t}));const i=Math.max(-1,Math.min(1,e));if(this.emit("wheel",t,i),this.panMode===A)return;if(t.defaultPrevented)return;const n=this.option("wheel");"pan"===n?(t.preventDefault(),this.panOnlyZoomed&&!this.canZoomOut()||this.applyChange({panX:2*-t.deltaX,panY:2*-t.deltaY,bounce:!1})):"zoom"===n&&!1!==this.option("zoom")&&this.zoomWithWheel(t)}onMouseMove(t){this.panWithMouse(t)}onKeydown(t){"Escape"===t.key&&this.toggleFS()}onResize(){this.updateMetrics(),this.checkBounds().inBounds||this.requestTick()}setTransform(){this.emit("beforeTransform");const{current:t,target:i,content:n,contentRect:s}=this,o=Object.assign({},T);for(const n of b){const s="e"==n||"f"===n?O:M;o[n]=e(t[n],s),Math.abs(i[n]-t[n])<("e"==n||"f"===n?.51:.001)&&(t[n]=i[n])}let{a:a,b:r,c:l,d:c,e:h,f:d}=o,u=`matrix(${a}, ${r}, ${l}, ${c}, ${h}, ${d})`,p=n.parentElement instanceof HTMLPictureElement?n.parentElement:n;if(this.option("transformParent")&&(p=p.parentElement||p),p.style.transform===u)return;p.style.transform=u;const{contentWidth:f,contentHeight:g}=this.calculateContentDim();s.width=f,s.height=g,this.emit("afterTransform")}updateMetrics(t=!1){var i;if(!this||this.state===v.Destroy)return;if(this.isContentLoading)return;const n=Math.max(1,(null===(i=window.visualViewport)||void 0===i?void 0:i.scale)||1),{container:s,content:o}=this,a=o instanceof HTMLImageElement,r=s.getBoundingClientRect(),l=getComputedStyle(this.container);let c=r.width*n,h=r.height*n;const d=parseFloat(l.paddingTop)+parseFloat(l.paddingBottom),u=c-(parseFloat(l.paddingLeft)+parseFloat(l.paddingRight)),p=h-d;this.containerRect={width:c,height:h,innerWidth:u,innerHeight:p};const f=parseFloat(o.dataset.width||"")||(t=>{let e=0;return e=t instanceof HTMLImageElement?t.naturalWidth:t instanceof SVGElement?t.width.baseVal.value:Math.max(t.offsetWidth,t.scrollWidth),e||0})(o),g=parseFloat(o.dataset.height||"")||(t=>{let e=0;return e=t instanceof HTMLImageElement?t.naturalHeight:t instanceof SVGElement?t.height.baseVal.value:Math.max(t.offsetHeight,t.scrollHeight),e||0})(o);let m=this.option("width",f)||R,b=this.option("height",g)||R;const y=m===R,w=b===R;"number"!=typeof m&&(m=f),"number"!=typeof b&&(b=g),y&&(m=f*(b/g)),w&&(b=g/(f/m));let x=o.parentElement instanceof HTMLPictureElement?o.parentElement:o;this.option("transformParent")&&(x=x.parentElement||x);const E=x.getAttribute("style")||"";x.style.setProperty("transform","none","important"),a&&(x.style.width="",x.style.height=""),x.offsetHeight;const S=o.getBoundingClientRect();let P=S.width*n,C=S.height*n,T=P,M=C;P=Math.min(P,m),C=Math.min(C,b),a?({width:P,height:C}=((t,e,i,n)=>{const s=i/t,o=n/e,a=Math.min(s,o);return{width:t*=a,height:e*=a}})(m,b,P,C)):(P=Math.min(P,m),C=Math.min(C,b));let O=.5*(M-C),A=.5*(T-P);this.contentRect=Object.assign(Object.assign({},this.contentRect),{top:S.top-r.top+O,bottom:r.bottom-S.bottom+O,left:S.left-r.left+A,right:r.right-S.right+A,fitWidth:P,fitHeight:C,width:P,height:C,fullWidth:m,fullHeight:b}),x.style.cssText=E,a&&(x.style.width=`${P}px`,x.style.height=`${C}px`),this.setTransform(),!0!==t&&this.emit("refresh"),this.ignoreBounds||(e(this.targetScale)<e(this.minScale)?this.zoomTo(this.minScale,{friction:0}):this.targetScale>this.maxScale?this.zoomTo(this.maxScale,{friction:0}):this.state===v.Init||this.checkBounds().inBounds||this.requestTick()),this.updateControls()}calculateBounds(){const{contentWidth:t,contentHeight:i}=this.calculateContentDim(this.target),{targetScale:n,lockedAxis:s}=this,{fitWidth:o,fitHeight:a}=this.contentRect;let r=0,l=0,c=0,h=0;const d=this.option("infinite");if(!0===d||s&&d===s)r=-1/0,c=1/0,l=-1/0,h=1/0;else{let{containerRect:s,contentRect:d}=this,u=e(o*n,O),p=e(a*n,O),{innerWidth:f,innerHeight:g}=s;if(s.width===u&&(f=s.width),s.width===p&&(g=s.height),t>f){c=.5*(t-f),r=-1*c;let e=.5*(d.right-d.left);r+=e,c+=e}if(o>f&&t<f&&(r-=.5*(o-f),c-=.5*(o-f)),i>g){h=.5*(i-g),l=-1*h;let t=.5*(d.bottom-d.top);l+=t,h+=t}a>g&&i<g&&(r-=.5*(a-g),c-=.5*(a-g))}return{x:{min:r,max:c},y:{min:l,max:h}}}getBounds(){const t=this.option("bounds");return t!==R?t:this.calculateBounds()}updateControls(){const t=this,i=t.container,{panMode:n,contentRect:s,targetScale:o,minScale:r}=t;let l=r,c=t.option("click")||!1;c&&(l=t.getNextScale(c));let h=t.canZoomIn(),d=t.canZoomOut(),u=n===L&&!!this.option("touch"),p=d&&u;if(u&&(e(o)<e(r)&&!this.panOnlyZoomed&&(p=!0),(e(s.width,1)>e(s.fitWidth,1)||e(s.height,1)>e(s.fitHeight,1))&&(p=!0)),e(s.width*o,1)<e(s.fitWidth,1)&&(p=!1),n===A&&(p=!1),a(i,this.cn("isDraggable"),p),!this.option("zoom"))return;let f=h&&e(l)>e(o),g=!f&&!p&&d&&e(l)<e(o);a(i,this.cn("canZoomIn"),f),a(i,this.cn("canZoomOut"),g);for(const t of i.querySelectorAll("[data-panzoom-action]")){let e=!1,i=!1;switch(t.dataset.panzoomAction){case"zoomIn":h?e=!0:i=!0;break;case"zoomOut":d?e=!0:i=!0;break;case"toggleZoom":case"iterateZoom":h||d?e=!0:i=!0;const n=t.querySelector("g");n&&(n.style.display=h?"":"none")}e?(t.removeAttribute("disabled"),t.removeAttribute("tabindex")):i&&(t.setAttribute("disabled",""),t.setAttribute("tabindex","-1"))}}panTo({x:t=this.target.e,y:e=this.target.f,scale:i=this.targetScale,friction:n=this.option("friction"),angle:s=0,originX:o=0,originY:a=0,flipX:r=!1,flipY:l=!1,ignoreBounds:c=!1}){this.state!==v.Destroy&&this.applyChange({panX:t-this.target.e,panY:e-this.target.f,scale:i/this.targetScale,angle:s,originX:o,originY:a,friction:n,flipX:r,flipY:l,ignoreBounds:c})}applyChange({panX:t=0,panY:i=0,scale:n=1,angle:s=0,originX:o=-this.current.e,originY:a=-this.current.f,friction:r=this.option("friction"),flipX:l=!1,flipY:c=!1,ignoreBounds:h=!1,bounce:d=this.option("bounce")}){const u=this.state;if(u===v.Destroy)return;this.rAF&&(cancelAnimationFrame(this.rAF),this.rAF=null),this.friction=r||0,this.ignoreBounds=h;const{current:p}=this,f=p.e,g=p.f,m=this.getMatrix(this.target);let y=(new DOMMatrix).translate(f,g).translate(o,a).translate(t,i);if(this.option("zoom")){if(!h){const t=this.targetScale,e=this.minScale,i=this.maxScale;t*n<e&&(n=e/t),t*n>i&&(n=i/t)}y=y.scale(n)}y=y.translate(-o,-a).translate(-f,-g).multiply(m),s&&(y=y.rotate(s)),l&&(y=y.scale(-1,1)),c&&(y=y.scale(1,-1));for(const t of b)"e"!==t&&"f"!==t&&(y[t]>this.minScale+1e-5||y[t]<this.minScale-1e-5)?this.target[t]=y[t]:this.target[t]=e(y[t],O);(this.targetScale<this.scale||Math.abs(n-1)>.1||this.panMode===A||!1===d)&&!h&&this.clampTargetBounds(),u===v.Init?this.animate():this.isResting||(this.state=v.Panning,this.requestTick())}stop(t=!1){if(this.state===v.Init||this.state===v.Destroy)return;const e=this.isTicking;this.rAF&&(cancelAnimationFrame(this.rAF),this.rAF=null),this.isBouncingX=!1,this.isBouncingY=!1;for(const e of b)this.velocity[e]=0,"current"===t?this.current[e]=this.target[e]:"target"===t&&(this.target[e]=this.current[e]);this.setTransform(),P(this.container,"is-scaling"),P(this.container,"is-animating"),this.isTicking=!1,this.state=v.Ready,e&&(this.emit("endAnimation"),this.updateControls())}requestTick(){this.isTicking||(this.emit("startAnimation"),this.updateControls(),C(this.container,"is-animating"),this.isScaling&&C(this.container,"is-scaling")),this.isTicking=!0,this.rAF||(this.rAF=requestAnimationFrame((()=>this.animate())))}panWithMouse(t,i=this.option("mouseMoveFriction")){if(this.pmme=t,this.panMode!==A||!t)return;if(e(this.targetScale)<=e(this.minScale))return;this.emit("mouseMove",t);const{container:n,containerRect:s,contentRect:o}=this,a=s.width,r=s.height,l=n.getBoundingClientRect(),c=(t.clientX||0)-l.left,h=(t.clientY||0)-l.top;let{contentWidth:d,contentHeight:u}=this.calculateContentDim(this.target);const p=this.option("mouseMoveFactor");p>1&&(d!==a&&(d*=p),u!==r&&(u*=p));let f=.5*(d-a)-c/a*100/100*(d-a);f+=.5*(o.right-o.left);let g=.5*(u-r)-h/r*100/100*(u-r);g+=.5*(o.bottom-o.top),this.applyChange({panX:f-this.target.e,panY:g-this.target.f,friction:i})}zoomWithWheel(t){if(this.state===v.Destroy||this.state===v.Init)return;const i=Date.now();if(i-this.pwt<45)return void t.preventDefault();this.pwt=i;var n=[-t.deltaX||0,-t.deltaY||0,-t.detail||0].reduce((function(t,e){return Math.abs(e)>Math.abs(t)?e:t}));const s=Math.max(-1,Math.min(1,n)),{targetScale:o,maxScale:a,minScale:r}=this;let l=o*(100+45*s)/100;e(l)<e(r)&&e(o)<=e(r)?(this.cwd+=Math.abs(s),l=r):e(l)>e(a)&&e(o)>=e(a)?(this.cwd+=Math.abs(s),l=a):(this.cwd=0,l=Math.max(Math.min(l,a),r)),this.cwd>this.option("wheelLimit")||(t.preventDefault(),e(l)!==e(o)&&this.zoomTo(l,{event:t}))}canZoomIn(){return this.option("zoom")&&(e(this.contentRect.width,1)<e(this.contentRect.fitWidth,1)||e(this.targetScale)<e(this.maxScale))}canZoomOut(){return this.option("zoom")&&e(this.targetScale)>e(this.minScale)}zoomIn(t=1.25,e){this.zoomTo(this.targetScale*t,e)}zoomOut(t=.8,e){this.zoomTo(this.targetScale*t,e)}zoomToFit(t){this.zoomTo("fit",t)}zoomToCover(t){this.zoomTo("cover",t)}zoomToFull(t){this.zoomTo("full",t)}zoomToMax(t){this.zoomTo("max",t)}toggleZoom(t){this.zoomTo(this.getNextScale("toggleZoom"),t)}toggleMax(t){this.zoomTo(this.getNextScale("toggleMax"),t)}toggleCover(t){this.zoomTo(this.getNextScale("toggleCover"),t)}iterateZoom(t){this.zoomTo("next",t)}zoomTo(t=1,{friction:e=R,originX:i=R,originY:n=R,event:s}={}){if(this.isContentLoading||this.state===v.Destroy)return;const{targetScale:o,fullScale:a,maxScale:r,coverScale:l}=this;if(this.stop(),this.panMode===A&&(s=this.pmme||s),s||i===R||n===R){const t=this.content.getBoundingClientRect(),e=this.container.getBoundingClientRect(),o=s?s.clientX:e.left+.5*e.width,a=s?s.clientY:e.top+.5*e.height;i=o-t.left-.5*t.width,n=a-t.top-.5*t.height}let c=1;"number"==typeof t?c=t:"full"===t?c=a:"cover"===t?c=l:"max"===t?c=r:"fit"===t?c=1:"next"===t&&(c=this.getNextScale("iterateZoom")),c=c/o||1,e=e===R?c>1?.15:.25:e,this.applyChange({scale:c,originX:i,originY:n,friction:e}),s&&this.panMode===A&&this.panWithMouse(s,e)}rotateCCW(){this.applyChange({angle:-90})}rotateCW(){this.applyChange({angle:90})}flipX(){this.applyChange({flipX:!0})}flipY(){this.applyChange({flipY:!0})}fitX(){this.stop("target");const{containerRect:t,contentRect:e,target:i}=this;this.applyChange({panX:.5*t.width-(e.left+.5*e.fitWidth)-i.e,panY:.5*t.height-(e.top+.5*e.fitHeight)-i.f,scale:t.width/e.fitWidth/this.targetScale,originX:0,originY:0,ignoreBounds:!0})}fitY(){this.stop("target");const{containerRect:t,contentRect:e,target:i}=this;this.applyChange({panX:.5*t.width-(e.left+.5*e.fitWidth)-i.e,panY:.5*t.innerHeight-(e.top+.5*e.fitHeight)-i.f,scale:t.height/e.fitHeight/this.targetScale,originX:0,originY:0,ignoreBounds:!0})}toggleFS(){const{container:t}=this,e=this.cn("inFullscreen"),i=this.cn("htmlHasFullscreen");t.classList.toggle(e);const n=t.classList.contains(e);n?(document.documentElement.classList.add(i),document.addEventListener("keydown",this.onKeydown,!0)):(document.documentElement.classList.remove(i),document.removeEventListener("keydown",this.onKeydown,!0)),this.updateMetrics(),this.emit(n?"enterFS":"exitFS")}getMatrix(t=this.current){const{a:e,b:i,c:n,d:s,e:o,f:a}=t;return new DOMMatrix([e,i,n,s,o,a])}reset(t){if(this.state!==v.Init&&this.state!==v.Destroy){this.stop("current");for(const t of b)this.target[t]=T[t];this.target.a=this.minScale,this.target.d=this.minScale,this.clampTargetBounds(),this.isResting||(this.friction=void 0===t?this.option("friction"):t,this.state=v.Panning,this.requestTick())}}
vendor: 6,597 bytes, line 35
35destroy(){this.stop(),this.state=v.Destroy,this.detachEvents(),this.detachObserver();const{container:t,content:e}=this,i=this.option("classes")||{};for(const e of Object.values(i))t.classList.remove(e+"");e&&(e.removeEventListener("load",this.onLoad),e.removeEventListener("error",this.onError)),this.detachPlugins()}}Object.defineProperty(D,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:w}),Object.defineProperty(D,"Plugins",{enumerable:!0,configurable:!0,writable:!0,value:{}});const F=function(t,e){let i=!0;return(...n)=>{i&&(i=!1,t(...n),setTimeout((()=>{i=!0}),e))}},j=(t,e)=>{let i=[];return t.childNodes.forEach((t=>{t.nodeType!==Node.ELEMENT_NODE||e&&!t.matches(e)||i.push(t)})),i},B={viewport:null,track:null,enabled:!0,slides:[],axis:"x",transition:"fade",preload:1,slidesPerPage:"auto",initialPage:0,friction:.12,Panzoom:{decelFriction:.12},center:!0,infinite:!0,fill:!0,dragFree:!1,adaptiveHeight:!1,direction:"ltr",classes:{container:"f-carousel",viewport:"f-carousel__viewport",track:"f-carousel__track",slide:"f-carousel__slide",isLTR:"is-ltr",isRTL:"is-rtl",isHorizontal:"is-horizontal",isVertical:"is-vertical",inTransition:"in-transition",isSelected:"is-selected"},l10n:{NEXT:"Next slide",PREV:"Previous slide",GOTO:"Go to slide #%d"}};var H;!function(t){t[t.Init=0]="Init",t[t.Ready=1]="Ready",t[t.Destroy=2]="Destroy"}(H||(H={}));const N=t=>{if("string"==typeof t||t instanceof HTMLElement)t={html:t};else{const e=t.thumb;void 0!==e&&("string"==typeof e&&(t.thumbSrc=e),e instanceof HTMLImageElement&&(t.thumbEl=e,t.thumbElSrc=e.src,t.thumbSrc=e.src),delete t.thumb)}return Object.assign({html:"",el:null,isDom:!1,class:"",customClass:"",index:-1,dim:0,gap:0,pos:0,transition:!1},t)},_=(t={})=>Object.assign({index:-1,slides:[],dim:0,pos:-1},t);class $ extends g{constructor(t,e){super(e),Object.defineProperty(this,"instance",{enumerable:!0,configurable:!0,writable:!0,value:t})}attach(){}detach(){}}const W={classes:{list:"f-carousel__dots",isDynamic:"is-dynamic",hasDots:"has-dots",dot:"f-carousel__dot",isBeforePrev:"is-before-prev",isPrev:"is-prev",isCurrent:"is-current",isNext:"is-next",isAfterNext:"is-after-next"},dotTpl:'<button type="button" data-carousel-page="%i" aria-label="{{GOTO}}"><span class="f-carousel__dot" aria-hidden="true"></span></button>',dynamicFrom:11,maxCount:1/0,minCount:2};class X extends ${constructor(){super(...arguments),Object.defineProperty(this,"isDynamic",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"list",{enumerable:!0,configurable:!0,writable:!0,value:null})}onRefresh(){this.refresh()}build(){let t=this.list;if(!t){t=document.createElement("ul"),C(t,this.cn("list")),t.setAttribute("role","tablist");const e=this.instance.container;e.appendChild(t),C(e,this.cn("hasDots")),this.list=t}return t}refresh(){var t;const e=this.instance.pages.length,i=Math.min(2,this.option("minCount")),n=Math.max(2e3,this.option("maxCount")),s=this.option("dynamicFrom");if(e<i||e>n)return void this.cleanup();const o="number"==typeof s&&e>5&&e>=s,r=!this.list||this.isDynamic!==o||this.list.children.length!==e;r&&this.cleanup();const l=this.build();if(a(l,this.cn("isDynamic"),!!o),r)for(let t=0;t<e;t++)l.append(this.createItem(t));let c,h=0;for(const e of[...l.children]){const i=h===this.instance.page;i&&(c=e),a(e,this.cn("isCurrent"),i),null===(t=e.children[0])||void 0===t||t.setAttribute("aria-selected",i?"true":"false");for(const t of["isBeforePrev","isPrev","isNext","isAfterNext"])P(e,this.cn(t));h++}if(c=c||l.firstChild,o&&c){const t=c.previousElementSibling,e=t&&t.previousElementSibling;C(t,this.cn("isPrev")),C(e,this.cn("isBeforePrev"));const i=c.nextElementSibling,n=i&&i.nextElementSibling;C(i,this.cn("isNext")),C(n,this.cn("isAfterNext"))}this.isDynamic=o}createItem(t=0){var e;const i=document.createElement("li");i.setAttribute("role","presentation");const n=s(this.instance.localize(this.option("dotTpl"),[["%d",t+1]]).replace(/\%i/g,t+""));return i.appendChild(n),null===(e=i.children[0])||void 0===e||e.setAttribute("role","tab"),i}cleanup(){this.list&&(this.list.remove(),this.list=null),this.isDynamic=!1,P(this.instance.container,this.cn("hasDots"))}attach(){this.instance.on(["refresh","change"],this.onRefresh)}detach(){this.instance.off(["refresh","change"],this.onRefresh),this.cleanup()}}Object.defineProperty(X,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:W});const q="disabled",Y="next",V="prev";class Z extends ${constructor(){super(...arguments),Object.defineProperty(this,"container",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"prev",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"next",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"isDom",{enumerable:!0,configurable:!0,writable:!0,value:!1})}onRefresh(){const t=this.instance,e=t.pages.length,i=t.page;if(e<2)return void this.cleanup();this.build();let n=this.prev,s=this.next;n&&s&&(n.removeAttribute(q),s.removeAttribute(q),t.isInfinite||(i<=0&&n.setAttribute(q,""),i>=e-1&&s.setAttribute(q,"")))}addBtn(t){var e;const i=this.instance,n=document.createElement("button");n.setAttribute("tabindex","0"),n.setAttribute("title",i.localize(`{{${t.toUpperCase()}}}`)),C(n,this.cn("button")+" "+this.cn(t===Y?"isNext":"isPrev"));const s=i.isRTL?t===Y?V:Y:t;var o;return n.innerHTML=i.localize(this.option(`${s}Tpl`)),n.dataset[`carousel${o=t,o?o.match("^[a-z]")?o.charAt(0).toUpperCase()+o.substring(1):o:""}`]="true",null===(e=this.container)||void 0===e||e.appendChild(n),n}build(){const t=this.instance.container,e=this.cn("container");let{container:i,prev:n,next:s}=this;i||(i=t.querySelector("."+e),this.isDom=!!i),i||(i=document.createElement("div"),C(i,e),t.appendChild(i)),this.container=i,s||(s=i.querySelector("[data-carousel-next]")),s||(s=this.addBtn(Y)),this.next=s,n||(n=i.querySelector("[data-carousel-prev]")),n||(n=this.addBtn(V)),this.prev=n}cleanup(){this.isDom||(this.prev&&this.prev.remove(),this.next&&this.next.remove(),this.container&&this.container.remove()),this.prev=null,this.next=null,this.container=null,this.isDom=!1}attach(){this.instance.on(["refresh","change"],this.onRefresh)}detach(){this.instance.off(["refresh","change"],this.onRefresh),this.cleanup()}}Object.defineProperty(Z,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:{classes:{container:"f-carousel__nav",button:"f-button",isNext:"is-next",isPrev:"is-prev"},nextTpl:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" tabindex="-1"><path d="M9 3l9 9-9 9"/></svg>
35',prevTpl:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" tabindex="-1"><path d="M15 3l-9 9 9 9"/></svg>'}});class U extends ${constructor(){super(...arguments),Object.defineProperty(this,"selectedIndex",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"target",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"nav",{enumerable:!0,configurable:!0,writable:!0,value:null})}addAsTargetFor(t){this.target=this.instance,this.nav=t,this.attachEvents()}addAsNavFor(t){this.nav=this.instance,this.target=t,this.attachEvents()}attachEvents(){const{nav:t,target:e}=this;t&&e&&(t.options.initialSlide=e.options.initialPage,t.state===H.Ready?this.onNavReady(t):t.on("ready",this.onNavReady),e.state===H.Ready?this.onTargetReady(e):e.on("ready",this.onTargetReady))}onNavReady(t){t.on("createSlide",this.onNavCreateSlide),t.on("Panzoom.click",this.onNavClick),t.on("Panzoom.touchEnd",this.onNavTouch),this.onTargetChange()}onTargetReady(t){t.on("change",this.onTargetChange),t.on("Panzoom.refresh",this.onTargetChange),this.onTargetChange()}onNavClick(t,e,i){this.onNavTouch(t,t.panzoom,i)}onNavTouch(t,e,i){var n,s;if(Math.abs(e.dragOffset.x)>3||Math.abs(e.dragOffset.y)>3)return;const o=i.target,{nav:a,target:r}=this;if(!a||!r||!o)return;const l=o.closest("[data-index]");if(i.stopPropagation(),i.preventDefault(),!l)return;const c=parseInt(l.dataset.index||"",10)||0,h=r.getPageForSlide(c),d=a.getPageForSlide(c);a.slideTo(d),r.slideTo(h,{friction:(null===(s=null===(n=this.nav)||void 0===n?void 0:n.plugins)||void 0===s?void 0:s.Sync.option("friction"))||0}),this.markSelectedSlide(c)}onNavCreateSlide(t,e){e.index===this.selectedIndex&&this.markSelectedSlide(e.index)}onTargetChange(){var t,e;const{target:i,nav:n}=this;if(!i||!n)return;if(n.state!==H.Ready||i.state!==H.Ready)return;const s=null===(e=null===(t=i.pages[i.page])||void 0===t?void 0:t.slides[0])||void 0===e?void 0:e.index,o=n.getPageForSlide(s);this.markSelectedSlide(s),n.slideTo(o,null===n.prevPage&&null===i.prevPage?{friction:0}:void 0)}markSelectedSlide(t){const e=this.nav;e&&e.state===H.Ready&&(this.selectedIndex=t,[...e.slides].map((e=>{e.el&&e.el.classList[e.index===t?"add":"remove"]("is-nav-selected")})))}attach(){const t=this;let e=t.options.target,i=t.options.nav;e?t.addAsNavFor(e):i&&t.addAsTargetFor(i)}detach(){const t=this,e=t.nav,i=t.target;e&&(e.off("ready",t.onNavReady),e.off("createSlide",t.onNavCreateSlide),e.off("Panzoom.click",t.onNavClick),e.off("Panzoom.touchEnd",t.onNavTouch)),t.nav=null,i&&(i.off("ready",t.onTargetReady),i.off("refresh",t.onTargetChange),i.off("change",t.onTargetChange)),t.target=null}}Object.defineProperty(U,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:{friction:.35}});const G={Navigation:Z,Dots:X,Sync:U},K="animationend",J="isSelected",Q="slide";class tt extends m{get axis(){return this.isHorizontal?"e":"f"}get isEnabled(){return this.state===H.Ready}get isInfinite(){let t=!1;const{contentDim:e,viewportDim:i,pages:n,slides:s}=this,o=s[0];return n.length>=2&&o&&e+o.dim>=i&&(t=this.option("infinite")),t}get isRTL(){return"rtl"===this.option("direction")}get isHorizontal(){return"x"===this.option("axis")}constructor(t,e={},i={}){if(super(),Object.defineProperty(this,"bp",{enumerable:!0,configurable:!0,writable:!0,value:""}),Object.defineProperty(this,"lp",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"userOptions",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"userPlugins",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"state",{enumerable:!0,configurable:!0,writable:!0,value:H.Init}),Object.defineProperty(this,"page",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"prevPage",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"container",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"viewport",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"track",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"slides",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"pages",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"panzoom",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"inTransition",{enumerable:!0,configurable:!0,writable:!0,value:new Set}),Object.defineProperty(this,"contentDim",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"viewportDim",{enumerable:!0,configurable:!0,writable:!0,value:0}),"string"==typeof t&&(t=document.querySelector(t)),!t||!S(t))throw new Error("No Element found");this.container=t,this.slideNext=F(this.slideNext.bind(this),150),this.slidePrev=F(this.slidePrev.bind(this),150),this.userOptions=e,this.userPlugins=i,queueMicrotask((()=>{this.processOptions()}))}processOptions(){var t,e;const i=p({},tt.defaults,this.userOptions);let n="";const s=i.breakpoints;if(s&&u(s))for(const[t,e]of Object.entries(s))window.matchMedia(t).matches&&u(e)&&(n+=t,p(i,e));n===this.bp&&this.state!==H.Init||(this.bp=n,this.state===H.Ready&&(i.initialSlide=(null===(e=null===(t=this.pages[this.page])||void 0===t?void 0:t.slides[0])||void 0===e?void 0:e.index)||0),this.state!==H.Init&&this.destroy(),super.setOptions(i),!1===this.option("enabled")?this.attachEvents():setTimeout((()=>{this.init()}),0))}
vendor: 19,959 bytes, line 35
35init(){this.state=H.Init,this.emit("init"),this.attachPlugins(Object.assign(Object.assign({},tt.Plugins),this.userPlugins)),this.emit("attachPlugins"),this.initLayout(),this.initSlides(),this.updateMetrics(),this.setInitialPosition(),this.initPanzoom(),this.attachEvents(),this.state=H.Ready,this.emit("ready")}initLayout(){const{container:t}=this,e=this.option("classes");C(t,this.cn("container")),a(t,e.isLTR,!this.isRTL),a(t,e.isRTL,this.isRTL),a(t,e.isVertical,!this.isHorizontal),a(t,e.isHorizontal,this.isHorizontal);let i=this.option("viewport")||t.querySelector(`.${e.viewport}`);i||(i=document.createElement("div"),C(i,e.viewport),i.append(...j(t,`.${e.slide}`)),t.prepend(i)),i.addEventListener("scroll",this.onScroll);let n=this.option("track")||t.querySelector(`.${e.track}`);n||(n=document.createElement("div"),C(n,e.track),n.append(...Array.from(i.childNodes))),n.setAttribute("aria-live","polite"),i.contains(n)||i.prepend(n),this.viewport=i,this.track=n,this.emit("initLayout")}initSlides(){const{track:t}=this;if(!t)return;const e=[...this.slides],i=[];[...j(t,`.${this.cn(Q)}`)].forEach((t=>{if(S(t)){const e=N({el:t,isDom:!0,index:this.slides.length});i.push(e)}}));for(let t of[...this.option("slides",[])||[],...e])i.push(N(t));this.slides=i;for(let t=0;t<this.slides.length;t++)this.slides[t].index=t;for(const t of i)this.emit("beforeInitSlide",t,t.index),this.emit("initSlide",t,t.index);this.emit("initSlides")}setInitialPage(){const t=this.option("initialSlide");this.page="number"==typeof t?this.getPageForSlide(t):parseInt(this.option("initialPage",0)+"",10)||0}setInitialPosition(){const{track:t,pages:e,isHorizontal:i}=this;if(!t||!e.length)return;let n=this.page;e[n]||(this.page=n=0);const s=(e[n].pos||0)*(this.isRTL&&i?1:-1),o=i?`${s}px`:"0",a=i?"0":`${s}px`;t.style.transform=`translate3d(${o}, ${a}, 0) scale(1)`,this.option("adaptiveHeight")&&this.setViewportHeight()}initPanzoom(){this.panzoom&&(this.panzoom.destroy(),this.panzoom=null);const t=this.option("Panzoom")||{};this.panzoom=new D(this.viewport,p({},{content:this.track,zoom:!1,panOnlyZoomed:!1,lockAxis:this.isHorizontal?"x":"y",infinite:this.isInfinite,click:!1,dblClick:!1,touch:t=>!(this.pages.length<2&&!t.options.infinite),bounds:()=>this.getBounds(),maxVelocity:t=>Math.abs(t.target[this.axis]-t.current[this.axis])<2*this.viewportDim?100:0},t)),this.panzoom.on("*",((t,e,...i)=>{this.emit(`Panzoom.${e}`,t,...i)})),this.panzoom.on("decel",this.onDecel),this.panzoom.on("refresh",this.onRefresh),this.panzoom.on("beforeTransform",this.onBeforeTransform),this.panzoom.on("endAnimation",this.onEndAnimation)}attachEvents(){const t=this.container;t&&(t.addEventListener("click",this.onClick,{passive:!1,capture:!1}),t.addEventListener("slideTo",this.onSlideTo)),window.addEventListener("resize",this.onResize)}createPages(){let t=[];const{contentDim:e,viewportDim:i}=this;let n=this.option("slidesPerPage");n=("auto"===n||e<=i)&&!1!==this.option("fill")?1/0:parseFloat(n+"");let s=0,o=0,a=0;for(const e of this.slides)(!t.length||o+e.dim-i>.05||a>=n)&&(t.push(_()),s=t.length-1,o=0,a=0),t[s].slides.push(e),o+=e.dim+e.gap,a++;return t}processPages(){const t=this.pages,{contentDim:i,viewportDim:n,isInfinite:s}=this,o=this.option("center"),a=this.option("fill"),r=a&&o&&i>n&&!s;if(t.forEach(((t,e)=>{var s;t.index=e,t.pos=(null===(s=t.slides[0])||void 0===s?void 0:s.pos)||0,t.dim=0;for(const[e,i]of t.slides.entries())t.dim+=i.dim,e<t.slides.length-1&&(t.dim+=i.gap);r&&t.pos+.5*t.dim<.5*n?t.pos=0:r&&t.pos+.5*t.dim>=i-.5*n?t.pos=i-n:o&&(t.pos+=-.5*(n-t.dim))})),t.forEach((t=>{a&&!s&&i>n&&(t.pos=Math.max(t.pos,0),t.pos=Math.min(t.pos,i-n)),t.pos=e(t.pos,1e3),t.dim=e(t.dim,1e3),Math.abs(t.pos)<=.1&&(t.pos=0)})),s)return t;const l=[];let c;return t.forEach((t=>{const e=Object.assign({},t);c&&e.pos===c.pos?(c.dim+=e.dim,c.slides=[...c.slides,...e.slides]):(e.index=l.length,c=e,l.push(e))})),l}getPageFromIndex(t=0){const e=this.pages.length;let i;return t=parseInt((t||0).toString())||0,i=this.isInfinite?(t%e+e)%e:Math.max(Math.min(t,e-1),0),i}getSlideMetrics(t){var i,n;const s=this.isHorizontal?"width":"height";let o=0,a=0,r=t.el;const l=!(!r||r.parentNode);if(r?o=parseFloat(r.dataset[s]||"")||0:(r=document.createElement("div"),r.style.visibility="hidden",(this.track||document.body).prepend(r)),C(r,this.cn(Q)+" "+t.class+" "+t.customClass),o)r.style[s]=`${o}px`,r.style["width"===s?"height":"width"]="";else{l&&(this.track||document.body).prepend(r),o=r.getBoundingClientRect()[s]*Math.max(1,(null===(i=window.visualViewport)||void 0===i?void 0:i.scale)||1);let t=r[this.isHorizontal?"offsetWidth":"offsetHeight"];t-1>o&&(o=t)}const c=getComputedStyle(r);return"content-box"===c.boxSizing&&(this.isHorizontal?(o+=parseFloat(c.paddingLeft)||0,o+=parseFloat(c.paddingRight)||0):(o+=parseFloat(c.paddingTop)||0,o+=parseFloat(c.paddingBottom)||0)),a=parseFloat(c[this.isHorizontal?"marginRight":"marginBottom"])||0,l?null===(n=r.parentElement)||void 0===n||n.removeChild(r):t.el||r.remove(),{dim:e(o,1e3),gap:e(a,1e3)}}getBounds(){const{isInfinite:t,isRTL:e,isHorizontal:i,pages:n}=this;let s={min:0,max:0};if(t)s={min:-1/0,max:1/0};else if(n.length){const t=n[0].pos,o=n[n.length-1].pos;s=e&&i?{min:t,max:o}:{min:-1*o,max:-1*t}}return{x:i?s:{min:0,max:0},y:i?{min:0,max:0}:s}}repositionSlides(){let t,{isHorizontal:i,isRTL:n,isInfinite:s,viewport:o,viewportDim:a,contentDim:r,page:l,pages:c,slides:h,panzoom:d}=this,u=0,p=0,f=0,g=0;d?g=-1*d.current[this.axis]:c[l]&&(g=c[l].pos||0),t=i?n?"right":"left":"top",n&&i&&(g*=-1);for(const i of h){const n=i.el;n?("top"===t?(n.style.right="",n.style.left=""):n.style.top="",i.index!==u?n.style[t]=0===p?"":`${e(p,1e3)}px`:n.style[t]="",f+=i.dim+i.gap,u++):p+=i.dim+i.gap}if(s&&f&&o){let n=getComputedStyle(o),s="padding",l=i?"Right":"Bottom",c=parseFloat(n[s+(i?"Left":"Top")]);g-=c,a+=c,a+=parseFloat(n[s+l]);for(const i of h)i.el&&(e(i.pos)<e(a)&&e(i.pos+i.dim+i.gap)<e(g)&&e(g)>e(r-a)&&(i.el.style[t]=`${e(p+f,1e3)}px`),e(i.pos+i.gap)>=e(r-a)&&e(i.pos)>e(g+a)&&e(g)<e(a)&&(i.el.style[t]=`-${e(f,1e3)}px`))}let m,v,b=[...this.inTransition];if(b.length>1&&(m=c[b[0]],v=c[b[1]]),m&&v){let i=0;for(const n of h)n.el?this.inTransition.has(n.index)&&m.slides.indexOf(n)<0&&(n.el.style[t]=`${e(i+(m.pos-v.pos),1e3)}px`):i+=n.dim+n.gap}}createSlideEl(t){const{track:e,slides:i}=this;if(!e||!t)return;if(t.el&&t.el.parentNode)return;const n=t.el||document.createElement("div");C(n,this.cn(Q)),C(n,t.class),C(n,t.customClass);const s=t.html;s&&(s instanceof HTMLElement?n.appendChild(s):n.innerHTML=t.html+"");const o=[];i.forEach(((t,e)=>{t.el&&o.push(e)}));const a=t.index;let r=null;if(o.length){r=i[o.reduce(((t,e)=>Math.abs(e-a)<Math.abs(t-a)?e:t))]}const l=r&&r.el&&r.el.parentNode?r.index<t.index?r.el.nextSibling:r.el:null;e.insertBefore(n,e.contains(l)?l:null),t.el=n,this.emit("createSlide",t)}removeSlideEl(t,e=!1){const i=null==t?void 0:t.el;if(!i||!i.parentNode)return;const n=this.cn(J);if(i.classList.contains(n)&&(P(i,n),this.emit("unselectSlide",t)),t.isDom&&!e)return i.removeAttribute("aria-hidden"),i.removeAttribute("data-index"),void(i.style.left="");this.emit("removeSlide",t);const s=new CustomEvent(K);i.dispatchEvent(s),t.el&&(t.el.remove(),t.el=null)}transitionTo(t=0,e=this.option("transition")){var i,n,s,o;if(!e)return!1;const a=this.page,{pages:r,panzoom:l}=this;t=parseInt((t||0).toString())||0;const c=this.getPageFromIndex(t);if(!l||!r[c]||r.length<2||Math.abs(((null===(n=null===(i=r[a])||void 0===i?void 0:i.slides[0])||void 0===n?void 0:n.dim)||0)-this.viewportDim)>1)return!1;let h=t>a?1:-1;this.isInfinite&&(0===a&&t===r.length-1&&(h=-1),a===r.length-1&&0===t&&(h=1));const d=r[c].pos*(this.isRTL?1:-1);if(a===c&&Math.abs(d-l.target[this.axis])<1)return!1;this.clearTransitions();const u=l.isResting;C(this.container,this.cn("inTransition"));const p=(null===(s=r[a])||void 0===s?void 0:s.slides[0])||null,f=(null===(o=r[c])||void 0===o?void 0:o.slides[0])||null;this.inTransition.add(f.index),this.createSlideEl(f);let g=p.el,m=f.el;u||e===Q||(e="fadeFast",g=null);const v=this.isRTL?"next":"prev",b=this.isRTL?"prev":"next";return g&&(this.inTransition.add(p.index),p.transition=e,g.addEventListener(K,this.onAnimationEnd),g.classList.add(`f-${e}Out`,`to-${h>0?b:v}`)),m&&(f.transition=e,m.addEventListener(K,this.onAnimationEnd),m.classList.add(`f-${e}In`,`from-${h>0?v:b}`)),l.current[this.axis]=d,l.target[this.axis]=d,l.requestTick(),this.onChange(c),!0}manageSlideVisiblity(){const t=new Set,e=new Set,i=this.getVisibleSlides(parseFloat(this.option("preload",0)+"")||0);for(const n of this.slides)i.has(n)?t.add(n):e.add(n);for(const e of this.inTransition)t.add(this.slides[e]);for(const e of t)this.createSlideEl(e),this.lazyLoadSlide(e);for(const i of e)t.has(i)||this.removeSlideEl(i);this.markSelectedSlides(),this.repositionSlides()}markSelectedSlides(){if(!this.pages[this.page]||!this.pages[this.page].slides)return;const t="aria-hidden";let e=this.cn(J);if(e)for(const i of this.slides){const n=i.el;n&&(n.dataset.index=`${i.index}`,n.classList.contains("f-thumbs__slide")?this.getVisibleSlides(0).has(i)?n.removeAttribute(t):n.setAttribute(t,"true"):this.pages[this.page].slides.includes(i)?(n.classList.contains(e)||(C(n,e),this.emit("selectSlide",i)),n.removeAttribute(t)):(n.classList.contains(e)&&(P(n,e),this.emit("unselectSlide",i)),n.setAttribute(t,"true")))}}flipInfiniteTrack(){const{axis:t,isHorizontal:e,isInfinite:i,isRTL:n,viewportDim:s,contentDim:o}=this,a=this.panzoom;if(!a||!i)return;let r=a.current[t],l=a.target[t]-r,c=0,h=.5*s;n&&e?(r<-h&&(c=-1,r+=o),r>o-h&&(c=1,r-=o)):(r>h&&(c=1,r-=o),r<-o+h&&(c=-1,r+=o)),c&&(a.current[t]=r,a.target[t]=r+l)}lazyLoadImg(t,e){const i=this,n="f-fadeIn",o="is-preloading";let a=!1,r=null;const l=()=>{a||(a=!0,r&&(r.remove(),r=null),P(e,o),e.complete&&(C(e,n),setTimeout((()=>{P(e,n)}),350)),this.option("adaptiveHeight")&&t.el&&this.pages[this.page].slides.indexOf(t)>-1&&(i.updateMetrics(),i.setViewportHeight()),this.emit("load",t))};C(e,o),e.src=e.dataset.lazySrcset||e.dataset.lazySrc||"",delete e.dataset.lazySrc,delete e.dataset.lazySrcset,e.addEventListener("error",(()=>{l()})),e.addEventListener("load",(()=>{l()})),setTimeout((()=>{const i=e.parentNode;i&&t.el&&(e.complete?l():a||(r=s(E),i.insertBefore(r,e)))}),300)}lazyLoadSlide(t){const e=t&&t.el;if(!e)return;const i=new Set;let n=Array.from(e.querySelectorAll("[data-lazy-src],[data-lazy-srcset]"));e.dataset.lazySrc&&n.push(e),n.map((t=>{t instanceof HTMLImageElement?i.add(t):t instanceof HTMLElement&&t.dataset.lazySrc&&(t.style.backgroundImage=`url('${t.dataset.lazySrc}')`,delete t.dataset.lazySrc)}));for(const e of i)this.lazyLoadImg(t,e)}onAnimationEnd(t){var e;const i=t.target,n=i?parseInt(i.dataset.index||"",10)||0:-1,s=this.slides[n],o=t.animationName;if(!i||!s||!o)return;const a=!!this.inTransition.has(n)&&s.transition;a&&o.substring(0,a.length+2)===`f-${a}`&&this.inTransition.delete(n),this.inTransition.size||this.clearTransitions(),n===this.page&&(null===(e=this.panzoom)||void 0===e?void 0:e.isResting)&&this.emit("settle")}onDecel(t,e=0,i=0,n=0,s=0){if(this.option("dragFree"))return void this.setPageFromPosition();const{isRTL:o,isHorizontal:a,axis:r,pages:l}=this,c=l.length,h=Math.abs(Math.atan2(i,e)/(Math.PI/180));let d=0;if(d=h>45&&h<135?a?0:i:a?e:0,!c)return;let u=this.page,p=o&&a?1:-1;const f=t.current[r]*p;let{pageIndex:g}=this.getPageFromPosition(f);Math.abs(d)>5?(l[u].dim<document.documentElement["client"+(this.isHorizontal?"Width":"Height")]-1&&(u=g),u=o&&a?d<0?u-1:u+1:d<0?u+1:u-1):u=0===n&&0===s?u:g,this.slideTo(u,{transition:!1,friction:t.option("decelFriction")})}onClick(t){const e=t.target,i=e&&S(e)?e.dataset:null;let n,s;i&&(void 0!==i.carouselPage?(s="slideTo",n=i.carouselPage):void 0!==i.carouselNext?s="slideNext":void 0!==i.carouselPrev&&(s="slidePrev")),s?(t.preventDefault(),t.stopPropagation(),e&&!e.hasAttribute("disabled")&&this[s](n)):this.emit("click",t)}onSlideTo(t){const e=t.detail||0;this.slideTo(this.getPageForSlide(e),{friction:0})}onChange(t,e=0){const i=this.page;this.prevPage=i,this.page=t,this.option("adaptiveHeight")&&this.setViewportHeight(),t!==i&&(this.markSelectedSlides(),this.emit("change",t,i,e))}onRefresh(){let t=this.contentDim,e=this.viewportDim;this.updateMetrics(),this.contentDim===t&&this.viewportDim===e||this.slideTo(this.page,{friction:0,transition:!1})}onScroll(){var t;null===(t=this.viewport)||void 0===t||t.scroll(0,0)}onResize(){this.option("breakpoints")&&this.processOptions()}onBeforeTransform(t){this.lp!==t.current[this.axis]&&(this.flipInfiniteTrack(),this.manageSlideVisiblity()),this.lp=t.current.e}onEndAnimation(){this.inTransition.size||this.emit("settle")}reInit(t=null,e=null){this.destroy(),this.state=H.Init,this.prevPage=null,this.userOptions=t||this.userOptions,this.userPlugins=e||this.userPlugins,this.processOptions()}slideTo(t=0,{friction:e=this.option("friction"),transition:i=this.option("transition")}={}){if(this.state===H.Destroy)return;t=parseInt((t||0).toString())||0;const n=this.getPageFromIndex(t),{axis:s,isHorizontal:o,isRTL:a,pages:r,panzoom:l}=this,c=r.length,h=a&&o?1:-1;if(!l||!c)return;if(this.page!==n){const e=new Event("beforeChange",{bubbles:!0,cancelable:!0});if(this.emit("beforeChange",e,t),e.defaultPrevented)return}if(this.transitionTo(t,i))return;let d=r[n].pos;if(this.isInfinite){const e=this.contentDim,i=l.target[s]*h;if(2===c)d+=e*Math.floor(parseFloat(t+"")/2);else{d=[d,d-e,d+e].reduce((function(t,e){return Math.abs(e-i)<Math.abs(t-i)?e:t}))}}d*=h,Math.abs(l.target[s]-d)<1||(l.panTo({x:o?d:0,y:o?0:d,friction:e}),this.onChange(n))}slideToClosest(t){if(this.panzoom){const{pageIndex:e}=this.getPageFromPosition();this.slideTo(e,t)}}slideNext(){this.slideTo(this.page+1)}slidePrev(){this.slideTo(this.page-1)}clearTransitions(){this.inTransition.clear(),P(this.container,this.cn("inTransition"));const t=["to-prev","to-next","from-prev","from-next"];for(const e of this.slides){const i=e.el;if(i){i.removeEventListener(K,this.onAnimationEnd),i.classList.remove(...t);const n=e.transition;n&&i.classList.remove(`f-${n}Out`,`f-${n}In`)}}this.manageSlideVisiblity()}addSlide(t,e){var i,n,s,o;const a=this.panzoom,r=(null===(i=this.pages[this.page])||void 0===i?void 0:i.pos)||0,l=(null===(n=this.pages[this.page])||void 0===n?void 0:n.dim)||0,c=this.contentDim<this.viewportDim;let h=Array.isArray(e)?e:[e];const d=[];for(const t of h)d.push(N(t));this.slides.splice(t,0,...d);for(let t=0;t<this.slides.length;t++)this.slides[t].index=t;for(const t of d)this.emit("beforeInitSlide",t,t.index);if(this.page>=t&&(this.page+=d.length),this.updateMetrics(),a){const e=(null===(s=this.pages[this.page])||void 0===s?void 0:s.pos)||0,i=(null===(o=this.pages[this.page])||void 0===o?void 0:o.dim)||0,n=this.pages.length||1,h=this.isRTL?l-i:i-l,d=this.isRTL?r-e:e-r;c&&1===n?(t<=this.page&&(a.current[this.axis]-=h,a.target[this.axis]-=h),a.panTo({[this.isHorizontal?"x":"y"]:-1*e})):d&&t<=this.page&&(a.target[this.axis]-=d,a.current[this.axis]-=d,a.requestTick())}for(const t of d)this.emit("initSlide",t,t.index)}prependSlide(t){this.addSlide(0,t)}appendSlide(t){this.addSlide(this.slides.length,t)}removeSlide(t){const e=this.slides.length;t=(t%e+e)%e;const i=this.slides[t];if(i){this.removeSlideEl(i,!0),this.slides.splice(t,1);for(let t=0;t<this.slides.length;t++)this.slides[t].index=t;this.updateMetrics(),this.slideTo(this.page,{friction:0,transition:!1}),this.emit("destroySlide",i)}}updateMetrics(){const{panzoom:t,viewport:i,track:n,slides:s,isHorizontal:o,isInfinite:a}=this;if(!n)return;const r=o?"width":"height",l=o?"offsetWidth":"offsetHeight";if(i){let t=Math.max(i[l],e(i.getBoundingClientRect()[r],1e3)),n=getComputedStyle(i),s="padding",a=o?"Right":"Bottom";t-=parseFloat(n[s+(o?"Left":"Top")])+parseFloat(n[s+a]),this.viewportDim=t}let c,h=0;for(const[t,i]of s.entries()){let n=0,o=0;!i.el&&c?(n=c.dim,o=c.gap):(({dim:n,gap:o}=this.getSlideMetrics(i)),c=i),n=e(n,1e3),o=e(o,1e3),i.dim=n,i.gap=o,i.pos=h,h+=n,(a||t<s.length-1)&&(h+=o)}h=e(h,1e3),this.contentDim=h,t&&(t.contentRect[r]=h,t.contentRect[o?"fullWidth":"fullHeight"]=h),this.pages=this.createPages(),this.pages=this.processPages(),this.state===H.Init&&this.setInitialPage(),this.page=Math.max(0,Math.min(this.page,this.pages.length-1)),this.manageSlideVisiblity(),this.emit("refresh")}getProgress(t,i=!1,n=!1){void 0===t&&(t=this.page);const s=this,o=s.panzoom,a=s.contentDim,r=s.pages[t]||0;if(!r||!o)return t>this.page?-1:1;let l=-1*o.current.e,c=e((l-r.pos)/(1*r.dim),1e3),h=c,d=c;this.isInfinite&&!0!==n&&(h=e((l-r.pos+a)/(1*r.dim),1e3),d=e((l-r.pos-a)/(1*r.dim),1e3));let u=[c,h,d].reduce((function(t,e){return Math.abs(e)<Math.abs(t)?e:t}));return i?u:u>1?1:u<-1?-1:u}setViewportHeight(){const{page:t,pages:e,viewport:i,isHorizontal:n}=this;if(!i||!e[t])return;let s=0;n&&this.track&&(this.track.style.height="auto",e[t].slides.forEach((t=>{t.el&&(s=Math.max(s,t.el.offsetHeight))}))),i.style.height=s?`${s}px`:""}getPageForSlide(t){for(const e of this.pages)for(const i of e.slides)if(i.index===t)return e.index;return-1}getVisibleSlides(t=0){var e;const i=new Set;let{panzoom:n,contentDim:s,viewportDim:o,pages:a,page:r}=this;if(o){s=s+(null===(e=this.slides[this.slides.length-1])||void 0===e?void 0:e.gap)||0;let l=0;l=n&&n.state!==v.Init&&n.state!==v.Destroy?-1*n.current[this.axis]:a[r]&&a[r].pos||0,this.isInfinite&&(l-=Math.floor(l/s)*s),this.isRTL&&this.isHorizontal&&(l*=-1);const c=l-o*t,h=l+o*(t+1),d=this.isInfinite?[-1,0,1]:[0];for(const t of this.slides)for(const e of d){const n=t.pos+e*s,o=n+t.dim+t.gap;n<h&&o>c&&i.add(t)}}return i}getPageFromPosition(t){const{viewportDim:e,contentDim:i,slides:n,pages:s,panzoom:o}=this,a=s.length,r=n.length,l=n[0],c=n[r-1],h=this.option("center");let d=0,u=0,p=0,f=void 0===t?-1*((null==o?void 0:o.target[this.axis])||0):t;h&&(f+=.5*e),this.isInfinite?(f<l.pos-.5*c.gap&&(f-=i,p=-1),f>c.pos+c.dim+.5*c.gap&&(f-=i,p=1)):f=Math.max(l.pos||0,Math.min(f,c.pos));let g=c,m=n.find((t=>{const e=t.pos-.5*g.gap,i=t.pos+t.dim+.5*t.gap;return g=t,f>=e&&f<i}));return m||(m=c),u=this.getPageForSlide(m.index),d=u+p*a,{page:d,pageIndex:u}}setPageFromPosition(){const{pageIndex:t}=this.getPageFromPosition();this.onChange(t)}destroy(){if([H.Destroy].includes(this.state))return;this.state=H.Destroy;const{container:t,viewport:e,track:i,slides:n,panzoom:s}=this,o=this.option("classes");t.removeEventListener("click",this.onClick,{passive:!1,capture:!1}),t.removeEventListener("slideTo",this.onSlideTo),window.removeEventListener("resize",this.onResize),s&&(s.destroy(),this.panzoom=null),n&&n.forEach((t=>{this.removeSlideEl(t)})),this.detachPlugins(),e&&(e.removeEventListener("scroll",this.onScroll),e.offsetParent&&i&&i.offsetParent&&e.replaceWith(...i.childNodes));for(const[e,i]of Object.entries(o))"container"!==e&&i&&t.classList.remove(i);this.track=null,this.viewport=null,this.page=0,this.slides=[];const a=this.events.get("ready");this.events=new Map,a&&this.events.set("ready",a)}}Object.defineProperty(tt,"Panzoom",{enumerable:!0,configurable:!0,writable:!0,value:D}),Object.defineProperty(tt,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:B}),Object.defineProperty(tt,"Plugins",{enumerable:!0,configurable:!0,writable:!0,value:G});const et=function(t){if(!S(t))return 0;const e=window.scrollY,i=window.innerHeight,n=e+i,s=t.getBoundingClientRect(),o=s.y+e,a=s.height,r=o+a;if(e>r||n<o)return 0;if(e<o&&n>r)return 100;if(o<e&&r>n)return 100;let l=a;o<e&&(l-=e-o),r>n&&(l-=r-n);const c=l/i*100;return Math.round(c)},it=!("undefined"==typeof window||!window.document||!window.document.createElement);let nt;const st=["a[href]","area[href]",'input:not([disabled]):not([type="hidden"]):not([aria-hidden])',"select:not([disabled]):not([aria-hidden])","textarea:not([disabled]):not([aria-hidden])","button:not([disabled]):not([aria-hidden]):not(.fancybox-focus-guard)","iframe","object","embed","video","audio","[contenteditable]",'[tabindex]:not
35([tabindex^="-"]):not([disabled]):not([aria-hidden])'].join(","),ot=t=>{if(t&&it){void 0===nt&&document.createElement("div").focus({get preventScroll(){return nt=!0,!1}});try{if(nt)t.focus({preventScroll:!0});else{const e=window.scrollY||document.body.scrollTop,i=window.scrollX||document.body.scrollLeft;t.focus(),document.body.scrollTo({top:e,left:i,behavior:"auto"})}}catch(t){}}},at=()=>{const t=document;let e,i="",n="",s="";return t.fullscreenEnabled?(i="requestFullscreen",n="exitFullscreen",s="fullscreenElement"):t.webkitFullscreenEnabled&&(i="webkitRequestFullscreen",n="webkitExitFullscreen",s="webkitFullscreenElement"),i&&(e={request:function(e=t.documentElement){return"webkitRequestFullscreen"===i?e[i](Element.ALLOW_KEYBOARD_INPUT):e[i]()},exit:function(){return t[s]&&t[n]()},isFullscreen:function(){return t[s]}}),e},rt={animated:!0,autoFocus:!0,backdropClick:"close",Carousel:{classes:{container:"fancybox__carousel",viewport:"fancybox__viewport",track:"fancybox__track",slide:"fancybox__slide"}},closeButton:"auto",closeExisting:!1,commonCaption:!1,compact:()=>window.matchMedia("(max-width: 578px), (max-height: 578px)").matches,contentClick:"toggleZoom",contentDblClick:!1,defaultType:"image",defaultDisplay:"flex",dragToClose:!0,Fullscreen:{autoStart:!1},groupAll:!1,groupAttr:"data-fancybox",hideClass:"f-fadeOut",hideScrollbar:!0,idle:3500,keyboard:{Escape:"close",Delete:"close",Backspace:"close",PageUp:"next",PageDown:"prev",ArrowUp:"prev",ArrowDown:"next",ArrowRight:"next",ArrowLeft:"prev"},l10n:Object.assign(Object.assign({},y),{CLOSE:"Close",NEXT:"Next",PREV:"Previous",MODAL:"You can close this modal content with the ESC key",ERROR:"Something Went Wrong, Please Try Again Later",IMAGE_ERROR:"Image Not Found",ELEMENT_NOT_FOUND:"HTML Element Not Found",AJAX_NOT_FOUND:"Error Loading AJAX : Not Found",AJAX_FORBIDDEN:"Error Loading AJAX : Forbidden",IFRAME_ERROR:"Error Loading Page",TOGGLE_ZOOM:"Toggle zoom level",TOGGLE_THUMBS:"Toggle thumbnails",TOGGLE_SLIDESHOW:"Toggle slideshow",TOGGLE_FULLSCREEN:"Toggle full-screen mode",DOWNLOAD:"Download"}),parentEl:null,placeFocusBack:!0,showClass:"f-zoomInUp",startIndex:0,tpl:{closeButton:'<button data-fancybox-close class="f-button is-close-btn" title="{{CLOSE}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" tabindex="-1"><path d="M20 20L4 4m16 0L4 20"/></svg></button>',main:'<div class="fancybox__container" role="dialog" aria-modal="true" aria-label="{{MODAL}}" tabindex="-1">\n <div class="fancybox__backdrop"></div>\n <div class="fancybox__carousel"></div>\n <div class="fancybox__footer"></div>\n </div>'},trapFocus:!0,wheel:"zoom"};var lt,ct;!function(t){t[t.Init=0]="Init",t[t.Ready=1]="Ready",t[t.Closing=2]="Closing",t[t.CustomClosing=3]="CustomClosing",t[t.Destroy=4]="Destroy"}(lt||(lt={})),function(t){t[t.Loading=0]="Loading",t[t.Opening=1]="Opening",t[t.Ready=2]="Ready",t[t.Closing=3]="Closing"}(ct||(ct={}));let ht="",dt=!1,ut=!1,pt=null;const ft=()=>{let t="",e="";const i=Ae.getInstance();if(i){const n=i.carousel,s=i.getSlide();if(n&&s){let o=s.slug||void 0,a=s.triggerEl||void 0;e=o||(i.option("slug")||""),!e&&a&&a.dataset&&(e=a.dataset.fancybox||""),e&&"true"!==e&&(t="#"+e+(!o&&n.slides.length>1?"-"+(s.index+1):""))}}return{hash:t,slug:e,index:1}},gt=()=>{const t=new URL(document.URL).hash,e=t.slice(1).split("-"),i=e[e.length-1],n=i&&/^\+?\d+$/.test(i)&&parseInt(e.pop()||"1",10)||1;return{hash:t,slug:e.join("-"),index:n}},mt=()=>{const{slug:t,index:e}=gt();if(!t)return;let i=document.querySelector(`[data-slug="${t}"]`);if(i&&i.dispatchEvent(new CustomEvent("click",{bubbles:!0,cancelable:!0})),Ae.getInstance())return;const n=document.querySelectorAll(`[data-fancybox="${t}"]`);n.length&&(i=n[e-1],i&&i.dispatchEvent(new CustomEvent("click",{bubbles:!0,cancelable:!0})))},vt=()=>{if(!1===Ae.defaults.Hash)return;const t=Ae.getInstance();if(!1===(null==t?void 0:t.options.Hash))return;const{slug:e,index:i}=gt(),{slug:n}=ft();t&&(e===n?t.jumpTo(i-1):(dt=!0,t.close())),mt()},bt=()=>{pt&&clearTimeout(pt),queueMicrotask((()=>{vt()}))},yt=()=>{window.addEventListener("hashchange",bt,!1),setTimeout((()=>{vt()}),500)};it&&(/complete|interactive|loaded/.test(document.readyState)?yt():document.addEventListener("DOMContentLoaded",yt));const wt="is-zooming-in";class xt extends ${onCreateSlide(t,e,i){const n=this.instance.optionFor(i,"src")||"";i.el&&"image"===i.type&&"string"==typeof n&&this.setImage(i,n)}onRemoveSlide(t,e,i){i.panzoom&&i.panzoom.destroy(),i.panzoom=void 0,i.imageEl=void 0}onChange(t,e,i,n){P(this.instance.container,wt);for(const t of e.slides){const e=t.panzoom;e&&t.index!==i&&e.reset(.35)}}onClose(){var t;const e=this.instance,i=e.container,n=e.getSlide();if(!i||!i.parentElement||!n)return;const{el:s,contentEl:o,panzoom:a,thumbElSrc:r}=n;if(!s||!r||!o||!a||a.isContentLoading||a.state===v.Init||a.state===v.Destroy)return;a.updateMetrics();let l=this.getZoomInfo(n);if(!l)return;this.instance.state=lt.CustomClosing,i.classList.remove(wt),i.classList.add("is-zooming-out"),o.style.backgroundImage=`url('${r}')`;const c=i.getBoundingClientRect();
vendor: 4,252 bytes, line 35
351===((null===(t=window.visualViewport)||void 0===t?void 0:t.scale)||1)&&Object.assign(i.style,{position:"absolute",top:`${i.offsetTop+window.scrollY}px`,left:`${i.offsetLeft+window.scrollX}px`,bottom:"auto",right:"auto",width:`${c.width}px`,height:`${c.height}px`,overflow:"hidden"});const{x:h,y:d,scale:u,opacity:p}=l;if(p){const t=((t,e,i,n)=>{const s=e-t,o=n-i;return e=>i+((e-t)/s*o||0)})(a.scale,u,1,0);a.on("afterTransform",(()=>{o.style.opacity=t(a.scale)+""}))}a.on("endAnimation",(()=>{e.destroy()})),a.target.a=u,a.target.b=0,a.target.c=0,a.target.d=u,a.panTo({x:h,y:d,scale:u,friction:p?.2:.33,ignoreBounds:!0}),a.isResting&&e.destroy()}setImage(t,e){const i=this.instance;t.src=e,this.process(t,e).then((e=>{const{contentEl:n,imageEl:s,thumbElSrc:o,el:a}=t;if(i.isClosing()||!n||!s)return;n.offsetHeight;const r=!!i.isOpeningSlide(t)&&this.getZoomInfo(t);if(this.option("protected")&&a){a.addEventListener("contextmenu",(t=>{t.preventDefault()}));const t=document.createElement("div");C(t,"fancybox-protected"),n.appendChild(t)}if(o&&r){const s=e.contentRect,a=Math.max(s.fullWidth,s.fullHeight);let c=null;!r.opacity&&a>1200&&(c=document.createElement("img"),C(c,"fancybox-ghost"),c.src=o,n.appendChild(c));const h=()=>{c&&(C(c,"f-fadeFastOut"),setTimeout((()=>{c&&(c.remove(),c=null)}),200))};(l=o,new Promise(((t,e)=>{const i=new Image;i.onload=t,i.onerror=e,i.src=l}))).then((()=>{i.hideLoading(t),t.state=ct.Opening,this.instance.emit("reveal",t),this.zoomIn(t).then((()=>{h(),this.instance.done(t)}),(()=>{})),c&&setTimeout((()=>{h()}),a>2500?800:200)}),(()=>{i.hideLoading(t),i.revealContent(t)}))}else{const n=this.optionFor(t,"initialSize"),s=this.optionFor(t,"zoom"),o={event:i.prevMouseMoveEvent||i.options.event,friction:s?.12:0};let a=i.optionFor(t,"showClass")||void 0,r=!0;i.isOpeningSlide(t)&&("full"===n?e.zoomToFull(o):"cover"===n?e.zoomToCover(o):"max"===n?e.zoomToMax(o):r=!1,e.stop("current")),r&&a&&(a=e.isDragging?"f-fadeIn":""),i.hideLoading(t),i.revealContent(t,a)}var l}),(()=>{i.setError(t,"{{IMAGE_ERROR}}")}))}process(t,e){return new Promise(((i,n)=>{var o;const a=this.instance,r=t.el;a.clearContent(t),a.showLoading(t);let l=this.optionFor(t,"content");if("string"==typeof l&&(l=s(l)),!l||!S(l)){if(l=document.createElement("img"),l instanceof HTMLImageElement){let i="",n=t.caption;i="string"==typeof n&&n?n.replace(/<[^>]+>/gi,"").substring(0,1e3):`Image ${t.index+1} of ${(null===(o=a.carousel)||void 0===o?void 0:o.pages.length)||1}`,l.src=e||"",l.alt=i,l.draggable=!1,t.srcset&&l.setAttribute("srcset",t.srcset),this.instance.isOpeningSlide(t)&&(l.fetchPriority="high")}t.sizes&&l.setAttribute("sizes",t.sizes)}C(l,"fancybox-image"),t.imageEl=l,a.setContent(t,l,!1);t.panzoom=new D(r,p({transformParent:!0},this.option("Panzoom")||{},{content:l,width:(e,i)=>a.optionFor(t,"width","auto",i)||"auto",height:(e,i)=>a.optionFor(t,"height","auto",i)||"auto",wheel:()=>{const t=a.option("wheel");return("zoom"===t||"pan"==t)&&t},click:(e,i)=>{var n,s;if(a.isCompact||a.isClosing())return!1;if(t.index!==(null===(n=a.getSlide())||void 0===n?void 0:n.index))return!1;if(i){const t=i.composedPath()[0];if(["A","BUTTON","TEXTAREA","OPTION","INPUT","SELECT","VIDEO"].includes(t.nodeName))return!1}let o=!i||i.target&&(null===(s=t.contentEl)||void 0===s?void 0:s.contains(i.target));return a.option(o?"contentClick":"backdropClick")||!1},dblClick:()=>a.isCompact?"toggleZoom":a.option("contentDblClick")||!1,spinner:!1,panOnlyZoomed:!0,wheelLimit:1/0,on:{ready:t=>{i(t)},error:()=>{n()},destroy:()=>{n()}}}))}))}zoomIn(t){return new Promise(((e,i)=>{const n=this.instance,s=n.container,{panzoom:o,contentEl:a,el:r}=t;o&&o.updateMetrics();const l=this.getZoomInfo(t);if(!(l&&r&&a&&o&&s))return void i();const{x:c,y:h,scale:d,opacity:u}=l,p=()=>{t.state!==ct.Closing&&(u&&(a.style.opacity=Math.max(Math.min(1,1-(1-o.scale)/(1-d)),0)+""),o.scale>=1&&o.scale>o.targetScale-.1&&e(o))},f=t=>{(t.scale<.99||t.scale>1.01)&&!t.isDragging||(P(s,wt),a.style.opacity="",t.off("endAnimation",f),t.off("touchStart",f),t.off("afterTransform",p),e(t))};o.on("endAnimation",f),o.on("touchStart",f),o.on("afterTransform",p),o.on(["error","destroy"],(()=>{i()})),o.panTo({x:c,y:h,scale:d,friction:0,ignoreBounds:!0}),o.stop("current");
vendor: 12,286 bytes, line 35
35const g={event:"mousemove"===o.panMode?n.prevMouseMoveEvent||n.options.event:void 0},m=this.optionFor(t,"initialSize");C(s,wt),n.hideLoading(t),"full"===m?o.zoomToFull(g):"cover"===m?o.zoomToCover(g):"max"===m?o.zoomToMax(g):o.reset(.172)}))}getZoomInfo(t){const{el:e,imageEl:i,thumbEl:n,panzoom:s}=t,o=this.instance,a=o.container;if(!e||!i||!n||!s||et(n)<3||!this.optionFor(t,"zoom")||!a||o.state===lt.Destroy)return!1;if("0"===getComputedStyle(a).getPropertyValue("--f-images-zoom"))return!1;const r=window.visualViewport||null;if(1!==(r?r.scale:1))return!1;let{top:l,left:c,width:h,height:d}=n.getBoundingClientRect(),{top:u,left:p,fitWidth:f,fitHeight:g}=s.contentRect;if(!(h&&d&&f&&g))return!1;const m=s.container.getBoundingClientRect();p+=m.left,u+=m.top;const v=-1*(p+.5*f-(c+.5*h)),b=-1*(u+.5*g-(l+.5*d)),y=h/f;let w=this.option("zoomOpacity")||!1;return"auto"===w&&(w=Math.abs(h/d-f/g)>.1),{x:v,y:b,scale:y,opacity:w}}attach(){const t=this,e=t.instance;e.on("Carousel.change",t.onChange),e.on("Carousel.createSlide",t.onCreateSlide),e.on("Carousel.removeSlide",t.onRemoveSlide),e.on("close",t.onClose)}detach(){const t=this,e=t.instance;e.off("Carousel.change",t.onChange),e.off("Carousel.createSlide",t.onCreateSlide),e.off("Carousel.removeSlide",t.onRemoveSlide),e.off("close",t.onClose)}}Object.defineProperty(xt,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:{initialSize:"fit",Panzoom:{maxScale:1},protected:!1,zoom:!0,zoomOpacity:"auto"}}),"function"==typeof SuppressedError&&SuppressedError;const Et="html",St="image",Pt="map",Ct="youtube",Tt="vimeo",Mt="html5video",Ot=(t,e={})=>{const i=new URL(t),n=new URLSearchParams(i.search),s=new URLSearchParams;for(const[t,i]of[...n,...Object.entries(e)]){let e=i+"";if("t"===t){let t=e.match(/((\d*)m)?(\d*)s?/);t&&s.set("start",60*parseInt(t[2]||"0")+parseInt(t[3]||"0")+"")}else s.set(t,e)}let o=s+"",a=t.match(/#t=((.*)?\d+s)/);return a&&(o+=`#t=${a[1]}`),o},At={ajax:null,autoSize:!0,iframeAttr:{allow:"autoplay; fullscreen",scrolling:"auto"},preload:!0,videoAutoplay:!0,videoRatio:16/9,videoTpl:'<video class="fancybox__html5video" playsinline controls controlsList="nodownload" poster="{{poster}}">\n <source src="{{src}}" type="{{format}}" />Sorry, your browser doesn\'t support embedded videos.</video>',videoFormat:"",vimeo:{byline:1,color:"00adef",controls:1,dnt:1,muted:0},youtube:{controls:1,enablejsapi:1,nocookie:1,rel:0,fs:1}},Lt=["image","html","ajax","inline","clone","iframe","map","pdf","html5video","youtube","vimeo"];class zt extends ${onBeforeInitSlide(t,e,i){this.processType(i)}onCreateSlide(t,e,i){this.setContent(i)}onClearContent(t,e){e.xhr&&(e.xhr.abort(),e.xhr=null);const i=e.iframeEl;i&&(i.onload=i.onerror=null,i.src="//about:blank",e.iframeEl=null);const n=e.contentEl,s=e.placeholderEl;if("inline"===e.type&&n&&s)n.classList.remove("fancybox__content"),"none"!==getComputedStyle(n).getPropertyValue("display")&&(n.style.display="none"),setTimeout((()=>{s&&(n&&s.parentNode&&s.parentNode.insertBefore(n,s),s.remove())}),0),e.contentEl=void 0,e.placeholderEl=void 0;else for(;e.el&&e.el.firstChild;)e.el.removeChild(e.el.firstChild)}onSelectSlide(t,e,i){i.state===ct.Ready&&this.playVideo()}onUnselectSlide(t,e,i){var n,s;if(i.type===Mt){try{null===(s=null===(n=i.el)||void 0===n?void 0:n.querySelector("video"))||void 0===s||s.pause()}catch(t){}return}let o;i.type===Tt?o={method:"pause",value:"true"}:i.type===Ct&&(o={event:"command",func:"pauseVideo"}),o&&i.iframeEl&&i.iframeEl.contentWindow&&i.iframeEl.contentWindow.postMessage(JSON.stringify(o),"*"),i.poller&&clearTimeout(i.poller)}onDone(t,e){t.isCurrentSlide(e)&&!t.isClosing()&&this.playVideo()}onRefresh(t,e){e.slides.forEach((t=>{t.el&&(this.resizeIframe(t),this.setAspectRatio(t))}))}onMessage(t){try{let e=JSON.parse(t.data);if("https://player.vimeo.com"===t.origin){if("ready"===e.event)for(let e of Array.from(document.getElementsByClassName("fancybox__iframe")))e instanceof HTMLIFrameElement&&e.contentWindow===t.source&&(e.dataset.ready="true")}else if(t.origin.match(/^https:\/\/(www.)?youtube(-nocookie)?.com$/)&&"onReady"===e.event){const t=document.getElementById(e.id);t&&(t.dataset.ready="true")}}catch(t){}}loadAjaxContent(t){const e=this.instance.optionFor(t,"src")||"";this.instance.showLoading(t);const i=this.instance,n=new XMLHttpRequest;i.showLoading(t),n.onreadystatechange=function(){n.readyState===XMLHttpRequest.DONE&&i.state===lt.Ready&&(i.hideLoading(t),200===n.status?i.setContent(t,n.responseText):i.setError(t,404===n.status?"{{AJAX_NOT_FOUND}}":"{{AJAX_FORBIDDEN}}"))};const s=t.ajax||null;n.open(s?"POST":"GET",e+""),n.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),n.setRequestHeader("X-Requested-With","XMLHttpRequest"),n.send(s),t.xhr=n}setInlineContent(t){let e=null;if(S(t.src))e=t.src;else if("string"==typeof t.src){const i=t.src.split("#",2).pop();e=i?document.getElementById(i):null}if(e){if("clone"===t.type||e.closest(".fancybox__slide")){e=e.cloneNode(!0);const i=e.dataset.animationName;i&&(e.classList.remove(i),delete e.dataset.animationName);let n=e.getAttribute("id");n=n?`${n}--clone`:`clone-${this.instance.id}-${t.index}`,e.setAttribute("id",n)}else if(e.parentNode){const i=document.createElement("div");i.classList.add("fancybox-placeholder"),e.parentNode.insertBefore(i,e),t.placeholderEl=i}this.instance.setContent(t,e)}else this.instance.setError(t,"{{ELEMENT_NOT_FOUND}}")}setIframeContent(t){const{src:e,el:i}=t;if(!e||"string"!=typeof e||!i)return;i.classList.add("is-loading");const n=this.instance,s=document.createElement("iframe");s.className="fancybox__iframe",s.setAttribute("id",`fancybox__iframe_${n.id}_${t.index}`);for(const[e,i]of Object.entries(this.optionFor(t,"iframeAttr")||{}))s.setAttribute(e,i);s.onerror=()=>{n.setError(t,"{{IFRAME_ERROR}}")},t.iframeEl=s;const o=this.optionFor(t,"preload");if("iframe"!==t.type||!1===o)return s.setAttribute("src",t.src+""),n.setContent(t,s,!1),this.resizeIframe(t),void n.revealContent(t);n.showLoading(t),s.onload=()=>{if(!s.src.length)return;const e="true"!==s.dataset.ready;s.dataset.ready="true",this.resizeIframe(t),e?n.revealContent(t):n.hideLoading(t)},s.setAttribute("src",e),n.setContent(t,s,!1)}resizeIframe(t){const{type:e,iframeEl:i}=t;if(e===Ct||e===Tt)return;const n=null==i?void 0:i.parentElement;if(!i||!n)return;let s=t.autoSize;void 0===s&&(s=this.optionFor(t,"autoSize"));let o=t.width||0,a=t.height||0;o&&a&&(s=!1);const r=n&&n.style;if(!1!==t.preload&&!1!==s&&r)try{const t=window.getComputedStyle(n),e=parseFloat(t.paddingLeft)+parseFloat(t.paddingRight),s=parseFloat(t.paddingTop)+parseFloat(t.paddingBottom),l=i.contentWindow;if(l){const t=l.document,i=t.getElementsByTagName(Et)[0],n=t.body;r.width="",n.style.overflow="hidden",o=o||i.scrollWidth+e,r.width=`${o}px`,n.style.overflow="",r.flex="0 0 auto",r.height=`${n.scrollHeight}px`,a=i.scrollHeight+s}}catch(t){}if(o||a){const t={flex:"0 1 auto",width:"",height:""};o&&"auto"!==o&&(t.width=`${o}px`),a&&"auto"!==a&&(t.height=`${a}px`),Object.assign(r,t)}}playVideo(){const t=this.instance.getSlide();if(!t)return;const{el:e}=t;if(!e||!e.offsetParent)return;if(!this.optionFor(t,"videoAutoplay"))return;if(t.type===Mt)try{const t=e.querySelector("video");if(t){const e=t.play();void 0!==e&&e.then((()=>{})).catch((e=>{t.muted=!0,t.play()}))}}catch(t){}if(t.type!==Ct&&t.type!==Tt)return;const i=()=>{if(t.iframeEl&&t.iframeEl.contentWindow){let e;if("true"===t.iframeEl.dataset.ready)return e=t.type===Ct?{event:"command",func:"playVideo"}:{method:"play",value:"true"},e&&t.iframeEl.contentWindow.postMessage(JSON.stringify(e),"*"),void(t.poller=void 0);t.type===Ct&&(e={event:"listening",id:t.iframeEl.getAttribute("id")},t.iframeEl.contentWindow.postMessage(JSON.stringify(e),"*"))}t.poller=setTimeout(i,250)};i()}processType(t){if(t.html)return t.type=Et,t.src=t.html,void(t.html="");const e=this.instance.optionFor(t,"src","");if(!e||"string"!=typeof e)return;let i=t.type,n=null;if(n=e.match(/(youtube\.com|youtu\.be|youtube\-nocookie\.com)\/(?:watch\?(?:.*&)?v=|v\/|u\/|shorts\/|embed\/?)?(videoseries\?list=(?:.*)|[\w-]{11}|\?listType=(?:.*)&list=(?:.*))(?:.*)/i)){const s=this.optionFor(t,Ct),{nocookie:o}=s,a=function(t,e){var i={};for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&e.indexOf(n)<0&&(i[n]=t[n]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var s=0;for(n=Object.getOwnPropertySymbols(t);s<n.length;s++)e.indexOf(n[s])<0&&Object.prototype.propertyIsEnumerable.call(t,n[s])&&(i[n[s]]=t[n[s]])}return i}(s,["nocookie"]),r=`www.youtube${o?"-nocookie":""}.com`,l=Ot(e,a),c=encodeURIComponent(n[2]);t.videoId=c,t.src=`https://${r}/embed/${c}?${l}`,t.thumbSrc=t.thumbSrc||`https://i.ytimg.com/vi/${c}/mqdefault.jpg`,i=Ct}else if(n=e.match(/^.+vimeo.com\/(?:\/)?([\d]+)((\/|\?h=)([a-z0-9]+))?(.*)?/)){const s=Ot(e,this.optionFor(t,Tt)),o=encodeURIComponent(n[1]),a=n[4]||"";t.videoId=o,t.src=`https://player.vimeo.com/video/${o}?${a?`h=${a}${s?"&":""}`:""}${s}`,i=Tt}if(!i&&t.triggerEl){const e=t.triggerEl.dataset.type;Lt.includes(e)&&(i=e)}i||"string"==typeof e&&("#"===e.charAt(0)?i="inline":(n=e.match(/\.(mp4|mov|ogv|webm)((\?|#).*)?$/i))?(i=Mt,t.videoFormat=t.videoFormat||"video/"+("ogv"===n[1]?"ogg":n[1])):e.match(/(^data:image\/[a-z0-9+\/=]*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg|ico)((\?|#).*)?$)/i)?i=St:e.match(/\.(pdf)((\?|#).*)?$/i)&&(i="pdf")),(n=e.match(/(?:maps\.)?google\.([a-z]{2,3}(?:\.[a-z]{2})?)\/(?:(?:(?:maps\/(?:place\/(?:.*)\/)?\@(.*),(\d+.?\d+?)z))|(?:\?ll=))(.*)?/i))?(t.src=`https://maps.google.${n[1]}/?ll=${(n[2]?n[2]+"&z="+Math.floor(parseFloat(n[3]))+(n[4]?n[4].replace(/^\//,"&"):""):n[4]+"").replace(/\?/,"&")}&output=${n[4]&&n[4].indexOf("layer=c")>0?"svembed":"embed"}`,i=Pt):(n=e.match(/(?:maps\.)?google\.([a-z]{2,3}(?:\.[a-z]{2})?)\/(?:maps\/search\/)(.*)/i))&&(t.src=`https://maps.google.${n[1]}/maps?q=${n[2].replace("query=","q=").replace("api=1","")}&output=embed`,i=Pt),i=i||this.instance.option("defaultType"),t.type=i,i===St&&(t.thumbSrc=t.thumbSrc||t.src)}setContent(t){const e=this.instance.optionFor(t,"src")||"";if(t&&t.type&&e){switch(t.type){case Et:this.instance.setContent(t,e);break;case Mt:const i=this.option("videoTpl");i&&this.instance.setContent(t,i.replace(/\{\{src\}\}/gi,e+"").replace(/\{\{format\}\}/gi,this.optionFor(t,"videoFormat")||"").replace(/\{\{poster\}\}/gi,t.poster||t.thumbSrc||""));break;case"inline":case"clone":this.setInlineContent(t);break;case"ajax":this.loadAjaxContent(t);break;case"pdf":case Pt:case Ct:case Tt:t.preload=!1;case"iframe":this.setIframeContent(t)}this.setAspectRatio(t)}}setAspectRatio(t){const e=t.contentEl;if(!(t.el&&e&&t.type&&[Ct,Tt,Mt].includes(t.type)))return;let i,n=t.width||"auto",s=t.height||"auto";if("auto"===n||"auto"===s){i=this.optionFor(t,"videoRatio");const e=(i+"").match(/(\d+)\s*\/\s?(\d+)/);i=e&&e.length>2?parseFloat(e[1])/parseFloat(e[2]):parseFloat(i+"")}else n&&s&&(i=n/s);if(!i)return;e.style.aspectRatio="",e.style.width="",e.style.height="",e.offsetHeight;const o=e.getBoundingClientRect(),a=o.width||1,r=o.height||1;e.style.aspectRatio=i+"",i<a/r?(s="auto"===s?r:Math.min(r,s),e.style.width="auto",e.style.height=`${s}px`):(n="auto"===n?a:Math.min(a,n),e.style.width=`${n}px`,e.style.height="auto")}attach(){const t=this,e=t.instance;e.on("Carousel.beforeInitSlide",t.onBeforeInitSlide),e.on("Carousel.createSlide",t.onCreateSlide),e.on("Carousel.selectSlide",t.onSelectSlide),e.on("Carousel.unselectSlide",t.onUnselectSlide),e.on("Carousel.Panzoom.refresh",t.onRefresh),e.on("done",t.onDone),e.on("clearContent",t.onClearContent),window.addEventListener("message",t.onMessage)}detach(){const t=this,e=t.instance;e.off("Carousel.beforeInitSlide",t.onBeforeInitSlide),e.off("Carousel.createSlide",t.onCreateSlide),e.off("Carousel.selectSlide",t.onSelectSlide),e.off("Carousel.unselectSlide",t.onUnselectSlide),e.off("Carousel.Panzoom.refresh",t.onRefresh),e.off("done",t.onDone),e.off("clearContent",t.onClearContent),window.removeEventListener("message",t.onMessage)}}Object.defineProperty(zt,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:At});const Rt="play",kt="pause",It="ready";class Dt extends ${constructor(){super(...arguments),Object.defineProperty(this,"state",{enumerable:!0,configurable:!0,writable:!0,value:
vendor: 4,793 bytes, line 35
35It}),Object.defineProperty(this,"inHover",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"timer",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"progressBar",{enumerable:!0,configurable:!0,writable:!0,value:null})}get isActive(){return this.state!==It}onReady(t){this.option("autoStart")&&(t.isInfinite||t.page<t.pages.length-1)&&this.start()}onChange(){this.removeProgressBar(),this.pause()}onSettle(){this.resume()}onVisibilityChange(){"visible"===document.visibilityState?this.resume():this.pause()}onMouseEnter(){this.inHover=!0,this.pause()}onMouseLeave(){var t;this.inHover=!1,(null===(t=this.instance.panzoom)||void 0===t?void 0:t.isResting)&&this.resume()}onTimerEnd(){const t=this.instance;"play"===this.state&&(t.isInfinite||t.page!==t.pages.length-1?t.slideNext():t.slideTo(0))}removeProgressBar(){this.progressBar&&(this.progressBar.remove(),this.progressBar=null)}createProgressBar(){var t;if(!this.option("showProgress"))return null;this.removeProgressBar();const e=this.instance,i=(null===(t=e.pages[e.page])||void 0===t?void 0:t.slides)||[];let n=this.option("progressParentEl");if(n||(n=(1===i.length?i[0].el:null)||e.viewport),!n)return null;const s=document.createElement("div");return C(s,"f-progress"),n.prepend(s),this.progressBar=s,s.offsetHeight,s}set(){const t=this,e=t.instance;if(e.pages.length<2)return;if(t.timer)return;const i=t.option("timeout");t.state=Rt,C(e.container,"has-autoplay");let n=t.createProgressBar();n&&(n.style.transitionDuration=`${i}ms`,n.style.transform="scaleX(1)"),t.timer=setTimeout((()=>{t.timer=null,t.inHover||t.onTimerEnd()}),i),t.emit("set")}clear(){const t=this;t.timer&&(clearTimeout(t.timer),t.timer=null),t.removeProgressBar()}start(){const t=this;if(t.set(),t.state!==It){if(t.option("pauseOnHover")){const e=t.instance.container;e.addEventListener("mouseenter",t.onMouseEnter,!1),e.addEventListener("mouseleave",t.onMouseLeave,!1)}document.addEventListener("visibilitychange",t.onVisibilityChange,!1),t.emit("start")}}stop(){const t=this,e=t.state,i=t.instance.container;t.clear(),t.state=It,i.removeEventListener("mouseenter",t.onMouseEnter,!1),i.removeEventListener("mouseleave",t.onMouseLeave,!1),document.removeEventListener("visibilitychange",t.onVisibilityChange,!1),P(i,"has-autoplay"),e!==It&&t.emit("stop")}pause(){const t=this;t.state===Rt&&(t.state=kt,t.clear(),t.emit(kt))}resume(){const t=this,e=t.instance;if(e.isInfinite||e.page!==e.pages.length-1)if(t.state!==Rt){if(t.state===kt&&!t.inHover){const e=new Event("resume",{bubbles:!0,cancelable:!0});t.emit("resume",e),e.defaultPrevented||t.set()}}else t.set();else t.stop()}toggle(){this.state===Rt||this.state===kt?this.stop():this.start()}attach(){const t=this,e=t.instance;e.on("ready",t.onReady),e.on("Panzoom.startAnimation",t.onChange),e.on("Panzoom.endAnimation",t.onSettle),e.on("Panzoom.touchMove",t.onChange)}detach(){const t=this,e=t.instance;e.off("ready",t.onReady),e.off("Panzoom.startAnimation",t.onChange),e.off("Panzoom.endAnimation",t.onSettle),e.off("Panzoom.touchMove",t.onChange),t.stop()}}Object.defineProperty(Dt,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:{autoStart:!0,pauseOnHover:!0,progressParentEl:null,showProgress:!0,timeout:3e3}});class Ft extends ${constructor(){super(...arguments),Object.defineProperty(this,"ref",{enumerable:!0,configurable:!0,writable:!0,value:null})}onPrepare(t){const e=t.carousel;if(!e)return;const i=t.container;i&&(e.options.Autoplay=p({autoStart:!1},this.option("Autoplay")||{},{pauseOnHover:!1,timeout:this.option("timeout"),progressParentEl:()=>this.option("progressParentEl")||null,on:{start:()=>{t.emit("startSlideshow")},set:e=>{var n;i.classList.add("has-slideshow"),(null===(n=t.getSlide())||void 0===n?void 0:n.state)!==ct.Ready&&e.pause()},stop:()=>{i.classList.remove("has-slideshow"),t.isCompact||t.endIdle(),t.emit("endSlideshow")},resume:(e,i)=>{var n,s,o;!i||!i.cancelable||(null===(n=t.getSlide())||void 0===n?void 0:n.state)===ct.Ready&&(null===(o=null===(s=t.carousel)||void 0===s?void 0:s.panzoom)||void 0===o?void 0:o.isResting)||i.preventDefault()}}}),e.attachPlugins({Autoplay:Dt}),this.ref=e.plugins.Autoplay)}onReady(t){const e=t.carousel,i=this.ref;i&&e&&this.option("playOnStart")&&(e.isInfinite||e.page<e.pages.length-1)&&i.start()}onDone(t,e){const i=this.ref,n=t.carousel;if(!i||!n)return;const s=e.panzoom;s&&s.on("startAnimation",(()=>{t.isCurrentSlide(e)&&i.stop()})),t.isCurrentSlide(e)&&i.resume()}onKeydown(t,e){var i;const n=this.ref;n&&e===this.option("key")&&"BUTTON"!==(null===(i=document.activeElement)||void 0===i?void 0:i.nodeName)&&n.toggle()}attach(){const t=this,e=t.instance;e.on("Carousel.init",t.onPrepare),e.on("Carousel.ready",t.onReady),e.on("done",t.onDone),e.on("key
35down",t.onKeydown)}detach(){const t=this,e=t.instance;e.off("Carousel.init",t.onPrepare),e.off("Carousel.ready",t.onReady),e.off("done",t.onDone),e.off("keydown",t.onKeydown)}}Object.defineProperty(Ft,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:{key:" ",playOnStart:!1,progressParentEl:t=>{var e;return(null===(e=t.instance.container)||void 0===e?void 0:e.querySelector(".fancybox__toolbar [data-fancybox-toggle-slideshow]"))||t.instance.container},timeout:3e3}});const jt={classes:{container:"f-thumbs f-carousel__thumbs",viewport:"f-thumbs__viewport",track:"f-thumbs__track",slide:"f-thumbs__slide",isResting:"is-resting",isSelected:"is-selected",isLoading:"is-loading",hasThumbs:"has-thumbs"},minCount:2,parentEl:null,thumbTpl:'<button class="f-thumbs__slide__button" tabindex="0" type="button" aria-label="{{GOTO}}" data-carousel-index="%i"><img class="f-thumbs__slide__img" data-lazy-src="{{%s}}" alt="" /></button>',type:"modern"};var Bt;!function(t){t[t.Init=0]="Init",t[t.Ready=1]="Ready",t[t.Hidden=2]="Hidden"}(Bt||(Bt={}));const Ht="isResting",Nt="thumbWidth",_t="thumbHeight",$t="thumbClipWidth";let Wt=class extends ${constructor(){super(...arguments),Object.defineProperty(this,"type",{enumerable:!0,configurable:!0,writable:!0,value:"modern"}),Object.defineProperty(this,"container",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"track",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"carousel",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"thumbWidth",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"thumbClipWidth",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"thumbHeight",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"thumbGap",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"thumbExtraGap",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"state",{enumerable:!0,configurable:!0,writable:!0,value:Bt.Init})}get isModern(){return"modern"===this.type}onInitSlide(t,e){const i=e.el?e.el.dataset:void 0;i&&(e.thumbSrc=i.thumbSrc||e.thumbSrc||"",e[$t]=parseFloat(i[$t]||"")||e[$t]||0,e[_t]=parseFloat(i.thumbHeight||"")||e[_t]||0),this.addSlide(e)}onInitSlides(){this.build()}onChange(){var t;if(!this.isModern)return;const e=this.container,i=this.instance,n=i.panzoom,s=this.carousel,o=s?s.panzoom:null,r=i.page;if(n&&s&&o){if(n.isDragging){P(e,this.cn(Ht));let n=(null===(t=s.pages[r])||void 0===t?void 0:t.pos)||0;n+=i.getProgress(r)*(this[$t]+this.thumbGap);let a=o.getBounds();-1*n>a.x.min&&-1*n<a.x.max&&o.panTo({x:-1*n,friction:.12})}else a(e,this.cn(Ht),n.isResting);this.shiftModern()}}onRefresh(){this.updateProps();for(const t of this.instance.slides||[])this.resizeModernSlide(t);this.shiftModern()}isDisabled(){const t=this.option("minCount")||0;if(t){const e=this.instance;let i=0;for(const t of e.slides||[])t.thumbSrc&&i++;if(i<t)return!0}const e=this.option("type");return["modern","classic"].indexOf(e)<0}getThumb(t){const e=this.option("thumbTpl")||"";return{html:this.instance.localize(e,[["%i",t.index],["%d",t.index+1],["%s",t.thumbSrc||"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"]])}}addSlide(t){const e=this.carousel;e&&e.addSlide(t.index,this.getThumb(t))}getSlides(){const t=[];for(const e of this.instance.slides||[])t.push(this.getThumb(e));return t}resizeModernSlide(t){this.isModern&&(t[Nt]=t[$t]&&t[_t]?Math.round(this[_t]*(t[$t]/t[_t])):this[Nt])}updateProps(){const t=this.container;if(!t)return;const e=e=>parseFloat(getComputedStyle(t).getPropertyValue("--f-thumb-"+e))||0;this.thumbGap=e("gap"),this.thumbExtraGap=e("extra-gap"),this[Nt]=e("width")||40,this[$t]=e("clip-width")||40,this[_t]=e("height")||40}build(){const t=this;if(t.state!==Bt.Init)return;if(t.isDisabled())return void t.emit("disabled");const e=t.instance,i=e.container,n=t.getSlides(),s=t.option("type");t.type=s;const o=t.option("parentEl"),a=t.cn("container"),r=t.cn("track");let l=null==o?void 0:o.querySelector("."+a);l||(l=document.createElement("div"),C(l,a),o?o.appendChild(l):i.after(l)),C(l,`is-${s}`),C(i,t.cn("hasThumbs")),t.container=l,t.updateProps();let c=l.querySelector("."+r);c||(c=document.createElement("div"),C(c,t.cn("track")),l.appendChild(c)),t.track=c;const h=p({},{track:c,infinite:!1,center:!0,fill:"classic"===s,dragFree:!0,slidesPerPage:1,transition:!1,preload:.25,friction:.12,Panzoom:{maxVelocity:0},Dots:!1,Navigation:!1,classes:{container:"f-thumbs",viewport:"f-thumbs__viewport",track:"f-thumbs__track",slide:"f-thumbs__slide"}},t.option("Carousel")||{},{Sync:{target:e},slides:n}),d=new e.constructor(l,h);d.on("createSlide",((e,i)=>{t.setProps(i.index),t.emit("createSlide",i,i.el)})),d.on("ready",(()=>{t.shiftModern(),t.emit("ready")})),d.on("refresh",(()=>{t.shiftModern()})),d.on("Panzoom.click",((e,i,n)=>{t.onClick(n)})),t.carousel=d,t.state=Bt.Ready}onClick(t){t.preventDefault(),t.stopPropagation();const e=this.instance,{pages:i,page:n}=e,s=t=>{if(t){const e=t.closest("[data-carousel-index]");if(e)return[parseInt(e.dataset.carouselIndex||"",10)||0,e]}return[-1,void 0]},o=(t,e)=>{const i=document.elementFromPoint(t,e);return i?s(i):[-1,void 0]};let[a,r]=s(t.target);if(a>-1)return;const l=this[$t],c=t.clientX,h=t.clientY;let[d,u]=o(c-l,h),[p,f]=o(c+l,h);u&&f?(a=Math.abs(c-u.getBoundingClientRect().right)<Math.abs(c-f.getBoundingClientRect().left)?d:
vendor: 4,266 bytes, line 35
35p,a===n&&(a=a===d?p:d)):u?a=d:f&&(a=p),a>-1&&i[a]&&e.slideTo(a)}getShift(t){var e;const i=this,{instance:n}=i,s=i.carousel;if(!n||!s)return 0;const o=i[Nt],a=i[$t],r=i.thumbGap,l=i.thumbExtraGap;if(!(null===(e=s.slides[t])||void 0===e?void 0:e.el))return 0;const c=.5*(o-a),h=n.pages.length-1;let d=n.getProgress(0),u=n.getProgress(h),p=n.getProgress(t,!1,!0),f=0,g=c+l+r;const m=d<0&&d>-1,v=u>0&&u<1;return 0===t?(f=g*Math.abs(d),v&&1===d&&(f-=g*Math.abs(u))):t===h?(f=g*Math.abs(u)*-1,m&&-1===u&&(f+=g*Math.abs(d))):m||v?(f=-1*g,f+=g*Math.abs(d),f+=g*(1-Math.abs(u))):f=g*p,f}setProps(t){var i;const n=this;if(!n.isModern)return;const{instance:s}=n,o=n.carousel;if(s&&o){const a=null===(i=o.slides[t])||void 0===i?void 0:i.el;if(a&&a.childNodes.length){let i=e(1-Math.abs(s.getProgress(t))),o=e(n.getShift(t));a.style.setProperty("--progress",i?i+"":""),a.style.setProperty("--shift",o+"")}}}shiftModern(){const t=this;if(!t.isModern)return;const{instance:e,track:i}=t,n=e.panzoom,s=t.carousel;if(!(e&&i&&n&&s))return;if(n.state===v.Init||n.state===v.Destroy)return;for(const i of e.slides)t.setProps(i.index);let o=(t[$t]+t.thumbGap)*(s.slides.length||0);i.style.setProperty("--width",o+"")}cleanup(){const t=this;t.carousel&&t.carousel.destroy(),t.carousel=null,t.container&&t.container.remove(),t.container=null,t.track&&t.track.remove(),t.track=null,t.state=Bt.Init,P(t.instance.container,t.cn("hasThumbs"))}attach(){const t=this,e=t.instance;e.on("initSlide",t.onInitSlide),e.state===H.Init?e.on("initSlides",t.onInitSlides):t.onInitSlides(),e.on(["change","Panzoom.afterTransform"],t.onChange),e.on("Panzoom.refresh",t.onRefresh)}detach(){const t=this,e=t.instance;e.off("initSlide",t.onInitSlide),e.off("initSlides",t.onInitSlides),e.off(["change","Panzoom.afterTransform"],t.onChange),e.off("Panzoom.refresh",t.onRefresh),t.cleanup()}};Object.defineProperty(Wt,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:jt});const Xt=Object.assign(Object.assign({},jt),{key:"t",showOnStart:!0,parentEl:null}),qt="is-masked",Yt="aria-hidden";class Vt extends ${constructor(){super(...arguments),Object.defineProperty(this,"ref",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"hidden",{enumerable:!0,configurable:!0,writable:!0,value:!1})}get isEnabled(){const t=this.ref;return t&&!t.isDisabled()}get isHidden(){return this.hidden}onClick(t,e){e.stopPropagation()}onCreateSlide(t,e){var i,n,s;const o=(null===(s=null===(n=null===(i=this.instance)||void 0===i?void 0:i.carousel)||void 0===n?void 0:n.slides[e.index])||void 0===s?void 0:s.type)||"",a=e.el;if(a&&o){let t=`for-${o}`;["video","youtube","vimeo","html5video"].includes(o)&&(t+=" for-video"),C(a,t)}}onInit(){var t;const e=this,i=e.instance,n=i.carousel;if(e.ref||!n)return;const s=e.option("parentEl")||i.footer||i.container;if(!s)return;const o=p({},e.options,{parentEl:s,classes:{container:"f-thumbs fancybox__thumbs"},Carousel:{Sync:{friction:i.option("Carousel.friction")||0}},on:{ready:t=>{const i=t.container;i&&this.hidden&&(e.refresh(),i.style.transition="none",e.hide(),i.offsetHeight,queueMicrotask((()=>{i.style.transition="",e.show()})))}}});o.Carousel=o.Carousel||{},o.Carousel.on=p((null===(t=e.options.Carousel)||void 0===t?void 0:t.on)||{},{click:this.onClick,createSlide:this.onCreateSlide}),n.options.Thumbs=o,n.attachPlugins({Thumbs:Wt}),e.ref=n.plugins.Thumbs,e.option("showOnStart")||(e.ref.state=Bt.Hidden,e.hidden=!0)}onResize(){var t;const e=null===(t=this.ref)||void 0===t?void 0:t.container;e&&(e.style.maxHeight="")}onKeydown(t,e){const i=this.option("key");i&&i===e&&this.toggle()}toggle(){const t=this.ref;if(t&&!t.isDisabled())return t.state===Bt.Hidden?(t.state=Bt.Init,void t.build()):void(this.hidden?this.show():this.hide())}show(){const t=this.ref;if(!t||t.isDisabled())return;const e=t.container;e&&(this.refresh(),e.offsetHeight,e.removeAttribute(Yt),e.classList.remove(qt),this.hidden=!1)}hide(){const t=this.ref,e=t&&t.container;e&&(this.refresh(),e.offsetHeight,e.classList.add(qt),e.setAttribute(Yt,"true")),this.hidden=!0}refresh(){const t=this.ref;if(!t||!t.state)return;const e=t.container,i=(null==e?void 0:e.firstChild)||null;e&&i&&i.childNodes.length&&(e.style.maxHeight=`${i.getBoundingClientRect().height}px`)}
vendor: 6,220 bytes, line 35
35attach(){const t=this,e=t.instance;e.state===lt.Init?e.on("Carousel.init",t.onInit):t.onInit(),e.on("resize",t.onResize),e.on("keydown",t.onKeydown)}detach(){var t;const e=this,i=e.instance;i.off("Carousel.init",e.onInit),i.off("resize",e.onResize),i.off("keydown",e.onKeydown),null===(t=i.carousel)||void 0===t||t.detachPlugins(["Thumbs"]),e.ref=null}}Object.defineProperty(Vt,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:Xt});const Zt={panLeft:{icon:'<svg><path d="M5 12h14M5 12l6 6M5 12l6-6"/></svg>',change:{panX:-100}},panRight:{icon:'<svg><path d="M5 12h14M13 18l6-6M13 6l6 6"/></svg>',change:{panX:100}},panUp:{icon:'<svg><path d="M12 5v14M18 11l-6-6M6 11l6-6"/></svg>',change:{panY:-100}},panDown:{icon:'<svg><path d="M12 5v14M18 13l-6 6M6 13l6 6"/></svg>',change:{panY:100}},zoomIn:{icon:'<svg><circle cx="11" cy="11" r="7.5"/><path d="m21 21-4.35-4.35M11 8v6M8 11h6"/></svg>',action:"zoomIn"},zoomOut:{icon:'<svg><circle cx="11" cy="11" r="7.5"/><path d="m21 21-4.35-4.35M8 11h6"/></svg>',action:"zoomOut"},toggle1to1:{icon:'<svg><path d="M3.51 3.07c5.74.02 11.48-.02 17.22.02 1.37.1 2.34 1.64 2.18 3.13 0 4.08.02 8.16 0 12.23-.1 1.54-1.47 2.64-2.79 2.46-5.61-.01-11.24.02-16.86-.01-1.36-.12-2.33-1.65-2.17-3.14 0-4.07-.02-8.16 0-12.23.1-1.36 1.22-2.48 2.42-2.46Z"/><path d="M5.65 8.54h1.49v6.92m8.94-6.92h1.49v6.92M11.5 9.4v.02m0 5.18v0"/></svg>',action:"toggleZoom"},toggleZoom:{icon:'<svg><g><line x1="11" y1="8" x2="11" y2="14"></line></g><circle cx="11" cy="11" r="7.5"/><path d="m21 21-4.35-4.35M8 11h6"/></svg>',action:"toggleZoom"},iterateZoom:{icon:'<svg><g><line x1="11" y1="8" x2="11" y2="14"></line></g><circle cx="11" cy="11" r="7.5"/><path d="m21 21-4.35-4.35M8 11h6"/></svg>',action:"iterateZoom"},rotateCCW:{icon:'<svg><path d="M15 4.55a8 8 0 0 0-6 14.9M9 15v5H4M18.37 7.16v.01M13 19.94v.01M16.84 18.37v.01M19.37 15.1v.01M19.94 11v.01"/></svg>',action:"rotateCCW"},rotateCW:{icon:'<svg><path d="M9 4.55a8 8 0 0 1 6 14.9M15 15v5h5M5.63 7.16v.01M4.06 11v.01M4.63 15.1v.01M7.16 18.37v.01M11 19.94v.01"/></svg>',action:"rotateCW"},flipX:{icon:'<svg style="stroke-width: 1.3"><path d="M12 3v18M16 7v10h5L16 7M8 7v10H3L8 7"/></svg>',action:"flipX"},flipY:{icon:'<svg style="stroke-width: 1.3"><path d="M3 12h18M7 16h10L7 21v-5M7 8h10L7 3v5"/></svg>',action:"flipY"},fitX:{icon:'<svg><path d="M4 12V6a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v6M10 18H3M21 18h-7M6 15l-3 3 3 3M18 15l3 3-3 3"/></svg>',action:"fitX"},fitY:{icon:'<svg><path d="M12 20H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h6M18 14v7M18 3v7M15 18l3 3 3-3M15 6l3-3 3 3"/></svg>',action:"fitY"},reset:{icon:'<svg><path d="M20 11A8.1 8.1 0 0 0 4.5 9M4 5v4h4M4 13a8.1 8.1 0 0 0 15.5 2m.5 4v-4h-4"/></svg>',action:"reset"},toggleFS:{icon:'<svg><g><path d="M14.5 9.5 21 3m0 0h-6m6 0v6M3 21l6.5-6.5M3 21v-6m0 6h6"/></g><g><path d="m14 10 7-7m-7 7h6m-6 0V4M3 21l7-7m0 0v6m0-6H4"/></g></svg>',action:"toggleFS"}};var Ut;!function(t){t[t.Init=0]="Init",t[t.Ready=1]="Ready",t[t.Disabled=2]="Disabled"}(Ut||(Ut={}));const Gt={absolute:"auto",display:{left:["infobar"],middle:[],right:["iterateZoom","slideshow","fullscreen","thumbs","close"]},enabled:"auto",items:{infobar:{tpl:'<div class="fancybox__infobar" tabindex="-1"><span data-fancybox-current-index></span>/<span data-fancybox-count></span></div>'},download:{tpl:'<a class="f-button" title="{{DOWNLOAD}}" data-fancybox-download href="javasript:;"><svg><path d="M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2M7 11l5 5 5-5M12 4v12"/></svg></a>'},prev:{tpl:'<button class="f-button" title="{{PREV}}" data-fancybox-prev><svg><path d="m15 6-6 6 6 6"/></svg></button>'},next:{tpl:'<button class="f-button" title="{{NEXT}}" data-fancybox-next><svg><path d="m9 6 6 6-6 6"/></svg></button>'},slideshow:{tpl:'<button class="f-button" title="{{TOGGLE_SLIDESHOW}}" data-fancybox-toggle-slideshow><svg><g><path d="M8 4v16l13 -8z"></path></g><g><path d="M8 4v15M17 4v15"/></g></svg></button>'},fullscreen:{tpl:'<button class="f-button" title="{{TOGGLE_FULLSCREEN}}" data-fancybox-toggle-fullscreen><svg><g><path d="M4 8V6a2 2 0 0 1 2-2h2M4 16v2a2 2 0 0 0 2 2h2M16 4h2a2 2 0 0 1 2 2v2M16 20h2a2 2 0 0 0 2-2v-2"/></g><g><path d="M15 19v-2a2 2 0 0 1 2-2h2M15 5v2a2 2 0 0 0 2 2h2M5 15h2a2 2 0 0 1 2 2v2M5 9h2a2 2 0 0 0 2-2V5"/></g></svg></button>'},thumbs:{tpl:'<button class="f-button" title="{{TOGGLE_THUMBS}}" data-fancybox-toggle-thumbs><svg><circle cx="5.5" cy="5.5" r="1"/><circle cx="12" cy="5.5" r="1"/><circle cx="18.5" cy="5.5" r="1"/><circle cx="5.5" cy="12" r="1"/><circle cx="12" cy="12" r="1"/><circle cx="18.5" cy="12" r="1"/><circle cx="5.5" cy="18.5" r="1"/><circle cx="12" cy="18.5" r="1"/><circle cx="18.5" cy="18.5" r="1"/></svg></button>'},close:{tpl:'<button class="f-button" title="{{CLOSE}}" data-fancybox-close><svg><path d="m19.5 4.5-15 15M4.5 4.5l15 15"/></svg></button>'}},parentEl:null},Kt={tabindex:"-1",width:"24",height:"24",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},Jt="has-toolbar",Qt="fancybox__toolbar";class te extends ${constructor(){super(...arguments),Object.defineProperty(this,"state",{enumerable:!0,configurable:!0,writable:!0,value:Ut.Init}),Object.defineProperty(this,"container",{enumerable:!0,configurable:!0,writable:!0,value:null})}onReady(t){var e;if(!t.carousel)return;let i=this.option("display"),n=this.option("absolute"),s=this.option("enabled");if("auto"===s){const t=this.instance.carousel;let e=0;if(t)for(const i of t.slides)(i.panzoom||"image"===i.type)&&e++;e||(s=!1)}s||(i=void 0);let o=0;const a={left:[],middle:[],right:[]};if(i)for(const t of["left","middle","right"])for(const n of i[t]){const i=this.createEl(n);i&&(null===(e=a[t])||void 0===e||e.push(i),o++)}let r=null;if(o&&(r=this.createContainer()),r){for(const[t,e]of Object.entries(a)){const i=document.createElement("div");C(i,Qt+"__column is-"+t);for(const t of e)i.appendChild(t);"auto"!==n||"middle"!==t||e.length||(n=!0),r.appendChild(i)}!0===n&&C(r,"is-absolute"),this.state=Ut.Ready,this.onRefresh()}else this.state=Ut.Disabled}onClick(t){var e,i;const n=this.instance,s=n.getSlide(),o=null==s?void 0:s.panzoom,a=t.target,r=a&&S(a)?a.dataset:null;if(!r)return;if(void 0!==r.fancyboxToggleThumbs)return t.preventDefault(),t.stopPropagation(),void(null===(e=n.plugins.Thumbs
vendor: 26,214 bytes, line 35
35)||void 0===e||e.toggle());if(void 0!==r.fancyboxToggleFullscreen)return t.preventDefault(),t.stopPropagation(),void this.instance.toggleFullscreen();if(void 0!==r.fancyboxToggleSlideshow){t.preventDefault(),t.stopPropagation();const e=null===(i=n.carousel)||void 0===i?void 0:i.plugins.Autoplay;let s=e.isActive;return o&&"mousemove"===o.panMode&&!s&&o.reset(),void(s?e.stop():e.start())}const l=r.panzoomAction,c=r.panzoomChange;if((c||l)&&(t.preventDefault(),t.stopPropagation()),c){let t={};try{t=JSON.parse(c)}catch(t){}o&&o.applyChange(t)}else l&&o&&o[l]&&o[l]()}onChange(){this.onRefresh()}onRefresh(){if(this.instance.isClosing())return;const t=this.container;if(!t)return;const e=this.instance.getSlide();if(!e||e.state!==ct.Ready)return;const i=e&&!e.error&&e.panzoom;for(const e of t.querySelectorAll("[data-panzoom-action]"))i?(e.removeAttribute("disabled"),e.removeAttribute("tabindex")):(e.setAttribute("disabled",""),e.setAttribute("tabindex","-1"));let n=i&&i.canZoomIn(),s=i&&i.canZoomOut();for(const e of t.querySelectorAll('[data-panzoom-action="zoomIn"]'))n?(e.removeAttribute("disabled"),e.removeAttribute("tabindex")):(e.setAttribute("disabled",""),e.setAttribute("tabindex","-1"));for(const e of t.querySelectorAll('[data-panzoom-action="zoomOut"]'))s?(e.removeAttribute("disabled"),e.removeAttribute("tabindex")):(e.setAttribute("disabled",""),e.setAttribute("tabindex","-1"));for(const e of t.querySelectorAll('[data-panzoom-action="toggleZoom"],[data-panzoom-action="iterateZoom"]')){s||n?(e.removeAttribute("disabled"),e.removeAttribute("tabindex")):(e.setAttribute("disabled",""),e.setAttribute("tabindex","-1"));const t=e.querySelector("g");t&&(t.style.display=n?"":"none")}}onDone(t,e){var i;null===(i=e.panzoom)||void 0===i||i.on("afterTransform",(()=>{this.instance.isCurrentSlide(e)&&this.onRefresh()})),this.instance.isCurrentSlide(e)&&this.onRefresh()}createContainer(){const t=this.instance.container;if(!t)return null;const e=this.option("parentEl")||t;let i=e.querySelector("."+Qt);return i||(i=document.createElement("div"),C(i,Qt),e.prepend(i)),i.addEventListener("click",this.onClick,{passive:!1,capture:!0}),t&&C(t,Jt),this.container=i,i}createEl(t){const e=this.instance,i=e.carousel;if(!i)return null;if("toggleFS"===t)return null;if("fullscreen"===t&&!at())return null;let n=null;const o=i.slides.length||0;let a=0,r=0;for(const t of i.slides)(t.panzoom||"image"===t.type)&&a++,("image"===t.type||t.downloadSrc)&&r++;if(o<2&&["infobar","prev","next"].includes(t))return n;if(void 0!==Zt[t]&&!a)return null;if("download"===t&&!r)return null;if("thumbs"===t){const t=e.plugins.Thumbs;if(!t||!t.isEnabled)return null}if("slideshow"===t){if(!i.plugins.Autoplay||o<2)return null}if(void 0!==Zt[t]){const e=Zt[t];n=document.createElement("button"),n.setAttribute("title",this.instance.localize(`{{${t.toUpperCase()}}}`)),C(n,"f-button"),e.action&&(n.dataset.panzoomAction=e.action),e.change&&(n.dataset.panzoomChange=JSON.stringify(e.change)),n.appendChild(s(this.instance.localize(e.icon)))}else{const e=(this.option("items")||[])[t];e&&(n=s(this.instance.localize(e.tpl)),"function"==typeof e.click&&n.addEventListener("click",(t=>{t.preventDefault(),t.stopPropagation(),"function"==typeof e.click&&e.click.call(this,this,t)})))}const l=null==n?void 0:n.querySelector("svg");if(l)for(const[t,e]of Object.entries(Kt))l.getAttribute(t)||l.setAttribute(t,String(e));return n}removeContainer(){const t=this.container;t&&t.remove(),this.container=null,this.state=Ut.Disabled;const e=this.instance.container;e&&P(e,Jt)}attach(){const t=this,e=t.instance;e.on("Carousel.initSlides",t.onReady),e.on("done",t.onDone),e.on(["reveal","Carousel.change"],t.onChange),t.onReady(t.instance)}detach(){const t=this,e=t.instance;e.off("Carousel.initSlides",t.onReady),e.off("done",t.onDone),e.off(["reveal","Carousel.change"],t.onChange),t.removeContainer()}}Object.defineProperty(te,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:Gt});const ee={Hash:class extends ${onReady(){dt=!1}onChange(t){pt&&clearTimeout(pt);const{hash:e}=ft(),{hash:i}=gt(),n=t.isOpeningSlide(t.getSlide());n&&(ht=i===e?"":i),e&&e!==i&&(pt=setTimeout((()=>{try{if(t.state===lt.Ready){let t="replaceState";n&&!ut&&(t="pushState",ut=!0),window.history[t]({},document.title,window.location.pathname+window.location.search+e)}}catch(t){}}),300))}onClose(t){if(pt&&clearTimeout(pt),!dt&&ut)return ut=!1,dt=!1,void window.history.back();if(!dt)try{window.history.replaceState({},document.title,window.location.pathname+window.location.search+(ht||""))}catch(t){}}attach(){const t=this.instance;t.on("ready",this.onReady),t.on(["Carousel.ready","Carousel.change"],this.onChange),t.on("close",this.onClose)}detach(){const t=this.instance;t.off("ready",this.onReady),t.off(["Carousel.ready","Carousel.change"],this.onChange),t.off("close",this.onClose)}static parseURL(){return gt()}static startFromUrl(){mt()}static destroy(){window.removeEventListener("hashchange",bt,!1)}},Html:zt,Images:xt,Slideshow:Ft,Thumbs:Vt,Toolbar:te},ie="with-fancybox",ne="hide-scrollbar",se="--fancybox-scrollbar-compensate",oe="--fancybox-body-margin",ae="aria-hidden",re="is-using-tab",le="is-animated",ce="is-compact",he="is-loading",de="is-opening",ue="has-caption",pe="disabled",fe="tabindex",ge="download",me="href",ve="src",be=t=>"string"==typeof t,ye=function(){var t=window.getSelection();return!!t&&"Range"===t.type};let we,xe=null,Ee=null,Se=0,Pe=0,Ce=0,Te=0;const Me=new Map;let Oe=0;class Ae extends m{get isIdle(){return this.idle}get isCompact(){return this.option("compact")}constructor(t=[],e={},i={}){super(e),Object.defineProperty(this,"userSlides",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"userPlugins",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"idle",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"idleTimer",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"clickTimer",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"pwt",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"ignoreFocusChange",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"startedFs",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"state",{enumerable:!0,configurable:!0,writable:!0,value:lt.Init}),Object.defineProperty(this,"id",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"container",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"caption",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"footer",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"carousel",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"lastFocus",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"prevMouseMoveEvent",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),we||(we=at()),this.id=e.id||++Oe,Me.set(this.id,this),this.userSlides=t,this.userPlugins=i,queueMicrotask((()=>{this.init()}))}init(){if(this.state===lt.Destroy)return;this.state=lt.Init,this.attachPlugins(Object.assign(Object.assign({},Ae.Plugins),this.userPlugins)),this.emit("init"),this.emit("attachPlugins"),!0===this.option("hideScrollbar")&&(()=>{if(!it)return;const t=document,e=t.body,i=t.documentElement;if(e.classList.contains(ne))return;let n=window.innerWidth-i.getBoundingClientRect().width;const s=parseFloat(window.getComputedStyle(e).marginRight);n<0&&(n=0),i.style.setProperty(se,`${n}px`),s&&e.style.setProperty(oe,`${s}px`),e.classList.add(ne)})(),this.initLayout(),this.scale();const t=()=>{this.initCarousel(this.userSlides),this.state=lt.Ready,this.attachEvents(),this.emit("ready"),setTimeout((()=>{this.container&&this.container.setAttribute(ae,"false")}),16)};this.option("Fullscreen.autoStart")&&we&&!we.isFullscreen()?we.request().then((()=>{this.startedFs=!0,t()})).catch((()=>t())):t()}initLayout(){var t,e;const i=this.option("parentEl")||document.body,n=s(this.localize(this.option("tpl.main")||""));if(n){if(n.setAttribute("id",`fancybox-${this.id}`),n.setAttribute("aria-label",this.localize("{{MODAL}}")),n.classList.toggle(ce,this.isCompact),C(n,this.option("mainClass")||""),C(n,de),this.container=n,this.footer=n.querySelector(".fancybox__footer"),i.appendChild(n),C(document.documentElement,ie),xe&&Ee||(xe=document.createElement("span"),C(xe,"fancybox-focus-guard"),xe.setAttribute(fe,"0"),xe.setAttribute(ae,"true"),xe.setAttribute("aria-label","Focus guard"),Ee=xe.cloneNode(),null===(t=n.parentElement)||void 0===t||t.insertBefore(xe,n),null===(e=n.parentElement)||void 0===e||e.append(Ee)),n.addEventListener("mousedown",(t=>{Se=t.pageX,Pe=t.pageY,P(n,re)})),this.option("closeExisting"))for(const t of Me.values())t.id!==this.id&&t.close();else this.option("animated")&&(C(n,le),setTimeout((()=>{this.isClosing()||P(n,le)}),350));this.emit("initLayout")}}initCarousel(t){const e=this.container;if(!e)return;const n=e.querySelector(".fancybox__carousel");if(!n)return;const s=this.carousel=new tt(n,p({},{slides:t,transition:"fade",Panzoom:{lockAxis:this.option("dragToClose")?"xy":"x",infinite:!!this.option("dragToClose")&&"y"},Dots:!1,Navigation:{classes:{container:"fancybox__nav",button:"f-button",isNext:"is-next",isPrev:"is-prev"}},initialPage:this.option("startIndex"),l10n:this.option("l10n")},this.option("Carousel")||{}));s.on("*",((t,e,...i)=>{this.emit(`Carousel.${e}`,t,...i)})),s.on(["ready","change"],(()=>{this.manageCaption()})),this.on("Carousel.removeSlide",((t,e,i)=>{this.clearContent(i),i.state=void 0})),s.on("Panzoom.touchStart",(()=>{var t,e;this.isCompact||this.endIdle(),(null===(t=document.activeElement)||void 0===t?void 0:t.closest(".f-thumbs"))&&(null===(e=this.container)||void 0===e||e.focus())})),s.on("settle",(()=>{this.idleTimer||this.isCompact||!this.option("idle")||this.setIdle(),this.option("autoFocus")&&!this.isClosing&&this.checkFocus()})),this.option("dragToClose")&&(s.on("Panzoom.afterTransform",((t,e)=>{const n=this.getSlide();if(n&&i(n.el))return;const s=this.container;if(s){const t=Math.abs(e.current.f),i=t<1?"":Math.max(.5,Math.min(1,1-t/e.contentRect.fitHeight*1.5));s.style.setProperty("--fancybox-ts",i?"0s":""),s.style.setProperty("--fancybox-opacity",i+"")}})),s.on("Panzoom.touchEnd",((t,e,n)=>{var s;const o=this.getSlide();if(o&&i(o.el))return;if(e.isMobile&&document.activeElement&&-1!==["TEXTAREA","INPUT"].indexOf(null===(s=document.activeElement)||void 0===s?void 0:s.nodeName))return;const a=Math.abs(e.dragOffset.y);"y"===e.lockedAxis&&(a>=200||a>=50&&e.dragOffset.time<300)&&(n&&n.cancelable&&n.preventDefault(),this.close(n,"f-throwOut"+(e.current.f<0?"Up":"Down")))}))),s.on("change",(t=>{var e;let i=null===(e=this.getSlide())||void 0===e?void 0:e.triggerEl;if(i){const e=new CustomEvent("slideTo",{bubbles:!0,cancelable:!0,detail:t.page});i.dispatchEvent(e)}})),s.on(["refresh","change"],(t=>{const e=this.container;if(!e)return;for(const i of e.querySelectorAll("[data-fancybox-current-index]"))i.innerHTML=t.page+1;for(const i of e.querySelectorAll("[data-fancybox-count]"))i.innerHTML=t.pages.length;if(!t.isInfinite){for(const i of e.querySelectorAll("[data-fancybox-next]"))t.page<t.pages.length-1?(i.removeAttribute(pe),i.removeAttribute(fe)):(i.setAttribute(pe,""),i.setAttribute(fe,"-1"));for(const i of e.querySelectorAll("[data-fancybox-prev]"))t.page>0?(i.removeAttribute(pe),i.removeAttribute(fe)):(i.setAttribute(pe,""),i.setAttribute(fe,"-1"))}const i=this.getSlide();if(!i)return;let n=i.downloadSrc||"";n||"image"!==i.type||i.error||!be(i[ve])||(n=i[ve]);for(const t of e.querySelectorAll("[data-fancybox-download]")){const e=i.downloadFilename;n?(t.removeAttribute(pe),t.removeAttribute(fe),t.setAttribute(me,n),t.setAttribute(ge,e||n),t.setAttribute("target","_blank")):(t.setAttribute(pe,""),t.setAttribute(fe,"-1"),t.removeAttribute(me),t.removeAttribute(ge))}})),this.emit("initCarousel")}attachEvents(){const t=this,e=t.container;if(!e)return;e.addEventListener("click",t.onClick,{passive:!1,capture:!1}),e.addEventListener("wheel",t.onWheel,{passive:!1,capture:!1}),document.addEventListener("keydown",t.onKeydown,{passive:!1,capture:!0}),document.addEventListener("visibilitychange",t.onVisibilityChange,!1),document.addEventListener("mousemove",t.onMousemove),t.option("trapFocus")&&document.addEventListener("focus",t.onFocus,!0),window.addEventListener("resize",t.onResize);const i=window.visualViewport;i&&(i.addEventListener("scroll",t.onResize),i.addEventListener("resize",t.onResize))}detachEvents(){const t=this,e=t.container;if(!e)return;document.removeEventListener("keydown",t.onKeydown,{passive:!1,capture:!0}),e.removeEventListener("wheel",t.onWheel,{passive:!1,capture:!1}),e.removeEventListener("click",t.onClick,{passive:!1,capture:!1}),document.removeEventListener("mousemove",t.onMousemove),window.removeEventListener("resize",t.onResize);const i=window.visualViewport;i&&(i.removeEventListener("resize",t.onResize),i.removeEventListener("scroll",t.onResize)),document.removeEventListener("visibilitychange",t.onVisibilityChange,!1),document.removeEventListener("focus",t.onFocus,!0)}scale(){const t=this.container;if(!t)return;const e=window.visualViewport,i=Math.max(1,(null==e?void 0:e.scale)||1);let n="",s="",o="";if(e&&i>1){let t=`${e.offsetLeft}px`,a=`${e.offsetTop}px`;n=e.width*i+"px",s=e.height*i+"px",o=`translate3d(${t}, ${a}, 0) scale(${1/i})`}t.style.transform=o,t.style.width=n,t.style.height=s}onClick(t){var e;const{container:i,isCompact:n}=this;if(!i||this.isClosing())return;!n&&this.option("idle")&&this.resetIdle();const s=t.composedPath()[0];if(s.closest(".fancybox-spinner")||s.closest("[data-fancybox-close]"))return t.preventDefault(),void this.close(t);if(s.closest("[data-fancybox-prev]"))return t.preventDefault(),void this.prev();if(s.closest("[data-fancybox-next]"))return t.preventDefault(),void this.next();if("click"===t.type&&0===t.detail)return;if(Math.abs(t.pageX-Se)>30||Math.abs(t.pageY-Pe)>30)return;const o=document.activeElement;if(ye()&&o&&i.contains(o))return;if(n&&"image"===(null===(e=this.getSlide())||void 0===e?void 0:e.type))return void(this.clickTimer?(clearTimeout(this.clickTimer),this.clickTimer=null):this.clickTimer=setTimeout((()=>{this.toggleIdle(),this.clickTimer=null}),350));if(this.emit("click",t),t.defaultPrevented)return;let a=!1;if(s.closest(".fancybox__content")){if(o){if(o.closest("[contenteditable]"))return;s.matches(st)||o.blur()}if(ye())return;a=this.option("contentClick")}else s.closest(".fancybox__carousel")&&!s.matches(st)&&(a=this.option("backdropClick"));"close"===a?(t.preventDefault(),this.close(t)):"next"===a?(t.preventDefault(),this.next()):"prev"===a&&(t.preventDefault(),this.prev())}onWheel(t){const e=t.target;let i=this.option("wheel",t);e.closest(".fancybox__thumbs")&&(i="slide");const s="slide"===i,o=[-t.deltaX||0,-t.deltaY||0,-t.detail||0].reduce((function(t,e){return Math.abs(e)>Math.abs(t)?e:t})),a=Math.max(-1,Math.min(1,o)),r=Date.now();this.pwt&&r-this.pwt<300?s&&t.preventDefault():(this.pwt=r,this.emit("wheel",t,a),t.defaultPrevented||("close"===i?(t.preventDefault(),this.close(t)):"slide"===i&&(n(e)||(t.preventDefault(),this[a>0?"prev":"next"]()))))}onScroll(){window.scrollTo(Ce,Te)}onKeydown(t){if(!this.isTopmost())return;this.isCompact||!this.option("idle")||this.isClosing()||this.resetIdle();const e=t.key,i=this.option("keyboard");if(!i)return;const n=t.composedPath()[0],s=document.activeElement&&document.activeElement.classList,o=s&&s.contains("f-button")||n.dataset.carouselPage||n.dataset.carouselIndex;if("Escape"!==e&&!o&&S(n)){if(n.isContentEditable||-1!==["TEXTAREA","OPTION","INPUT","SELECT","VIDEO"].indexOf(n.nodeName))return}if("Tab"===t.key?C(this.container,re):P(this.container,re),t.ctrlKey||t.altKey||t.shiftKey)return;this.emit("keydown",e,t);const a=i[e];a&&"function"==typeof this[a]&&(t.preventDefault(),this[a]())}onResize(){const t=this.container;if(!t)return;const e=this.isCompact;t.classList.toggle(ce,e),this.manageCaption(this.getSlide()),this.isCompact?this.clearIdle():this.endIdle(),this.scale(),this.emit("resize")}onFocus(t){this.isTopmost()&&this.checkFocus(t)}onMousemove(t){this.prevMouseMoveEvent=t,!this.isCompact&&this.option("idle")&&this.resetIdle()}onVisibilityChange(){"visible"===document.visibilityState?this.checkFocus():this.endIdle()}manageCloseBtn(t){const e=this.optionFor(t,"closeButton")||!1;if("auto"===e){const t=this.plugins.Toolbar;if(t&&t.state===Ut.Ready)return}if(!e)return;if(!t.contentEl||t.closeBtnEl)return;const i=this.option("tpl.closeButton");if(i){const e=s(this.localize(i));t.closeBtnEl=t.contentEl.appendChild(e),t.el&&C(t.el,"has-close-btn")}}manageCaption(t=void 0){var e,i;const n="fancybox__caption",s=this.container;if(!s)return;P(s,ue);const o=this.isCompact||this.option("commonCaption"),a=!o;if(this.caption&&this.stop(this.caption),a&&this.caption&&(this.caption.remove(),this.caption=null),o&&!this.caption)for(const t of(null===(e=this.carousel)||void 0===e?void 0:e.slides)||[])t.captionEl&&(t.captionEl.remove(),t.captionEl=void 0,P(t.el,ue),null===(i=t.el)||void 0===i||i.removeAttribute("aria-labelledby"));if(t||(t=this.getSlide()),!t||o&&!this.isCurrentSlide(t))return;const r=t.el;let l=this.optionFor(t,"caption","");if(!l)return void(o&&this.caption&&this.animate(this.caption,"f-fadeOut",(()=>{this.caption&&(this.caption.innerHTML="")})));let c=null;if(a){if(c=t.captionEl||null,r&&!c){const e=n+`_${this.id}_${t.index}`;c=document.createElement("div"),C(c,n),c.setAttribute("id",e),t.captionEl=r.appendChild(c),C(r,ue),r.setAttribute("aria-labelledby",e)}}else{if(c=this.caption,c||(c=s.querySelector("."+n)),!c){c=document.createElement("div"),c.dataset.fancyboxCaption="",C(c,n);(this.footer||s).prepend(c)}C(s,ue),this.caption=c}c&&(c.innerHTML="",be(l)||"number"==typeof l?c.innerHTML=l+"":l instanceof HTMLElement&&c.appendChild(l))}checkFocus(t){this.focus(t)}focus(t){var e;if(this.ignoreFocusChange)return;const i=document.activeElement||null,n=(null==t?void 0:t.target)||null,s=this.container,o=null===(e=this.carousel)||void 0===e?void 0:e.viewport;if(!s||!o)return;if(!t&&i&&s.contains(i))return;const a=this.getSlide(),r=a&&a.state===ct.Ready?a.el:null;if(!r||r.contains(i)||s===i)return;t&&t.cancelable&&t.preventDefault(),this.ignoreFocusChange=!0;const l=Array.from(s.querySelectorAll(st));let c=[],h=null;for(let t of l){const e=!t.offsetParent||!!t.closest('[aria-hidden="true"]'),i=r&&r.contains(t),n=!o.contains(t);if(t===s||(i||n)&&!e){c.push(t);const e=t.dataset.origTabindex;void 0!==e&&e&&(t.tabIndex=parseFloat(e)),t.removeAttribute("data-orig-tabindex"),!t.hasAttribute("autoFocus")&&h||(h=t)}else{const e=void 0===t.dataset.origTabindex?t.getAttribute("tabindex")||"":t.dataset.origTabindex;e&&(t.dataset.origTabindex=e),t.tabIndex=-1}}let d=null;t?(!n||c.indexOf(n)<0)&&(d=h||s,c.length&&(i===Ee?d=c[0]:this.lastFocus!==s&&i!==xe||(d=c[c.length-1]))):d=a&&"image"===a.type?s:h||s,d&&ot(d),this.lastFocus=document.activeElement,this.ignoreFocusChange=!1}next(){const t=this.carousel;t&&t.pages.length>1&&t.slideNext()}prev(){const t=this.carousel;t&&t.pages.length>1&&t.slidePrev()}jumpTo(...t){this.carousel&&this.carousel.slideTo(...t)}isTopmost(){var t;return(null===(t=Ae.getInstance())||void 0===t?void 0:t.id)==this.id}animate(t=null,e="",i){if(!t||!e)return void(i&&i());this.stop(t);const n=s=>{s.target===t&&t.dataset.animationName&&(t.removeEventListener("animationend",n),delete t.dataset.animationName,i&&i(),P(t,e))};t.dataset.animationName=e,t.addEventListener("animationend",n),C(t,e)}stop(t){t&&t.dispatchEvent(new CustomEvent("animationend",{bubbles:!1,cancelable:!0,currentTarget:t}))}setContent(t,e="",i=!0){if(this.isClosing())return;const n=t.el;if(!n)return;let o=null;if(S(e)?o=e:(o=s(e+""),S(o)||(o=document.createElement("div"),o.innerHTML=e+"")),["img","picture","iframe","video","audio"].includes(o.nodeName.toLowerCase())){const t=document.createElement("div");t.appendChild(o),o=t}S(o)&&t.filter&&!t.error&&(o=o.querySelector(t.filter)),o&&S(o)?(C(o,"fancybox__content"),t.id&&o.setAttribute("id",t.id),n.classList.add(`has-${t.error?"error":t.type||"unknown"}`),n.prepend(o),"none"===o.style.display&&(o.style.display=""),"none"===getComputedStyle(o).getPropertyValue("display")&&(o.style.display=t.display||this.option("defaultDisplay")||"flex"),t.contentEl=o,i&&this.revealContent(t),this.manageCloseBtn(t),this.manageCaption(t)):this.setError(t,"{{ELEMENT_NOT_FOUND}}")}revealContent(t,e){const i=t.el,n=t.contentEl;i&&n&&(this.emit("reveal",t),this.hideLoading(t),t.state=ct.Opening,(e=this.isOpeningSlide(t)?void 0===e?this.optionFor(t,"showClass"):e:"f-fadeIn")?this.animate(n,e,(()=>{this.done(t)})):this.done(t))}done(t){this.isClosing()||(t.state=ct.Ready,this.emit("done",t),C(t.el,"is-done"),this.isCurrentSlide(t)&&this.option("autoFocus")&&queueMicrotask((()=>{var e;null===(e=t.panzoom)||void 0===e||e.updateControls(),this.option("autoFocus")&&this.focus()})),this.isOpeningSlide(t)&&(P(this.container,de),!this.isCompact&&this.option("idle")&&this.setIdle()))}isCurrentSlide(t){const e=this.getSlide();return!(!t||!e)&&e.index===t.index}isOpeningSlide(t){var e,i;return null===(null===(e=this.carousel)||void 0===e?void 0:e.prevPage)&&t&&t.index===(null===(i=this.getSlide())||void 0===i?void 0:i.index)}showLoading(t){t.state=ct.Loading;const e=t.el;if(!e)return;C(e,he),this.emit("loading",t),t.spinnerEl||setTimeout((()=>{if(!this.isClosing()&&!t.spinnerEl&&t.state===ct.Loading){let i=s(E);C(i,"fancybox-spinner"),t.spinnerEl=i,e.prepend(i),this.animate(i,"f-fadeIn")}}),250)}hideLoading(t){const e=t.el;if(!e)return;const i=t.spinnerEl;this.isClosing()?null==i||i.remove():(P(e,he),i&&this.animate(i,"f-fadeOut",(()=>{i.remove()})),t.state===ct.Loading&&(this.emit("loaded",t),t.state=ct.Ready))}setError(t,e){if(this.isClosing())return;const i=new Event("error",{bubbles:!0,cancelable:!0});if(this.emit("error",i,t),i.defaultPrevented)return;t.error=e,this.hideLoading(t),this.clearContent(t);const n=document.createElement("div");n.classList.add("fancybox-error"),n.innerHTML=this.localize(e||"<p>{{ERROR}}</p>"),this.setContent(t,n)}clearContent(t){if(void 0===t.state)return;this.emit("clearContent",t),t.contentEl&&(t.contentEl.remove(),t.contentEl=void 0);const e=t.el;e&&(P(e,"has-error"),P(e,"has-unknown"),P(e,`has-${t.type||"unknown"}`)),t.closeBtnEl&&t.closeBtnEl.remove(),t.closeBtnEl=void 0,t.captionEl&&t.captionEl.remove(),t.captionEl=void 0,t.spinnerEl&&t.spinnerEl.remove(),t.spinnerEl=void 0}getSlide(){var t;const e=this.carousel;return(null===(t=null==e?void 0:e.pages[null==e?void 0:e.page])||void 0===t?void 0:t.slides[0])||void 0}close(t,e){if(this.isClosing())return;const i=new Event("shouldClose",{bubbles:!0,cancelable:!0});if(this.emit("shouldClose",i,t),i.defaultPrevented)return;t&&t.cancelable&&(t.preventDefault(),t.stopPropagation());const n=()=>{this.proceedClose(t,e)};this.startedFs&&we&&we.isFullscreen()?Promise.resolve(we.exit()).then((()=>n())):n()}clearIdle(){this.idleTimer&&clearTimeout(this.idleTimer),this.idleTimer=null}setIdle(t=!1){const e=()=>{this.clearIdle(),this.idle=!0,C(this.container,"is-idle"),this.emit("setIdle")};if(this.clearIdle(),!this.isClosing())if(t)e();else{const t=this.option("idle");t&&(this.idleTimer=setTimeout(e,t))}}endIdle(){this.clearIdle(),this.idle&&!this.isClosing()&&(this.idle=!1,P(this.container,"is-idle"),this.emit("endIdle"))}resetIdle(){this.endIdle(),this.setIdle()}toggleIdle(){this.idle?this.endIdle():this.setIdle(!0)}toggleFullscreen(){we&&(we.isFullscreen()?we.exit():we.request().then((()=>{this.startedFs=!0})))}isClosing(){return[lt.Closing,lt.CustomClosing,lt.Destroy].includes(this.state)}proceedClose(t,e){var i,n;this.state=lt.Closing,this.clearIdle(),this.detachEvents();const s=this.container,o=this.carousel,a=this.getSlide(),r=a&&this.option("placeFocusBack")?a.triggerEl||this.option("triggerEl"):null;if(r&&(et(r)?ot(r):r.focus()),s&&(P(s,de),C(s,"is-closing"),s.setAttribute(ae,"true"),this.option("animated")&&C(s,le),s.style.pointerEvents="none"),o){o.clearTransitions(),null===(i=o.panzoom)||void 0===i||i.destroy(),null===(n=o.plugins.Navigation)||void 0===n||n.detach();for(const t of o.slides){t.state=ct.Closing,this.hideLoading(t);const e=t.contentEl;e&&this.stop(e);const i=null==t?void 0:t.panzoom;i&&(i.stop(),i.detachEvents(),i.detachObserver()),this.isCurrentSlide(t)||o.emit("removeSlide",t)}}Ce=window.scrollX,Te=window.scrollY,window.addEventListener("scroll",this.onScroll),this.emit("close",t),this.state!==lt.CustomClosing?(void 0===e&&a&&(e=this.optionFor(a,"hideClass")),e&&a?(this.animate(a.contentEl,e,(()=>{o&&o.emit("removeSlide",a)})),setTimeout((()=>{this.destroy()}),500)):this.destroy()):setTimeout((()=>{this.destroy()}),500)}destroy(){var t;if(this.state===lt.Destroy)return;window.removeEventListener("scroll",this.onScroll),this.state=lt.Destroy,null===(t=this.carousel)||void 0===t||t.destroy();const e=this.container;e&&e.remove(),Me.delete(this.id);const i=Ae.getInstance();i?i.focus():(xe&&(xe.remove(),xe=null),Ee&&(Ee.remove(),Ee=null),P(document.documentElement,ie),(()=>{if(!it)return;const t=document,e=t.body;e.classList.remove(ne),e.style.setProperty(oe,""),t.documentElement.style.setProperty(se,"")})(),this.emit("destroy"))}static bind(t,e,i){if(!it)return;let n,s="",o={};if(void 0===t?n=document.body:be(t)?(n=document.body,s=t,"object"==typeof e&&(o=e||{})):(n=t,be(e)&&(s=e),"object"==typeof i&&(o=i||{})),!n||!S(n))return;s=s||"[data-fancybox]";const a=Ae.openers.get(n)||new Map;a.set(s,o),Ae.openers.set(n,a),1===a.size&&n.addEventListener("click",Ae.fromEvent)}static unbind(t,e){let i,n="";if(be(t)?(i=document.body,n=t):(i=t,be(e)&&(n=e)),!i)return;const s=Ae.openers.get(i);s&&n&&s.delete(n),n&&s||(Ae.openers.delete(i),i.removeEventListener("click",Ae.fromEvent))}static destroy(){let t;for(;t=Ae.getInstance();)t.destroy();for(const t of Ae.openers.keys())t.removeEventListener("click",Ae.from
35Event);Ae.openers=new Map}static fromEvent(t){if(t.defaultPrevented)return;if(t.button&&0!==t.button)return;if(t.ctrlKey||t.metaKey||t.shiftKey)return;let e=t.composedPath()[0];const i=e.closest("[data-fancybox-trigger]");if(i){const t=i.dataset.fancyboxTrigger||"",n=document.querySelectorAll(`[data-fancybox="${t}"]`),s=parseInt(i.dataset.fancyboxIndex||"",10)||0;e=n[s]||e}if(!(e&&e instanceof Element))return;let n,s,o,a;if([...Ae.openers].reverse().find((([t,i])=>!(!t.contains(e)||![...i].reverse().find((([i,r])=>{let l=e.closest(i);return!!l&&(n=t,s=i,o=l,a=r,!0)}))))),!n||!s||!o)return;a=a||{},t.preventDefault(),e=o;let r=[],l=p({},rt,a);l.event=t,l.triggerEl=e,l.delegate=i;const c=l.groupAll,h=l.groupAttr,d=h&&e?e.getAttribute(`${h}`):"";if((!e||d||c)&&(r=[].slice.call(n.querySelectorAll(s))),e&&!c&&(r=d?r.filter((t=>t.getAttribute(`${h}`)===d)):[e]),!r.length)return;const u=Ae.getInstance();return u&&u.options.triggerEl&&r.indexOf(u.options.triggerEl)>-1?void 0:(e&&(l.startIndex=r.indexOf(e)),Ae.fromNodes(r,l))}static fromSelector(t,e,i){let n=null,s="",o={};if(be(t)?(n=document.body,s=t,"object"==typeof e&&(o=e||{})):t instanceof HTMLElement&&be(e)&&(n=t,s=e,"object"==typeof i&&(o=i||{})),!n||!s)return!1;const a=Ae.openers.get(n);return!!a&&(o=p({},a.get(s)||{},o),!!o&&Ae.fromNodes(Array.from(n.querySelectorAll(s)),o))}static fromNodes(t,e){e=p({},rt,e||{});const i=[];for(const n of t){const t=n.dataset||{},s=t[ve]||n.getAttribute(me)||n.getAttribute("currentSrc")||n.getAttribute(ve)||void 0;let o;const a=e.delegate;let r;a&&i.length===e.startIndex&&(o=a instanceof HTMLImageElement?a:a.querySelector("img:not([aria-hidden])")),o||(o=n instanceof HTMLImageElement?n:n.querySelector("img:not([aria-hidden])")),o&&(r=o.currentSrc||o[ve]||void 0,!r&&o.dataset&&(r=o.dataset.lazySrc||o.dataset[ve]||void 0));const l={src:s,triggerEl:n,thumbEl:o,thumbElSrc:r,thumbSrc:r};for(const e in t){let i=t[e]+"";i="false"!==i&&("true"===i||i),l[e]=i}i.push(l)}return new Ae(i,e)}static getInstance(t){if(t)return Me.get(t);return Array.from(Me.values()).reverse().find((t=>!t.isClosing()&&t))||null}static getSlide(){var t;return(null===(t=Ae.getInstance())||void 0===t?void 0:t.getSlide())||null}static show(t=[],e={}){return new Ae(t,e)}static next(){const t=Ae.getInstance();t&&t.next()}static prev(){const t=Ae.getInstance();t&&t.prev()}static close(t=!0,...e){if(t)for(const t of Me.values())t.close(...e);else{const t=Ae.getInstance();t&&t.close(...e)}}}Object.defineProperty(Ae,"version",{enumerable:!0,configurable:!0,writable:!0,value:"5.0.36"}),Object.defineProperty(Ae,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:rt}),Object.defineProperty(Ae,"Plugins",{enumerable:!0,configurable:!0,writable:!0,value:ee}),Object.defineProperty(Ae,"openers",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),t.Carousel=tt,t.Fancybox=Ae,t.Panzoom=D})); 36 37/** 38 * Swiper 11.1.12 39 * Most modern mobile touch slider and framework with hardware accelerated transitions 40 * https://swiperjs.com 41 * 42 * Copyright 2014-2024 Vladimir Kharlampidi 43 * 44 * Released under the MIT License 45 * 46 * Released on: September 1, 2024 47 */ 48 49var Swiper = (function () { 50 'use strict'; 51 52 /** 53 * SSR Window 4.0.2 54 * Better handling for window object in SSR environment 55 * https://github.com/nolimits4web/ssr-window 56 * 57 * Copyright 2021, Vladimir Kharlampidi 58 * 59 * Licensed under MIT 60 * 61 * Released on: December 13, 2021 62 */ 63 /* eslint-disable no-param-reassign */ 64 function isObject$1(obj) { 65 return obj !== null && typeof obj === 'object' && 'constructor' in obj && obj.constructor === Object; 66 } 67 function extend$1(target, src) { 68 if (target === void 0) { 69 target = {}; 70 } 71 if (src === void 0) { 72 src = {}; 73 } 74 Object.keys(src).forEach(key => { 75 if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject$1(src[key]) && isObject$1(target[key]) && Object.keys(src[key]).length > 0) { 76 extend$1(target[key], src[key]); 77 } 78 }); 79 } 80 const ssrDocument = { 81 body: {}, 82 addEventListener() {}, 83 removeEventListener() {}, 84 activeElement: { 85 blur() {}, 86 nodeName: '' 87 }, 88 querySelector() { 89 return null; 90 }, 91 querySelectorAll() { 92 return []; 93 }, 94 getElementById() { 95 return null; 96 }, 97 createEvent() { 98 return { 99 initEvent() {} 100 }; 101 }, 102 createElement() { 103 return { 104 children: [], 105 childNodes: [], 106 style: {}, 107 setAttribute() {}, 108 getElementsByTagName() { 109 return []; 110 } 111 }; 112 }, 113 createElementNS() { 114 return {}; 115 }, 116 importNode() { 117 return null; 118 }, 119 location: { 120 hash: '', 121 host: '', 122 hostname: '', 123 href: '', 124 origin: '', 125 pathname: '', 126 protocol: '', 127 search: '' 128 } 129 }; 130 function getDocument() { 131 const doc = typeof document !== 'undefined' ? document : {}; 132 extend$1(doc, ssrDocument); 133 return doc; 134 } 135 const ssrWindow = { 136 document: ssrDocument, 137 navigator: { 138 userAgent: '' 139 }, 140 location: { 141 hash: '', 142 host: '', 143 hostname: '', 144 href: '', 145 origin: '', 146 pathname: '', 147 protocol: '', 148 search: '' 149 }, 150 history: { 151 replaceState() {}, 152 pushState() {}, 153 go() {}, 154 back() {} 155 }, 156 CustomEvent: function CustomEvent() { 157 return this; 158 }, 159 addEventListener() {}, 160 removeEventListener() {}, 161 getComputedStyle() { 162 return { 163 getPropertyValue() { 164 return ''; 165 } 166 }; 167 }, 168 Image() {}, 169 Date() {}, 170 screen: {}, 171 setTimeout() {}, 172 clearTimeout() {}, 173 matchMedia() { 174 return {}; 175 }, 176 requestAnimationFrame(callback) { 177 if (typeof setTimeout === 'undefined') { 178 callback(); 179 return null; 180 } 181 return setTimeout(callback, 0); 182 }, 183 cancelAnimationFrame(id) { 184 if (typeof setTimeout === 'undefined') { 185 return; 186 } 187 clearTimeout(id); 188 } 189 }; 190 function getWindow() { 191 const win = typeof window !== 'undefined' ? window : {}; 192 extend$1(win, ssrWindow); 193 return win; 194 } 195
vendor: 7,364 bytes, lines 196-409
196 function classesToTokens(classes) { 197 if (classes === void 0) { 198 classes = ''; 199 } 200 return classes.trim().split(' ').filter(c => !!c.trim()); 201 } 202 203 function deleteProps(obj) { 204 const object = obj; 205 Object.keys(object).forEach(key => { 206 try { 207 object[key] = null; 208 } catch (e) { 209 // no getter for object 210 } 211 try { 212 delete object[key]; 213 } catch (e) { 214 // something got wrong 215 } 216 }); 217 } 218 function nextTick(callback, delay) { 219 if (delay === void 0) { 220 delay = 0; 221 } 222 return setTimeout(callback, delay); 223 } 224 function now() { 225 return Date.now(); 226 } 227 function getComputedStyle$1(el) { 228 const window = getWindow(); 229 let style; 230 if (window.getComputedStyle) { 231 style = window.getComputedStyle(el, null); 232 } 233 if (!style && el.currentStyle) { 234 style = el.currentStyle; 235 } 236 if (!style) { 237 style = el.style; 238 } 239 return style; 240 } 241 function getTranslate(el, axis) { 242 if (axis === void 0) { 243 axis = 'x'; 244 } 245 const window = getWindow(); 246 let matrix; 247 let curTransform; 248 let transformMatrix; 249 const curStyle = getComputedStyle$1(el); 250 if (window.WebKitCSSMatrix) { 251 curTransform = curStyle.transform || curStyle.webkitTransform; 252 if (curTransform.split(',').length > 6) { 253 curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', '); 254 } 255 // Some old versions of Webkit choke when 'none' is passed; pass 256 // empty string instead in this case 257 transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform); 258 } else { 259 transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,'); 260 matrix = transformMatrix.toString().split(','); 261 } 262 if (axis === 'x') { 263 // Latest Chrome and webkits Fix 264 if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; 265 // Crazy IE10 Matrix 266 else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); 267 // Normal Browsers 268 else curTransform = parseFloat(matrix[4]); 269 } 270 if (axis === 'y') { 271 // Latest Chrome and webkits Fix 272 if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; 273 // Crazy IE10 Matrix 274 else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); 275 // Normal Browsers 276 else curTransform = parseFloat(matrix[5]); 277 } 278 return curTransform || 0; 279 } 280 function isObject(o) { 281 return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object'; 282 } 283 function isNode(node) { 284 // eslint-disable-next-line 285 if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') { 286 return node instanceof HTMLElement; 287 } 288 return node && (node.nodeType === 1 || node.nodeType === 11); 289 } 290 function extend() { 291 const to = Object(arguments.length <= 0 ? undefined : arguments[0]); 292 const noExtend = ['__proto__', 'constructor', 'prototype']; 293 for (let i = 1; i < arguments.length; i += 1) { 294 const nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i]; 295 if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) { 296 const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0); 297 for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) { 298 const nextKey = keysArray[nextIndex]; 299 const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey); 300 if (desc !== undefined && desc.enumerable) { 301 if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) { 302 if (nextSource[nextKey].__swiper__) { 303 to[nextKey] = nextSource[nextKey]; 304 } else { 305 extend(to[nextKey], nextSource[nextKey]); 306 } 307 } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) { 308 to[nextKey] = {}; 309 if (nextSource[nextKey].__swiper__) { 310 to[nextKey] = nextSource[nextKey]; 311 } else { 312 extend(to[nextKey], nextSource[nextKey]); 313 } 314 } else { 315 to[nextKey] = nextSource[nextKey]; 316 } 317 } 318 } 319 } 320 } 321 return to; 322 } 323 function setCSSProperty(el, varName, varValue) { 324 el.style.setProperty(varName, varValue); 325 } 326 function animateCSSModeScroll(_ref) { 327 let { 328 swiper, 329 targetPosition, 330 side 331 } = _ref; 332 const window = getWindow(); 333 const startPosition = -swiper.translate; 334 let startTime = null; 335 let time; 336 const duration = swiper.params.speed; 337 swiper.wrapperEl.style.scrollSnapType = 'none'; 338 window.cancelAnimationFrame(swiper.cssModeFrameID); 339 const dir = targetPosition > startPosition ? 'next' : 'prev'; 340 const isOutOfBound = (current, target) => { 341 return dir === 'next' && current >= target || dir === 'prev' && current <= target; 342 }; 343 const animate = () => { 344 time = new Date().getTime(); 345 if (startTime === null) { 346 startTime = time; 347 } 348 const progress = Math.max(Math.min((time - startTime) / duration, 1), 0); 349 const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2; 350 let currentPosition = startPosition + easeProgress * (targetPosition - startPosition); 351 if (isOutOfBound(currentPosition, targetPosition)) { 352 currentPosition = targetPosition; 353 } 354 swiper.wrapperEl.scrollTo({ 355 [side]: currentPosition 356 }); 357 if (isOutOfBound(currentPosition, targetPosition)) { 358 swiper.wrapperEl.style.overflow = 'hidden'; 359 swiper.wrapperEl.style.scrollSnapType = ''; 360 setTimeout(() => { 361 swiper.wrapperEl.style.overflow = ''; 362 swiper.wrapperEl.scrollTo({ 363 [side]: currentPosition 364 }); 365 }); 366 window.cancelAnimationFrame(swiper.cssModeFrameID); 367 return; 368 } 369 swiper.cssModeFrameID = window.requestAnimationFrame(animate); 370 }; 371 animate(); 372 } 373 function getSlideTransformEl(slideEl) { 374 return slideEl.querySelector('.swiper-slide-transform') || slideEl.shadowRoot && slideEl.shadowRoot.querySelector('.swiper-slide-transform') || slideEl; 375 } 376 function elementChildren(element, selector) { 377 if (selector === void 0) { 378 selector = ''; 379 } 380 const children = [...element.children]; 381 if (element instanceof HTMLSlotElement) { 382 children.push(...element.assignedElements()); 383 } 384 if (!selector) { 385 return children; 386 } 387 return children.filter(el => el.matches(selector)); 388 } 389 function elementIsChildOf(el, parent) { 390 const isChild = parent.contains(el); 391 if (!isChild && parent instanceof HTMLSlotElement) { 392 const children = [...parent.assignedElements()]; 393 return children.includes(el); 394 } 395 return isChild; 396 } 397 function showWarning(text) { 398 try { 399 console.warn(text); 400 return; 401 } catch (err) { 402 // err 403 } 404 } 405 function createElement(tag, classes) { 406 if (classes === void 0) { 407 classes = []; 408 } 409 const el = document.createElement(tag);
vendor: 3,772 bytes, lines 410-528
410 el.classList.add(...(Array.isArray(classes) ? classes : classesToTokens(classes))); 411 return el; 412 } 413 function elementOffset(el) { 414 const window = getWindow(); 415 const document = getDocument(); 416 const box = el.getBoundingClientRect(); 417 const body = document.body; 418 const clientTop = el.clientTop || body.clientTop || 0; 419 const clientLeft = el.clientLeft || body.clientLeft || 0; 420 const scrollTop = el === window ? window.scrollY : el.scrollTop; 421 const scrollLeft = el === window ? window.scrollX : el.scrollLeft; 422 return { 423 top: box.top + scrollTop - clientTop, 424 left: box.left + scrollLeft - clientLeft 425 }; 426 } 427 function elementPrevAll(el, selector) { 428 const prevEls = []; 429 while (el.previousElementSibling) { 430 const prev = el.previousElementSibling; // eslint-disable-line 431 if (selector) { 432 if (prev.matches(selector)) prevEls.push(prev); 433 } else prevEls.push(prev); 434 el = prev; 435 } 436 return prevEls; 437 } 438 function elementNextAll(el, selector) { 439 const nextEls = []; 440 while (el.nextElementSibling) { 441 const next = el.nextElementSibling; // eslint-disable-line 442 if (selector) { 443 if (next.matches(selector)) nextEls.push(next); 444 } else nextEls.push(next); 445 el = next; 446 } 447 return nextEls; 448 } 449 function elementStyle(el, prop) { 450 const window = getWindow(); 451 return window.getComputedStyle(el, null).getPropertyValue(prop); 452 } 453 function elementIndex(el) { 454 let child = el; 455 let i; 456 if (child) { 457 i = 0; 458 // eslint-disable-next-line 459 while ((child = child.previousSibling) !== null) { 460 if (child.nodeType === 1) i += 1; 461 } 462 return i; 463 } 464 return undefined; 465 } 466 function elementParents(el, selector) { 467 const parents = []; // eslint-disable-line 468 let parent = el.parentElement; // eslint-disable-line 469 while (parent) { 470 if (selector) { 471 if (parent.matches(selector)) parents.push(parent); 472 } else { 473 parents.push(parent); 474 } 475 parent = parent.parentElement; 476 } 477 return parents; 478 } 479 function elementTransitionEnd(el, callback) { 480 function fireCallBack(e) { 481 if (e.target !== el) return; 482 callback.call(el, e); 483 el.removeEventListener('transitionend', fireCallBack); 484 } 485 if (callback) { 486 el.addEventListener('transitionend', fireCallBack); 487 } 488 } 489 function elementOuterSize(el, size, includeMargins) { 490 const window = getWindow(); 491 if (includeMargins) { 492 return el[size === 'width' ? 'offsetWidth' : 'offsetHeight'] + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-right' : 'margin-top')) + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-left' : 'margin-bottom')); 493 } 494 return el.offsetWidth; 495 } 496 function makeElementsArray(el) { 497 return (Array.isArray(el) ? el : [el]).filter(e => !!e); 498 } 499 function getRotateFix(swiper) { 500 return v => { 501 if (Math.abs(v) > 0 && swiper.browser && swiper.browser.need3dFix && Math.abs(v) % 90 === 0) { 502 return v + 0.001; 503 } 504 return v; 505 }; 506 } 507 508 let support; 509 function calcSupport() { 510 const window = getWindow(); 511 const document = getDocument(); 512 return { 513 smoothScroll: document.documentElement && document.documentElement.style && 'scrollBehavior' in document.documentElement.style, 514 touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch) 515 }; 516 } 517 function getSupport() { 518 if (!support) { 519 support = calcSupport(); 520 } 521 return support; 522 } 523 524 let deviceCached; 525 function calcDevice(_temp) { 526 let { 527 userAgent 528 } = _temp === void 0 ? {} : _temp;
vendor: 4,996 bytes, lines 529-687
529 const support = getSupport(); 530 const window = getWindow(); 531 const platform = window.navigator.platform; 532 const ua = userAgent || window.navigator.userAgent; 533 const device = { 534 ios: false, 535 android: false 536 }; 537 const screenWidth = window.screen.width; 538 const screenHeight = window.screen.height; 539 const android = ua.match(/(Android);?[\s\/]+([\d.]+)?/); // eslint-disable-line 540 let ipad = ua.match(/(iPad).*OS\s([\d_]+)/); 541 const ipod = ua.match(/(iPod)(.*OS\s([\d_]+))?/); 542 const iphone = !ipad && ua.match(/(iPhone\sOS|iOS)\s([\d_]+)/); 543 const windows = platform === 'Win32'; 544 let macos = platform === 'MacIntel'; 545 546 // iPadOs 13 fix 547 const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810']; 548 if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) { 549 ipad = ua.match(/(Version)\/([\d.]+)/); 550 if (!ipad) ipad = [0, 1, '13_0_0']; 551 macos = false; 552 } 553 554 // Android 555 if (android && !windows) { 556 device.os = 'android'; 557 device.android = true; 558 } 559 if (ipad || iphone || ipod) { 560 device.os = 'ios'; 561 device.ios = true; 562 } 563 564 // Export object 565 return device; 566 } 567 function getDevice(overrides) { 568 if (overrides === void 0) { 569 overrides = {}; 570 } 571 if (!deviceCached) { 572 deviceCached = calcDevice(overrides); 573 } 574 return deviceCached; 575 } 576 577 let browser; 578 function calcBrowser() { 579 const window = getWindow(); 580 const device = getDevice(); 581 let needPerspectiveFix = false; 582 function isSafari() { 583 const ua = window.navigator.userAgent.toLowerCase(); 584 return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0; 585 } 586 if (isSafari()) { 587 const ua = String(window.navigator.userAgent); 588 if (ua.includes('Version/')) { 589 const [major, minor] = ua.split('Version/')[1].split(' ')[0].split('.').map(num => Number(num)); 590 needPerspectiveFix = major < 16 || major === 16 && minor < 2; 591 } 592 } 593 const isWebView = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent); 594 const isSafariBrowser = isSafari(); 595 const need3dFix = isSafariBrowser || isWebView && device.ios; 596 return { 597 isSafari: needPerspectiveFix || isSafariBrowser, 598 needPerspectiveFix, 599 need3dFix, 600 isWebView 601 }; 602 } 603 function getBrowser() { 604 if (!browser) { 605 browser = calcBrowser(); 606 } 607 return browser; 608 } 609 610 function Resize(_ref) { 611 let { 612 swiper, 613 on, 614 emit 615 } = _ref; 616 const window = getWindow(); 617 let observer = null; 618 let animationFrame = null; 619 const resizeHandler = () => { 620 if (!swiper || swiper.destroyed || !swiper.initialized) return; 621 emit('beforeResize'); 622 emit('resize'); 623 }; 624 const createObserver = () => { 625 if (!swiper || swiper.destroyed || !swiper.initialized) return; 626 observer = new ResizeObserver(entries => { 627 animationFrame = window.requestAnimationFrame(() => { 628 const { 629 width, 630 height 631 } = swiper; 632 let newWidth = width; 633 let newHeight = height; 634 entries.forEach(_ref2 => { 635 let { 636 contentBoxSize, 637 contentRect, 638 target 639 } = _ref2; 640 if (target && target !== swiper.el) return; 641 newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize; 642 newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize; 643 }); 644 if (newWidth !== width || newHeight !== height) { 645 resizeHandler(); 646 } 647 }); 648 }); 649 observer.observe(swiper.el); 650 }; 651 const removeObserver = () => { 652 if (animationFrame) { 653 window.cancelAnimationFrame(animationFrame); 654 } 655 if (observer && observer.unobserve && swiper.el) { 656 observer.unobserve(swiper.el); 657 observer = null; 658 } 659 }; 660 const orientationChangeHandler = () => { 661 if (!swiper || swiper.destroyed || !swiper.initialized) return; 662 emit('orientationchange'); 663 }; 664 on('init', () => { 665 if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') { 666 createObserver(); 667 return; 668 } 669 window.addEventListener('resize', resizeHandler); 670 window.addEventListener('orientationchange', orientationChangeHandler); 671 }); 672 on('destroy', () => { 673 removeObserver(); 674 window.removeEventListener('resize', resizeHandler); 675 window.removeEventListener('orientationchange', orientationChangeHandler); 676 }); 677 } 678 679 function Observer(_ref) { 680 let { 681 swiper, 682 extendParams, 683 on, 684 emit 685 } = _ref; 686 const observers = []; 687 const window = getWindow
vendor: 9,007 bytes, lines 687-944
687(); 688 const attach = function (target, options) { 689 if (options === void 0) { 690 options = {}; 691 } 692 const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver; 693 const observer = new ObserverFunc(mutations => { 694 // The observerUpdate event should only be triggered 695 // once despite the number of mutations. Additional 696 // triggers are redundant and are very costly 697 if (swiper.__preventObserver__) return; 698 if (mutations.length === 1) { 699 emit('observerUpdate', mutations[0]); 700 return; 701 } 702 const observerUpdate = function observerUpdate() { 703 emit('observerUpdate', mutations[0]); 704 }; 705 if (window.requestAnimationFrame) { 706 window.requestAnimationFrame(observerUpdate); 707 } else { 708 window.setTimeout(observerUpdate, 0); 709 } 710 }); 711 observer.observe(target, { 712 attributes: typeof options.attributes === 'undefined' ? true : options.attributes, 713 childList: swiper.isElement || (typeof options.childList === 'undefined' ? true : options).childList, 714 characterData: typeof options.characterData === 'undefined' ? true : options.characterData 715 }); 716 observers.push(observer); 717 }; 718 const init = () => { 719 if (!swiper.params.observer) return; 720 if (swiper.params.observeParents) { 721 const containerParents = elementParents(swiper.hostEl); 722 for (let i = 0; i < containerParents.length; i += 1) { 723 attach(containerParents[i]); 724 } 725 } 726 // Observe container 727 attach(swiper.hostEl, { 728 childList: swiper.params.observeSlideChildren 729 }); 730 731 // Observe wrapper 732 attach(swiper.wrapperEl, { 733 attributes: false 734 }); 735 }; 736 const destroy = () => { 737 observers.forEach(observer => { 738 observer.disconnect(); 739 }); 740 observers.splice(0, observers.length); 741 }; 742 extendParams({ 743 observer: false, 744 observeParents: false, 745 observeSlideChildren: false 746 }); 747 on('init', init); 748 on('destroy', destroy); 749 } 750 751 /* eslint-disable no-underscore-dangle */ 752 753 var eventsEmitter = { 754 on(events, handler, priority) { 755 const self = this; 756 if (!self.eventsListeners || self.destroyed) return self; 757 if (typeof handler !== 'function') return self; 758 const method = priority ? 'unshift' : 'push'; 759 events.split(' ').forEach(event => { 760 if (!self.eventsListeners[event]) self.eventsListeners[event] = []; 761 self.eventsListeners[event][method](handler); 762 }); 763 return self; 764 }, 765 once(events, handler, priority) { 766 const self = this; 767 if (!self.eventsListeners || self.destroyed) return self; 768 if (typeof handler !== 'function') return self; 769 function onceHandler() { 770 self.off(events, onceHandler); 771 if (onceHandler.__emitterProxy) { 772 delete onceHandler.__emitterProxy; 773 } 774 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { 775 args[_key] = arguments[_key]; 776 } 777 handler.apply(self, args); 778 } 779 onceHandler.__emitterProxy = handler; 780 return self.on(events, onceHandler, priority); 781 }, 782 onAny(handler, priority) { 783 const self = this; 784 if (!self.eventsListeners || self.destroyed) return self; 785 if (typeof handler !== 'function') return self; 786 const method = priority ? 'unshift' : 'push'; 787 if (self.eventsAnyListeners.indexOf(handler) < 0) { 788 self.eventsAnyListeners[method](handler); 789 } 790 return self; 791 }, 792 offAny(handler) { 793 const self = this; 794 if (!self.eventsListeners || self.destroyed) return self; 795 if (!self.eventsAnyListeners) return self; 796 const index = self.eventsAnyListeners.indexOf(handler); 797 if (index >= 0) { 798 self.eventsAnyListeners.splice(index, 1); 799 } 800 return self; 801 }, 802 off(events, handler) { 803 const self = this; 804 if (!self.eventsListeners || self.destroyed) return self; 805 if (!self.eventsListeners) return self; 806 events.split(' ').forEach(event => { 807 if (typeof handler === 'undefined') { 808 self.eventsListeners[event] = []; 809 } else if (self.eventsListeners[event]) { 810 self.eventsListeners[event].forEach((eventHandler, index) => { 811 if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) { 812 self.eventsListeners[event].splice(index, 1); 813 } 814 }); 815 } 816 }); 817 return self; 818 }, 819 emit() { 820 const self = this; 821 if (!self.eventsListeners || self.destroyed) return self; 822 if (!self.eventsListeners) return self; 823 let events; 824 let data; 825 let context; 826 for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { 827 args[_key2] = arguments[_key2]; 828 } 829 if (typeof args[0] === 'string' || Array.isArray(args[0])) { 830 events = args[0]; 831 data = args.slice(1, args.length); 832 context = self; 833 } else { 834 events = args[0].events; 835 data = args[0].data; 836 context = args[0].context || self; 837 } 838 data.unshift(context); 839 const eventsArray = Array.isArray(events) ? events : events.split(' '); 840 eventsArray.forEach(event => { 841 if (self.eventsAnyListeners && self.eventsAnyListeners.length) { 842 self.eventsAnyListeners.forEach(eventHandler => { 843 eventHandler.apply(context, [event, ...data]); 844 }); 845 } 846 if (self.eventsListeners && self.eventsListeners[event]) { 847 self.eventsListeners[event].forEach(eventHandler => { 848 eventHandler.apply(context, data); 849 }); 850 } 851 }); 852 return self; 853 } 854 }; 855 856 function updateSize() { 857 const swiper = this; 858 let width; 859 let height; 860 const el = swiper.el; 861 if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) { 862 width = swiper.params.width; 863 } else { 864 width = el.clientWidth; 865 } 866 if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) { 867 height = swiper.params.height; 868 } else { 869 height = el.clientHeight; 870 } 871 if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) { 872 return; 873 } 874 875 // Subtract paddings 876 width = width - parseInt(elementStyle(el, 'padding-left') || 0, 10) - parseInt(elementStyle(el, 'padding-right') || 0, 10); 877 height = height - parseInt(elementStyle(el, 'padding-top') || 0, 10) - parseInt(elementStyle(el, 'padding-bottom') || 0, 10); 878 if (Number.isNaN(width)) width = 0; 879 if (Number.isNaN(height)) height = 0; 880 Object.assign(swiper, { 881 width, 882 height, 883 size: swiper.isHorizontal() ? width : height 884 }); 885 } 886 887 function updateSlides() { 888 const swiper = this; 889 function getDirectionPropertyValue(node, label) { 890 return parseFloat(node.getPropertyValue(swiper.getDirectionLabel(label)) || 0); 891 } 892 const params = swiper.params; 893 const { 894 wrapperEl, 895 slidesEl, 896 size: swiperSize, 897 rtlTranslate: rtl, 898 wrongRTL 899 } = swiper; 900 const isVirtual = swiper.virtual && params.virtual.enabled; 901 const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length; 902 const slides = elementChildren(slidesEl, `.${swiper.params.slideClass}, swiper-slide`); 903 const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length; 904 let snapGrid = []; 905 const slidesGrid = []; 906 const slidesSizesGrid = []; 907 let offsetBefore = params.slidesOffsetBefore; 908 if (typeof offsetBefore === 'function') { 909 offsetBefore = params.slidesOffsetBefore.call(swiper); 910 } 911 let offsetAfter = params.slidesOffsetAfter; 912 if (typeof offsetAfter === 'function') { 913 offsetAfter = params.slidesOffsetAfter.call(swiper); 914 } 915 const previousSnapGridLength = swiper.snapGrid.length; 916 const previousSlidesGridLength = swiper.slidesGrid.length; 917 let spaceBetween = params.spaceBetween; 918 let slidePosition = -offsetBefore; 919 let prevSlideSize = 0; 920 let index = 0; 921 if (typeof swiperSize === 'undefined') { 922 return; 923 } 924 if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) { 925 spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize; 926 } else if (typeof spaceBetween === 'string') { 927 spaceBetween = parseFloat(spaceBetween); 928 } 929 swiper.virtualSize = -spaceBetween; 930 931 // reset margins 932 slides.forEach(slideEl => { 933 if (rtl) { 934 slideEl.style.marginLeft = ''; 935 } else { 936 slideEl.style.marginRight = ''; 937 } 938 slideEl.style.marginBottom = ''; 939 slideEl.style.marginTop = ''; 940 }); 941 942 // reset cssMode offsets 943 if (params.centeredSlides && params.cssMode) { 944 setCSSProperty
944(wrapperEl, '--swiper-centered-offset-before', ''); 945 setCSSProperty
vendor: 7,943 bytes, lines 945-1130
945(wrapperEl, '--swiper-centered-offset-after', ''); 946 } 947 const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid; 948 if (gridEnabled) { 949 swiper.grid.initSlides(slides); 950 } else if (swiper.grid) { 951 swiper.grid.unsetSlides(); 952 } 953 954 // Calc slides 955 let slideSize; 956 const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => { 957 return typeof params.breakpoints[key].slidesPerView !== 'undefined'; 958 }).length > 0; 959 for (let i = 0; i < slidesLength; i += 1) { 960 slideSize = 0; 961 let slide; 962 if (slides[i]) slide = slides[i]; 963 if (gridEnabled) { 964 swiper.grid.updateSlide(i, slide, slides); 965 } 966 if (slides[i] && elementStyle(slide, 'display') === 'none') continue; // eslint-disable-line 967 968 if (params.slidesPerView === 'auto') { 969 if (shouldResetSlideSize) { 970 slides[i].style[swiper.getDirectionLabel('width')] = ``; 971 } 972 const slideStyles = getComputedStyle(slide); 973 const currentTransform = slide.style.transform; 974 const currentWebKitTransform = slide.style.webkitTransform; 975 if (currentTransform) { 976 slide.style.transform = 'none'; 977 } 978 if (currentWebKitTransform) { 979 slide.style.webkitTransform = 'none'; 980 } 981 if (params.roundLengths) { 982 slideSize = swiper.isHorizontal() ? elementOuterSize(slide, 'width', true) : elementOuterSize(slide, 'height', true); 983 } else { 984 // eslint-disable-next-line 985 const width = getDirectionPropertyValue(slideStyles, 'width'); 986 const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left'); 987 const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right'); 988 const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left'); 989 const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right'); 990 const boxSizing = slideStyles.getPropertyValue('box-sizing'); 991 if (boxSizing && boxSizing === 'border-box') { 992 slideSize = width + marginLeft + marginRight; 993 } else { 994 const { 995 clientWidth, 996 offsetWidth 997 } = slide; 998 slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth); 999 } 1000 } 1001 if (currentTransform) { 1002 slide.style.transform = currentTransform; 1003 } 1004 if (currentWebKitTransform) { 1005 slide.style.webkitTransform = currentWebKitTransform; 1006 } 1007 if (params.roundLengths) slideSize = Math.floor(slideSize); 1008 } else { 1009 slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView; 1010 if (params.roundLengths) slideSize = Math.floor(slideSize); 1011 if (slides[i]) { 1012 slides[i].style[swiper.getDirectionLabel('width')] = `${slideSize}px`; 1013 } 1014 } 1015 if (slides[i]) { 1016 slides[i].swiperSlideSize = slideSize; 1017 } 1018 slidesSizesGrid.push(slideSize); 1019 if (params.centeredSlides) { 1020 slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween; 1021 if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween; 1022 if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween; 1023 if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0; 1024 if (params.roundLengths) slidePosition = Math.floor(slidePosition); 1025 if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition); 1026 slidesGrid.push(slidePosition); 1027 } else { 1028 if (params.roundLengths) slidePosition = Math.floor(slidePosition); 1029 if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition); 1030 slidesGrid.push(slidePosition); 1031 slidePosition = slidePosition + slideSize + spaceBetween; 1032 } 1033 swiper.virtualSize += slideSize + spaceBetween; 1034 prevSlideSize = slideSize; 1035 index += 1; 1036 } 1037 swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter; 1038 if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) { 1039 wrapperEl.style.width = `${swiper.virtualSize + spaceBetween}px`; 1040 } 1041 if (params.setWrapperSize) { 1042 wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`; 1043 } 1044 if (gridEnabled) { 1045 swiper.grid.updateWrapperSize(slideSize, snapGrid); 1046 } 1047 1048 // Remove last grid elements depending on width 1049 if (!params.centeredSlides) { 1050 const newSlidesGrid = []; 1051 for (let i = 0; i < snapGrid.length; i += 1) { 1052 let slidesGridItem = snapGrid[i]; 1053 if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem); 1054 if (snapGrid[i] <= swiper.virtualSize - swiperSize) { 1055 newSlidesGrid.push(slidesGridItem); 1056 } 1057 } 1058 snapGrid = newSlidesGrid; 1059 if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) { 1060 snapGrid.push(swiper.virtualSize - swiperSize); 1061 } 1062 } 1063 if (isVirtual && params.loop) { 1064 const size = slidesSizesGrid[0] + spaceBetween; 1065 if (params.slidesPerGroup > 1) { 1066 const groups = Math.ceil((swiper.virtual.slidesBefore + swiper.virtual.slidesAfter) / params.slidesPerGroup); 1067 const groupSize = size * params.slidesPerGroup; 1068 for (let i = 0; i < groups; i += 1) { 1069 snapGrid.push(snapGrid[snapGrid.length - 1] + groupSize); 1070 } 1071 } 1072 for (let i = 0; i < swiper.virtual.slidesBefore + swiper.virtual.slidesAfter; i += 1) { 1073 if (params.slidesPerGroup === 1) { 1074 snapGrid.push(snapGrid[snapGrid.length - 1] + size); 1075 } 1076 slidesGrid.push(slidesGrid[slidesGrid.length - 1] + size); 1077 swiper.virtualSize += size; 1078 } 1079 } 1080 if (snapGrid.length === 0) snapGrid = [0]; 1081 if (spaceBetween !== 0) { 1082 const key = swiper.isHorizontal() && rtl ? 'marginLeft' : swiper.getDirectionLabel('marginRight'); 1083 slides.filter((_, slideIndex) => { 1084 if (!params.cssMode || params.loop) return true; 1085 if (slideIndex === slides.length - 1) { 1086 return false; 1087 } 1088 return true; 1089 }).forEach(slideEl => { 1090 slideEl.style[key] = `${spaceBetween}px`; 1091 }); 1092 } 1093 if (params.centeredSlides && params.centeredSlidesBounds) { 1094 let allSlidesSize = 0; 1095 slidesSizesGrid.forEach(slideSizeValue => { 1096 allSlidesSize += slideSizeValue + (spaceBetween || 0); 1097 }); 1098 allSlidesSize -= spaceBetween; 1099 const maxSnap = allSlidesSize > swiperSize ? allSlidesSize - swiperSize : 0; 1100 snapGrid = snapGrid.map(snap => { 1101 if (snap <= 0) return -offsetBefore; 1102 if (snap > maxSnap) return maxSnap + offsetAfter; 1103 return snap; 1104 }); 1105 } 1106 if (params.centerInsufficientSlides) { 1107 let allSlidesSize = 0; 1108 slidesSizesGrid.forEach(slideSizeValue => { 1109 allSlidesSize += slideSizeValue + (spaceBetween || 0); 1110 }); 1111 allSlidesSize -= spaceBetween; 1112 const offsetSize = (params.slidesOffsetBefore || 0) + (params.slidesOffsetAfter || 0); 1113 if (allSlidesSize + offsetSize < swiperSize) { 1114 const allSlidesOffset = (swiperSize - allSlidesSize - offsetSize) / 2; 1115 snapGrid.forEach((snap, snapIndex) => { 1116 snapGrid[snapIndex] = snap - allSlidesOffset; 1117 }); 1118 slidesGrid.forEach((snap, snapIndex) => { 1119 slidesGrid[snapIndex] = snap + allSlidesOffset; 1120 }); 1121 } 1122 } 1123 Object.assign(swiper, { 1124 slides, 1125 snapGrid, 1126 slidesGrid, 1127 slidesSizesGrid 1128 }); 1129 if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) { 1130 setCSSProperty
1130(wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`); 1131 setCSSProperty
vendor: 9,653 bytes, lines 1131-1368
1131(wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`); 1132 const addToSnapGrid = -swiper.snapGrid[0]; 1133 const addToSlidesGrid = -swiper.slidesGrid[0]; 1134 swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid); 1135 swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid); 1136 } 1137 if (slidesLength !== previousSlidesLength) { 1138 swiper.emit('slidesLengthChange'); 1139 } 1140 if (snapGrid.length !== previousSnapGridLength) { 1141 if (swiper.params.watchOverflow) swiper.checkOverflow(); 1142 swiper.emit('snapGridLengthChange'); 1143 } 1144 if (slidesGrid.length !== previousSlidesGridLength) { 1145 swiper.emit('slidesGridLengthChange'); 1146 } 1147 if (params.watchSlidesProgress) { 1148 swiper.updateSlidesOffset(); 1149 } 1150 swiper.emit('slidesUpdated'); 1151 if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) { 1152 const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`; 1153 const hasClassBackfaceClassAdded = swiper.el.classList.contains(backFaceHiddenClass); 1154 if (slidesLength <= params.maxBackfaceHiddenSlides) { 1155 if (!hasClassBackfaceClassAdded) swiper.el.classList.add(backFaceHiddenClass); 1156 } else if (hasClassBackfaceClassAdded) { 1157 swiper.el.classList.remove(backFaceHiddenClass); 1158 } 1159 } 1160 } 1161 1162 function updateAutoHeight(speed) { 1163 const swiper = this; 1164 const activeSlides = []; 1165 const isVirtual = swiper.virtual && swiper.params.virtual.enabled; 1166 let newHeight = 0; 1167 let i; 1168 if (typeof speed === 'number') { 1169 swiper.setTransition(speed); 1170 } else if (speed === true) { 1171 swiper.setTransition(swiper.params.speed); 1172 } 1173 const getSlideByIndex = index => { 1174 if (isVirtual) { 1175 return swiper.slides[swiper.getSlideIndexByData(index)]; 1176 } 1177 return swiper.slides[index]; 1178 }; 1179 // Find slides currently in view 1180 if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) { 1181 if (swiper.params.centeredSlides) { 1182 (swiper.visibleSlides || []).forEach(slide => { 1183 activeSlides.push(slide); 1184 }); 1185 } else { 1186 for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) { 1187 const index = swiper.activeIndex + i; 1188 if (index > swiper.slides.length && !isVirtual) break; 1189 activeSlides.push(getSlideByIndex(index)); 1190 } 1191 } 1192 } else { 1193 activeSlides.push(getSlideByIndex(swiper.activeIndex)); 1194 } 1195 1196 // Find new height from highest slide in view 1197 for (i = 0; i < activeSlides.length; i += 1) { 1198 if (typeof activeSlides[i] !== 'undefined') { 1199 const height = activeSlides[i].offsetHeight; 1200 newHeight = height > newHeight ? height : newHeight; 1201 } 1202 } 1203 1204 // Update Height 1205 if (newHeight || newHeight === 0) swiper.wrapperEl.style.height = `${newHeight}px`; 1206 } 1207 1208 function updateSlidesOffset() { 1209 const swiper = this; 1210 const slides = swiper.slides; 1211 // eslint-disable-next-line 1212 const minusOffset = swiper.isElement ? swiper.isHorizontal() ? swiper.wrapperEl.offsetLeft : swiper.wrapperEl.offsetTop : 0; 1213 for (let i = 0; i < slides.length; i += 1) { 1214 slides[i].swiperSlideOffset = (swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop) - minusOffset - swiper.cssOverflowAdjustment(); 1215 } 1216 } 1217 1218 const toggleSlideClasses$1 = (slideEl, condition, className) => { 1219 if (condition && !slideEl.classList.contains(className)) { 1220 slideEl.classList.add(className); 1221 } else if (!condition && slideEl.classList.contains(className)) { 1222 slideEl.classList.remove(className); 1223 } 1224 }; 1225 function updateSlidesProgress(translate) { 1226 if (translate === void 0) { 1227 translate = this && this.translate || 0; 1228 } 1229 const swiper = this; 1230 const params = swiper.params; 1231 const { 1232 slides, 1233 rtlTranslate: rtl, 1234 snapGrid 1235 } = swiper; 1236 if (slides.length === 0) return; 1237 if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset(); 1238 let offsetCenter = -translate; 1239 if (rtl) offsetCenter = translate; 1240 swiper.visibleSlidesIndexes = []; 1241 swiper.visibleSlides = []; 1242 let spaceBetween = params.spaceBetween; 1243 if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) { 1244 spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size; 1245 } else if (typeof spaceBetween === 'string') { 1246 spaceBetween = parseFloat(spaceBetween); 1247 } 1248 for (let i = 0; i < slides.length; i += 1) { 1249 const slide = slides[i]; 1250 let slideOffset = slide.swiperSlideOffset; 1251 if (params.cssMode && params.centeredSlides) { 1252 slideOffset -= slides[0].swiperSlideOffset; 1253 } 1254 const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween); 1255 const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween); 1256 const slideBefore = -(offsetCenter - slideOffset); 1257 const slideAfter = slideBefore + swiper.slidesSizesGrid[i]; 1258 const isFullyVisible = slideBefore >= 0 && slideBefore <= swiper.size - swiper.slidesSizesGrid[i]; 1259 const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size; 1260 if (isVisible) { 1261 swiper.visibleSlides.push(slide); 1262 swiper.visibleSlidesIndexes.push(i); 1263 } 1264 toggleSlideClasses$1(slide, isVisible, params.slideVisibleClass); 1265 toggleSlideClasses$1(slide, isFullyVisible, params.slideFullyVisibleClass); 1266 slide.progress = rtl ? -slideProgress : slideProgress; 1267 slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress; 1268 } 1269 } 1270 1271 function updateProgress(translate) { 1272 const swiper = this; 1273 if (typeof translate === 'undefined') { 1274 const multiplier = swiper.rtlTranslate ? -1 : 1; 1275 // eslint-disable-next-line 1276 translate = swiper && swiper.translate && swiper.translate * multiplier || 0; 1277 } 1278 const params = swiper.params; 1279 const translatesDiff = swiper.maxTranslate() - swiper.minTranslate(); 1280 let { 1281 progress, 1282 isBeginning, 1283 isEnd, 1284 progressLoop 1285 } = swiper; 1286 const wasBeginning = isBeginning; 1287 const wasEnd = isEnd; 1288 if (translatesDiff === 0) { 1289 progress = 0; 1290 isBeginning = true; 1291 isEnd = true; 1292 } else { 1293 progress = (translate - swiper.minTranslate()) / translatesDiff; 1294 const isBeginningRounded = Math.abs(translate - swiper.minTranslate()) < 1; 1295 const isEndRounded = Math.abs(translate - swiper.maxTranslate()) < 1; 1296 isBeginning = isBeginningRounded || progress <= 0; 1297 isEnd = isEndRounded || progress >= 1; 1298 if (isBeginningRounded) progress = 0; 1299 if (isEndRounded) progress = 1; 1300 } 1301 if (params.loop) { 1302 const firstSlideIndex = swiper.getSlideIndexByData(0); 1303 const lastSlideIndex = swiper.getSlideIndexByData(swiper.slides.length - 1); 1304 const firstSlideTranslate = swiper.slidesGrid[firstSlideIndex]; 1305 const lastSlideTranslate = swiper.slidesGrid[lastSlideIndex]; 1306 const translateMax = swiper.slidesGrid[swiper.slidesGrid.length - 1]; 1307 const translateAbs = Math.abs(translate); 1308 if (translateAbs >= firstSlideTranslate) { 1309 progressLoop = (translateAbs - firstSlideTranslate) / translateMax; 1310 } else { 1311 progressLoop = (translateAbs + translateMax - lastSlideTranslate) / translateMax; 1312 } 1313 if (progressLoop > 1) progressLoop -= 1; 1314 } 1315 Object.assign(swiper, { 1316 progress, 1317 progressLoop, 1318 isBeginning, 1319 isEnd 1320 }); 1321 if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate); 1322 if (isBeginning && !wasBeginning) { 1323 swiper.emit('reachBeginning toEdge'); 1324 } 1325 if (isEnd && !wasEnd) { 1326 swiper.emit('reachEnd toEdge'); 1327 } 1328 if (wasBeginning && !isBeginning || wasEnd && !isEnd) { 1329 swiper.emit('fromEdge'); 1330 } 1331 swiper.emit('progress', progress); 1332 } 1333 1334 const toggleSlideClasses = (slideEl, condition, className) => { 1335 if (condition && !slideEl.classList.contains(className)) { 1336 slideEl.classList.add(className); 1337 } else if (!condition && slideEl.classList.contains(className)) { 1338 slideEl.classList.remove(className); 1339 } 1340 }; 1341 function updateSlidesClasses() { 1342 const swiper = this; 1343 const { 1344 slides, 1345 params, 1346 slidesEl, 1347 activeIndex 1348 } = swiper; 1349 const isVirtual = swiper.virtual && params.virtual.enabled; 1350 const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1; 1351 const getFilteredSlide = selector => { 1352 return elementChildren(slidesEl, `.${params.slideClass}${selector}, swiper-slide${selector}`)[0]; 1353 }; 1354 let activeSlide; 1355 let prevSlide; 1356 let nextSlide; 1357 if (isVirtual) { 1358 if (params.loop) { 1359 let slideIndex = activeIndex - swiper.virtual.slidesBefore; 1360 if (slideIndex < 0) slideIndex = swiper.virtual.slides.length + slideIndex; 1361 if (slideIndex >= swiper.virtual.slides.length) slideIndex -= swiper.virtual.slides.length; 1362 activeSlide = getFilteredSlide(`[data-swiper-slide-index="${slideIndex}"]`); 1363 } else { 1364 activeSlide = getFilteredSlide(`[data-swiper-slide-index="${activeIndex}"]`); 1365 } 1366 } else { 1367 if (gridEnabled) { 1368 activeSlide = slides.fi
1368lter(slideEl => slideEl.column === activeIndex)[0]; 1369 nextSlide = slides.filter(slideEl => slideEl.column === activeIndex + 1)[0]; 1370 prevSlide = slides.filter(slideEl => slideEl.column === activeIndex - 1)[0]
vendor: 6,254 bytes, lines 1370-1535
1370; 1371 } else { 1372 activeSlide = slides[activeIndex]; 1373 } 1374 } 1375 if (activeSlide) { 1376 if (!gridEnabled) { 1377 // Next Slide 1378 nextSlide = elementNextAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0]; 1379 if (params.loop && !nextSlide) { 1380 nextSlide = slides[0]; 1381 } 1382 1383 // Prev Slide 1384 prevSlide = elementPrevAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0]; 1385 if (params.loop && !prevSlide === 0) { 1386 prevSlide = slides[slides.length - 1]; 1387 } 1388 } 1389 } 1390 slides.forEach(slideEl => { 1391 toggleSlideClasses(slideEl, slideEl === activeSlide, params.slideActiveClass); 1392 toggleSlideClasses(slideEl, slideEl === nextSlide, params.slideNextClass); 1393 toggleSlideClasses(slideEl, slideEl === prevSlide, params.slidePrevClass); 1394 }); 1395 swiper.emitSlidesClasses(); 1396 } 1397 1398 const processLazyPreloader = (swiper, imageEl) => { 1399 if (!swiper || swiper.destroyed || !swiper.params) return; 1400 const slideSelector = () => swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`; 1401 const slideEl = imageEl.closest(slideSelector()); 1402 if (slideEl) { 1403 let lazyEl = slideEl.querySelector(`.${swiper.params.lazyPreloaderClass}`); 1404 if (!lazyEl && swiper.isElement) { 1405 if (slideEl.shadowRoot) { 1406 lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`); 1407 } else { 1408 // init later 1409 requestAnimationFrame(() => { 1410 if (slideEl.shadowRoot) { 1411 lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`); 1412 if (lazyEl) lazyEl.remove(); 1413 } 1414 }); 1415 } 1416 } 1417 if (lazyEl) lazyEl.remove(); 1418 } 1419 }; 1420 const unlazy = (swiper, index) => { 1421 if (!swiper.slides[index]) return; 1422 const imageEl = swiper.slides[index].querySelector('[loading="lazy"]'); 1423 if (imageEl) imageEl.removeAttribute('loading'); 1424 }; 1425 const preload = swiper => { 1426 if (!swiper || swiper.destroyed || !swiper.params) return; 1427 let amount = swiper.params.lazyPreloadPrevNext; 1428 const len = swiper.slides.length; 1429 if (!len || !amount || amount < 0) return; 1430 amount = Math.min(amount, len); 1431 const slidesPerView = swiper.params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(swiper.params.slidesPerView); 1432 const activeIndex = swiper.activeIndex; 1433 if (swiper.params.grid && swiper.params.grid.rows > 1) { 1434 const activeColumn = activeIndex; 1435 const preloadColumns = [activeColumn - amount]; 1436 preloadColumns.push(...Array.from({ 1437 length: amount 1438 }).map((_, i) => { 1439 return activeColumn + slidesPerView + i; 1440 })); 1441 swiper.slides.forEach((slideEl, i) => { 1442 if (preloadColumns.includes(slideEl.column)) unlazy(swiper, i); 1443 }); 1444 return; 1445 } 1446 const slideIndexLastInView = activeIndex + slidesPerView - 1; 1447 if (swiper.params.rewind || swiper.params.loop) { 1448 for (let i = activeIndex - amount; i <= slideIndexLastInView + amount; i += 1) { 1449 const realIndex = (i % len + len) % len; 1450 if (realIndex < activeIndex || realIndex > slideIndexLastInView) unlazy(swiper, realIndex); 1451 } 1452 } else { 1453 for (let i = Math.max(activeIndex - amount, 0); i <= Math.min(slideIndexLastInView + amount, len - 1); i += 1) { 1454 if (i !== activeIndex && (i > slideIndexLastInView || i < activeIndex)) { 1455 unlazy(swiper, i); 1456 } 1457 } 1458 } 1459 }; 1460 1461 function getActiveIndexByTranslate(swiper) { 1462 const { 1463 slidesGrid, 1464 params 1465 } = swiper; 1466 const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate; 1467 let activeIndex; 1468 for (let i = 0; i < slidesGrid.length; i += 1) { 1469 if (typeof slidesGrid[i + 1] !== 'undefined') { 1470 if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) { 1471 activeIndex = i; 1472 } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) { 1473 activeIndex = i + 1; 1474 } 1475 } else if (translate >= slidesGrid[i]) { 1476 activeIndex = i; 1477 } 1478 } 1479 // Normalize slideIndex 1480 if (params.normalizeSlideIndex) { 1481 if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0; 1482 } 1483 return activeIndex; 1484 } 1485 function updateActiveIndex(newActiveIndex) { 1486 const swiper = this; 1487 const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate; 1488 const { 1489 snapGrid, 1490 params, 1491 activeIndex: previousIndex, 1492 realIndex: previousRealIndex, 1493 snapIndex: previousSnapIndex 1494 } = swiper; 1495 let activeIndex = newActiveIndex; 1496 let snapIndex; 1497 const getVirtualRealIndex = aIndex => { 1498 let realIndex = aIndex - swiper.virtual.slidesBefore; 1499 if (realIndex < 0) { 1500 realIndex = swiper.virtual.slides.length + realIndex; 1501 } 1502 if (realIndex >= swiper.virtual.slides.length) { 1503 realIndex -= swiper.virtual.slides.length; 1504 } 1505 return realIndex; 1506 }; 1507 if (typeof activeIndex === 'undefined') { 1508 activeIndex = getActiveIndexByTranslate(swiper); 1509 } 1510 if (snapGrid.indexOf(translate) >= 0) { 1511 snapIndex = snapGrid.indexOf(translate); 1512 } else { 1513 const skip = Math.min(params.slidesPerGroupSkip, activeIndex); 1514 snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup); 1515 } 1516 if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1; 1517 if (activeIndex === previousIndex && !swiper.params.loop) { 1518 if (snapIndex !== previousSnapIndex) { 1519 swiper.snapIndex = snapIndex; 1520 swiper.emit('snapIndexChange'); 1521 } 1522 return; 1523 } 1524 if (activeIndex === previousIndex && swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) { 1525 swiper.realIndex = getVirtualRealIndex(activeIndex); 1526 return; 1527 } 1528 const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1; 1529 1530 // Get real index 1531 let realIndex; 1532 if (swiper.virtual && params.virtual.enabled && params.loop) { 1533 realIndex = getVirtualRealIndex(activeIndex); 1534 } else if (gridEnabled) { 1535 const firstSlideInColumn = swiper.slides.fi
1535lter(slideEl => slideEl.column === activeIndex)[0]
vendor: 8,348 bytes, lines 1535-1817
1535; 1536 let activeSlideIndex = parseInt(firstSlideInColumn.getAttribute('data-swiper-slide-index'), 10); 1537 if (Number.isNaN(activeSlideIndex)) { 1538 activeSlideIndex = Math.max(swiper.slides.indexOf(firstSlideInColumn), 0); 1539 } 1540 realIndex = Math.floor(activeSlideIndex / params.grid.rows); 1541 } else if (swiper.slides[activeIndex]) { 1542 const slideIndex = swiper.slides[activeIndex].getAttribute('data-swiper-slide-index'); 1543 if (slideIndex) { 1544 realIndex = parseInt(slideIndex, 10); 1545 } else { 1546 realIndex = activeIndex; 1547 } 1548 } else { 1549 realIndex = activeIndex; 1550 } 1551 Object.assign(swiper, { 1552 previousSnapIndex, 1553 snapIndex, 1554 previousRealIndex, 1555 realIndex, 1556 previousIndex, 1557 activeIndex 1558 }); 1559 if (swiper.initialized) { 1560 preload(swiper); 1561 } 1562 swiper.emit('activeIndexChange'); 1563 swiper.emit('snapIndexChange'); 1564 if (swiper.initialized || swiper.params.runCallbacksOnInit) { 1565 if (previousRealIndex !== realIndex) { 1566 swiper.emit('realIndexChange'); 1567 } 1568 swiper.emit('slideChange'); 1569 } 1570 } 1571 1572 function updateClickedSlide(el, path) { 1573 const swiper = this; 1574 const params = swiper.params; 1575 let slide = el.closest(`.${params.slideClass}, swiper-slide`); 1576 if (!slide && swiper.isElement && path && path.length > 1 && path.includes(el)) { 1577 [...path.slice(path.indexOf(el) + 1, path.length)].forEach(pathEl => { 1578 if (!slide && pathEl.matches && pathEl.matches(`.${params.slideClass}, swiper-slide`)) { 1579 slide = pathEl; 1580 } 1581 }); 1582 } 1583 let slideFound = false; 1584 let slideIndex; 1585 if (slide) { 1586 for (let i = 0; i < swiper.slides.length; i += 1) { 1587 if (swiper.slides[i] === slide) { 1588 slideFound = true; 1589 slideIndex = i; 1590 break; 1591 } 1592 } 1593 } 1594 if (slide && slideFound) { 1595 swiper.clickedSlide = slide; 1596 if (swiper.virtual && swiper.params.virtual.enabled) { 1597 swiper.clickedIndex = parseInt(slide.getAttribute('data-swiper-slide-index'), 10); 1598 } else { 1599 swiper.clickedIndex = slideIndex; 1600 } 1601 } else { 1602 swiper.clickedSlide = undefined; 1603 swiper.clickedIndex = undefined; 1604 return; 1605 } 1606 if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) { 1607 swiper.slideToClickedSlide(); 1608 } 1609 } 1610 1611 var update = { 1612 updateSize, 1613 updateSlides, 1614 updateAutoHeight, 1615 updateSlidesOffset, 1616 updateSlidesProgress, 1617 updateProgress, 1618 updateSlidesClasses, 1619 updateActiveIndex, 1620 updateClickedSlide 1621 }; 1622 1623 function getSwiperTranslate(axis) { 1624 if (axis === void 0) { 1625 axis = this.isHorizontal() ? 'x' : 'y'; 1626 } 1627 const swiper = this; 1628 const { 1629 params, 1630 rtlTranslate: rtl, 1631 translate, 1632 wrapperEl 1633 } = swiper; 1634 if (params.virtualTranslate) { 1635 return rtl ? -translate : translate; 1636 } 1637 if (params.cssMode) { 1638 return translate; 1639 } 1640 let currentTranslate = getTranslate(wrapperEl, axis); 1641 currentTranslate += swiper.cssOverflowAdjustment(); 1642 if (rtl) currentTranslate = -currentTranslate; 1643 return currentTranslate || 0; 1644 } 1645 1646 function setTranslate(translate, byController) { 1647 const swiper = this; 1648 const { 1649 rtlTranslate: rtl, 1650 params, 1651 wrapperEl, 1652 progress 1653 } = swiper; 1654 let x = 0; 1655 let y = 0; 1656 const z = 0; 1657 if (swiper.isHorizontal()) { 1658 x = rtl ? -translate : translate; 1659 } else { 1660 y = translate; 1661 } 1662 if (params.roundLengths) { 1663 x = Math.floor(x); 1664 y = Math.floor(y); 1665 } 1666 swiper.previousTranslate = swiper.translate; 1667 swiper.translate = swiper.isHorizontal() ? x : y; 1668 if (params.cssMode) { 1669 wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y; 1670 } else if (!params.virtualTranslate) { 1671 if (swiper.isHorizontal()) { 1672 x -= swiper.cssOverflowAdjustment(); 1673 } else { 1674 y -= swiper.cssOverflowAdjustment(); 1675 } 1676 wrapperEl.style.transform = `translate3d(${x}px, ${y}px, ${z}px)`; 1677 } 1678 1679 // Check if we need to update progress 1680 let newProgress; 1681 const translatesDiff = swiper.maxTranslate() - swiper.minTranslate(); 1682 if (translatesDiff === 0) { 1683 newProgress = 0; 1684 } else { 1685 newProgress = (translate - swiper.minTranslate()) / translatesDiff; 1686 } 1687 if (newProgress !== progress) { 1688 swiper.updateProgress(translate); 1689 } 1690 swiper.emit('setTranslate', swiper.translate, byController); 1691 } 1692 1693 function minTranslate() { 1694 return -this.snapGrid[0]; 1695 } 1696 1697 function maxTranslate() { 1698 return -this.snapGrid[this.snapGrid.length - 1]; 1699 } 1700 1701 function translateTo(translate, speed, runCallbacks, translateBounds, internal) { 1702 if (translate === void 0) { 1703 translate = 0; 1704 } 1705 if (speed === void 0) { 1706 speed = this.params.speed; 1707 } 1708 if (runCallbacks === void 0) { 1709 runCallbacks = true; 1710 } 1711 if (translateBounds === void 0) { 1712 translateBounds = true; 1713 } 1714 const swiper = this; 1715 const { 1716 params, 1717 wrapperEl 1718 } = swiper; 1719 if (swiper.animating && params.preventInteractionOnTransition) { 1720 return false; 1721 } 1722 const minTranslate = swiper.minTranslate(); 1723 const maxTranslate = swiper.maxTranslate(); 1724 let newTranslate; 1725 if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; 1726 1727 // Update progress 1728 swiper.updateProgress(newTranslate); 1729 if (params.cssMode) { 1730 const isH = swiper.isHorizontal(); 1731 if (speed === 0) { 1732 wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate; 1733 } else { 1734 if (!swiper.support.smoothScroll) { 1735 animateCSSModeScroll({ 1736 swiper, 1737 targetPosition: -newTranslate, 1738 side: isH ? 'left' : 'top' 1739 }); 1740 return true; 1741 } 1742 wrapperEl.scrollTo({ 1743 [isH ? 'left' : 'top']: -newTranslate, 1744 behavior: 'smooth' 1745 }); 1746 } 1747 return true; 1748 } 1749 if (speed === 0) { 1750 swiper.setTransition(0); 1751 swiper.setTranslate(newTranslate); 1752 if (runCallbacks) { 1753 swiper.emit('beforeTransitionStart', speed, internal); 1754 swiper.emit('transitionEnd'); 1755 } 1756 } else { 1757 swiper.setTransition(speed); 1758 swiper.setTranslate(newTranslate); 1759 if (runCallbacks) { 1760 swiper.emit('beforeTransitionStart', speed, internal); 1761 swiper.emit('transitionStart'); 1762 } 1763 if (!swiper.animating) { 1764 swiper.animating = true; 1765 if (!swiper.onTranslateToWrapperTransitionEnd) { 1766 swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) { 1767 if (!swiper || swiper.destroyed) return; 1768 if (e.target !== this) return; 1769 swiper.wrapperEl.removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd); 1770 swiper.onTranslateToWrapperTransitionEnd = null; 1771 delete swiper.onTranslateToWrapperTransitionEnd; 1772 swiper.animating = false; 1773 if (runCallbacks) { 1774 swiper.emit('transitionEnd'); 1775 } 1776 }; 1777 } 1778 swiper.wrapperEl.addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd); 1779 } 1780 } 1781 return true; 1782 } 1783 1784 var translate = { 1785 getTranslate: getSwiperTranslate, 1786 setTranslate, 1787 minTranslate, 1788 maxTranslate, 1789 translateTo 1790 }; 1791 1792 function setTransition(duration, byController) { 1793 const swiper = this; 1794 if (!swiper.params.cssMode) { 1795 swiper.wrapperEl.style.transitionDuration = `${duration}ms`; 1796 swiper.wrapperEl.style.transitionDelay = duration === 0 ? `0ms` : ''; 1797 } 1798 swiper.emit('setTransition', duration, byController); 1799 } 1800 1801 function transitionEmit(_ref) { 1802 let { 1803 swiper, 1804 runCallbacks, 1805 direction, 1806 step 1807 } = _ref; 1808 const { 1809 activeIndex, 1810 previousIndex 1811 } = swiper; 1812 let dir = direction; 1813 if (!dir) { 1814 if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset'; 1815 } 1816 swiper.emit(`transition${step}`); 1817 if (runCallbacks &&
vendor: 3,350 bytes, lines 1817-1929
1817activeIndex !== previousIndex) { 1818 if (dir === 'reset') { 1819 swiper.emit(`slideResetTransition${step}`); 1820 return; 1821 } 1822 swiper.emit(`slideChangeTransition${step}`); 1823 if (dir === 'next') { 1824 swiper.emit(`slideNextTransition${step}`); 1825 } else { 1826 swiper.emit(`slidePrevTransition${step}`); 1827 } 1828 } 1829 } 1830 1831 function transitionStart(runCallbacks, direction) { 1832 if (runCallbacks === void 0) { 1833 runCallbacks = true; 1834 } 1835 const swiper = this; 1836 const { 1837 params 1838 } = swiper; 1839 if (params.cssMode) return; 1840 if (params.autoHeight) { 1841 swiper.updateAutoHeight(); 1842 } 1843 transitionEmit({ 1844 swiper, 1845 runCallbacks, 1846 direction, 1847 step: 'Start' 1848 }); 1849 } 1850 1851 function transitionEnd(runCallbacks, direction) { 1852 if (runCallbacks === void 0) { 1853 runCallbacks = true; 1854 } 1855 const swiper = this; 1856 const { 1857 params 1858 } = swiper; 1859 swiper.animating = false; 1860 if (params.cssMode) return; 1861 swiper.setTransition(0); 1862 transitionEmit({ 1863 swiper, 1864 runCallbacks, 1865 direction, 1866 step: 'End' 1867 }); 1868 } 1869 1870 var transition = { 1871 setTransition, 1872 transitionStart, 1873 transitionEnd 1874 }; 1875 1876 function slideTo(index, speed, runCallbacks, internal, initial) { 1877 if (index === void 0) { 1878 index = 0; 1879 } 1880 if (runCallbacks === void 0) { 1881 runCallbacks = true; 1882 } 1883 if (typeof index === 'string') { 1884 index = parseInt(index, 10); 1885 } 1886 const swiper = this; 1887 let slideIndex = index; 1888 if (slideIndex < 0) slideIndex = 0; 1889 const { 1890 params, 1891 snapGrid, 1892 slidesGrid, 1893 previousIndex, 1894 activeIndex, 1895 rtlTranslate: rtl, 1896 wrapperEl, 1897 enabled 1898 } = swiper; 1899 if (!enabled && !internal && !initial || swiper.destroyed || swiper.animating && params.preventInteractionOnTransition) { 1900 return false; 1901 } 1902 if (typeof speed === 'undefined') { 1903 speed = swiper.params.speed; 1904 } 1905 const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex); 1906 let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup); 1907 if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1; 1908 const translate = -snapGrid[snapIndex]; 1909 // Normalize slideIndex 1910 if (params.normalizeSlideIndex) { 1911 for (let i = 0; i < slidesGrid.length; i += 1) { 1912 const normalizedTranslate = -Math.floor(translate * 100); 1913 const normalizedGrid = Math.floor(slidesGrid[i] * 100); 1914 const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100); 1915 if (typeof slidesGrid[i + 1] !== 'undefined') { 1916 if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) { 1917 slideIndex = i; 1918 } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) { 1919 slideIndex = i + 1; 1920 } 1921 } else if (normalizedTranslate >= normalizedGrid) { 1922 slideIndex = i; 1923 } 1924 } 1925 } 1926 // Directions locks 1927 if (swiper.initialized && slideIndex !== activeIndex) { 1928 if (!swiper.allowSlideNext && (rtl ? translate > swiper.translate && translate > swiper.minTranslate() : translate < swiper.translate && translate < swiper.minTranslate())) { 1929 return false;
vendor: 8,697 bytes, lines 1930-2169
1930 } 1931 if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) { 1932 if ((activeIndex || 0) !== slideIndex) { 1933 return false; 1934 } 1935 } 1936 } 1937 if (slideIndex !== (previousIndex || 0) && runCallbacks) { 1938 swiper.emit('beforeSlideChangeStart'); 1939 } 1940 1941 // Update progress 1942 swiper.updateProgress(translate); 1943 let direction; 1944 if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; 1945 1946 // initial virtual 1947 const isVirtual = swiper.virtual && swiper.params.virtual.enabled; 1948 const isInitialVirtual = isVirtual && initial; 1949 // Update Index 1950 if (!isInitialVirtual && (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate)) { 1951 swiper.updateActiveIndex(slideIndex); 1952 // Update Height 1953 if (params.autoHeight) { 1954 swiper.updateAutoHeight(); 1955 } 1956 swiper.updateSlidesClasses(); 1957 if (params.effect !== 'slide') { 1958 swiper.setTranslate(translate); 1959 } 1960 if (direction !== 'reset') { 1961 swiper.transitionStart(runCallbacks, direction); 1962 swiper.transitionEnd(runCallbacks, direction); 1963 } 1964 return false; 1965 } 1966 if (params.cssMode) { 1967 const isH = swiper.isHorizontal(); 1968 const t = rtl ? translate : -translate; 1969 if (speed === 0) { 1970 if (isVirtual) { 1971 swiper.wrapperEl.style.scrollSnapType = 'none'; 1972 swiper._immediateVirtual = true; 1973 } 1974 if (isVirtual && !swiper._cssModeVirtualInitialSet && swiper.params.initialSlide > 0) { 1975 swiper._cssModeVirtualInitialSet = true; 1976 requestAnimationFrame(() => { 1977 wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t; 1978 }); 1979 } else { 1980 wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t; 1981 } 1982 if (isVirtual) { 1983 requestAnimationFrame(() => { 1984 swiper.wrapperEl.style.scrollSnapType = ''; 1985 swiper._immediateVirtual = false; 1986 }); 1987 } 1988 } else { 1989 if (!swiper.support.smoothScroll) { 1990 animateCSSModeScroll({ 1991 swiper, 1992 targetPosition: t, 1993 side: isH ? 'left' : 'top' 1994 }); 1995 return true; 1996 } 1997 wrapperEl.scrollTo({ 1998 [isH ? 'left' : 'top']: t, 1999 behavior: 'smooth' 2000 }); 2001 } 2002 return true; 2003 } 2004 swiper.setTransition(speed); 2005 swiper.setTranslate(translate); 2006 swiper.updateActiveIndex(slideIndex); 2007 swiper.updateSlidesClasses(); 2008 swiper.emit('beforeTransitionStart', speed, internal); 2009 swiper.transitionStart(runCallbacks, direction); 2010 if (speed === 0) { 2011 swiper.transitionEnd(runCallbacks, direction); 2012 } else if (!swiper.animating) { 2013 swiper.animating = true; 2014 if (!swiper.onSlideToWrapperTransitionEnd) { 2015 swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) { 2016 if (!swiper || swiper.destroyed) return; 2017 if (e.target !== this) return; 2018 swiper.wrapperEl.removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd); 2019 swiper.onSlideToWrapperTransitionEnd = null; 2020 delete swiper.onSlideToWrapperTransitionEnd; 2021 swiper.transitionEnd(runCallbacks, direction); 2022 }; 2023 } 2024 swiper.wrapperEl.addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd); 2025 } 2026 return true; 2027 } 2028 2029 function slideToLoop(index, speed, runCallbacks, internal) { 2030 if (index === void 0) { 2031 index = 0; 2032 } 2033 if (runCallbacks === void 0) { 2034 runCallbacks = true; 2035 } 2036 if (typeof index === 'string') { 2037 const indexAsNumber = parseInt(index, 10); 2038 index = indexAsNumber; 2039 } 2040 const swiper = this; 2041 if (swiper.destroyed) return; 2042 if (typeof speed === 'undefined') { 2043 speed = swiper.params.speed; 2044 } 2045 const gridEnabled = swiper.grid && swiper.params.grid && swiper.params.grid.rows > 1; 2046 let newIndex = index; 2047 if (swiper.params.loop) { 2048 if (swiper.virtual && swiper.params.virtual.enabled) { 2049 // eslint-disable-next-line 2050 newIndex = newIndex + swiper.virtual.slidesBefore; 2051 } else { 2052 let targetSlideIndex; 2053 if (gridEnabled) { 2054 const slideIndex = newIndex * swiper.params.grid.rows; 2055 targetSlideIndex = swiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex)[0].column; 2056 } else { 2057 targetSlideIndex = swiper.getSlideIndexByData(newIndex); 2058 } 2059 const cols = gridEnabled ? Math.ceil(swiper.slides.length / swiper.params.grid.rows) : swiper.slides.length; 2060 const { 2061 centeredSlides 2062 } = swiper.params; 2063 let slidesPerView = swiper.params.slidesPerView; 2064 if (slidesPerView === 'auto') { 2065 slidesPerView = swiper.slidesPerViewDynamic(); 2066 } else { 2067 slidesPerView = Math.ceil(parseFloat(swiper.params.slidesPerView, 10)); 2068 if (centeredSlides && slidesPerView % 2 === 0) { 2069 slidesPerView = slidesPerView + 1; 2070 } 2071 } 2072 let needLoopFix = cols - targetSlideIndex < slidesPerView; 2073 if (centeredSlides) { 2074 needLoopFix = needLoopFix || targetSlideIndex < Math.ceil(slidesPerView / 2); 2075 } 2076 if (internal && centeredSlides && swiper.params.slidesPerView !== 'auto' && !gridEnabled) { 2077 needLoopFix = false; 2078 } 2079 if (needLoopFix) { 2080 const direction = centeredSlides ? targetSlideIndex < swiper.activeIndex ? 'prev' : 'next' : targetSlideIndex - swiper.activeIndex - 1 < swiper.params.slidesPerView ? 'next' : 'prev'; 2081 swiper.loopFix({ 2082 direction, 2083 slideTo: true, 2084 activeSlideIndex: direction === 'next' ? targetSlideIndex + 1 : targetSlideIndex - cols + 1, 2085 slideRealIndex: direction === 'next' ? swiper.realIndex : undefined 2086 }); 2087 } 2088 if (gridEnabled) { 2089 const slideIndex = newIndex * swiper.params.grid.rows; 2090 newIndex = swiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex)[0].column; 2091 } else { 2092 newIndex = swiper.getSlideIndexByData(newIndex); 2093 } 2094 } 2095 } 2096 requestAnimationFrame(() => { 2097 swiper.slideTo(newIndex, speed, runCallbacks, internal); 2098 }); 2099 return swiper; 2100 } 2101 2102 /* eslint no-unused-vars: "off" */ 2103 function slideNext(speed, runCallbacks, internal) { 2104 if (runCallbacks === void 0) { 2105 runCallbacks = true; 2106 } 2107 const swiper = this; 2108 const { 2109 enabled, 2110 params, 2111 animating 2112 } = swiper; 2113 if (!enabled || swiper.destroyed) return swiper; 2114 if (typeof speed === 'undefined') { 2115 speed = swiper.params.speed; 2116 } 2117 let perGroup = params.slidesPerGroup; 2118 if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) { 2119 perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1); 2120 } 2121 const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup; 2122 const isVirtual = swiper.virtual && params.virtual.enabled; 2123 if (params.loop) { 2124 if (animating && !isVirtual && params.loopPreventsSliding) return false; 2125 swiper.loopFix({ 2126 direction: 'next' 2127 }); 2128 // eslint-disable-next-line 2129 swiper._clientLeft = swiper.wrapperEl.clientLeft; 2130 if (swiper.activeIndex === swiper.slides.length - 1 && params.cssMode) { 2131 requestAnimationFrame(() => { 2132 swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal); 2133 }); 2134 return true; 2135 } 2136 } 2137 if (params.rewind && swiper.isEnd) { 2138 return swiper.slideTo(0, speed, runCallbacks, internal); 2139 } 2140 return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal); 2141 } 2142 2143 /* eslint no-unused-vars: "off" */ 2144 function slidePrev(speed, runCallbacks, internal) { 2145 if (runCallbacks === void 0) { 2146 runCallbacks = true; 2147 } 2148 const swiper = this; 2149 const { 2150 params, 2151 snapGrid, 2152 slidesGrid, 2153 rtlTranslate, 2154 enabled, 2155 animating 2156 } = swiper; 2157 if (!enabled || swiper.destroyed) return swiper; 2158 if (typeof speed === 'undefined') { 2159 speed = swiper.params.speed; 2160 } 2161 const isVirtual = swiper.virtual && params.virtual.enabled; 2162 if (params.loop) { 2163 if (animating && !isVirtual && params.loopPreventsSliding) return false; 2164 swiper.loopFix({ 2165 direction: 'prev' 2166 }); 2167 // eslint-disable-next-line 2168 swiper._clientLeft = swiper.wrapperEl.clientLeft; 2169 }
vendor: 11,243 bytes, lines 2170-2443
2170 const translate = rtlTranslate ? swiper.translate : -swiper.translate; 2171 function normalize(val) { 2172 if (val < 0) return -Math.floor(Math.abs(val)); 2173 return Math.floor(val); 2174 } 2175 const normalizedTranslate = normalize(translate); 2176 const normalizedSnapGrid = snapGrid.map(val => normalize(val)); 2177 let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1]; 2178 if (typeof prevSnap === 'undefined' && params.cssMode) { 2179 let prevSnapIndex; 2180 snapGrid.forEach((snap, snapIndex) => { 2181 if (normalizedTranslate >= snap) { 2182 // prevSnap = snap; 2183 prevSnapIndex = snapIndex; 2184 } 2185 }); 2186 if (typeof prevSnapIndex !== 'undefined') { 2187 prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex]; 2188 } 2189 } 2190 let prevIndex = 0; 2191 if (typeof prevSnap !== 'undefined') { 2192 prevIndex = slidesGrid.indexOf(prevSnap); 2193 if (prevIndex < 0) prevIndex = swiper.activeIndex - 1; 2194 if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) { 2195 prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1; 2196 prevIndex = Math.max(prevIndex, 0); 2197 } 2198 } 2199 if (params.rewind && swiper.isBeginning) { 2200 const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1; 2201 return swiper.slideTo(lastIndex, speed, runCallbacks, internal); 2202 } else if (params.loop && swiper.activeIndex === 0 && params.cssMode) { 2203 requestAnimationFrame(() => { 2204 swiper.slideTo(prevIndex, speed, runCallbacks, internal); 2205 }); 2206 return true; 2207 } 2208 return swiper.slideTo(prevIndex, speed, runCallbacks, internal); 2209 } 2210 2211 /* eslint no-unused-vars: "off" */ 2212 function slideReset(speed, runCallbacks, internal) { 2213 if (runCallbacks === void 0) { 2214 runCallbacks = true; 2215 } 2216 const swiper = this; 2217 if (swiper.destroyed) return; 2218 if (typeof speed === 'undefined') { 2219 speed = swiper.params.speed; 2220 } 2221 return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal); 2222 } 2223 2224 /* eslint no-unused-vars: "off" */ 2225 function slideToClosest(speed, runCallbacks, internal, threshold) { 2226 if (runCallbacks === void 0) { 2227 runCallbacks = true; 2228 } 2229 if (threshold === void 0) { 2230 threshold = 0.5; 2231 } 2232 const swiper = this; 2233 if (swiper.destroyed) return; 2234 if (typeof speed === 'undefined') { 2235 speed = swiper.params.speed; 2236 } 2237 let index = swiper.activeIndex; 2238 const skip = Math.min(swiper.params.slidesPerGroupSkip, index); 2239 const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup); 2240 const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate; 2241 if (translate >= swiper.snapGrid[snapIndex]) { 2242 // The current translate is on or after the current snap index, so the choice 2243 // is between the current index and the one after it. 2244 const currentSnap = swiper.snapGrid[snapIndex]; 2245 const nextSnap = swiper.snapGrid[snapIndex + 1]; 2246 if (translate - currentSnap > (nextSnap - currentSnap) * threshold) { 2247 index += swiper.params.slidesPerGroup; 2248 } 2249 } else { 2250 // The current translate is before the current snap index, so the choice 2251 // is between the current index and the one before it. 2252 const prevSnap = swiper.snapGrid[snapIndex - 1]; 2253 const currentSnap = swiper.snapGrid[snapIndex]; 2254 if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) { 2255 index -= swiper.params.slidesPerGroup; 2256 } 2257 } 2258 index = Math.max(index, 0); 2259 index = Math.min(index, swiper.slidesGrid.length - 1); 2260 return swiper.slideTo(index, speed, runCallbacks, internal); 2261 } 2262 2263 function slideToClickedSlide() { 2264 const swiper = this; 2265 if (swiper.destroyed) return; 2266 const { 2267 params, 2268 slidesEl 2269 } = swiper; 2270 const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView; 2271 let slideToIndex = swiper.clickedIndex; 2272 let realIndex; 2273 const slideSelector = swiper.isElement ? `swiper-slide` : `.${params.slideClass}`; 2274 if (params.loop) { 2275 if (swiper.animating) return; 2276 realIndex = parseInt(swiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10); 2277 if (params.centeredSlides) { 2278 if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) { 2279 swiper.loopFix(); 2280 slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index="${realIndex}"]`)[0]); 2281 nextTick(() => { 2282 swiper.slideTo(slideToIndex); 2283 }); 2284 } else { 2285 swiper.slideTo(slideToIndex); 2286 } 2287 } else if (slideToIndex > swiper.slides.length - slidesPerView) { 2288 swiper.loopFix(); 2289 slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index="${realIndex}"]`)[0]); 2290 nextTick(() => { 2291 swiper.slideTo(slideToIndex); 2292 }); 2293 } else { 2294 swiper.slideTo(slideToIndex); 2295 } 2296 } else { 2297 swiper.slideTo(slideToIndex); 2298 } 2299 } 2300 2301 var slide = { 2302 slideTo, 2303 slideToLoop, 2304 slideNext, 2305 slidePrev, 2306 slideReset, 2307 slideToClosest, 2308 slideToClickedSlide 2309 }; 2310 2311 function loopCreate(slideRealIndex) { 2312 const swiper = this; 2313 const { 2314 params, 2315 slidesEl 2316 } = swiper; 2317 if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return; 2318 const initSlides = () => { 2319 const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`); 2320 slides.forEach((el, index) => { 2321 el.setAttribute('data-swiper-slide-index', index); 2322 }); 2323 }; 2324 const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1; 2325 const slidesPerGroup = params.slidesPerGroup * (gridEnabled ? params.grid.rows : 1); 2326 const shouldFillGroup = swiper.slides.length % slidesPerGroup !== 0; 2327 const shouldFillGrid = gridEnabled && swiper.slides.length % params.grid.rows !== 0; 2328 const addBlankSlides = amountOfSlides => { 2329 for (let i = 0; i < amountOfSlides; i += 1) { 2330 const slideEl = swiper.isElement ? createElement('swiper-slide', [params.slideBlankClass]) : createElement('div', [params.slideClass, params.slideBlankClass]); 2331 swiper.slidesEl.append(slideEl); 2332 } 2333 }; 2334 if (shouldFillGroup) { 2335 if (params.loopAddBlankSlides) { 2336 const slidesToAdd = slidesPerGroup - swiper.slides.length % slidesPerGroup; 2337 addBlankSlides(slidesToAdd); 2338 swiper.recalcSlides(); 2339 swiper.updateSlides(); 2340 } else { 2341 showWarning('Swiper Loop Warning: The number of slides is not even to slidesPerGroup, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)'); 2342 } 2343 initSlides(); 2344 } else if (shouldFillGrid) { 2345 if (params.loopAddBlankSlides) { 2346 const slidesToAdd = params.grid.rows - swiper.slides.length % params.grid.rows; 2347 addBlankSlides(slidesToAdd); 2348 swiper.recalcSlides(); 2349 swiper.updateSlides(); 2350 } else { 2351 showWarning('Swiper Loop Warning: The number of slides is not even to grid.rows, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)'); 2352 } 2353 initSlides(); 2354 } else { 2355 initSlides(); 2356 } 2357 swiper.loopFix({ 2358 slideRealIndex, 2359 direction: params.centeredSlides ? undefined : 'next' 2360 }); 2361 } 2362 2363 function loopFix(_temp) { 2364 let { 2365 slideRealIndex, 2366 slideTo = true, 2367 direction, 2368 setTranslate, 2369 activeSlideIndex, 2370 byController, 2371 byMousewheel 2372 } = _temp === void 0 ? {} : _temp; 2373 const swiper = this; 2374 if (!swiper.params.loop) return; 2375 swiper.emit('beforeLoopFix'); 2376 const { 2377 slides, 2378 allowSlidePrev, 2379 allowSlideNext, 2380 slidesEl, 2381 params 2382 } = swiper; 2383 const { 2384 centeredSlides 2385 } = params; 2386 swiper.allowSlidePrev = true; 2387 swiper.allowSlideNext = true; 2388 if (swiper.virtual && params.virtual.enabled) { 2389 if (slideTo) { 2390 if (!params.centeredSlides && swiper.snapIndex === 0) { 2391 swiper.slideTo(swiper.virtual.slides.length, 0, false, true); 2392 } else if (params.centeredSlides && swiper.snapIndex < params.slidesPerView) { 2393 swiper.slideTo(swiper.virtual.slides.length + swiper.snapIndex, 0, false, true); 2394 } else if (swiper.snapIndex === swiper.snapGrid.length - 1) { 2395 swiper.slideTo(swiper.virtual.slidesBefore, 0, false, true); 2396 } 2397 } 2398 swiper.allowSlidePrev = allowSlidePrev; 2399 swiper.allowSlideNext = allowSlideNext; 2400 swiper.emit('loopFix'); 2401 return; 2402 } 2403 let slidesPerView = params.slidesPerView; 2404 if (slidesPerView === 'auto') { 2405 slidesPerView = swiper.slidesPerViewDynamic(); 2406 } else { 2407 slidesPerView = Math.ceil(parseFloat(params.slidesPerView, 10)); 2408 if (centeredSlides && slidesPerView % 2 === 0) { 2409 slidesPerView = slidesPerView + 1; 2410 } 2411 } 2412 const slidesPerGroup = params.slidesPerGroupAuto ? slidesPerView : params.slidesPerGroup; 2413 let loopedSlides = slidesPerGroup; 2414 if (loopedSlides % slidesPerGroup !== 0) { 2415 loopedSlides += slidesPerGroup - loopedSlides % slidesPerGroup; 2416 } 2417 loopedSlides += params.loopAdditionalSlides; 2418 swiper.loopedSlides = loopedSlides; 2419 const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1; 2420 if (slides.length < slidesPerView + loopedSlides) { 2421 showWarning('Swiper Loop Warning: The number of slides is not enough for loop mode, it will be disabled and not function properly. You need to add more slides (or make duplicates) or lower the values of slidesPerView and slidesPerGroup parameters'); 2422 } else if (gridEnabled && params.grid.fill === 'row') { 2423 showWarning('Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`'); 2424 } 2425 const prependSlidesIndexes = []; 2426 const appendSlidesIndexes = []; 2427 let activeIndex = swiper.activeIndex; 2428 if (typeof activeSlideIndex === 'undefined') { 2429 activeSlideIndex = swiper.getSlideIndex(slides.filter(el => el.classList.contains(params.slideActiveClass))[0]); 2430 } else { 2431 activeIndex = activeSlideIndex; 2432 } 2433 const isNext = direction === 'next' || !direction; 2434 const isPrev = direction === 'prev' || !direction; 2435 let slidesPrepended = 0; 2436 let slidesAppended = 0; 2437 const cols = gridEnabled ? Math.ceil(slides.length / params.grid.rows) : slides.length; 2438 const activeColIndex = gridEnabled ? slides[activeSlideIndex].column : activeSlideIndex; 2439 const activeColIndexWithShift = activeColIndex + (centeredSlides && typeof setTranslate === 'undefined' ? -slidesPerView / 2 + 0.5 : 0); 2440 // prepend last slides before start 2441 if (activeColIndexWithShift < loopedSlides) { 2442 slidesPrepended = Math.max(loopedSlides - activeColIndexWithShift, slidesPerGroup); 2443 for (let i = 0; i < loopedSlides - activeColIndexWithShift; i += 1) {
vendor: 5,443 bytes, lines 2444-2576
2444 const index = i - Math.floor(i / cols) * cols; 2445 if (gridEnabled) { 2446 const colIndexToPrepend = cols - index - 1; 2447 for (let i = slides.length - 1; i >= 0; i -= 1) { 2448 if (slides[i].column === colIndexToPrepend) prependSlidesIndexes.push(i); 2449 } 2450 // slides.forEach((slide, slideIndex) => { 2451 // if (slide.column === colIndexToPrepend) prependSlidesIndexes.push(slideIndex); 2452 // }); 2453 } else { 2454 prependSlidesIndexes.push(cols - index - 1); 2455 } 2456 } 2457 } else if (activeColIndexWithShift + slidesPerView > cols - loopedSlides) { 2458 slidesAppended = Math.max(activeColIndexWithShift - (cols - loopedSlides * 2), slidesPerGroup); 2459 for (let i = 0; i < slidesAppended; i += 1) { 2460 const index = i - Math.floor(i / cols) * cols; 2461 if (gridEnabled) { 2462 slides.forEach((slide, slideIndex) => { 2463 if (slide.column === index) appendSlidesIndexes.push(slideIndex); 2464 }); 2465 } else { 2466 appendSlidesIndexes.push(index); 2467 } 2468 } 2469 } 2470 swiper.__preventObserver__ = true; 2471 requestAnimationFrame(() => { 2472 swiper.__preventObserver__ = false; 2473 }); 2474 if (isPrev) { 2475 prependSlidesIndexes.forEach(index => { 2476 slides[index].swiperLoopMoveDOM = true; 2477 slidesEl.prepend(slides[index]); 2478 slides[index].swiperLoopMoveDOM = false; 2479 }); 2480 } 2481 if (isNext) { 2482 appendSlidesIndexes.forEach(index => { 2483 slides[index].swiperLoopMoveDOM = true; 2484 slidesEl.append(slides[index]); 2485 slides[index].swiperLoopMoveDOM = false; 2486 }); 2487 } 2488 swiper.recalcSlides(); 2489 if (params.slidesPerView === 'auto') { 2490 swiper.updateSlides(); 2491 } else if (gridEnabled && (prependSlidesIndexes.length > 0 && isPrev || appendSlidesIndexes.length > 0 && isNext)) { 2492 swiper.slides.forEach((slide, slideIndex) => { 2493 swiper.grid.updateSlide(slideIndex, slide, swiper.slides); 2494 }); 2495 } 2496 if (params.watchSlidesProgress) { 2497 swiper.updateSlidesOffset(); 2498 } 2499 if (slideTo) { 2500 if (prependSlidesIndexes.length > 0 && isPrev) { 2501 if (typeof slideRealIndex === 'undefined') { 2502 const currentSlideTranslate = swiper.slidesGrid[activeIndex]; 2503 const newSlideTranslate = swiper.slidesGrid[activeIndex + slidesPrepended]; 2504 const diff = newSlideTranslate - currentSlideTranslate; 2505 if (byMousewheel) { 2506 swiper.setTranslate(swiper.translate - diff); 2507 } else { 2508 swiper.slideTo(activeIndex + Math.ceil(slidesPrepended), 0, false, true); 2509 if (setTranslate) { 2510 swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff; 2511 swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff; 2512 } 2513 } 2514 } else { 2515 if (setTranslate) { 2516 const shift = gridEnabled ? prependSlidesIndexes.length / params.grid.rows : prependSlidesIndexes.length; 2517 swiper.slideTo(swiper.activeIndex + shift, 0, false, true); 2518 swiper.touchEventsData.currentTranslate = swiper.translate; 2519 } 2520 } 2521 } else if (appendSlidesIndexes.length > 0 && isNext) { 2522 if (typeof slideRealIndex === 'undefined') { 2523 const currentSlideTranslate = swiper.slidesGrid[activeIndex]; 2524 const newSlideTranslate = swiper.slidesGrid[activeIndex - slidesAppended]; 2525 const diff = newSlideTranslate - currentSlideTranslate; 2526 if (byMousewheel) { 2527 swiper.setTranslate(swiper.translate - diff); 2528 } else { 2529 swiper.slideTo(activeIndex - slidesAppended, 0, false, true); 2530 if (setTranslate) { 2531 swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff; 2532 swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff; 2533 } 2534 } 2535 } else { 2536 const shift = gridEnabled ? appendSlidesIndexes.length / params.grid.rows : appendSlidesIndexes.length; 2537 swiper.slideTo(swiper.activeIndex - shift, 0, false, true); 2538 } 2539 } 2540 } 2541 swiper.allowSlidePrev = allowSlidePrev; 2542 swiper.allowSlideNext = allowSlideNext; 2543 if (swiper.controller && swiper.controller.control && !byController) { 2544 const loopParams = { 2545 slideRealIndex, 2546 direction, 2547 setTranslate, 2548 activeSlideIndex, 2549 byController: true 2550 }; 2551 if (Array.isArray(swiper.controller.control)) { 2552 swiper.controller.control.forEach(c => { 2553 if (!c.destroyed && c.params.loop) c.loopFix({ 2554 ...loopParams, 2555 slideTo: c.params.slidesPerView === params.slidesPerView ? slideTo : false 2556 }); 2557 }); 2558 } else if (swiper.controller.control instanceof swiper.constructor && swiper.controller.control.params.loop) { 2559 swiper.controller.control.loopFix({ 2560 ...loopParams, 2561 slideTo: swiper.controller.control.params.slidesPerView === params.slidesPerView ? slideTo : false 2562 }); 2563 } 2564 } 2565 swiper.emit('loopFix'); 2566 } 2567 2568 function loopDestroy() { 2569 const swiper = this; 2570 const { 2571 params, 2572 slidesEl 2573 } = swiper; 2574 if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return; 2575 swiper.recalcSlides(); 2576 const newSlidesOrder = [];
vendor: 5,514 bytes, lines 2577-2742
2577 swiper.slides.forEach(slideEl => { 2578 const index = typeof slideEl.swiperSlideIndex === 'undefined' ? slideEl.getAttribute('data-swiper-slide-index') * 1 : slideEl.swiperSlideIndex; 2579 newSlidesOrder[index] = slideEl; 2580 }); 2581 swiper.slides.forEach(slideEl => { 2582 slideEl.removeAttribute('data-swiper-slide-index'); 2583 }); 2584 newSlidesOrder.forEach(slideEl => { 2585 slidesEl.append(slideEl); 2586 }); 2587 swiper.recalcSlides(); 2588 swiper.slideTo(swiper.realIndex, 0); 2589 } 2590 2591 var loop = { 2592 loopCreate, 2593 loopFix, 2594 loopDestroy 2595 }; 2596 2597 function setGrabCursor(moving) { 2598 const swiper = this; 2599 if (!swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return; 2600 const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl; 2601 if (swiper.isElement) { 2602 swiper.__preventObserver__ = true; 2603 } 2604 el.style.cursor = 'move'; 2605 el.style.cursor = moving ? 'grabbing' : 'grab'; 2606 if (swiper.isElement) { 2607 requestAnimationFrame(() => { 2608 swiper.__preventObserver__ = false; 2609 }); 2610 } 2611 } 2612 2613 function unsetGrabCursor() { 2614 const swiper = this; 2615 if (swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) { 2616 return; 2617 } 2618 if (swiper.isElement) { 2619 swiper.__preventObserver__ = true; 2620 } 2621 swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = ''; 2622 if (swiper.isElement) { 2623 requestAnimationFrame(() => { 2624 swiper.__preventObserver__ = false; 2625 }); 2626 } 2627 } 2628 2629 var grabCursor = { 2630 setGrabCursor, 2631 unsetGrabCursor 2632 }; 2633 2634 // Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd 2635 function closestElement(selector, base) { 2636 if (base === void 0) { 2637 base = this; 2638 } 2639 function __closestFrom(el) { 2640 if (!el || el === getDocument() || el === getWindow()) return null; 2641 if (el.assignedSlot) el = el.assignedSlot; 2642 const found = el.closest(selector); 2643 if (!found && !el.getRootNode) { 2644 return null; 2645 } 2646 return found || __closestFrom(el.getRootNode().host); 2647 } 2648 return __closestFrom(base); 2649 } 2650 function preventEdgeSwipe(swiper, event, startX) { 2651 const window = getWindow(); 2652 const { 2653 params 2654 } = swiper; 2655 const edgeSwipeDetection = params.edgeSwipeDetection; 2656 const edgeSwipeThreshold = params.edgeSwipeThreshold; 2657 if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) { 2658 if (edgeSwipeDetection === 'prevent') { 2659 event.preventDefault(); 2660 return true; 2661 } 2662 return false; 2663 } 2664 return true; 2665 } 2666 function onTouchStart(event) { 2667 const swiper = this; 2668 const document = getDocument(); 2669 let e = event; 2670 if (e.originalEvent) e = e.originalEvent; 2671 const data = swiper.touchEventsData; 2672 if (e.type === 'pointerdown') { 2673 if (data.pointerId !== null && data.pointerId !== e.pointerId) { 2674 return; 2675 } 2676 data.pointerId = e.pointerId; 2677 } else if (e.type === 'touchstart' && e.targetTouches.length === 1) { 2678 data.touchId = e.targetTouches[0].identifier; 2679 } 2680 if (e.type === 'touchstart') { 2681 // don't proceed touch event 2682 preventEdgeSwipe(swiper, e, e.targetTouches[0].pageX); 2683 return; 2684 } 2685 const { 2686 params, 2687 touches, 2688 enabled 2689 } = swiper; 2690 if (!enabled) return; 2691 if (!params.simulateTouch && e.pointerType === 'mouse') return; 2692 if (swiper.animating && params.preventInteractionOnTransition) { 2693 return; 2694 } 2695 if (!swiper.animating && params.cssMode && params.loop) { 2696 swiper.loopFix(); 2697 } 2698 let targetEl = e.target; 2699 if (params.touchEventsTarget === 'wrapper') { 2700 if (!elementIsChildOf(targetEl, swiper.wrapperEl)) return; 2701 } 2702 if ('which' in e && e.which === 3) return; 2703 if ('button' in e && e.button > 0) return; 2704 if (data.isTouched && data.isMoved) return; 2705 2706 // change target el for shadow root component 2707 const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== ''; 2708 // eslint-disable-next-line 2709 const eventPath = e.composedPath ? e.composedPath() : e.path; 2710 if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) { 2711 targetEl = eventPath[0]; 2712 } 2713 const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`; 2714 const isTargetShadow = !!(e.target && e.target.shadowRoot); 2715 2716 // use closestElement for shadow root element to get the actual closest for nested shadow root element 2717 if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, targetEl) : targetEl.closest(noSwipingSelector))) { 2718 swiper.allowClick = true; 2719 return; 2720 } 2721 if (params.swipeHandler) { 2722 if (!targetEl.closest(params.swipeHandler)) return; 2723 } 2724 touches.currentX = e.pageX; 2725 touches.currentY = e.pageY; 2726 const startX = touches.currentX; 2727 const startY = touches.currentY; 2728 2729 // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore 2730 2731 if (!preventEdgeSwipe(swiper, e, startX)) { 2732 return; 2733 } 2734 Object.assign(data, { 2735 isTouched: true, 2736 isMoved: false, 2737 allowTouchCallbacks: true, 2738 isScrolling: undefined, 2739 startMoving: undefined 2740 }); 2741 touches.startX = startX; 2742 touches.startY = startY;
vendor: 4,730 bytes, lines 2743-2872
2743 data.touchStartTime = now(); 2744 swiper.allowClick = true; 2745 swiper.updateSize(); 2746 swiper.swipeDirection = undefined; 2747 if (params.threshold > 0) data.allowThresholdMove = false; 2748 let preventDefault = true; 2749 if (targetEl.matches(data.focusableElements)) { 2750 preventDefault = false; 2751 if (targetEl.nodeName === 'SELECT') { 2752 data.isTouched = false; 2753 } 2754 } 2755 if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== targetEl) { 2756 document.activeElement.blur(); 2757 } 2758 const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault; 2759 if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !targetEl.isContentEditable) { 2760 e.preventDefault(); 2761 } 2762 if (params.freeMode && params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) { 2763 swiper.freeMode.onTouchStart(); 2764 } 2765 swiper.emit('touchStart', e); 2766 } 2767 2768 function onTouchMove(event) { 2769 const document = getDocument(); 2770 const swiper = this; 2771 const data = swiper.touchEventsData; 2772 const { 2773 params, 2774 touches, 2775 rtlTranslate: rtl, 2776 enabled 2777 } = swiper; 2778 if (!enabled) return; 2779 if (!params.simulateTouch && event.pointerType === 'mouse') return; 2780 let e = event; 2781 if (e.originalEvent) e = e.originalEvent; 2782 if (e.type === 'pointermove') { 2783 if (data.touchId !== null) return; // return from pointer if we use touch 2784 const id = e.pointerId; 2785 if (id !== data.pointerId) return; 2786 } 2787 let targetTouch; 2788 if (e.type === 'touchmove') { 2789 targetTouch = [...e.changedTouches].filter(t => t.identifier === data.touchId)[0]; 2790 if (!targetTouch || targetTouch.identifier !== data.touchId) return; 2791 } else { 2792 targetTouch = e; 2793 } 2794 if (!data.isTouched) { 2795 if (data.startMoving && data.isScrolling) { 2796 swiper.emit('touchMoveOpposite', e); 2797 } 2798 return; 2799 } 2800 const pageX = targetTouch.pageX; 2801 const pageY = targetTouch.pageY; 2802 if (e.preventedByNestedSwiper) { 2803 touches.startX = pageX; 2804 touches.startY = pageY; 2805 return; 2806 } 2807 if (!swiper.allowTouchMove) { 2808 if (!e.target.matches(data.focusableElements)) { 2809 swiper.allowClick = false; 2810 } 2811 if (data.isTouched) { 2812 Object.assign(touches, { 2813 startX: pageX, 2814 startY: pageY, 2815 currentX: pageX, 2816 currentY: pageY 2817 }); 2818 data.touchStartTime = now(); 2819 } 2820 return; 2821 } 2822 if (params.touchReleaseOnEdges && !params.loop) { 2823 if (swiper.isVertical()) { 2824 // Vertical 2825 if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) { 2826 data.isTouched = false; 2827 data.isMoved = false; 2828 return; 2829 } 2830 } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) { 2831 return; 2832 } 2833 } 2834 if (document.activeElement) { 2835 if (e.target === document.activeElement && e.target.matches(data.focusableElements)) { 2836 data.isMoved = true; 2837 swiper.allowClick = false; 2838 return; 2839 } 2840 } 2841 if (data.allowTouchCallbacks) { 2842 swiper.emit('touchMove', e); 2843 } 2844 touches.previousX = touches.currentX; 2845 touches.previousY = touches.currentY; 2846 touches.currentX = pageX; 2847 touches.currentY = pageY; 2848 const diffX = touches.currentX - touches.startX; 2849 const diffY = touches.currentY - touches.startY; 2850 if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return; 2851 if (typeof data.isScrolling === 'undefined') { 2852 let touchAngle; 2853 if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) { 2854 data.isScrolling = false; 2855 } else { 2856 // eslint-disable-next-line 2857 if (diffX * diffX + diffY * diffY >= 25) { 2858 touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI; 2859 data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle; 2860 } 2861 } 2862 } 2863 if (data.isScrolling) { 2864 swiper.emit('touchMoveOpposite', e); 2865 } 2866 if (typeof data.startMoving === 'undefined') { 2867 if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) { 2868 data.startMoving = true; 2869 } 2870 } 2871 if (data.isScrolling || e.type === 'touchmove' && data.preventTouchMoveFromPointerMove) { 2872 data.isTouched = false;
vendor: 6,762 bytes, lines 2873-3037
2873 return; 2874 } 2875 if (!data.startMoving) { 2876 return; 2877 } 2878 swiper.allowClick = false; 2879 if (!params.cssMode && e.cancelable) { 2880 e.preventDefault(); 2881 } 2882 if (params.touchMoveStopPropagation && !params.nested) { 2883 e.stopPropagation(); 2884 } 2885 let diff = swiper.isHorizontal() ? diffX : diffY; 2886 let touchesDiff = swiper.isHorizontal() ? touches.currentX - touches.previousX : touches.currentY - touches.previousY; 2887 if (params.oneWayMovement) { 2888 diff = Math.abs(diff) * (rtl ? 1 : -1); 2889 touchesDiff = Math.abs(touchesDiff) * (rtl ? 1 : -1); 2890 } 2891 touches.diff = diff; 2892 diff *= params.touchRatio; 2893 if (rtl) { 2894 diff = -diff; 2895 touchesDiff = -touchesDiff; 2896 } 2897 const prevTouchesDirection = swiper.touchesDirection; 2898 swiper.swipeDirection = diff > 0 ? 'prev' : 'next'; 2899 swiper.touchesDirection = touchesDiff > 0 ? 'prev' : 'next'; 2900 const isLoop = swiper.params.loop && !params.cssMode; 2901 const allowLoopFix = swiper.touchesDirection === 'next' && swiper.allowSlideNext || swiper.touchesDirection === 'prev' && swiper.allowSlidePrev; 2902 if (!data.isMoved) { 2903 if (isLoop && allowLoopFix) { 2904 swiper.loopFix({ 2905 direction: swiper.swipeDirection 2906 }); 2907 } 2908 data.startTranslate = swiper.getTranslate(); 2909 swiper.setTransition(0); 2910 if (swiper.animating) { 2911 const evt = new window.CustomEvent('transitionend', { 2912 bubbles: true, 2913 cancelable: true, 2914 detail: { 2915 bySwiperTouchMove: true 2916 } 2917 }); 2918 swiper.wrapperEl.dispatchEvent(evt); 2919 } 2920 data.allowMomentumBounce = false; 2921 // Grab Cursor 2922 if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) { 2923 swiper.setGrabCursor(true); 2924 } 2925 swiper.emit('sliderFirstMove', e); 2926 } 2927 let loopFixed; 2928 new Date().getTime(); 2929 if (data.isMoved && data.allowThresholdMove && prevTouchesDirection !== swiper.touchesDirection && isLoop && allowLoopFix && Math.abs(diff) >= 1) { 2930 Object.assign(touches, { 2931 startX: pageX, 2932 startY: pageY, 2933 currentX: pageX, 2934 currentY: pageY, 2935 startTranslate: data.currentTranslate 2936 }); 2937 data.loopSwapReset = true; 2938 data.startTranslate = data.currentTranslate; 2939 return; 2940 } 2941 swiper.emit('sliderMove', e); 2942 data.isMoved = true; 2943 data.currentTranslate = diff + data.startTranslate; 2944 let disableParentSwiper = true; 2945 let resistanceRatio = params.resistanceRatio; 2946 if (params.touchReleaseOnEdges) { 2947 resistanceRatio = 0; 2948 } 2949 if (diff > 0) { 2950 if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate > (params.centeredSlides ? swiper.minTranslate() - swiper.slidesSizesGrid[swiper.activeIndex + 1] - (params.slidesPerView !== 'auto' && swiper.slides.length - params.slidesPerView >= 2 ? swiper.slidesSizesGrid[swiper.activeIndex + 1] + swiper.params.spaceBetween : 0) - swiper.params.spaceBetween : swiper.minTranslate())) { 2951 swiper.loopFix({ 2952 direction: 'prev', 2953 setTranslate: true, 2954 activeSlideIndex: 0 2955 }); 2956 } 2957 if (data.currentTranslate > swiper.minTranslate()) { 2958 disableParentSwiper = false; 2959 if (params.resistance) { 2960 data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio; 2961 } 2962 } 2963 } else if (diff < 0) { 2964 if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate < (params.centeredSlides ? swiper.maxTranslate() + swiper.slidesSizesGrid[swiper.slidesSizesGrid.length - 1] + swiper.params.spaceBetween + (params.slidesPerView !== 'auto' && swiper.slides.length - params.slidesPerView >= 2 ? swiper.slidesSizesGrid[swiper.slidesSizesGrid.length - 1] + swiper.params.spaceBetween : 0) : swiper.maxTranslate())) { 2965 swiper.loopFix({ 2966 direction: 'next', 2967 setTranslate: true, 2968 activeSlideIndex: swiper.slides.length - (params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10))) 2969 }); 2970 } 2971 if (data.currentTranslate < swiper.maxTranslate()) { 2972 disableParentSwiper = false; 2973 if (params.resistance) { 2974 data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio; 2975 } 2976 } 2977 } 2978 if (disableParentSwiper) { 2979 e.preventedByNestedSwiper = true; 2980 } 2981 2982 // Directions locks 2983 if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) { 2984 data.currentTranslate = data.startTranslate; 2985 } 2986 if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) { 2987 data.currentTranslate = data.startTranslate; 2988 } 2989 if (!swiper.allowSlidePrev && !swiper.allowSlideNext) { 2990 data.currentTranslate = data.startTranslate; 2991 } 2992 2993 // Threshold 2994 if (params.threshold > 0) { 2995 if (Math.abs(diff) > params.threshold || data.allowThresholdMove) { 2996 if (!data.allowThresholdMove) { 2997 data.allowThresholdMove = true; 2998 touches.startX = touches.currentX; 2999 touches.startY = touches.currentY; 3000 data.currentTranslate = data.startTranslate; 3001 touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY; 3002 return; 3003 } 3004 } else { 3005 data.currentTranslate = data.startTranslate; 3006 return; 3007 } 3008 } 3009 if (!params.followFinger || params.cssMode) return; 3010 3011 // Update active index in free mode 3012 if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) { 3013 swiper.updateActiveIndex(); 3014 swiper.updateSlidesClasses(); 3015 } 3016 if (params.freeMode && params.freeMode.enabled && swiper.freeMode) { 3017 swiper.freeMode.onTouchMove(); 3018 } 3019 // Update progress 3020 swiper.updateProgress(data.currentTranslate); 3021 // Update translate 3022 swiper.setTranslate(data.currentTranslate); 3023 } 3024 3025 function onTouchEnd(event) { 3026 const swiper = this; 3027 const data = swiper.touchEventsData; 3028 let e = event; 3029 if (e.originalEvent) e = e.originalEvent; 3030 let targetTouch; 3031 const isTouchEvent = e.type === 'touchend' || e.type === 'touchcancel'; 3032 if (!isTouchEvent) { 3033 if (data.touchId !== null) return; // return from pointer if we use touch 3034 if (e.pointerId !== data.pointerId) return; 3035 targetTouch = e; 3036 } else { 3037 targetTouch = [...e.changedTouches].filter(t => t.identifier === data.touchId)[0]
vendor: 8,866 bytes, lines 3037-3300
3037; 3038 if (!targetTouch || targetTouch.identifier !== data.touchId) return; 3039 } 3040 if (['pointercancel', 'pointerout', 'pointerleave', 'contextmenu'].includes(e.type)) { 3041 const proceed = ['pointercancel', 'contextmenu'].includes(e.type) && (swiper.browser.isSafari || swiper.browser.isWebView); 3042 if (!proceed) { 3043 return; 3044 } 3045 } 3046 data.pointerId = null; 3047 data.touchId = null; 3048 const { 3049 params, 3050 touches, 3051 rtlTranslate: rtl, 3052 slidesGrid, 3053 enabled 3054 } = swiper; 3055 if (!enabled) return; 3056 if (!params.simulateTouch && e.pointerType === 'mouse') return; 3057 if (data.allowTouchCallbacks) { 3058 swiper.emit('touchEnd', e); 3059 } 3060 data.allowTouchCallbacks = false; 3061 if (!data.isTouched) { 3062 if (data.isMoved && params.grabCursor) { 3063 swiper.setGrabCursor(false); 3064 } 3065 data.isMoved = false; 3066 data.startMoving = false; 3067 return; 3068 } 3069 3070 // Return Grab Cursor 3071 if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) { 3072 swiper.setGrabCursor(false); 3073 } 3074 3075 // Time diff 3076 const touchEndTime = now(); 3077 const timeDiff = touchEndTime - data.touchStartTime; 3078 3079 // Tap, doubleTap, Click 3080 if (swiper.allowClick) { 3081 const pathTree = e.path || e.composedPath && e.composedPath(); 3082 swiper.updateClickedSlide(pathTree && pathTree[0] || e.target, pathTree); 3083 swiper.emit('tap click', e); 3084 if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) { 3085 swiper.emit('doubleTap doubleClick', e); 3086 } 3087 } 3088 data.lastClickTime = now(); 3089 nextTick(() => { 3090 if (!swiper.destroyed) swiper.allowClick = true; 3091 }); 3092 if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 && !data.loopSwapReset || data.currentTranslate === data.startTranslate && !data.loopSwapReset) { 3093 data.isTouched = false; 3094 data.isMoved = false; 3095 data.startMoving = false; 3096 return; 3097 } 3098 data.isTouched = false; 3099 data.isMoved = false; 3100 data.startMoving = false; 3101 let currentPos; 3102 if (params.followFinger) { 3103 currentPos = rtl ? swiper.translate : -swiper.translate; 3104 } else { 3105 currentPos = -data.currentTranslate; 3106 } 3107 if (params.cssMode) { 3108 return; 3109 } 3110 if (params.freeMode && params.freeMode.enabled) { 3111 swiper.freeMode.onTouchEnd({ 3112 currentPos 3113 }); 3114 return; 3115 } 3116 3117 // Find current slide 3118 const swipeToLast = currentPos >= -swiper.maxTranslate() && !swiper.params.loop; 3119 let stopIndex = 0; 3120 let groupSize = swiper.slidesSizesGrid[0]; 3121 for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) { 3122 const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup; 3123 if (typeof slidesGrid[i + increment] !== 'undefined') { 3124 if (swipeToLast || currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) { 3125 stopIndex = i; 3126 groupSize = slidesGrid[i + increment] - slidesGrid[i]; 3127 } 3128 } else if (swipeToLast || currentPos >= slidesGrid[i]) { 3129 stopIndex = i; 3130 groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2]; 3131 } 3132 } 3133 let rewindFirstIndex = null; 3134 let rewindLastIndex = null; 3135 if (params.rewind) { 3136 if (swiper.isBeginning) { 3137 rewindLastIndex = params.virtual && params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1; 3138 } else if (swiper.isEnd) { 3139 rewindFirstIndex = 0; 3140 } 3141 } 3142 // Find current slide size 3143 const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize; 3144 const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup; 3145 if (timeDiff > params.longSwipesMs) { 3146 // Long touches 3147 if (!params.longSwipes) { 3148 swiper.slideTo(swiper.activeIndex); 3149 return; 3150 } 3151 if (swiper.swipeDirection === 'next') { 3152 if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex); 3153 } 3154 if (swiper.swipeDirection === 'prev') { 3155 if (ratio > 1 - params.longSwipesRatio) { 3156 swiper.slideTo(stopIndex + increment); 3157 } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) { 3158 swiper.slideTo(rewindLastIndex); 3159 } else { 3160 swiper.slideTo(stopIndex); 3161 } 3162 } 3163 } else { 3164 // Short swipes 3165 if (!params.shortSwipes) { 3166 swiper.slideTo(swiper.activeIndex); 3167 return; 3168 } 3169 const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl); 3170 if (!isNavButtonTarget) { 3171 if (swiper.swipeDirection === 'next') { 3172 swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment); 3173 } 3174 if (swiper.swipeDirection === 'prev') { 3175 swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex); 3176 } 3177 } else if (e.target === swiper.navigation.nextEl) { 3178 swiper.slideTo(stopIndex + increment); 3179 } else { 3180 swiper.slideTo(stopIndex); 3181 } 3182 } 3183 } 3184 3185 function onResize() { 3186 const swiper = this; 3187 const { 3188 params, 3189 el 3190 } = swiper; 3191 if (el && el.offsetWidth === 0) return; 3192 3193 // Breakpoints 3194 if (params.breakpoints) { 3195 swiper.setBreakpoint(); 3196 } 3197 3198 // Save locks 3199 const { 3200 allowSlideNext, 3201 allowSlidePrev, 3202 snapGrid 3203 } = swiper; 3204 const isVirtual = swiper.virtual && swiper.params.virtual.enabled; 3205 3206 // Disable locks on resize 3207 swiper.allowSlideNext = true; 3208 swiper.allowSlidePrev = true; 3209 swiper.updateSize(); 3210 swiper.updateSlides(); 3211 swiper.updateSlidesClasses(); 3212 const isVirtualLoop = isVirtual && params.loop; 3213 if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides && !isVirtualLoop) { 3214 swiper.slideTo(swiper.slides.length - 1, 0, false, true); 3215 } else { 3216 if (swiper.params.loop && !isVirtual) { 3217 swiper.slideToLoop(swiper.realIndex, 0, false, true); 3218 } else { 3219 swiper.slideTo(swiper.activeIndex, 0, false, true); 3220 } 3221 } 3222 if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) { 3223 clearTimeout(swiper.autoplay.resizeTimeout); 3224 swiper.autoplay.resizeTimeout = setTimeout(() => { 3225 if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) { 3226 swiper.autoplay.resume(); 3227 } 3228 }, 500); 3229 } 3230 // Return locks after resize 3231 swiper.allowSlidePrev = allowSlidePrev; 3232 swiper.allowSlideNext = allowSlideNext; 3233 if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) { 3234 swiper.checkOverflow(); 3235 } 3236 } 3237 3238 function onClick(e) { 3239 const swiper = this; 3240 if (!swiper.enabled) return; 3241 if (!swiper.allowClick) { 3242 if (swiper.params.preventClicks) e.preventDefault(); 3243 if (swiper.params.preventClicksPropagation && swiper.animating) { 3244 e.stopPropagation(); 3245 e.stopImmediatePropagation(); 3246 } 3247 } 3248 } 3249 3250 function onScroll() { 3251 const swiper = this; 3252 const { 3253 wrapperEl, 3254 rtlTranslate, 3255 enabled 3256 } = swiper; 3257 if (!enabled) return; 3258 swiper.previousTranslate = swiper.translate; 3259 if (swiper.isHorizontal()) { 3260 swiper.translate = -wrapperEl.scrollLeft; 3261 } else { 3262 swiper.translate = -wrapperEl.scrollTop; 3263 } 3264 // eslint-disable-next-line 3265 if (swiper.translate === 0) swiper.translate = 0; 3266 swiper.updateActiveIndex(); 3267 swiper.updateSlidesClasses(); 3268 let newProgress; 3269 const translatesDiff = swiper.maxTranslate() - swiper.minTranslate(); 3270 if (translatesDiff === 0) { 3271 newProgress = 0; 3272 } else { 3273 newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff; 3274 } 3275 if (newProgress !== swiper.progress) { 3276 swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate); 3277 } 3278 swiper.emit('setTranslate', swiper.translate, false); 3279 } 3280 3281 function onLoad(e) { 3282 const swiper = this; 3283 processLazyPreloader(swiper, e.target); 3284 if (swiper.params.cssMode || swiper.params.slidesPerView !== 'auto' && !swiper.params.autoHeight) { 3285 return; 3286 } 3287 swiper.update(); 3288 } 3289 3290 function onDocumentTouchStart() { 3291 const swiper = this; 3292 if (swiper.documentTouchHandlerProceeded) return; 3293 swiper.documentTouchHandlerProceeded = true; 3294 if (swiper.params.touchReleaseOnEdges) { 3295 swiper.el.style.touchAction = 'auto'; 3296 } 3297 } 3298 3299 const events = (swiper, method) => { 3300 const document = getDocument
vendor: 3,137 bytes, lines 3300-3412
3300(); 3301 const { 3302 params, 3303 el, 3304 wrapperEl, 3305 device 3306 } = swiper; 3307 const capture = !!params.nested; 3308 const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener'; 3309 const swiperMethod = method; 3310 if (!el || typeof el === 'string') return; 3311 3312 // Touch Events 3313 document[domMethod]('touchstart', swiper.onDocumentTouchStart, { 3314 passive: false, 3315 capture 3316 }); 3317 el[domMethod]('touchstart', swiper.onTouchStart, { 3318 passive: false 3319 }); 3320 el[domMethod]('pointerdown', swiper.onTouchStart, { 3321 passive: false 3322 }); 3323 document[domMethod]('touchmove', swiper.onTouchMove, { 3324 passive: false, 3325 capture 3326 }); 3327 document[domMethod]('pointermove', swiper.onTouchMove, { 3328 passive: false, 3329 capture 3330 }); 3331 document[domMethod]('touchend', swiper.onTouchEnd, { 3332 passive: true 3333 }); 3334 document[domMethod]('pointerup', swiper.onTouchEnd, { 3335 passive: true 3336 }); 3337 document[domMethod]('pointercancel', swiper.onTouchEnd, { 3338 passive: true 3339 }); 3340 document[domMethod]('touchcancel', swiper.onTouchEnd, { 3341 passive: true 3342 }); 3343 document[domMethod]('pointerout', swiper.onTouchEnd, { 3344 passive: true 3345 }); 3346 document[domMethod]('pointerleave', swiper.onTouchEnd, { 3347 passive: true 3348 }); 3349 document[domMethod]('contextmenu', swiper.onTouchEnd, { 3350 passive: true 3351 }); 3352 3353 // Prevent Links Clicks 3354 if (params.preventClicks || params.preventClicksPropagation) { 3355 el[domMethod]('click', swiper.onClick, true); 3356 } 3357 if (params.cssMode) { 3358 wrapperEl[domMethod]('scroll', swiper.onScroll); 3359 } 3360 3361 // Resize handler 3362 if (params.updateOnWindowResize) { 3363 swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true); 3364 } else { 3365 swiper[swiperMethod]('observerUpdate', onResize, true); 3366 } 3367 3368 // Images loader 3369 el[domMethod]('load', swiper.onLoad, { 3370 capture: true 3371 }); 3372 }; 3373 function attachEvents() { 3374 const swiper = this; 3375 const { 3376 params 3377 } = swiper; 3378 swiper.onTouchStart = onTouchStart.bind(swiper); 3379 swiper.onTouchMove = onTouchMove.bind(swiper); 3380 swiper.onTouchEnd = onTouchEnd.bind(swiper); 3381 swiper.onDocumentTouchStart = onDocumentTouchStart.bind(swiper); 3382 if (params.cssMode) { 3383 swiper.onScroll = onScroll.bind(swiper); 3384 } 3385 swiper.onClick = onClick.bind(swiper); 3386 swiper.onLoad = onLoad.bind(swiper); 3387 events(swiper, 'on'); 3388 } 3389 function detachEvents() { 3390 const swiper = this; 3391 events(swiper, 'off'); 3392 } 3393 var events$1 = { 3394 attachEvents, 3395 detachEvents 3396 }; 3397 3398 const isGridEnabled = (swiper, params) => { 3399 return swiper.grid && params.grid && params.grid.rows > 1; 3400 }; 3401 function setBreakpoint() { 3402 const swiper = this; 3403 const { 3404 realIndex, 3405 initialized, 3406 params, 3407 el 3408 } = swiper; 3409 const breakpoints = params.breakpoints; 3410 if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; 3411 3412 // Get breakpoint for window width and update parameters
vendor: 3,397 bytes, lines 3413-3492
3413 const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el); 3414 if (!breakpoint || swiper.currentBreakpoint === breakpoint) return; 3415 const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined; 3416 const breakpointParams = breakpointOnlyParams || swiper.originalParams; 3417 const wasMultiRow = isGridEnabled(swiper, params); 3418 const isMultiRow = isGridEnabled(swiper, breakpointParams); 3419 const wasGrabCursor = swiper.params.grabCursor; 3420 const isGrabCursor = breakpointParams.grabCursor; 3421 const wasEnabled = params.enabled; 3422 if (wasMultiRow && !isMultiRow) { 3423 el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`); 3424 swiper.emitContainerClasses(); 3425 } else if (!wasMultiRow && isMultiRow) { 3426 el.classList.add(`${params.containerModifierClass}grid`); 3427 if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') { 3428 el.classList.add(`${params.containerModifierClass}grid-column`); 3429 } 3430 swiper.emitContainerClasses(); 3431 } 3432 if (wasGrabCursor && !isGrabCursor) { 3433 swiper.unsetGrabCursor(); 3434 } else if (!wasGrabCursor && isGrabCursor) { 3435 swiper.setGrabCursor(); 3436 } 3437 3438 // Toggle navigation, pagination, scrollbar 3439 ['navigation', 'pagination', 'scrollbar'].forEach(prop => { 3440 if (typeof breakpointParams[prop] === 'undefined') return; 3441 const wasModuleEnabled = params[prop] && params[prop].enabled; 3442 const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled; 3443 if (wasModuleEnabled && !isModuleEnabled) { 3444 swiper[prop].disable(); 3445 } 3446 if (!wasModuleEnabled && isModuleEnabled) { 3447 swiper[prop].enable(); 3448 } 3449 }); 3450 const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction; 3451 const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged); 3452 const wasLoop = params.loop; 3453 if (directionChanged && initialized) { 3454 swiper.changeDirection(); 3455 } 3456 extend(swiper.params, breakpointParams); 3457 const isEnabled = swiper.params.enabled; 3458 const hasLoop = swiper.params.loop; 3459 Object.assign(swiper, { 3460 allowTouchMove: swiper.params.allowTouchMove, 3461 allowSlideNext: swiper.params.allowSlideNext, 3462 allowSlidePrev: swiper.params.allowSlidePrev 3463 }); 3464 if (wasEnabled && !isEnabled) { 3465 swiper.disable(); 3466 } else if (!wasEnabled && isEnabled) { 3467 swiper.enable(); 3468 } 3469 swiper.currentBreakpoint = breakpoint; 3470 swiper.emit('_beforeBreakpoint', breakpointParams); 3471 if (initialized) { 3472 if (needsReLoop) { 3473 swiper.loopDestroy(); 3474 swiper.loopCreate(realIndex); 3475 swiper.updateSlides(); 3476 } else if (!wasLoop && hasLoop) { 3477 swiper.loopCreate(realIndex); 3478 swiper.updateSlides(); 3479 } else if (wasLoop && !hasLoop) { 3480 swiper.loopDestroy(); 3481 } 3482 } 3483 swiper.emit('breakpoint', breakpointParams); 3484 } 3485 3486 function getBreakpoint(breakpoints, base, containerEl) { 3487 if (base === void 0) { 3488 base = 'window'; 3489 } 3490 if (!breakpoints || base === 'container' && !containerEl) return undefined; 3491 let breakpoint = false; 3492 const window = getWindow
vendor: 7,245 bytes, lines 3492-3761
3492(); 3493 const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight; 3494 const points = Object.keys(breakpoints).map(point => { 3495 if (typeof point === 'string' && point.indexOf('@') === 0) { 3496 const minRatio = parseFloat(point.substr(1)); 3497 const value = currentHeight * minRatio; 3498 return { 3499 value, 3500 point 3501 }; 3502 } 3503 return { 3504 value: point, 3505 point 3506 }; 3507 }); 3508 points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10)); 3509 for (let i = 0; i < points.length; i += 1) { 3510 const { 3511 point, 3512 value 3513 } = points[i]; 3514 if (base === 'window') { 3515 if (window.matchMedia(`(min-width: ${value}px)`).matches) { 3516 breakpoint = point; 3517 } 3518 } else if (value <= containerEl.clientWidth) { 3519 breakpoint = point; 3520 } 3521 } 3522 return breakpoint || 'max'; 3523 } 3524 3525 var breakpoints = { 3526 setBreakpoint, 3527 getBreakpoint 3528 }; 3529 3530 function prepareClasses(entries, prefix) { 3531 const resultClasses = []; 3532 entries.forEach(item => { 3533 if (typeof item === 'object') { 3534 Object.keys(item).forEach(classNames => { 3535 if (item[classNames]) { 3536 resultClasses.push(prefix + classNames); 3537 } 3538 }); 3539 } else if (typeof item === 'string') { 3540 resultClasses.push(prefix + item); 3541 } 3542 }); 3543 return resultClasses; 3544 } 3545 function addClasses() { 3546 const swiper = this; 3547 const { 3548 classNames, 3549 params, 3550 rtl, 3551 el, 3552 device 3553 } = swiper; 3554 // prettier-ignore 3555 const suffixes = prepareClasses(['initialized', params.direction, { 3556 'free-mode': swiper.params.freeMode && params.freeMode.enabled 3557 }, { 3558 'autoheight': params.autoHeight 3559 }, { 3560 'rtl': rtl 3561 }, { 3562 'grid': params.grid && params.grid.rows > 1 3563 }, { 3564 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column' 3565 }, { 3566 'android': device.android 3567 }, { 3568 'ios': device.ios 3569 }, { 3570 'css-mode': params.cssMode 3571 }, { 3572 'centered': params.cssMode && params.centeredSlides 3573 }, { 3574 'watch-progress': params.watchSlidesProgress 3575 }], params.containerModifierClass); 3576 classNames.push(...suffixes); 3577 el.classList.add(...classNames); 3578 swiper.emitContainerClasses(); 3579 } 3580 3581 function removeClasses() { 3582 const swiper = this; 3583 const { 3584 el, 3585 classNames 3586 } = swiper; 3587 if (!el || typeof el === 'string') return; 3588 el.classList.remove(...classNames); 3589 swiper.emitContainerClasses(); 3590 } 3591 3592 var classes = { 3593 addClasses, 3594 removeClasses 3595 }; 3596 3597 function checkOverflow() { 3598 const swiper = this; 3599 const { 3600 isLocked: wasLocked, 3601 params 3602 } = swiper; 3603 const { 3604 slidesOffsetBefore 3605 } = params; 3606 if (slidesOffsetBefore) { 3607 const lastSlideIndex = swiper.slides.length - 1; 3608 const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2; 3609 swiper.isLocked = swiper.size > lastSlideRightEdge; 3610 } else { 3611 swiper.isLocked = swiper.snapGrid.length === 1; 3612 } 3613 if (params.allowSlideNext === true) { 3614 swiper.allowSlideNext = !swiper.isLocked; 3615 } 3616 if (params.allowSlidePrev === true) { 3617 swiper.allowSlidePrev = !swiper.isLocked; 3618 } 3619 if (wasLocked && wasLocked !== swiper.isLocked) { 3620 swiper.isEnd = false; 3621 } 3622 if (wasLocked !== swiper.isLocked) { 3623 swiper.emit(swiper.isLocked ? 'lock' : 'unlock'); 3624 } 3625 } 3626 var checkOverflow$1 = { 3627 checkOverflow 3628 }; 3629 3630 var defaults = { 3631 init: true, 3632 direction: 'horizontal', 3633 oneWayMovement: false, 3634 swiperElementNodeName: 'SWIPER-CONTAINER', 3635 touchEventsTarget: 'wrapper', 3636 initialSlide: 0, 3637 speed: 300, 3638 cssMode: false, 3639 updateOnWindowResize: true, 3640 resizeObserver: true, 3641 nested: false, 3642 createElements: false, 3643 eventsPrefix: 'swiper', 3644 enabled: true, 3645 focusableElements: 'input, select, option, textarea, button, video, label', 3646 // Overrides 3647 width: null, 3648 height: null, 3649 // 3650 preventInteractionOnTransition: false, 3651 // ssr 3652 userAgent: null, 3653 url: null, 3654 // To support iOS's swipe-to-go-back gesture (when being used in-app). 3655 edgeSwipeDetection: false, 3656 edgeSwipeThreshold: 20, 3657 // Autoheight 3658 autoHeight: false, 3659 // Set wrapper width 3660 setWrapperSize: false, 3661 // Virtual Translate 3662 virtualTranslate: false, 3663 // Effects 3664 effect: 'slide', 3665 // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip' 3666 3667 // Breakpoints 3668 breakpoints: undefined, 3669 breakpointsBase: 'window', 3670 // Slides grid 3671 spaceBetween: 0, 3672 slidesPerView: 1, 3673 slidesPerGroup: 1, 3674 slidesPerGroupSkip: 0, 3675 slidesPerGroupAuto: false, 3676 centeredSlides: false, 3677 centeredSlidesBounds: false, 3678 slidesOffsetBefore: 0, 3679 // in px 3680 slidesOffsetAfter: 0, 3681 // in px 3682 normalizeSlideIndex: true, 3683 centerInsufficientSlides: false, 3684 // Disable swiper and hide navigation when container not overflow 3685 watchOverflow: true, 3686 // Round length 3687 roundLengths: false, 3688 // Touches 3689 touchRatio: 1, 3690 touchAngle: 45, 3691 simulateTouch: true, 3692 shortSwipes: true, 3693 longSwipes: true, 3694 longSwipesRatio: 0.5, 3695 longSwipesMs: 300, 3696 followFinger: true, 3697 allowTouchMove: true, 3698 threshold: 5, 3699 touchMoveStopPropagation: false, 3700 touchStartPreventDefault: true, 3701 touchStartForcePreventDefault: false, 3702 touchReleaseOnEdges: false, 3703 // Unique Navigation Elements 3704 uniqueNavElements: true, 3705 // Resistance 3706 resistance: true, 3707 resistanceRatio: 0.85, 3708 // Progress 3709 watchSlidesProgress: false, 3710 // Cursor 3711 grabCursor: false, 3712 // Clicks 3713 preventClicks: true, 3714 preventClicksPropagation: true, 3715 slideToClickedSlide: false, 3716 // loop 3717 loop: false, 3718 loopAddBlankSlides: true, 3719 loopAdditionalSlides: 0, 3720 loopPreventsSliding: true, 3721 // rewind 3722 rewind: false, 3723 // Swiping/no swiping 3724 allowSlidePrev: true, 3725 allowSlideNext: true, 3726 swipeHandler: null, 3727 // '.swipe-handler', 3728 noSwiping: true, 3729 noSwipingClass: 'swiper-no-swiping', 3730 noSwipingSelector: null, 3731 // Passive Listeners 3732 passiveListeners: true, 3733 maxBackfaceHiddenSlides: 10, 3734 // NS 3735 containerModifierClass: 'swiper-', 3736 // NEW 3737 slideClass: 'swiper-slide', 3738 slideBlankClass: 'swiper-slide-blank', 3739 slideActiveClass: 'swiper-slide-active', 3740 slideVisibleClass: 'swiper-slide-visible', 3741 slideFullyVisibleClass: 'swiper-slide-fully-visible', 3742 slideNextClass: 'swiper-slide-next', 3743 slidePrevClass: 'swiper-slide-prev', 3744 wrapperClass: 'swiper-wrapper', 3745 lazyPreloaderClass: 'swiper-lazy-preloader', 3746 lazyPreloadPrevNext: 0, 3747 // Callbacks 3748 runCallbacksOnInit: true, 3749 // Internals 3750 _emitClasses: false 3751 }; 3752 3753 function moduleExtendParams(params, allModulesParams) { 3754 return function extendParams(obj) { 3755 if (obj === void 0) { 3756 obj = {}; 3757 } 3758 const moduleParamName = Object.keys(obj)[0]; 3759 const moduleParams = obj[moduleParamName]; 3760 if (typeof moduleParams !== 'object' || moduleParams === null) { 3761 extend
vendor: 1,554 bytes, lines 3761-3810
3761(allModulesParams, obj); 3762 return; 3763 } 3764 if (params[moduleParamName] === true) { 3765 params[moduleParamName] = { 3766 enabled: true 3767 }; 3768 } 3769 if (moduleParamName === 'navigation' && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].prevEl && !params[moduleParamName].nextEl) { 3770 params[moduleParamName].auto = true; 3771 } 3772 if (['pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].el) { 3773 params[moduleParamName].auto = true; 3774 } 3775 if (!(moduleParamName in params && 'enabled' in moduleParams)) { 3776 extend(allModulesParams, obj); 3777 return; 3778 } 3779 if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) { 3780 params[moduleParamName].enabled = true; 3781 } 3782 if (!params[moduleParamName]) params[moduleParamName] = { 3783 enabled: false 3784 }; 3785 extend(allModulesParams, obj); 3786 }; 3787 } 3788 3789 /* eslint no-param-reassign: "off" */ 3790 const prototypes = { 3791 eventsEmitter, 3792 update, 3793 translate, 3794 transition, 3795 slide, 3796 loop, 3797 grabCursor, 3798 events: events$1, 3799 breakpoints, 3800 checkOverflow: checkOverflow$1, 3801 classes 3802 }; 3803 const extendedDefaults = {}; 3804 class Swiper { 3805 constructor() { 3806 let el; 3807 let params; 3808 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { 3809 args[_key] = arguments[_key]; 3810 }
vendor: 2,062 bytes, lines 3811-3868
3811 if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') { 3812 params = args[0]; 3813 } else { 3814 [el, params] = args; 3815 } 3816 if (!params) params = {}; 3817 params = extend({}, params); 3818 if (el && !params.el) params.el = el; 3819 const document = getDocument(); 3820 if (params.el && typeof params.el === 'string' && document.querySelectorAll(params.el).length > 1) { 3821 const swipers = []; 3822 document.querySelectorAll(params.el).forEach(containerEl => { 3823 const newParams = extend({}, params, { 3824 el: containerEl 3825 }); 3826 swipers.push(new Swiper(newParams)); 3827 }); 3828 // eslint-disable-next-line no-constructor-return 3829 return swipers; 3830 } 3831 3832 // Swiper Instance 3833 const swiper = this; 3834 swiper.__swiper__ = true; 3835 swiper.support = getSupport(); 3836 swiper.device = getDevice({ 3837 userAgent: params.userAgent 3838 }); 3839 swiper.browser = getBrowser(); 3840 swiper.eventsListeners = {}; 3841 swiper.eventsAnyListeners = []; 3842 swiper.modules = [...swiper.__modules__]; 3843 if (params.modules && Array.isArray(params.modules)) { 3844 swiper.modules.push(...params.modules); 3845 } 3846 const allModulesParams = {}; 3847 swiper.modules.forEach(mod => { 3848 mod({ 3849 params, 3850 swiper, 3851 extendParams: moduleExtendParams(params, allModulesParams), 3852 on: swiper.on.bind(swiper), 3853 once: swiper.once.bind(swiper), 3854 off: swiper.off.bind(swiper), 3855 emit: swiper.emit.bind(swiper) 3856 }); 3857 }); 3858 3859 // Extend defaults with modules params 3860 const swiperParams = extend({}, defaults, allModulesParams); 3861 3862 // Extend defaults with passed params 3863 swiper.params = extend({}, swiperParams, extendedDefaults, params); 3864 swiper.originalParams = extend({}, swiper.params); 3865 swiper.passedParams = extend({}, params); 3866 3867 // add event listeners 3868 if (swiper.params && swiper.params.on) {
vendor: 3,531 bytes, lines 3869-3989
3869 Object.keys(swiper.params.on).forEach(eventName => { 3870 swiper.on(eventName, swiper.params.on[eventName]); 3871 }); 3872 } 3873 if (swiper.params && swiper.params.onAny) { 3874 swiper.onAny(swiper.params.onAny); 3875 } 3876 3877 // Extend Swiper 3878 Object.assign(swiper, { 3879 enabled: swiper.params.enabled, 3880 el, 3881 // Classes 3882 classNames: [], 3883 // Slides 3884 slides: [], 3885 slidesGrid: [], 3886 snapGrid: [], 3887 slidesSizesGrid: [], 3888 // isDirection 3889 isHorizontal() { 3890 return swiper.params.direction === 'horizontal'; 3891 }, 3892 isVertical() { 3893 return swiper.params.direction === 'vertical'; 3894 }, 3895 // Indexes 3896 activeIndex: 0, 3897 realIndex: 0, 3898 // 3899 isBeginning: true, 3900 isEnd: false, 3901 // Props 3902 translate: 0, 3903 previousTranslate: 0, 3904 progress: 0, 3905 velocity: 0, 3906 animating: false, 3907 cssOverflowAdjustment() { 3908 // Returns 0 unless `translate` is > 2**23 3909 // Should be subtracted from css values to prevent overflow 3910 return Math.trunc(this.translate / 2 ** 23) * 2 ** 23; 3911 }, 3912 // Locks 3913 allowSlideNext: swiper.params.allowSlideNext, 3914 allowSlidePrev: swiper.params.allowSlidePrev, 3915 // Touch Events 3916 touchEventsData: { 3917 isTouched: undefined, 3918 isMoved: undefined, 3919 allowTouchCallbacks: undefined, 3920 touchStartTime: undefined, 3921 isScrolling: undefined, 3922 currentTranslate: undefined, 3923 startTranslate: undefined, 3924 allowThresholdMove: undefined, 3925 // Form elements to match 3926 focusableElements: swiper.params.focusableElements, 3927 // Last click time 3928 lastClickTime: 0, 3929 clickTimeout: undefined, 3930 // Velocities 3931 velocities: [], 3932 allowMomentumBounce: undefined, 3933 startMoving: undefined, 3934 pointerId: null, 3935 touchId: null 3936 }, 3937 // Clicks 3938 allowClick: true, 3939 // Touches 3940 allowTouchMove: swiper.params.allowTouchMove, 3941 touches: { 3942 startX: 0, 3943 startY: 0, 3944 currentX: 0, 3945 currentY: 0, 3946 diff: 0 3947 }, 3948 // Images 3949 imagesToLoad: [], 3950 imagesLoaded: 0 3951 }); 3952 swiper.emit('_swiper'); 3953 3954 // Init 3955 if (swiper.params.init) { 3956 swiper.init(); 3957 } 3958 3959 // Return app instance 3960 // eslint-disable-next-line no-constructor-return 3961 return swiper; 3962 } 3963 getDirectionLabel(property) { 3964 if (this.isHorizontal()) { 3965 return property; 3966 } 3967 // prettier-ignore 3968 return { 3969 'width': 'height', 3970 'margin-top': 'margin-left', 3971 'margin-bottom ': 'margin-right', 3972 'margin-left': 'margin-top', 3973 'margin-right': 'margin-bottom', 3974 'padding-left': 'padding-top', 3975 'padding-right': 'padding-bottom', 3976 'marginRight': 'marginBottom' 3977 }[property]; 3978 } 3979 getSlideIndex(slideEl) { 3980 const { 3981 slidesEl, 3982 params 3983 } = this; 3984 const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`); 3985 const firstSlideIndex = elementIndex(slides[0]); 3986 return elementIndex(slideEl) - firstSlideIndex; 3987 } 3988 getSlideIndexByData(index) { 3989 return this.getSlideIndex(this.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === index)[0])
vendor: 8,478 bytes, lines 3989-4233
3989; 3990 } 3991 recalcSlides() { 3992 const swiper = this; 3993 const { 3994 slidesEl, 3995 params 3996 } = swiper; 3997 swiper.slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`); 3998 } 3999 enable() { 4000 const swiper = this; 4001 if (swiper.enabled) return; 4002 swiper.enabled = true; 4003 if (swiper.params.grabCursor) { 4004 swiper.setGrabCursor(); 4005 } 4006 swiper.emit('enable'); 4007 } 4008 disable() { 4009 const swiper = this; 4010 if (!swiper.enabled) return; 4011 swiper.enabled = false; 4012 if (swiper.params.grabCursor) { 4013 swiper.unsetGrabCursor(); 4014 } 4015 swiper.emit('disable'); 4016 } 4017 setProgress(progress, speed) { 4018 const swiper = this; 4019 progress = Math.min(Math.max(progress, 0), 1); 4020 const min = swiper.minTranslate(); 4021 const max = swiper.maxTranslate(); 4022 const current = (max - min) * progress + min; 4023 swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed); 4024 swiper.updateActiveIndex(); 4025 swiper.updateSlidesClasses(); 4026 } 4027 emitContainerClasses() { 4028 const swiper = this; 4029 if (!swiper.params._emitClasses || !swiper.el) return; 4030 const cls = swiper.el.className.split(' ').filter(className => { 4031 return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0; 4032 }); 4033 swiper.emit('_containerClasses', cls.join(' ')); 4034 } 4035 getSlideClasses(slideEl) { 4036 const swiper = this; 4037 if (swiper.destroyed) return ''; 4038 return slideEl.className.split(' ').filter(className => { 4039 return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0; 4040 }).join(' '); 4041 } 4042 emitSlidesClasses() { 4043 const swiper = this; 4044 if (!swiper.params._emitClasses || !swiper.el) return; 4045 const updates = []; 4046 swiper.slides.forEach(slideEl => { 4047 const classNames = swiper.getSlideClasses(slideEl); 4048 updates.push({ 4049 slideEl, 4050 classNames 4051 }); 4052 swiper.emit('_slideClass', slideEl, classNames); 4053 }); 4054 swiper.emit('_slideClasses', updates); 4055 } 4056 slidesPerViewDynamic(view, exact) { 4057 if (view === void 0) { 4058 view = 'current'; 4059 } 4060 if (exact === void 0) { 4061 exact = false; 4062 } 4063 const swiper = this; 4064 const { 4065 params, 4066 slides, 4067 slidesGrid, 4068 slidesSizesGrid, 4069 size: swiperSize, 4070 activeIndex 4071 } = swiper; 4072 let spv = 1; 4073 if (typeof params.slidesPerView === 'number') return params.slidesPerView; 4074 if (params.centeredSlides) { 4075 let slideSize = slides[activeIndex] ? Math.ceil(slides[activeIndex].swiperSlideSize) : 0; 4076 let breakLoop; 4077 for (let i = activeIndex + 1; i < slides.length; i += 1) { 4078 if (slides[i] && !breakLoop) { 4079 slideSize += Math.ceil(slides[i].swiperSlideSize); 4080 spv += 1; 4081 if (slideSize > swiperSize) breakLoop = true; 4082 } 4083 } 4084 for (let i = activeIndex - 1; i >= 0; i -= 1) { 4085 if (slides[i] && !breakLoop) { 4086 slideSize += slides[i].swiperSlideSize; 4087 spv += 1; 4088 if (slideSize > swiperSize) breakLoop = true; 4089 } 4090 } 4091 } else { 4092 // eslint-disable-next-line 4093 if (view === 'current') { 4094 for (let i = activeIndex + 1; i < slides.length; i += 1) { 4095 const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize; 4096 if (slideInView) { 4097 spv += 1; 4098 } 4099 } 4100 } else { 4101 // previous 4102 for (let i = activeIndex - 1; i >= 0; i -= 1) { 4103 const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize; 4104 if (slideInView) { 4105 spv += 1; 4106 } 4107 } 4108 } 4109 } 4110 return spv; 4111 } 4112 update() { 4113 const swiper = this; 4114 if (!swiper || swiper.destroyed) return; 4115 const { 4116 snapGrid, 4117 params 4118 } = swiper; 4119 // Breakpoints 4120 if (params.breakpoints) { 4121 swiper.setBreakpoint(); 4122 } 4123 [...swiper.el.querySelectorAll('[loading="lazy"]')].forEach(imageEl => { 4124 if (imageEl.complete) { 4125 processLazyPreloader(swiper, imageEl); 4126 } 4127 }); 4128 swiper.updateSize(); 4129 swiper.updateSlides(); 4130 swiper.updateProgress(); 4131 swiper.updateSlidesClasses(); 4132 function setTranslate() { 4133 const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate; 4134 const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate()); 4135 swiper.setTranslate(newTranslate); 4136 swiper.updateActiveIndex(); 4137 swiper.updateSlidesClasses(); 4138 } 4139 let translated; 4140 if (params.freeMode && params.freeMode.enabled && !params.cssMode) { 4141 setTranslate(); 4142 if (params.autoHeight) { 4143 swiper.updateAutoHeight(); 4144 } 4145 } else { 4146 if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !params.centeredSlides) { 4147 const slides = swiper.virtual && params.virtual.enabled ? swiper.virtual.slides : swiper.slides; 4148 translated = swiper.slideTo(slides.length - 1, 0, false, true); 4149 } else { 4150 translated = swiper.slideTo(swiper.activeIndex, 0, false, true); 4151 } 4152 if (!translated) { 4153 setTranslate(); 4154 } 4155 } 4156 if (params.watchOverflow && snapGrid !== swiper.snapGrid) { 4157 swiper.checkOverflow(); 4158 } 4159 swiper.emit('update'); 4160 } 4161 changeDirection(newDirection, needUpdate) { 4162 if (needUpdate === void 0) { 4163 needUpdate = true; 4164 } 4165 const swiper = this; 4166 const currentDirection = swiper.params.direction; 4167 if (!newDirection) { 4168 // eslint-disable-next-line 4169 newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal'; 4170 } 4171 if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') { 4172 return swiper; 4173 } 4174 swiper.el.classList.remove(`${swiper.params.containerModifierClass}${currentDirection}`); 4175 swiper.el.classList.add(`${swiper.params.containerModifierClass}${newDirection}`); 4176 swiper.emitContainerClasses(); 4177 swiper.params.direction = newDirection; 4178 swiper.slides.forEach(slideEl => { 4179 if (newDirection === 'vertical') { 4180 slideEl.style.width = ''; 4181 } else { 4182 slideEl.style.height = ''; 4183 } 4184 }); 4185 swiper.emit('changeDirection'); 4186 if (needUpdate) swiper.update(); 4187 return swiper; 4188 } 4189 changeLanguageDirection(direction) { 4190 const swiper = this; 4191 if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return; 4192 swiper.rtl = direction === 'rtl'; 4193 swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl; 4194 if (swiper.rtl) { 4195 swiper.el.classList.add(`${swiper.params.containerModifierClass}rtl`); 4196 swiper.el.dir = 'rtl'; 4197 } else { 4198 swiper.el.classList.remove(`${swiper.params.containerModifierClass}rtl`); 4199 swiper.el.dir = 'ltr'; 4200 } 4201 swiper.update(); 4202 } 4203 mount(element) { 4204 const swiper = this; 4205 if (swiper.mounted) return true; 4206 4207 // Find el 4208 let el = element || swiper.params.el; 4209 if (typeof el === 'string') { 4210 el = document.querySelector(el); 4211 } 4212 if (!el) { 4213 return false; 4214 } 4215 el.swiper = swiper; 4216 if (el.parentNode && el.parentNode.host && el.parentNode.host.nodeName === swiper.params.swiperElementNodeName.toUpperCase()) { 4217 swiper.isElement = true; 4218 } 4219 const getWrapperSelector = () => { 4220 return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`; 4221 }; 4222 const getWrapper = () => { 4223 if (el && el.shadowRoot && el.shadowRoot.querySelector) { 4224 const res = el.shadowRoot.querySelector(getWrapperSelector()); 4225 // Children needs to return slot items 4226 return res; 4227 } 4228 return elementChildren(el, getWrapperSelector())[0]; 4229 }; 4230 // Find Wrapper 4231 let wrapperEl = getWrapper(); 4232 if (!wrapperEl && swiper.params.createElements) { 4233 wrapperEl = createElement
4233('div', swiper.params.wrapperClass); 4234 el.append(wrapperEl); 4235 elementChildren(el, `.${swiper.params.slideClass}`).forEach(slideEl => { 4236 wrapperEl.append(slideEl); 4237 }); 4238 } 4239 Object.assign(swiper, { 4240 el, 4241 wrapperEl, 4242 slidesEl: swiper.isElement && !el.parentNode.host.slideSlots ? el.parentNode.host : wrapperEl, 4243 hostEl: swiper.isElement ? el.parentNode.host : el, 4244 mounted: true, 4245 // RTL 4246 rtl: el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl', 4247 rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl'), 4248 wrongRTL: elementStyle(wrapperEl, 'display') === '-webkit-box' 4249 }); 4250 return true; 4251 } 4252 init(el) { 4253 const swiper = this; 4254 if (swiper.initialized) return swiper; 4255 const mounted = swiper.mount(el); 4256 if (mounted === false) return swiper; 4257 swiper.emit('beforeInit'); 4258 4259 // Set breakpoint 4260 if (swiper.params.breakpoints) { 4261 swiper.setBreakpoint(); 4262 } 4263 4264 // Add Classes 4265 swiper.addClasses(); 4266 4267 // Update size 4268 swiper.updateSize(); 4269 4270 // Update slides 4271 swiper.updateSlides(); 4272 if (swiper.params.watchOverflow) { 4273 swiper.checkOverflow(); 4274 } 4275 4276 // Set Grab Cursor 4277 if (swiper.params.grabCursor && swiper.enabled) { 4278 swiper.setGrabCursor(); 4279 } 4280 4281 // Slide To Initial Slide 4282 if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) { 4283 swiper.slideTo(swiper.params.initialSlide + swiper.virtual.slidesBefore, 0, swiper.params.runCallbacksOnInit, false, true); 4284 } else { 4285 swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true); 4286 } 4287 4288 // Create loop 4289 if (swiper.params.loop) { 4290 swiper.loopCreate(); 4291 } 4292 4293 // Attach events 4294 swiper.attachEvents(); 4295 const lazyElements = [...swiper.el.querySelectorAll('[loading="lazy"]')]; 4296 if (swiper.isElement) { 4297 lazyElements.push(...swiper.hostEl.querySelectorAll('[loading="lazy"]')); 4298 } 4299 lazyElements.forEach(imageEl => { 4300 if (imageEl.complete) { 4301 processLazyPreloader(swiper, imageEl); 4302 } else { 4303 imageEl.addEventListener('load', e => { 4304 processLazyPreloader(swiper, e.target); 4305 }); 4306 } 4307 }); 4308 preload(swiper); 4309 4310 // Init Flag 4311 swiper.initialized = true; 4312 preload(swiper); 4313 4314 // Emit 4315 swiper.emit('init'); 4316 swiper.emit('afterInit'); 4317 return swiper; 4318 } 4319 destroy(deleteInstance, cleanStyles) { 4320 if (deleteInstance === void 0) { 4321 deleteInstance = true; 4322 } 4323 if (cleanStyles === void 0) { 4324 cleanStyles = true; 4325 } 4326 const swiper = this; 4327 const { 4328 params, 4329 el, 4330 wrapperEl, 4331 slides 4332 } = swiper; 4333 if (typeof swiper.params === 'undefined' || swiper.destroyed) { 4334 return null; 4335 } 4336 swiper.emit('beforeDestroy'); 4337 4338 // Init Flag 4339 swiper.initialized = false; 4340 4341 // Detach events 4342 swiper.detachEvents(); 4343 4344 // Destroy loop 4345 if (params.loop) { 4346 swiper.loopDestroy(); 4347 } 4348 4349 // Cleanup styles 4350 if (cleanStyles) { 4351 swiper.removeClasses(); 4352 if (el && typeof el !== 'string') { 4353 el.removeAttribute('style'); 4354 } 4355 if (wrapperEl) { 4356 wrapperEl.removeAttribute('style'); 4357 } 4358 if (slides && slides.length) {
vendor: 5,540 bytes, lines 4359-4536
4359 slides.forEach(slideEl => { 4360 slideEl.classList.remove(params.slideVisibleClass, params.slideFullyVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass); 4361 slideEl.removeAttribute('style'); 4362 slideEl.removeAttribute('data-swiper-slide-index'); 4363 }); 4364 } 4365 } 4366 swiper.emit('destroy'); 4367 4368 // Detach emitter events 4369 Object.keys(swiper.eventsListeners).forEach(eventName => { 4370 swiper.off(eventName); 4371 }); 4372 if (deleteInstance !== false) { 4373 if (swiper.el && typeof swiper.el !== 'string') { 4374 swiper.el.swiper = null; 4375 } 4376 deleteProps(swiper); 4377 } 4378 swiper.destroyed = true; 4379 return null; 4380 } 4381 static extendDefaults(newDefaults) { 4382 extend(extendedDefaults, newDefaults); 4383 } 4384 static get extendedDefaults() { 4385 return extendedDefaults; 4386 } 4387 static get defaults() { 4388 return defaults; 4389 } 4390 static installModule(mod) { 4391 if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = []; 4392 const modules = Swiper.prototype.__modules__; 4393 if (typeof mod === 'function' && modules.indexOf(mod) < 0) { 4394 modules.push(mod); 4395 } 4396 } 4397 static use(module) { 4398 if (Array.isArray(module)) { 4399 module.forEach(m => Swiper.installModule(m)); 4400 return Swiper; 4401 } 4402 Swiper.installModule(module); 4403 return Swiper; 4404 } 4405 } 4406 Object.keys(prototypes).forEach(prototypeGroup => { 4407 Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => { 4408 Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod]; 4409 }); 4410 }); 4411 Swiper.use([Resize, Observer]); 4412 4413 function Virtual(_ref) { 4414 let { 4415 swiper, 4416 extendParams, 4417 on, 4418 emit 4419 } = _ref; 4420 extendParams({ 4421 virtual: { 4422 enabled: false, 4423 slides: [], 4424 cache: true, 4425 renderSlide: null, 4426 renderExternal: null, 4427 renderExternalUpdate: true, 4428 addSlidesBefore: 0, 4429 addSlidesAfter: 0 4430 } 4431 }); 4432 let cssModeTimeout; 4433 const document = getDocument(); 4434 swiper.virtual = { 4435 cache: {}, 4436 from: undefined, 4437 to: undefined, 4438 slides: [], 4439 offset: 0, 4440 slidesGrid: [] 4441 }; 4442 const tempDOM = document.createElement('div'); 4443 function renderSlide(slide, index) { 4444 const params = swiper.params.virtual; 4445 if (params.cache && swiper.virtual.cache[index]) { 4446 return swiper.virtual.cache[index]; 4447 } 4448 // eslint-disable-next-line 4449 let slideEl; 4450 if (params.renderSlide) { 4451 slideEl = params.renderSlide.call(swiper, slide, index); 4452 if (typeof slideEl === 'string') { 4453 tempDOM.innerHTML = slideEl; 4454 slideEl = tempDOM.children[0]; 4455 } 4456 } else if (swiper.isElement) { 4457 slideEl = createElement('swiper-slide'); 4458 } else { 4459 slideEl = createElement('div', swiper.params.slideClass); 4460 } 4461 slideEl.setAttribute('data-swiper-slide-index', index); 4462 if (!params.renderSlide) { 4463 slideEl.innerHTML = slide; 4464 } 4465 if (params.cache) { 4466 swiper.virtual.cache[index] = slideEl; 4467 } 4468 return slideEl; 4469 } 4470 function update(force, beforeInit) { 4471 const { 4472 slidesPerView, 4473 slidesPerGroup, 4474 centeredSlides, 4475 loop: isLoop, 4476 initialSlide 4477 } = swiper.params; 4478 if (beforeInit && !isLoop && initialSlide > 0) { 4479 return; 4480 } 4481 const { 4482 addSlidesBefore, 4483 addSlidesAfter 4484 } = swiper.params.virtual; 4485 const { 4486 from: previousFrom, 4487 to: previousTo, 4488 slides, 4489 slidesGrid: previousSlidesGrid, 4490 offset: previousOffset 4491 } = swiper.virtual; 4492 if (!swiper.params.cssMode) { 4493 swiper.updateActiveIndex(); 4494 } 4495 const activeIndex = swiper.activeIndex || 0; 4496 let offsetProp; 4497 if (swiper.rtlTranslate) offsetProp = 'right';else offsetProp = swiper.isHorizontal() ? 'left' : 'top'; 4498 let slidesAfter; 4499 let slidesBefore; 4500 if (centeredSlides) { 4501 slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter; 4502 slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore; 4503 } else { 4504 slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesAfter; 4505 slidesBefore = (isLoop ? slidesPerView : slidesPerGroup) + addSlidesBefore; 4506 } 4507 let from = activeIndex - slidesBefore; 4508 let to = activeIndex + slidesAfter; 4509 if (!isLoop) { 4510 from = Math.max(from, 0); 4511 to = Math.min(to, slides.length - 1); 4512 } 4513 let offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0); 4514 if (isLoop && activeIndex >= slidesBefore) { 4515 from -= slidesBefore; 4516 if (!centeredSlides) offset += swiper.slidesGrid[0]; 4517 } else if (isLoop && activeIndex < slidesBefore) { 4518 from = -slidesBefore; 4519 if (centeredSlides) offset += swiper.slidesGrid[0]; 4520 } 4521 Object.assign(swiper.virtual, { 4522 from, 4523 to, 4524 offset, 4525 slidesGrid: swiper.slidesGrid, 4526 slidesBefore, 4527 slidesAfter 4528 }); 4529 function onRendered() { 4530 swiper.updateSlides(); 4531 swiper.updateProgress(); 4532 swiper.updateSlidesClasses(); 4533 emit('virtualUpdate'); 4534 } 4535 if (previousFrom === from && previousTo === to && !force) { 4536 if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {
vendor: 1,316 bytes, lines 4537-4578
4537 swiper.slides.forEach(slideEl => { 4538 slideEl.style[offsetProp] = `${offset - Math.abs(swiper.cssOverflowAdjustment())}px`; 4539 }); 4540 } 4541 swiper.updateProgress(); 4542 emit('virtualUpdate'); 4543 return; 4544 } 4545 if (swiper.params.virtual.renderExternal) { 4546 swiper.params.virtual.renderExternal.call(swiper, { 4547 offset, 4548 from, 4549 to, 4550 slides: function getSlides() { 4551 const slidesToRender = []; 4552 for (let i = from; i <= to; i += 1) { 4553 slidesToRender.push(slides[i]); 4554 } 4555 return slidesToRender; 4556 }() 4557 }); 4558 if (swiper.params.virtual.renderExternalUpdate) { 4559 onRendered(); 4560 } else { 4561 emit('virtualUpdate'); 4562 } 4563 return; 4564 } 4565 const prependIndexes = []; 4566 const appendIndexes = []; 4567 const getSlideIndex = index => { 4568 let slideIndex = index; 4569 if (index < 0) { 4570 slideIndex = slides.length + index; 4571 } else if (slideIndex >= slides.length) { 4572 // eslint-disable-next-line 4573 slideIndex = slideIndex - slides.length; 4574 } 4575 return slideIndex; 4576 }; 4577 if (force) { 4578 swiper.slides.filter(el => el.matches(`.${swiper.params.slideClass}
4578, swiper-slide`)).forEach(slideEl => { 4579 slideEl.remove(); 4580 }); 4581 } else { 4582 for (let i = previousFrom; i <= previousTo; i += 1) { 4583 if (i < from || i > to) { 4584 const slideIndex = getSlideIndex(i); 4585 swiper.slides.filter(el => el.matches(`.${swiper.params.slideClass}[data-swiper-slide-index="${slideIndex}"], swiper-slide[data-swiper-slide-index="${slideIndex}"]`)).forEach(slideEl => { 4586 slideEl.remove(); 4587 }); 4588 } 4589 } 4590 } 4591 const loopFrom = isLoop ? -slides.length : 0; 4592 const loopTo = isLoop ? slides.length * 2 : slides.length; 4593 for (let i = loopFrom; i < loopTo; i += 1) { 4594 if (i >= from && i <= to) { 4595 const slideIndex = getSlideIndex(i); 4596 if (typeof previousTo === 'undefined' || force) { 4597 appendIndexes.push(slideIndex); 4598 } else { 4599 if (i > previousTo) appendIndexes.push(slideIndex); 4600 if (i < previousFrom) prependIndexes.push(slideIndex); 4601 } 4602 } 4603 } 4604 appendIndexes.forEach(index => { 4605 swiper.slidesEl.append(renderSlide(slides[index], index)); 4606 }); 4607 if (isLoop) { 4608 for (let i = prependIndexes.length - 1; i >= 0; i -= 1) { 4609 const index = prependIndexes[i]; 4610 swiper.slidesEl.prepend(renderSlide(slides[index], index)); 4611 } 4612 } else { 4613 prependIndexes.sort((a, b) => b - a); 4614 prependIndexes.forEach(index => { 4615 swiper.slidesEl.prepend(renderSlide(slides[index], index)); 4616 }); 4617 } 4618 elementChildren(swiper.slidesEl, '.swiper-slide, swiper-slide').forEach(sli
vendor: 5,044 bytes, lines 4618-4748
4618deEl => { 4619 slideEl.style[offsetProp] = `${offset - Math.abs(swiper.cssOverflowAdjustment())}px`; 4620 }); 4621 onRendered(); 4622 } 4623 function appendSlide(slides) { 4624 if (typeof slides === 'object' && 'length' in slides) { 4625 for (let i = 0; i < slides.length; i += 1) { 4626 if (slides[i]) swiper.virtual.slides.push(slides[i]); 4627 } 4628 } else { 4629 swiper.virtual.slides.push(slides); 4630 } 4631 update(true); 4632 } 4633 function prependSlide(slides) { 4634 const activeIndex = swiper.activeIndex; 4635 let newActiveIndex = activeIndex + 1; 4636 let numberOfNewSlides = 1; 4637 if (Array.isArray(slides)) { 4638 for (let i = 0; i < slides.length; i += 1) { 4639 if (slides[i]) swiper.virtual.slides.unshift(slides[i]); 4640 } 4641 newActiveIndex = activeIndex + slides.length; 4642 numberOfNewSlides = slides.length; 4643 } else { 4644 swiper.virtual.slides.unshift(slides); 4645 } 4646 if (swiper.params.virtual.cache) { 4647 const cache = swiper.virtual.cache; 4648 const newCache = {}; 4649 Object.keys(cache).forEach(cachedIndex => { 4650 const cachedEl = cache[cachedIndex]; 4651 const cachedElIndex = cachedEl.getAttribute('data-swiper-slide-index'); 4652 if (cachedElIndex) { 4653 cachedEl.setAttribute('data-swiper-slide-index', parseInt(cachedElIndex, 10) + numberOfNewSlides); 4654 } 4655 newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = cachedEl; 4656 }); 4657 swiper.virtual.cache = newCache; 4658 } 4659 update(true); 4660 swiper.slideTo(newActiveIndex, 0); 4661 } 4662 function removeSlide(slidesIndexes) { 4663 if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return; 4664 let activeIndex = swiper.activeIndex; 4665 if (Array.isArray(slidesIndexes)) { 4666 for (let i = slidesIndexes.length - 1; i >= 0; i -= 1) { 4667 if (swiper.params.virtual.cache) { 4668 delete swiper.virtual.cache[slidesIndexes[i]]; 4669 // shift cache indexes 4670 Object.keys(swiper.virtual.cache).forEach(key => { 4671 if (key > slidesIndexes) { 4672 swiper.virtual.cache[key - 1] = swiper.virtual.cache[key]; 4673 swiper.virtual.cache[key - 1].setAttribute('data-swiper-slide-index', key - 1); 4674 delete swiper.virtual.cache[key]; 4675 } 4676 }); 4677 } 4678 swiper.virtual.slides.splice(slidesIndexes[i], 1); 4679 if (slidesIndexes[i] < activeIndex) activeIndex -= 1; 4680 activeIndex = Math.max(activeIndex, 0); 4681 } 4682 } else { 4683 if (swiper.params.virtual.cache) { 4684 delete swiper.virtual.cache[slidesIndexes]; 4685 // shift cache indexes 4686 Object.keys(swiper.virtual.cache).forEach(key => { 4687 if (key > slidesIndexes) { 4688 swiper.virtual.cache[key - 1] = swiper.virtual.cache[key]; 4689 swiper.virtual.cache[key - 1].setAttribute('data-swiper-slide-index', key - 1); 4690 delete swiper.virtual.cache[key]; 4691 } 4692 }); 4693 } 4694 swiper.virtual.slides.splice(slidesIndexes, 1); 4695 if (slidesIndexes < activeIndex) activeIndex -= 1; 4696 activeIndex = Math.max(activeIndex, 0); 4697 } 4698 update(true); 4699 swiper.slideTo(activeIndex, 0); 4700 } 4701 function removeAllSlides() { 4702 swiper.virtual.slides = []; 4703 if (swiper.params.virtual.cache) { 4704 swiper.virtual.cache = {}; 4705 } 4706 update(true); 4707 swiper.slideTo(0, 0); 4708 } 4709 on('beforeInit', () => { 4710 if (!swiper.params.virtual.enabled) return; 4711 let domSlidesAssigned; 4712 if (typeof swiper.passedParams.virtual.slides === 'undefined') { 4713 const slides = [...swiper.slidesEl.children].filter(el => el.matches(`.${swiper.params.slideClass}, swiper-slide`)); 4714 if (slides && slides.length) { 4715 swiper.virtual.slides = [...slides]; 4716 domSlidesAssigned = true; 4717 slides.forEach((slideEl, slideIndex) => { 4718 slideEl.setAttribute('data-swiper-slide-index', slideIndex); 4719 swiper.virtual.cache[slideIndex] = slideEl; 4720 slideEl.remove(); 4721 }); 4722 } 4723 } 4724 if (!domSlidesAssigned) { 4725 swiper.virtual.slides = swiper.params.virtual.slides; 4726 } 4727 swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`); 4728 swiper.params.watchSlidesProgress = true; 4729 swiper.originalParams.watchSlidesProgress = true; 4730 update(false, true); 4731 }); 4732 on('setTranslate', () => { 4733 if (!swiper.params.virtual.enabled) return; 4734 if (swiper.params.cssMode && !swiper._immediateVirtual) { 4735 clearTimeout(cssModeTimeout); 4736 cssModeTimeout = setTimeout(() => { 4737 update(); 4738 }, 100); 4739 } else { 4740 update(); 4741 } 4742 }); 4743 on('init update resize', () => { 4744 if (!swiper.params.virtual.enabled) return; 4745 if (swiper.params.cssMode) { 4746 setCSSProperty(swiper.wrapperEl, '--swiper-virtual-size', `${swiper.virtualSize}px`); 4747 } 4748 });
vendor: 4,242 bytes, lines 4749-4853
4749 Object.assign(swiper.virtual, { 4750 appendSlide, 4751 prependSlide, 4752 removeSlide, 4753 removeAllSlides, 4754 update 4755 }); 4756 } 4757 4758 /* eslint-disable consistent-return */ 4759 function Keyboard(_ref) { 4760 let { 4761 swiper, 4762 extendParams, 4763 on, 4764 emit 4765 } = _ref; 4766 const document = getDocument(); 4767 const window = getWindow(); 4768 swiper.keyboard = { 4769 enabled: false 4770 }; 4771 extendParams({ 4772 keyboard: { 4773 enabled: false, 4774 onlyInViewport: true, 4775 pageUpDown: true 4776 } 4777 }); 4778 function handle(event) { 4779 if (!swiper.enabled) return; 4780 const { 4781 rtlTranslate: rtl 4782 } = swiper; 4783 let e = event; 4784 if (e.originalEvent) e = e.originalEvent; // jquery fix 4785 const kc = e.keyCode || e.charCode; 4786 const pageUpDown = swiper.params.keyboard.pageUpDown; 4787 const isPageUp = pageUpDown && kc === 33; 4788 const isPageDown = pageUpDown && kc === 34; 4789 const isArrowLeft = kc === 37; 4790 const isArrowRight = kc === 39; 4791 const isArrowUp = kc === 38; 4792 const isArrowDown = kc === 40; 4793 // Directions locks 4794 if (!swiper.allowSlideNext && (swiper.isHorizontal() && isArrowRight || swiper.isVertical() && isArrowDown || isPageDown)) { 4795 return false; 4796 } 4797 if (!swiper.allowSlidePrev && (swiper.isHorizontal() && isArrowLeft || swiper.isVertical() && isArrowUp || isPageUp)) { 4798 return false; 4799 } 4800 if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) { 4801 return undefined; 4802 } 4803 if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) { 4804 return undefined; 4805 } 4806 if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) { 4807 let inView = false; 4808 // Check that swiper should be inside of visible area of window 4809 if (elementParents(swiper.el, `.${swiper.params.slideClass}, swiper-slide`).length > 0 && elementParents(swiper.el, `.${swiper.params.slideActiveClass}`).length === 0) { 4810 return undefined; 4811 } 4812 const el = swiper.el; 4813 const swiperWidth = el.clientWidth; 4814 const swiperHeight = el.clientHeight; 4815 const windowWidth = window.innerWidth; 4816 const windowHeight = window.innerHeight; 4817 const swiperOffset = elementOffset(el); 4818 if (rtl) swiperOffset.left -= el.scrollLeft; 4819 const swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiperWidth, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiperHeight], [swiperOffset.left + swiperWidth, swiperOffset.top + swiperHeight]]; 4820 for (let i = 0; i < swiperCoord.length; i += 1) { 4821 const point = swiperCoord[i]; 4822 if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) { 4823 if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line 4824 inView = true; 4825 } 4826 } 4827 if (!inView) return undefined; 4828 } 4829 if (swiper.isHorizontal()) { 4830 if (isPageUp || isPageDown || isArrowLeft || isArrowRight) { 4831 if (e.preventDefault) e.preventDefault();else e.returnValue = false; 4832 } 4833 if ((isPageDown || isArrowRight) && !rtl || (isPageUp || isArrowLeft) && rtl) swiper.slideNext(); 4834 if ((isPageUp || isArrowLeft) && !rtl || (isPageDown || isArrowRight) && rtl) swiper.slidePrev(); 4835 } else { 4836 if (isPageUp || isPageDown || isArrowUp || isArrowDown) { 4837 if (e.preventDefault) e.preventDefault();else e.returnValue = false; 4838 } 4839 if (isPageDown || isArrowDown) swiper.slideNext(); 4840 if (isPageUp || isArrowUp) swiper.slidePrev(); 4841 } 4842 emit('keyPress', kc); 4843 return undefined; 4844 } 4845 function enable() { 4846 if (swiper.keyboard.enabled) return; 4847 document.addEventListener('keydown', handle); 4848 swiper.keyboard.enabled = true; 4849 } 4850 function disable() { 4851 if (!swiper.keyboard.enabled) return; 4852 document.removeEventListener('keydown', handle); 4853 swiper.keyboard.enabled = false;
vendor: 28,436 bytes, lines 4854-5622
4854 } 4855 on('init', () => { 4856 if (swiper.params.keyboard.enabled) { 4857 enable(); 4858 } 4859 }); 4860 on('destroy', () => { 4861 if (swiper.keyboard.enabled) { 4862 disable(); 4863 } 4864 }); 4865 Object.assign(swiper.keyboard, { 4866 enable, 4867 disable 4868 }); 4869 } 4870 4871 /* eslint-disable consistent-return */ 4872 function Mousewheel(_ref) { 4873 let { 4874 swiper, 4875 extendParams, 4876 on, 4877 emit 4878 } = _ref; 4879 const window = getWindow(); 4880 extendParams({ 4881 mousewheel: { 4882 enabled: false, 4883 releaseOnEdges: false, 4884 invert: false, 4885 forceToAxis: false, 4886 sensitivity: 1, 4887 eventsTarget: 'container', 4888 thresholdDelta: null, 4889 thresholdTime: null, 4890 noMousewheelClass: 'swiper-no-mousewheel' 4891 } 4892 }); 4893 swiper.mousewheel = { 4894 enabled: false 4895 }; 4896 let timeout; 4897 let lastScrollTime = now(); 4898 let lastEventBeforeSnap; 4899 const recentWheelEvents = []; 4900 function normalize(e) { 4901 // Reasonable defaults 4902 const PIXEL_STEP = 10; 4903 const LINE_HEIGHT = 40; 4904 const PAGE_HEIGHT = 800; 4905 let sX = 0; 4906 let sY = 0; // spinX, spinY 4907 let pX = 0; 4908 let pY = 0; // pixelX, pixelY 4909 4910 // Legacy 4911 if ('detail' in e) { 4912 sY = e.detail; 4913 } 4914 if ('wheelDelta' in e) { 4915 sY = -e.wheelDelta / 120; 4916 } 4917 if ('wheelDeltaY' in e) { 4918 sY = -e.wheelDeltaY / 120; 4919 } 4920 if ('wheelDeltaX' in e) { 4921 sX = -e.wheelDeltaX / 120; 4922 } 4923 4924 // side scrolling on FF with DOMMouseScroll 4925 if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) { 4926 sX = sY; 4927 sY = 0; 4928 } 4929 pX = sX * PIXEL_STEP; 4930 pY = sY * PIXEL_STEP; 4931 if ('deltaY' in e) { 4932 pY = e.deltaY; 4933 } 4934 if ('deltaX' in e) { 4935 pX = e.deltaX; 4936 } 4937 if (e.shiftKey && !pX) { 4938 // if user scrolls with shift he wants horizontal scroll 4939 pX = pY; 4940 pY = 0; 4941 } 4942 if ((pX || pY) && e.deltaMode) { 4943 if (e.deltaMode === 1) { 4944 // delta in LINE units 4945 pX *= LINE_HEIGHT; 4946 pY *= LINE_HEIGHT; 4947 } else { 4948 // delta in PAGE units 4949 pX *= PAGE_HEIGHT; 4950 pY *= PAGE_HEIGHT; 4951 } 4952 } 4953 4954 // Fall-back if spin cannot be determined 4955 if (pX && !sX) { 4956 sX = pX < 1 ? -1 : 1; 4957 } 4958 if (pY && !sY) { 4959 sY = pY < 1 ? -1 : 1; 4960 } 4961 return { 4962 spinX: sX, 4963 spinY: sY, 4964 pixelX: pX, 4965 pixelY: pY 4966 }; 4967 } 4968 function handleMouseEnter() { 4969 if (!swiper.enabled) return; 4970 swiper.mouseEntered = true; 4971 } 4972 function handleMouseLeave() { 4973 if (!swiper.enabled) return; 4974 swiper.mouseEntered = false; 4975 } 4976 function animateSlider(newEvent) { 4977 if (swiper.params.mousewheel.thresholdDelta && newEvent.delta < swiper.params.mousewheel.thresholdDelta) { 4978 // Prevent if delta of wheel scroll delta is below configured threshold 4979 return false; 4980 } 4981 if (swiper.params.mousewheel.thresholdTime && now() - lastScrollTime < swiper.params.mousewheel.thresholdTime) { 4982 // Prevent if time between scrolls is below configured threshold 4983 return false; 4984 } 4985 4986 // If the movement is NOT big enough and 4987 // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider): 4988 // Don't go any further (avoid insignificant scroll movement). 4989 if (newEvent.delta >= 6 && now() - lastScrollTime < 60) { 4990 // Return false as a default 4991 return true; 4992 } 4993 // If user is scrolling towards the end: 4994 // If the slider hasn't hit the latest slide or 4995 // if the slider is a loop and 4996 // if the slider isn't moving right now: 4997 // Go to next slide and 4998 // emit a scroll event. 4999 // Else (the user is scrolling towards the beginning) and 5000 // if the slider hasn't hit the first slide or 5001 // if the slider is a loop and 5002 // if the slider isn't moving right now: 5003 // Go to prev slide and 5004 // emit a scroll event. 5005 if (newEvent.direction < 0) { 5006 if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) { 5007 swiper.slideNext(); 5008 emit('scroll', newEvent.raw); 5009 } 5010 } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) { 5011 swiper.slidePrev(); 5012 emit('scroll', newEvent.raw); 5013 } 5014 // If you got here is because an animation has been triggered so store the current time 5015 lastScrollTime = new window.Date().getTime(); 5016 // Return false as a default 5017 return false; 5018 } 5019 function releaseScroll(newEvent) { 5020 const params = swiper.params.mousewheel; 5021 if (newEvent.direction < 0) { 5022 if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) { 5023 // Return true to animate scroll on edges 5024 return true; 5025 } 5026 } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) { 5027 // Return true to animate scroll on edges 5028 return true; 5029 } 5030 return false; 5031 } 5032 function handle(event) { 5033 let e = event; 5034 let disableParentSwiper = true; 5035 if (!swiper.enabled) return; 5036 5037 // Ignore event if the target or its parents have the swiper-no-mousewheel class 5038 if (event.target.closest(`.${swiper.params.mousewheel.noMousewheelClass}`)) return; 5039 const params = swiper.params.mousewheel; 5040 if (swiper.params.cssMode) { 5041 e.preventDefault(); 5042 } 5043 let targetEl = swiper.el; 5044 if (swiper.params.mousewheel.eventsTarget !== 'container') { 5045 targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget); 5046 } 5047 const targetElContainsTarget = targetEl && targetEl.contains(e.target); 5048 if (!swiper.mouseEntered && !targetElContainsTarget && !params.releaseOnEdges) return true; 5049 if (e.originalEvent) e = e.originalEvent; // jquery fix 5050 let delta = 0; 5051 const rtlFactor = swiper.rtlTranslate ? -1 : 1; 5052 const data = normalize(e); 5053 if (params.forceToAxis) { 5054 if (swiper.isHorizontal()) { 5055 if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true; 5056 } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true; 5057 } else { 5058 delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY; 5059 } 5060 if (delta === 0) return true; 5061 if (params.invert) delta = -delta; 5062 5063 // Get the scroll positions 5064 let positions = swiper.getTranslate() + delta * params.sensitivity; 5065 if (positions >= swiper.minTranslate()) positions = swiper.minTranslate(); 5066 if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate(); 5067 5068 // When loop is true: 5069 // the disableParentSwiper will be true. 5070 // When loop is false: 5071 // if the scroll positions is not on edge, 5072 // then the disableParentSwiper will be true. 5073 // if the scroll on edge positions, 5074 // then the disableParentSwiper will be false. 5075 disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate()); 5076 if (disableParentSwiper && swiper.params.nested) e.stopPropagation(); 5077 if (!swiper.params.freeMode || !swiper.params.freeMode.enabled) { 5078 // Register the new event in a variable which stores the relevant data 5079 const newEvent = { 5080 time: now(), 5081 delta: Math.abs(delta), 5082 direction: Math.sign(delta), 5083 raw: event 5084 }; 5085 5086 // Keep the most recent events 5087 if (recentWheelEvents.length >= 2) { 5088 recentWheelEvents.shift(); // only store the last N events 5089 } 5090 5091 const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined; 5092 recentWheelEvents.push(newEvent); 5093 5094 // If there is at least one previous recorded event: 5095 // If direction has changed or 5096 // if the scroll is quicker than the previous one: 5097 // Animate the slider. 5098 // Else (this is the first time the wheel is moved): 5099 // Animate the slider. 5100 if (prevEvent) { 5101 if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) { 5102 animateSlider(newEvent); 5103 } 5104 } else { 5105 animateSlider(newEvent); 5106 } 5107 5108 // If it's time to release the scroll: 5109 // Return now so you don't hit the preventDefault. 5110 if (releaseScroll(newEvent)) { 5111 return true; 5112 } 5113 } else { 5114 // Freemode or scrollContainer: 5115 5116 // If we recently snapped after a momentum scroll, then ignore wheel events 5117 // to give time for the deceleration to finish. Stop ignoring after 500 msecs 5118 // or if it's a new scroll (larger delta or inverse sign as last event before 5119 // an end-of-momentum snap). 5120 const newEvent = { 5121 time: now(), 5122 delta: Math.abs(delta), 5123 direction: Math.sign(delta) 5124 }; 5125 const ignoreWheelEvents = lastEventBeforeSnap && newEvent.time < lastEventBeforeSnap.time + 500 && newEvent.delta <= lastEventBeforeSnap.delta && newEvent.direction === lastEventBeforeSnap.direction; 5126 if (!ignoreWheelEvents) { 5127 lastEventBeforeSnap = undefined; 5128 let position = swiper.getTranslate() + delta * params.sensitivity; 5129 const wasBeginning = swiper.isBeginning; 5130 const wasEnd = swiper.isEnd; 5131 if (position >= swiper.minTranslate()) position = swiper.minTranslate(); 5132 if (position <= swiper.maxTranslate()) position = swiper.maxTranslate(); 5133 swiper.setTransition(0); 5134 swiper.setTranslate(position); 5135 swiper.updateProgress(); 5136 swiper.updateActiveIndex(); 5137 swiper.updateSlidesClasses(); 5138 if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) { 5139 swiper.updateSlidesClasses(); 5140 } 5141 if (swiper.params.loop) { 5142 swiper.loopFix({ 5143 direction: newEvent.direction < 0 ? 'next' : 'prev', 5144 byMousewheel: true 5145 }); 5146 } 5147 if (swiper.params.freeMode.sticky) { 5148 // When wheel scrolling starts with sticky (aka snap) enabled, then detect 5149 // the end of a momentum scroll by storing recent (N=15?) wheel events. 5150 // 1. do all N events have decreasing or same (absolute value) delta? 5151 // 2. did all N events arrive in the last M (M=500?) msecs? 5152 // 3. does the earliest event have an (absolute value) delta that's 5153 // at least P (P=1?) larger than the most recent event's delta? 5154 // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels? 5155 // If 1-4 are "yes" then we're near the end of a momentum scroll deceleration. 5156 // Snap immediately and ignore remaining wheel events in this scroll. 5157 // See comment above for "remaining wheel events in this scroll" determination. 5158 // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event. 5159 clearTimeout(timeout); 5160 timeout = undefined; 5161 if (recentWheelEvents.length >= 15) { 5162 recentWheelEvents.shift(); // only store the last N events 5163 } 5164 5165 const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined; 5166 const firstEvent = recentWheelEvents[0]; 5167 recentWheelEvents.push(newEvent); 5168 if (prevEvent && (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)) { 5169 // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log. 5170 recentWheelEvents.splice(0); 5171 } else if (recentWheelEvents.length >= 15 && newEvent.time - firstEvent.time < 500 && firstEvent.delta - newEvent.delta >= 1 && newEvent.delta <= 6) { 5172 // We're at the end of the deceleration of a momentum scroll, so there's no need 5173 // to wait for more events. Snap ASAP on the next tick. 5174 // Also, because there's some remaining momentum we'll bias the snap in the 5175 // direction of the ongoing scroll because it's better UX for the scroll to snap 5176 // in the same direction as the scroll instead of reversing to snap. Therefore, 5177 // if it's already scrolled more than 20% in the current direction, keep going. 5178 const snapToThreshold = delta > 0 ? 0.8 : 0.2; 5179 lastEventBeforeSnap = newEvent; 5180 recentWheelEvents.splice(0); 5181 timeout = nextTick(() => { 5182 if (swiper.destroyed || !swiper.params) return; 5183 swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold); 5184 }, 0); // no delay; move on next tick 5185 } 5186 5187 if (!timeout) { 5188 // if we get here, then we haven't detected the end of a momentum scroll, so 5189 // we'll consider a scroll "complete" when there haven't been any wheel events 5190 // for 500ms. 5191 timeout = nextTick(() => { 5192 if (swiper.destroyed || !swiper.params) return; 5193 const snapToThreshold = 0.5; 5194 lastEventBeforeSnap = newEvent; 5195 recentWheelEvents.splice(0); 5196 swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold); 5197 }, 500); 5198 } 5199 } 5200 5201 // Emit event 5202 if (!ignoreWheelEvents) emit('scroll', e); 5203 5204 // Stop autoplay 5205 if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop(); 5206 // Return page scroll on edge positions 5207 if (params.releaseOnEdges && (position === swiper.minTranslate() || position === swiper.maxTranslate())) { 5208 return true; 5209 } 5210 } 5211 } 5212 if (e.preventDefault) e.preventDefault();else e.returnValue = false; 5213 return false; 5214 } 5215 function events(method) { 5216 let targetEl = swiper.el; 5217 if (swiper.params.mousewheel.eventsTarget !== 'container') { 5218 targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget); 5219 } 5220 targetEl[method]('mouseenter', handleMouseEnter); 5221 targetEl[method]('mouseleave', handleMouseLeave); 5222 targetEl[method]('wheel', handle); 5223 } 5224 function enable() { 5225 if (swiper.params.cssMode) { 5226 swiper.wrapperEl.removeEventListener('wheel', handle); 5227 return true; 5228 } 5229 if (swiper.mousewheel.enabled) return false; 5230 events('addEventListener'); 5231 swiper.mousewheel.enabled = true; 5232 return true; 5233 } 5234 function disable() { 5235 if (swiper.params.cssMode) { 5236 swiper.wrapperEl.addEventListener(event, handle); 5237 return true; 5238 } 5239 if (!swiper.mousewheel.enabled) return false; 5240 events('removeEventListener'); 5241 swiper.mousewheel.enabled = false; 5242 return true; 5243 } 5244 on('init', () => { 5245 if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) { 5246 disable(); 5247 } 5248 if (swiper.params.mousewheel.enabled) enable(); 5249 }); 5250 on('destroy', () => { 5251 if (swiper.params.cssMode) { 5252 enable(); 5253 } 5254 if (swiper.mousewheel.enabled) disable(); 5255 }); 5256 Object.assign(swiper.mousewheel, { 5257 enable, 5258 disable 5259 }); 5260 } 5261 5262 function createElementIfNotDefined(swiper, originalParams, params, checkProps) { 5263 if (swiper.params.createElements) { 5264 Object.keys(checkProps).forEach(key => { 5265 if (!params[key] && params.auto === true) { 5266 let element = elementChildren(swiper.el, `.${checkProps[key]}`)[0]; 5267 if (!element) { 5268 element = createElement('div', checkProps[key]); 5269 element.className = checkProps[key]; 5270 swiper.el.append(element); 5271 } 5272 params[key] = element; 5273 originalParams[key] = element; 5274 } 5275 }); 5276 } 5277 return params; 5278 } 5279 5280 function Navigation(_ref) { 5281 let { 5282 swiper, 5283 extendParams, 5284 on, 5285 emit 5286 } = _ref; 5287 extendParams({ 5288 navigation: { 5289 nextEl: null, 5290 prevEl: null, 5291 hideOnClick: false, 5292 disabledClass: 'swiper-button-disabled', 5293 hiddenClass: 'swiper-button-hidden', 5294 lockClass: 'swiper-button-lock', 5295 navigationDisabledClass: 'swiper-navigation-disabled' 5296 } 5297 }); 5298 swiper.navigation = { 5299 nextEl: null, 5300 prevEl: null 5301 }; 5302 function getEl(el) { 5303 let res; 5304 if (el && typeof el === 'string' && swiper.isElement) { 5305 res = swiper.el.querySelector(el); 5306 if (res) return res; 5307 } 5308 if (el) { 5309 if (typeof el === 'string') res = [...document.querySelectorAll(el)]; 5310 if (swiper.params.uniqueNavElements && typeof el === 'string' && res && res.length > 1 && swiper.el.querySelectorAll(el).length === 1) { 5311 res = swiper.el.querySelector(el); 5312 } else if (res && res.length === 1) { 5313 res = res[0]; 5314 } 5315 } 5316 if (el && !res) return el; 5317 // if (Array.isArray(res) && res.length === 1) res = res[0]; 5318 return res; 5319 } 5320 function toggleEl(el, disabled) { 5321 const params = swiper.params.navigation; 5322 el = makeElementsArray(el); 5323 el.forEach(subEl => { 5324 if (subEl) { 5325 subEl.classList[disabled ? 'add' : 'remove'](...params.disabledClass.split(' ')); 5326 if (subEl.tagName === 'BUTTON') subEl.disabled = disabled; 5327 if (swiper.params.watchOverflow && swiper.enabled) { 5328 subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass); 5329 } 5330 } 5331 }); 5332 } 5333 function update() { 5334 // Update Navigation Buttons 5335 const { 5336 nextEl, 5337 prevEl 5338 } = swiper.navigation; 5339 if (swiper.params.loop) { 5340 toggleEl(prevEl, false); 5341 toggleEl(nextEl, false); 5342 return; 5343 } 5344 toggleEl(prevEl, swiper.isBeginning && !swiper.params.rewind); 5345 toggleEl(nextEl, swiper.isEnd && !swiper.params.rewind); 5346 } 5347 function onPrevClick(e) { 5348 e.preventDefault(); 5349 if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return; 5350 swiper.slidePrev(); 5351 emit('navigationPrev'); 5352 } 5353 function onNextClick(e) { 5354 e.preventDefault(); 5355 if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return; 5356 swiper.slideNext(); 5357 emit('navigationNext'); 5358 } 5359 function init() { 5360 const params = swiper.params.navigation; 5361 swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, { 5362 nextEl: 'swiper-button-next', 5363 prevEl: 'swiper-button-prev' 5364 }); 5365 if (!(params.nextEl || params.prevEl)) return; 5366 let nextEl = getEl(params.nextEl); 5367 let prevEl = getEl(params.prevEl); 5368 Object.assign(swiper.navigation, { 5369 nextEl, 5370 prevEl 5371 }); 5372 nextEl = makeElementsArray(nextEl); 5373 prevEl = makeElementsArray(prevEl); 5374 const initButton = (el, dir) => { 5375 if (el) { 5376 el.addEventListener('click', dir === 'next' ? onNextClick : onPrevClick); 5377 } 5378 if (!swiper.enabled && el) { 5379 el.classList.add(...params.lockClass.split(' ')); 5380 } 5381 }; 5382 nextEl.forEach(el => initButton(el, 'next')); 5383 prevEl.forEach(el => initButton(el, 'prev')); 5384 } 5385 function destroy() { 5386 let { 5387 nextEl, 5388 prevEl 5389 } = swiper.navigation; 5390 nextEl = makeElementsArray(nextEl); 5391 prevEl = makeElementsArray(prevEl); 5392 const destroyButton = (el, dir) => { 5393 el.removeEventListener('click', dir === 'next' ? onNextClick : onPrevClick); 5394 el.classList.remove(...swiper.params.navigation.disabledClass.split(' ')); 5395 }; 5396 nextEl.forEach(el => destroyButton(el, 'next')); 5397 prevEl.forEach(el => destroyButton(el, 'prev')); 5398 } 5399 on('init', () => { 5400 if (swiper.params.navigation.enabled === false) { 5401 // eslint-disable-next-line 5402 disable(); 5403 } else { 5404 init(); 5405 update(); 5406 } 5407 }); 5408 on('toEdge fromEdge lock unlock', () => { 5409 update(); 5410 }); 5411 on('destroy', () => { 5412 destroy(); 5413 }); 5414 on('enable disable', () => { 5415 let { 5416 nextEl, 5417 prevEl 5418 } = swiper.navigation; 5419 nextEl = makeElementsArray(nextEl); 5420 prevEl = makeElementsArray(prevEl); 5421 if (swiper.enabled) { 5422 update(); 5423 return; 5424 } 5425 [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.add(swiper.params.navigation.lockClass)); 5426 }); 5427 on('click', (_s, e) => { 5428 let { 5429 nextEl, 5430 prevEl 5431 } = swiper.navigation; 5432 nextEl = makeElementsArray(nextEl); 5433 prevEl = makeElementsArray(prevEl); 5434 const targetEl = e.target; 5435 let targetIsButton = prevEl.includes(targetEl) || nextEl.includes(targetEl); 5436 if (swiper.isElement && !targetIsButton) { 5437 const path = e.path || e.composedPath && e.composedPath(); 5438 if (path) { 5439 targetIsButton = path.find(pathEl => nextEl.includes(pathEl) || prevEl.includes(pathEl)); 5440 } 5441 } 5442 if (swiper.params.navigation.hideOnClick && !targetIsButton) { 5443 if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return; 5444 let isHidden; 5445 if (nextEl.length) { 5446 isHidden = nextEl[0].classList.contains(swiper.params.navigation.hiddenClass); 5447 } else if (prevEl.length) { 5448 isHidden = prevEl[0].classList.contains(swiper.params.navigation.hiddenClass); 5449 } 5450 if (isHidden === true) { 5451 emit('navigationShow'); 5452 } else { 5453 emit('navigationHide'); 5454 } 5455 [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.toggle(swiper.params.navigation.hiddenClass)); 5456 } 5457 }); 5458 const enable = () => { 5459 swiper.el.classList.remove(...swiper.params.navigation.navigationDisabledClass.split(' ')); 5460 init(); 5461 update(); 5462 }; 5463 const disable = () => { 5464 swiper.el.classList.add(...swiper.params.navigation.navigationDisabledClass.split(' ')); 5465 destroy(); 5466 }; 5467 Object.assign(swiper.navigation, { 5468 enable, 5469 disable, 5470 update, 5471 init, 5472 destroy 5473 }); 5474 } 5475 5476 function classesToSelector(classes) { 5477 if (classes === void 0) { 5478 classes = ''; 5479 } 5480 return `.${classes.trim().replace(/([\.:!+\/])/g, '\\$1') // eslint-disable-line 5481 .replace(/ /g, '.')}`; 5482 } 5483 5484 function Pagination(_ref) { 5485 let { 5486 swiper, 5487 extendParams, 5488 on, 5489 emit 5490 } = _ref; 5491 const pfx = 'swiper-pagination'; 5492 extendParams({ 5493 pagination: { 5494 el: null, 5495 bulletElement: 'span', 5496 clickable: false, 5497 hideOnClick: false, 5498 renderBullet: null, 5499 renderProgressbar: null, 5500 renderFraction: null, 5501 renderCustom: null, 5502 progressbarOpposite: false, 5503 type: 'bullets', 5504 // 'bullets' or 'progressbar' or 'fraction' or 'custom' 5505 dynamicBullets: false, 5506 dynamicMainBullets: 1, 5507 formatFractionCurrent: number => number, 5508 formatFractionTotal: number => number, 5509 bulletClass: `${pfx}-bullet`, 5510 bulletActiveClass: `${pfx}-bullet-active`, 5511 modifierClass: `${pfx}-`, 5512 currentClass: `${pfx}-current`, 5513 totalClass: `${pfx}-total`, 5514 hiddenClass: `${pfx}-hidden`, 5515 progressbarFillClass: `${pfx}-progressbar-fill`, 5516 progressbarOppositeClass: `${pfx}-progressbar-opposite`, 5517 clickableClass: `${pfx}-clickable`, 5518 lockClass: `${pfx}-lock`, 5519 horizontalClass: `${pfx}-horizontal`, 5520 verticalClass: `${pfx}-vertical`, 5521 paginationDisabledClass: `${pfx}-disabled` 5522 } 5523 }); 5524 swiper.pagination = { 5525 el: null, 5526 bullets: [] 5527 }; 5528 let bulletSize; 5529 let dynamicBulletIndex = 0; 5530 function isPaginationDisabled() { 5531 return !swiper.params.pagination.el || !swiper.pagination.el || Array.isArray(swiper.pagination.el) && swiper.pagination.el.length === 0; 5532 } 5533 function setSideBullets(bulletEl, position) { 5534 const { 5535 bulletActiveClass 5536 } = swiper.params.pagination; 5537 if (!bulletEl) return; 5538 bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`]; 5539 if (bulletEl) { 5540 bulletEl.classList.add(`${bulletActiveClass}-${position}`); 5541 bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`]; 5542 if (bulletEl) { 5543 bulletEl.classList.add(`${bulletActiveClass}-${position}-${position}`); 5544 } 5545 } 5546 } 5547 function getMoveDirection(prevIndex, nextIndex, length) { 5548 prevIndex = prevIndex % length; 5549 nextIndex = nextIndex % length; 5550 if (nextIndex === prevIndex + 1) { 5551 return 'next'; 5552 } else if (nextIndex === prevIndex - 1) { 5553 return 'previous'; 5554 } 5555 return; 5556 } 5557 function onBulletClick(e) { 5558 const bulletEl = e.target.closest(classesToSelector(swiper.params.pagination.bulletClass)); 5559 if (!bulletEl) { 5560 return; 5561 } 5562 e.preventDefault(); 5563 const index = elementIndex(bulletEl) * swiper.params.slidesPerGroup; 5564 if (swiper.params.loop) { 5565 if (swiper.realIndex === index) return; 5566 const moveDirection = getMoveDirection(swiper.realIndex, index, swiper.slides.length); 5567 if (moveDirection === 'next') { 5568 swiper.slideNext(); 5569 } else if (moveDirection === 'previous') { 5570 swiper.slidePrev(); 5571 } else { 5572 swiper.slideToLoop(index); 5573 } 5574 } else { 5575 swiper.slideTo(index); 5576 } 5577 } 5578 function update() { 5579 // Render || Update Pagination bullets/items 5580 const rtl = swiper.rtl; 5581 const params = swiper.params.pagination; 5582 if (isPaginationDisabled()) return; 5583 let el = swiper.pagination.el; 5584 el = makeElementsArray(el); 5585 // Current/Total 5586 let current; 5587 let previousIndex; 5588 const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length; 5589 const total = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length; 5590 if (swiper.params.loop) { 5591 previousIndex = swiper.previousRealIndex || 0; 5592 current = swiper.params.slidesPerGroup > 1 ? Math.floor(swiper.realIndex / swiper.params.slidesPerGroup) : swiper.realIndex; 5593 } else if (typeof swiper.snapIndex !== 'undefined') { 5594 current = swiper.snapIndex; 5595 previousIndex = swiper.previousSnapIndex; 5596 } else { 5597 previousIndex = swiper.previousIndex || 0; 5598 current = swiper.activeIndex || 0; 5599 } 5600 // Types 5601 if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) { 5602 const bullets = swiper.pagination.bullets; 5603 let firstIndex; 5604 let lastIndex; 5605 let midIndex; 5606 if (params.dynamicBullets) { 5607 bulletSize = elementOuterSize(bullets[0], swiper.isHorizontal() ? 'width' : 'height', true); 5608 el.forEach(subEl => { 5609 subEl.style[swiper.isHorizontal() ? 'width' : 'height'] = `${bulletSize * (params.dynamicMainBullets + 4)}px`; 5610 }); 5611 if (params.dynamicMainBullets > 1 && previousIndex !== undefined) { 5612 dynamicBulletIndex += current - (previousIndex || 0); 5613 if (dynamicBulletIndex > params.dynamicMainBullets - 1) { 5614 dynamicBulletIndex = params.dynamicMainBullets - 1; 5615 } else if (dynamicBulletIndex < 0) { 5616 dynamicBulletIndex = 0; 5617 } 5618 } 5619 firstIndex = Math.max(current - dynamicBulletIndex, 0); 5620 lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1); 5621 midIndex = (lastIndex + firstIndex) / 2; 5622 }
vendor: 5,261 bytes, lines 5623-5733
5623 bullets.forEach(bulletEl => { 5624 const classesToRemove = [...['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`)].map(s => typeof s === 'string' && s.includes(' ') ? s.split(' ') : s).flat(); 5625 bulletEl.classList.remove(...classesToRemove); 5626 }); 5627 if (el.length > 1) { 5628 bullets.forEach(bullet => { 5629 const bulletIndex = elementIndex(bullet); 5630 if (bulletIndex === current) { 5631 bullet.classList.add(...params.bulletActiveClass.split(' ')); 5632 } else if (swiper.isElement) { 5633 bullet.setAttribute('part', 'bullet'); 5634 } 5635 if (params.dynamicBullets) { 5636 if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) { 5637 bullet.classList.add(...`${params.bulletActiveClass}-main`.split(' ')); 5638 } 5639 if (bulletIndex === firstIndex) { 5640 setSideBullets(bullet, 'prev'); 5641 } 5642 if (bulletIndex === lastIndex) { 5643 setSideBullets(bullet, 'next'); 5644 } 5645 } 5646 }); 5647 } else { 5648 const bullet = bullets[current]; 5649 if (bullet) { 5650 bullet.classList.add(...params.bulletActiveClass.split(' ')); 5651 } 5652 if (swiper.isElement) { 5653 bullets.forEach((bulletEl, bulletIndex) => { 5654 bulletEl.setAttribute('part', bulletIndex === current ? 'bullet-active' : 'bullet'); 5655 }); 5656 } 5657 if (params.dynamicBullets) { 5658 const firstDisplayedBullet = bullets[firstIndex]; 5659 const lastDisplayedBullet = bullets[lastIndex]; 5660 for (let i = firstIndex; i <= lastIndex; i += 1) { 5661 if (bullets[i]) { 5662 bullets[i].classList.add(...`${params.bulletActiveClass}-main`.split(' ')); 5663 } 5664 } 5665 setSideBullets(firstDisplayedBullet, 'prev'); 5666 setSideBullets(lastDisplayedBullet, 'next'); 5667 } 5668 } 5669 if (params.dynamicBullets) { 5670 const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4); 5671 const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize; 5672 const offsetProp = rtl ? 'right' : 'left'; 5673 bullets.forEach(bullet => { 5674 bullet.style[swiper.isHorizontal() ? offsetProp : 'top'] = `${bulletsOffset}px`; 5675 }); 5676 } 5677 } 5678 el.forEach((subEl, subElIndex) => { 5679 if (params.type === 'fraction') { 5680 subEl.querySelectorAll(classesToSelector(params.currentClass)).forEach(fractionEl => { 5681 fractionEl.textContent = params.formatFractionCurrent(current + 1); 5682 }); 5683 subEl.querySelectorAll(classesToSelector(params.totalClass)).forEach(totalEl => { 5684 totalEl.textContent = params.formatFractionTotal(total); 5685 }); 5686 } 5687 if (params.type === 'progressbar') { 5688 let progressbarDirection; 5689 if (params.progressbarOpposite) { 5690 progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal'; 5691 } else { 5692 progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical'; 5693 } 5694 const scale = (current + 1) / total; 5695 let scaleX = 1; 5696 let scaleY = 1; 5697 if (progressbarDirection === 'horizontal') { 5698 scaleX = scale; 5699 } else { 5700 scaleY = scale; 5701 } 5702 subEl.querySelectorAll(classesToSelector(params.progressbarFillClass)).forEach(progressEl => { 5703 progressEl.style.transform = `translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`; 5704 progressEl.style.transitionDuration = `${swiper.params.speed}ms`; 5705 }); 5706 } 5707 if (params.type === 'custom' && params.renderCustom) { 5708 subEl.innerHTML = params.renderCustom(swiper, current + 1, total); 5709 if (subElIndex === 0) emit('paginationRender', subEl); 5710 } else { 5711 if (subElIndex === 0) emit('paginationRender', subEl); 5712 emit('paginationUpdate', subEl); 5713 } 5714 if (swiper.params.watchOverflow && swiper.enabled) { 5715 subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass); 5716 } 5717 }); 5718 } 5719 function render() { 5720 // Render Container 5721 const params = swiper.params.pagination; 5722 if (isPaginationDisabled()) return; 5723 const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.grid && swiper.params.grid.rows > 1 ? swiper.slides.length / Math.ceil(swiper.params.grid.rows) : swiper.slides.length; 5724 let el = swiper.pagination.el; 5725 el = makeElementsArray(el); 5726 let paginationHTML = ''; 5727 if (params.type === 'bullets') { 5728 let numberOfBullets = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length; 5729 if (swiper.params.freeMode && swiper.params.freeMode.enabled && numberOfBullets > slidesLength) { 5730 numberOfBullets = slidesLength; 5731 } 5732 for (let i = 0; i < numberOfBullets; i += 1) { 5733 if (params.renderBullet) {
vendor: 12,548 bytes, lines 5734-6100
5734 paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass); 5735 } else { 5736 // prettier-ignore 5737 paginationHTML += `<${params.bulletElement} ${swiper.isElement ? 'part="bullet"' : ''} class="${params.bulletClass}"></${params.bulletElement}>`; 5738 } 5739 } 5740 } 5741 if (params.type === 'fraction') { 5742 if (params.renderFraction) { 5743 paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass); 5744 } else { 5745 paginationHTML = `<span class="${params.currentClass}"></span>` + ' / ' + `<span class="${params.totalClass}"></span>`; 5746 } 5747 } 5748 if (params.type === 'progressbar') { 5749 if (params.renderProgressbar) { 5750 paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass); 5751 } else { 5752 paginationHTML = `<span class="${params.progressbarFillClass}"></span>`; 5753 } 5754 } 5755 swiper.pagination.bullets = []; 5756 el.forEach(subEl => { 5757 if (params.type !== 'custom') { 5758 subEl.innerHTML = paginationHTML || ''; 5759 } 5760 if (params.type === 'bullets') { 5761 swiper.pagination.bullets.push(...subEl.querySelectorAll(classesToSelector(params.bulletClass))); 5762 } 5763 }); 5764 if (params.type !== 'custom') { 5765 emit('paginationRender', el[0]); 5766 } 5767 } 5768 function init() { 5769 swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, { 5770 el: 'swiper-pagination' 5771 }); 5772 const params = swiper.params.pagination; 5773 if (!params.el) return; 5774 let el; 5775 if (typeof params.el === 'string' && swiper.isElement) { 5776 el = swiper.el.querySelector(params.el); 5777 } 5778 if (!el && typeof params.el === 'string') { 5779 el = [...document.querySelectorAll(params.el)]; 5780 } 5781 if (!el) { 5782 el = params.el; 5783 } 5784 if (!el || el.length === 0) return; 5785 if (swiper.params.uniqueNavElements && typeof params.el === 'string' && Array.isArray(el) && el.length > 1) { 5786 el = [...swiper.el.querySelectorAll(params.el)]; 5787 // check if it belongs to another nested Swiper 5788 if (el.length > 1) { 5789 el = el.filter(subEl => { 5790 if (elementParents(subEl, '.swiper')[0] !== swiper.el) return false; 5791 return true; 5792 })[0]; 5793 } 5794 } 5795 if (Array.isArray(el) && el.length === 1) el = el[0]; 5796 Object.assign(swiper.pagination, { 5797 el 5798 }); 5799 el = makeElementsArray(el); 5800 el.forEach(subEl => { 5801 if (params.type === 'bullets' && params.clickable) { 5802 subEl.classList.add(...(params.clickableClass || '').split(' ')); 5803 } 5804 subEl.classList.add(params.modifierClass + params.type); 5805 subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass); 5806 if (params.type === 'bullets' && params.dynamicBullets) { 5807 subEl.classList.add(`${params.modifierClass}${params.type}-dynamic`); 5808 dynamicBulletIndex = 0; 5809 if (params.dynamicMainBullets < 1) { 5810 params.dynamicMainBullets = 1; 5811 } 5812 } 5813 if (params.type === 'progressbar' && params.progressbarOpposite) { 5814 subEl.classList.add(params.progressbarOppositeClass); 5815 } 5816 if (params.clickable) { 5817 subEl.addEventListener('click', onBulletClick); 5818 } 5819 if (!swiper.enabled) { 5820 subEl.classList.add(params.lockClass); 5821 } 5822 }); 5823 } 5824 function destroy() { 5825 const params = swiper.params.pagination; 5826 if (isPaginationDisabled()) return; 5827 let el = swiper.pagination.el; 5828 if (el) { 5829 el = makeElementsArray(el); 5830 el.forEach(subEl => { 5831 subEl.classList.remove(params.hiddenClass); 5832 subEl.classList.remove(params.modifierClass + params.type); 5833 subEl.classList.remove(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass); 5834 if (params.clickable) { 5835 subEl.classList.remove(...(params.clickableClass || '').split(' ')); 5836 subEl.removeEventListener('click', onBulletClick); 5837 } 5838 }); 5839 } 5840 if (swiper.pagination.bullets) swiper.pagination.bullets.forEach(subEl => subEl.classList.remove(...params.bulletActiveClass.split(' '))); 5841 } 5842 on('changeDirection', () => { 5843 if (!swiper.pagination || !swiper.pagination.el) return; 5844 const params = swiper.params.pagination; 5845 let { 5846 el 5847 } = swiper.pagination; 5848 el = makeElementsArray(el); 5849 el.forEach(subEl => { 5850 subEl.classList.remove(params.horizontalClass, params.verticalClass); 5851 subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass); 5852 }); 5853 }); 5854 on('init', () => { 5855 if (swiper.params.pagination.enabled === false) { 5856 // eslint-disable-next-line 5857 disable(); 5858 } else { 5859 init(); 5860 render(); 5861 update(); 5862 } 5863 }); 5864 on('activeIndexChange', () => { 5865 if (typeof swiper.snapIndex === 'undefined') { 5866 update(); 5867 } 5868 }); 5869 on('snapIndexChange', () => { 5870 update(); 5871 }); 5872 on('snapGridLengthChange', () => { 5873 render(); 5874 update(); 5875 }); 5876 on('destroy', () => { 5877 destroy(); 5878 }); 5879 on('enable disable', () => { 5880 let { 5881 el 5882 } = swiper.pagination; 5883 if (el) { 5884 el = makeElementsArray(el); 5885 el.forEach(subEl => subEl.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.pagination.lockClass)); 5886 } 5887 }); 5888 on('lock unlock', () => { 5889 update(); 5890 }); 5891 on('click', (_s, e) => { 5892 const targetEl = e.target; 5893 const el = makeElementsArray(swiper.pagination.el); 5894 if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && el && el.length > 0 && !targetEl.classList.contains(swiper.params.pagination.bulletClass)) { 5895 if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return; 5896 const isHidden = el[0].classList.contains(swiper.params.pagination.hiddenClass); 5897 if (isHidden === true) { 5898 emit('paginationShow'); 5899 } else { 5900 emit('paginationHide'); 5901 } 5902 el.forEach(subEl => subEl.classList.toggle(swiper.params.pagination.hiddenClass)); 5903 } 5904 }); 5905 const enable = () => { 5906 swiper.el.classList.remove(swiper.params.pagination.paginationDisabledClass); 5907 let { 5908 el 5909 } = swiper.pagination; 5910 if (el) { 5911 el = makeElementsArray(el); 5912 el.forEach(subEl => subEl.classList.remove(swiper.params.pagination.paginationDisabledClass)); 5913 } 5914 init(); 5915 render(); 5916 update(); 5917 }; 5918 const disable = () => { 5919 swiper.el.classList.add(swiper.params.pagination.paginationDisabledClass); 5920 let { 5921 el 5922 } = swiper.pagination; 5923 if (el) { 5924 el = makeElementsArray(el); 5925 el.forEach(subEl => subEl.classList.add(swiper.params.pagination.paginationDisabledClass)); 5926 } 5927 destroy(); 5928 }; 5929 Object.assign(swiper.pagination, { 5930 enable, 5931 disable, 5932 render, 5933 update, 5934 init, 5935 destroy 5936 }); 5937 } 5938 5939 function Scrollbar(_ref) { 5940 let { 5941 swiper, 5942 extendParams, 5943 on, 5944 emit 5945 } = _ref; 5946 const document = getDocument(); 5947 let isTouched = false; 5948 let timeout = null; 5949 let dragTimeout = null; 5950 let dragStartPos; 5951 let dragSize; 5952 let trackSize; 5953 let divider; 5954 extendParams({ 5955 scrollbar: { 5956 el: null, 5957 dragSize: 'auto', 5958 hide: false, 5959 draggable: false, 5960 snapOnRelease: true, 5961 lockClass: 'swiper-scrollbar-lock', 5962 dragClass: 'swiper-scrollbar-drag', 5963 scrollbarDisabledClass: 'swiper-scrollbar-disabled', 5964 horizontalClass: `swiper-scrollbar-horizontal`, 5965 verticalClass: `swiper-scrollbar-vertical` 5966 } 5967 }); 5968 swiper.scrollbar = { 5969 el: null, 5970 dragEl: null 5971 }; 5972 function setTranslate() { 5973 if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return; 5974 const { 5975 scrollbar, 5976 rtlTranslate: rtl 5977 } = swiper; 5978 const { 5979 dragEl, 5980 el 5981 } = scrollbar; 5982 const params = swiper.params.scrollbar; 5983 const progress = swiper.params.loop ? swiper.progressLoop : swiper.progress; 5984 let newSize = dragSize; 5985 let newPos = (trackSize - dragSize) * progress; 5986 if (rtl) { 5987 newPos = -newPos; 5988 if (newPos > 0) { 5989 newSize = dragSize - newPos; 5990 newPos = 0; 5991 } else if (-newPos + dragSize > trackSize) { 5992 newSize = trackSize + newPos; 5993 } 5994 } else if (newPos < 0) { 5995 newSize = dragSize + newPos; 5996 newPos = 0; 5997 } else if (newPos + dragSize > trackSize) { 5998 newSize = trackSize - newPos; 5999 } 6000 if (swiper.isHorizontal()) { 6001 dragEl.style.transform = `translate3d(${newPos}px, 0, 0)`; 6002 dragEl.style.width = `${newSize}px`; 6003 } else { 6004 dragEl.style.transform = `translate3d(0px, ${newPos}px, 0)`; 6005 dragEl.style.height = `${newSize}px`; 6006 } 6007 if (params.hide) { 6008 clearTimeout(timeout); 6009 el.style.opacity = 1; 6010 timeout = setTimeout(() => { 6011 el.style.opacity = 0; 6012 el.style.transitionDuration = '400ms'; 6013 }, 1000); 6014 } 6015 } 6016 function setTransition(duration) { 6017 if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return; 6018 swiper.scrollbar.dragEl.style.transitionDuration = `${duration}ms`; 6019 } 6020 function updateSize() { 6021 if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return; 6022 const { 6023 scrollbar 6024 } = swiper; 6025 const { 6026 dragEl, 6027 el 6028 } = scrollbar; 6029 dragEl.style.width = ''; 6030 dragEl.style.height = ''; 6031 trackSize = swiper.isHorizontal() ? el.offsetWidth : el.offsetHeight; 6032 divider = swiper.size / (swiper.virtualSize + swiper.params.slidesOffsetBefore - (swiper.params.centeredSlides ? swiper.snapGrid[0] : 0)); 6033 if (swiper.params.scrollbar.dragSize === 'auto') { 6034 dragSize = trackSize * divider; 6035 } else { 6036 dragSize = parseInt(swiper.params.scrollbar.dragSize, 10); 6037 } 6038 if (swiper.isHorizontal()) { 6039 dragEl.style.width = `${dragSize}px`; 6040 } else { 6041 dragEl.style.height = `${dragSize}px`; 6042 } 6043 if (divider >= 1) { 6044 el.style.display = 'none'; 6045 } else { 6046 el.style.display = ''; 6047 } 6048 if (swiper.params.scrollbar.hide) { 6049 el.style.opacity = 0; 6050 } 6051 if (swiper.params.watchOverflow && swiper.enabled) { 6052 scrollbar.el.classList[swiper.isLocked ? 'add' : 'remove'](swiper.params.scrollbar.lockClass); 6053 } 6054 } 6055 function getPointerPosition(e) { 6056 return swiper.isHorizontal() ? e.clientX : e.clientY; 6057 } 6058 function setDragPosition(e) { 6059 const { 6060 scrollbar, 6061 rtlTranslate: rtl 6062 } = swiper; 6063 const { 6064 el 6065 } = scrollbar; 6066 let positionRatio; 6067 positionRatio = (getPointerPosition(e) - elementOffset(el)[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize); 6068 positionRatio = Math.max(Math.min(positionRatio, 1), 0); 6069 if (rtl) { 6070 positionRatio = 1 - positionRatio; 6071 } 6072 const position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio; 6073 swiper.updateProgress(position); 6074 swiper.setTranslate(position); 6075 swiper.updateActiveIndex(); 6076 swiper.updateSlidesClasses(); 6077 } 6078 function onDragStart(e) { 6079 const params = swiper.params.scrollbar; 6080 const { 6081 scrollbar, 6082 wrapperEl 6083 } = swiper; 6084 const { 6085 el, 6086 dragEl 6087 } = scrollbar; 6088 isTouched = true; 6089 dragStartPos = e.target === dragEl ? getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null; 6090 e.preventDefault(); 6091 e.stopPropagation(); 6092 wrapperEl.style.transitionDuration = '100ms'; 6093 dragEl.style.transitionDuration = '100ms'; 6094 setDragPosition(e); 6095 clearTimeout(dragTimeout); 6096 el.style.transitionDuration = '0ms'; 6097 if (params.hide) { 6098 el.style.opacity = 1; 6099 } 6100 if (swiper.params.cssMode) {
vendor: 6,010 bytes, lines 6101-6288
6101 swiper.wrapperEl.style['scroll-snap-type'] = 'none'; 6102 } 6103 emit('scrollbarDragStart', e); 6104 } 6105 function onDragMove(e) { 6106 const { 6107 scrollbar, 6108 wrapperEl 6109 } = swiper; 6110 const { 6111 el, 6112 dragEl 6113 } = scrollbar; 6114 if (!isTouched) return; 6115 if (e.preventDefault && e.cancelable) e.preventDefault();else e.returnValue = false; 6116 setDragPosition(e); 6117 wrapperEl.style.transitionDuration = '0ms'; 6118 el.style.transitionDuration = '0ms'; 6119 dragEl.style.transitionDuration = '0ms'; 6120 emit('scrollbarDragMove', e); 6121 } 6122 function onDragEnd(e) { 6123 const params = swiper.params.scrollbar; 6124 const { 6125 scrollbar, 6126 wrapperEl 6127 } = swiper; 6128 const { 6129 el 6130 } = scrollbar; 6131 if (!isTouched) return; 6132 isTouched = false; 6133 if (swiper.params.cssMode) { 6134 swiper.wrapperEl.style['scroll-snap-type'] = ''; 6135 wrapperEl.style.transitionDuration = ''; 6136 } 6137 if (params.hide) { 6138 clearTimeout(dragTimeout); 6139 dragTimeout = nextTick(() => { 6140 el.style.opacity = 0; 6141 el.style.transitionDuration = '400ms'; 6142 }, 1000); 6143 } 6144 emit('scrollbarDragEnd', e); 6145 if (params.snapOnRelease) { 6146 swiper.slideToClosest(); 6147 } 6148 } 6149 function events(method) { 6150 const { 6151 scrollbar, 6152 params 6153 } = swiper; 6154 const el = scrollbar.el; 6155 if (!el) return; 6156 const target = el; 6157 const activeListener = params.passiveListeners ? { 6158 passive: false, 6159 capture: false 6160 } : false; 6161 const passiveListener = params.passiveListeners ? { 6162 passive: true, 6163 capture: false 6164 } : false; 6165 if (!target) return; 6166 const eventMethod = method === 'on' ? 'addEventListener' : 'removeEventListener'; 6167 target[eventMethod]('pointerdown', onDragStart, activeListener); 6168 document[eventMethod]('pointermove', onDragMove, activeListener); 6169 document[eventMethod]('pointerup', onDragEnd, passiveListener); 6170 } 6171 function enableDraggable() { 6172 if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return; 6173 events('on'); 6174 } 6175 function disableDraggable() { 6176 if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return; 6177 events('off'); 6178 } 6179 function init() { 6180 const { 6181 scrollbar, 6182 el: swiperEl 6183 } = swiper; 6184 swiper.params.scrollbar = createElementIfNotDefined(swiper, swiper.originalParams.scrollbar, swiper.params.scrollbar, { 6185 el: 'swiper-scrollbar' 6186 }); 6187 const params = swiper.params.scrollbar; 6188 if (!params.el) return; 6189 let el; 6190 if (typeof params.el === 'string' && swiper.isElement) { 6191 el = swiper.el.querySelector(params.el); 6192 } 6193 if (!el && typeof params.el === 'string') { 6194 el = document.querySelectorAll(params.el); 6195 if (!el.length) return; 6196 } else if (!el) { 6197 el = params.el; 6198 } 6199 if (swiper.params.uniqueNavElements && typeof params.el === 'string' && el.length > 1 && swiperEl.querySelectorAll(params.el).length === 1) { 6200 el = swiperEl.querySelector(params.el); 6201 } 6202 if (el.length > 0) el = el[0]; 6203 el.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass); 6204 let dragEl; 6205 if (el) { 6206 dragEl = el.querySelector(classesToSelector(swiper.params.scrollbar.dragClass)); 6207 if (!dragEl) { 6208 dragEl = createElement('div', swiper.params.scrollbar.dragClass); 6209 el.append(dragEl); 6210 } 6211 } 6212 Object.assign(scrollbar, { 6213 el, 6214 dragEl 6215 }); 6216 if (params.draggable) { 6217 enableDraggable(); 6218 } 6219 if (el) { 6220 el.classList[swiper.enabled ? 'remove' : 'add'](...classesToTokens(swiper.params.scrollbar.lockClass)); 6221 } 6222 } 6223 function destroy() { 6224 const params = swiper.params.scrollbar; 6225 const el = swiper.scrollbar.el; 6226 if (el) { 6227 el.classList.remove(...classesToTokens(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass)); 6228 } 6229 disableDraggable(); 6230 } 6231 on('changeDirection', () => { 6232 if (!swiper.scrollbar || !swiper.scrollbar.el) return; 6233 const params = swiper.params.scrollbar; 6234 let { 6235 el 6236 } = swiper.scrollbar; 6237 el = makeElementsArray(el); 6238 el.forEach(subEl => { 6239 subEl.classList.remove(params.horizontalClass, params.verticalClass); 6240 subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass); 6241 }); 6242 }); 6243 on('init', () => { 6244 if (swiper.params.scrollbar.enabled === false) { 6245 // eslint-disable-next-line 6246 disable(); 6247 } else { 6248 init(); 6249 updateSize(); 6250 setTranslate(); 6251 } 6252 }); 6253 on('update resize observerUpdate lock unlock changeDirection', () => { 6254 updateSize(); 6255 }); 6256 on('setTranslate', () => { 6257 setTranslate(); 6258 }); 6259 on('setTransition', (_s, duration) => { 6260 setTransition(duration); 6261 }); 6262 on('enable disable', () => { 6263 const { 6264 el 6265 } = swiper.scrollbar; 6266 if (el) { 6267 el.classList[swiper.enabled ? 'remove' : 'add'](...classesToTokens(swiper.params.scrollbar.lockClass)); 6268 } 6269 }); 6270 on('destroy', () => { 6271 destroy(); 6272 }); 6273 const enable = () => { 6274 swiper.el.classList.remove(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass)); 6275 if (swiper.scrollbar.el) { 6276 swiper.scrollbar.el.classList.remove(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass)); 6277 } 6278 init(); 6279 updateSize(); 6280 setTranslate(); 6281 }; 6282 const disable = () => { 6283 swiper.el.classList.add(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass)); 6284 if (swiper.scrollbar.el) { 6285 swiper.scrollbar.el.classList.add(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass)); 6286 } 6287 destroy(); 6288 };
vendor: 57,258 bytes, lines 6289-7884
6289 Object.assign(swiper.scrollbar, { 6290 enable, 6291 disable, 6292 updateSize, 6293 setTranslate, 6294 init, 6295 destroy 6296 }); 6297 } 6298 6299 function Parallax(_ref) { 6300 let { 6301 swiper, 6302 extendParams, 6303 on 6304 } = _ref; 6305 extendParams({ 6306 parallax: { 6307 enabled: false 6308 } 6309 }); 6310 const elementsSelector = '[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]'; 6311 const setTransform = (el, progress) => { 6312 const { 6313 rtl 6314 } = swiper; 6315 const rtlFactor = rtl ? -1 : 1; 6316 const p = el.getAttribute('data-swiper-parallax') || '0'; 6317 let x = el.getAttribute('data-swiper-parallax-x'); 6318 let y = el.getAttribute('data-swiper-parallax-y'); 6319 const scale = el.getAttribute('data-swiper-parallax-scale'); 6320 const opacity = el.getAttribute('data-swiper-parallax-opacity'); 6321 const rotate = el.getAttribute('data-swiper-parallax-rotate'); 6322 if (x || y) { 6323 x = x || '0'; 6324 y = y || '0'; 6325 } else if (swiper.isHorizontal()) { 6326 x = p; 6327 y = '0'; 6328 } else { 6329 y = p; 6330 x = '0'; 6331 } 6332 if (x.indexOf('%') >= 0) { 6333 x = `${parseInt(x, 10) * progress * rtlFactor}%`; 6334 } else { 6335 x = `${x * progress * rtlFactor}px`; 6336 } 6337 if (y.indexOf('%') >= 0) { 6338 y = `${parseInt(y, 10) * progress}%`; 6339 } else { 6340 y = `${y * progress}px`; 6341 } 6342 if (typeof opacity !== 'undefined' && opacity !== null) { 6343 const currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress)); 6344 el.style.opacity = currentOpacity; 6345 } 6346 let transform = `translate3d(${x}, ${y}, 0px)`; 6347 if (typeof scale !== 'undefined' && scale !== null) { 6348 const currentScale = scale - (scale - 1) * (1 - Math.abs(progress)); 6349 transform += ` scale(${currentScale})`; 6350 } 6351 if (rotate && typeof rotate !== 'undefined' && rotate !== null) { 6352 const currentRotate = rotate * progress * -1; 6353 transform += ` rotate(${currentRotate}deg)`; 6354 } 6355 el.style.transform = transform; 6356 }; 6357 const setTranslate = () => { 6358 const { 6359 el, 6360 slides, 6361 progress, 6362 snapGrid, 6363 isElement 6364 } = swiper; 6365 const elements = elementChildren(el, elementsSelector); 6366 if (swiper.isElement) { 6367 elements.push(...elementChildren(swiper.hostEl, elementsSelector)); 6368 } 6369 elements.forEach(subEl => { 6370 setTransform(subEl, progress); 6371 }); 6372 slides.forEach((slideEl, slideIndex) => { 6373 let slideProgress = slideEl.progress; 6374 if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') { 6375 slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1); 6376 } 6377 slideProgress = Math.min(Math.max(slideProgress, -1), 1); 6378 slideEl.querySelectorAll(`${elementsSelector}, [data-swiper-parallax-rotate]`).forEach(subEl => { 6379 setTransform(subEl, slideProgress); 6380 }); 6381 }); 6382 }; 6383 const setTransition = function (duration) { 6384 if (duration === void 0) { 6385 duration = swiper.params.speed; 6386 } 6387 const { 6388 el, 6389 hostEl 6390 } = swiper; 6391 const elements = [...el.querySelectorAll(elementsSelector)]; 6392 if (swiper.isElement) { 6393 elements.push(...hostEl.querySelectorAll(elementsSelector)); 6394 } 6395 elements.forEach(parallaxEl => { 6396 let parallaxDuration = parseInt(parallaxEl.getAttribute('data-swiper-parallax-duration'), 10) || duration; 6397 if (duration === 0) parallaxDuration = 0; 6398 parallaxEl.style.transitionDuration = `${parallaxDuration}ms`; 6399 }); 6400 }; 6401 on('beforeInit', () => { 6402 if (!swiper.params.parallax.enabled) return; 6403 swiper.params.watchSlidesProgress = true; 6404 swiper.originalParams.watchSlidesProgress = true; 6405 }); 6406 on('init', () => { 6407 if (!swiper.params.parallax.enabled) return; 6408 setTranslate(); 6409 }); 6410 on('setTranslate', () => { 6411 if (!swiper.params.parallax.enabled) return; 6412 setTranslate(); 6413 }); 6414 on('setTransition', (_swiper, duration) => { 6415 if (!swiper.params.parallax.enabled) return; 6416 setTransition(duration); 6417 }); 6418 } 6419 6420 function Zoom(_ref) { 6421 let { 6422 swiper, 6423 extendParams, 6424 on, 6425 emit 6426 } = _ref; 6427 const window = getWindow(); 6428 extendParams({ 6429 zoom: { 6430 enabled: false, 6431 limitToOriginalSize: false, 6432 maxRatio: 3, 6433 minRatio: 1, 6434 toggle: true, 6435 containerClass: 'swiper-zoom-container', 6436 zoomedSlideClass: 'swiper-slide-zoomed' 6437 } 6438 }); 6439 swiper.zoom = { 6440 enabled: false 6441 }; 6442 let currentScale = 1; 6443 let isScaling = false; 6444 let fakeGestureTouched; 6445 let fakeGestureMoved; 6446 const evCache = []; 6447 const gesture = { 6448 originX: 0, 6449 originY: 0, 6450 slideEl: undefined, 6451 slideWidth: undefined, 6452 slideHeight: undefined, 6453 imageEl: undefined, 6454 imageWrapEl: undefined, 6455 maxRatio: 3 6456 }; 6457 const image = { 6458 isTouched: undefined, 6459 isMoved: undefined, 6460 currentX: undefined, 6461 currentY: undefined, 6462 minX: undefined, 6463 minY: undefined, 6464 maxX: undefined, 6465 maxY: undefined, 6466 width: undefined, 6467 height: undefined, 6468 startX: undefined, 6469 startY: undefined, 6470 touchesStart: {}, 6471 touchesCurrent: {} 6472 }; 6473 const velocity = { 6474 x: undefined, 6475 y: undefined, 6476 prevPositionX: undefined, 6477 prevPositionY: undefined, 6478 prevTime: undefined 6479 }; 6480 let scale = 1; 6481 Object.defineProperty(swiper.zoom, 'scale', { 6482 get() { 6483 return scale; 6484 }, 6485 set(value) { 6486 if (scale !== value) { 6487 const imageEl = gesture.imageEl; 6488 const slideEl = gesture.slideEl; 6489 emit('zoomChange', value, imageEl, slideEl); 6490 } 6491 scale = value; 6492 } 6493 }); 6494 function getDistanceBetweenTouches() { 6495 if (evCache.length < 2) return 1; 6496 const x1 = evCache[0].pageX; 6497 const y1 = evCache[0].pageY; 6498 const x2 = evCache[1].pageX; 6499 const y2 = evCache[1].pageY; 6500 const distance = Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2); 6501 return distance; 6502 } 6503 function getMaxRatio() { 6504 const params = swiper.params.zoom; 6505 const maxRatio = gesture.imageWrapEl.getAttribute('data-swiper-zoom') || params.maxRatio; 6506 if (params.limitToOriginalSize && gesture.imageEl && gesture.imageEl.naturalWidth) { 6507 const imageMaxRatio = gesture.imageEl.naturalWidth / gesture.imageEl.offsetWidth; 6508 return Math.min(imageMaxRatio, maxRatio); 6509 } 6510 return maxRatio; 6511 } 6512 function getScaleOrigin() { 6513 if (evCache.length < 2) return { 6514 x: null, 6515 y: null 6516 }; 6517 const box = gesture.imageEl.getBoundingClientRect(); 6518 return [(evCache[0].pageX + (evCache[1].pageX - evCache[0].pageX) / 2 - box.x - window.scrollX) / currentScale, (evCache[0].pageY + (evCache[1].pageY - evCache[0].pageY) / 2 - box.y - window.scrollY) / currentScale]; 6519 } 6520 function getSlideSelector() { 6521 return swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`; 6522 } 6523 function eventWithinSlide(e) { 6524 const slideSelector = getSlideSelector(); 6525 if (e.target.matches(slideSelector)) return true; 6526 if (swiper.slides.filter(slideEl => slideEl.contains(e.target)).length > 0) return true; 6527 return false; 6528 } 6529 function eventWithinZoomContainer(e) { 6530 const selector = `.${swiper.params.zoom.containerClass}`; 6531 if (e.target.matches(selector)) return true; 6532 if ([...swiper.hostEl.querySelectorAll(selector)].filter(containerEl => containerEl.contains(e.target)).length > 0) return true; 6533 return false; 6534 } 6535 6536 // Events 6537 function onGestureStart(e) { 6538 if (e.pointerType === 'mouse') { 6539 evCache.splice(0, evCache.length); 6540 } 6541 if (!eventWithinSlide(e)) return; 6542 const params = swiper.params.zoom; 6543 fakeGestureTouched = false; 6544 fakeGestureMoved = false; 6545 evCache.push(e); 6546 if (evCache.length < 2) { 6547 return; 6548 } 6549 fakeGestureTouched = true; 6550 gesture.scaleStart = getDistanceBetweenTouches(); 6551 if (!gesture.slideEl) { 6552 gesture.slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`); 6553 if (!gesture.slideEl) gesture.slideEl = swiper.slides[swiper.activeIndex]; 6554 let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`); 6555 if (imageEl) { 6556 imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0]; 6557 } 6558 gesture.imageEl = imageEl; 6559 if (imageEl) { 6560 gesture.imageWrapEl = elementParents(gesture.imageEl, `.${params.containerClass}`)[0]; 6561 } else { 6562 gesture.imageWrapEl = undefined; 6563 } 6564 if (!gesture.imageWrapEl) { 6565 gesture.imageEl = undefined; 6566 return; 6567 } 6568 gesture.maxRatio = getMaxRatio(); 6569 } 6570 if (gesture.imageEl) { 6571 const [originX, originY] = getScaleOrigin(); 6572 gesture.originX = originX; 6573 gesture.originY = originY; 6574 gesture.imageEl.style.transitionDuration = '0ms'; 6575 } 6576 isScaling = true; 6577 } 6578 function onGestureChange(e) { 6579 if (!eventWithinSlide(e)) return; 6580 const params = swiper.params.zoom; 6581 const zoom = swiper.zoom; 6582 const pointerIndex = evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId); 6583 if (pointerIndex >= 0) evCache[pointerIndex] = e; 6584 if (evCache.length < 2) { 6585 return; 6586 } 6587 fakeGestureMoved = true; 6588 gesture.scaleMove = getDistanceBetweenTouches(); 6589 if (!gesture.imageEl) { 6590 return; 6591 } 6592 zoom.scale = gesture.scaleMove / gesture.scaleStart * currentScale; 6593 if (zoom.scale > gesture.maxRatio) { 6594 zoom.scale = gesture.maxRatio - 1 + (zoom.scale - gesture.maxRatio + 1) ** 0.5; 6595 } 6596 if (zoom.scale < params.minRatio) { 6597 zoom.scale = params.minRatio + 1 - (params.minRatio - zoom.scale + 1) ** 0.5; 6598 } 6599 gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`; 6600 } 6601 function onGestureEnd(e) { 6602 if (!eventWithinSlide(e)) return; 6603 if (e.pointerType === 'mouse' && e.type === 'pointerout') return; 6604 const params = swiper.params.zoom; 6605 const zoom = swiper.zoom; 6606 const pointerIndex = evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId); 6607 if (pointerIndex >= 0) evCache.splice(pointerIndex, 1); 6608 if (!fakeGestureTouched || !fakeGestureMoved) { 6609 return; 6610 } 6611 fakeGestureTouched = false; 6612 fakeGestureMoved = false; 6613 if (!gesture.imageEl) return; 6614 zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio); 6615 gesture.imageEl.style.transitionDuration = `${swiper.params.speed}ms`; 6616 gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`; 6617 currentScale = zoom.scale; 6618 isScaling = false; 6619 if (zoom.scale > 1 && gesture.slideEl) { 6620 gesture.slideEl.classList.add(`${params.zoomedSlideClass}`); 6621 } else if (zoom.scale <= 1 && gesture.slideEl) { 6622 gesture.slideEl.classList.remove(`${params.zoomedSlideClass}`); 6623 } 6624 if (zoom.scale === 1) { 6625 gesture.originX = 0; 6626 gesture.originY = 0; 6627 gesture.slideEl = undefined; 6628 } 6629 } 6630 let allowTouchMoveTimeout; 6631 function allowTouchMove() { 6632 swiper.touchEventsData.preventTouchMoveFromPointerMove = false; 6633 } 6634 function preventTouchMove() { 6635 clearTimeout(allowTouchMoveTimeout); 6636 swiper.touchEventsData.preventTouchMoveFromPointerMove = true; 6637 allowTouchMoveTimeout = setTimeout(() => { 6638 allowTouchMove(); 6639 }); 6640 } 6641 function onTouchStart(e) { 6642 const device = swiper.device; 6643 if (!gesture.imageEl) return; 6644 if (image.isTouched) return; 6645 if (device.android && e.cancelable) e.preventDefault(); 6646 image.isTouched = true; 6647 const event = evCache.length > 0 ? evCache[0] : e; 6648 image.touchesStart.x = event.pageX; 6649 image.touchesStart.y = event.pageY; 6650 } 6651 function onTouchMove(e) { 6652 if (!eventWithinSlide(e) || !eventWithinZoomContainer(e)) { 6653 return; 6654 } 6655 const zoom = swiper.zoom; 6656 if (!gesture.imageEl) { 6657 return; 6658 } 6659 if (!image.isTouched || !gesture.slideEl) { 6660 return; 6661 } 6662 if (!image.isMoved) { 6663 image.width = gesture.imageEl.offsetWidth || gesture.imageEl.clientWidth; 6664 image.height = gesture.imageEl.offsetHeight || gesture.imageEl.clientHeight; 6665 image.startX = getTranslate(gesture.imageWrapEl, 'x') || 0; 6666 image.startY = getTranslate(gesture.imageWrapEl, 'y') || 0; 6667 gesture.slideWidth = gesture.slideEl.offsetWidth; 6668 gesture.slideHeight = gesture.slideEl.offsetHeight; 6669 gesture.imageWrapEl.style.transitionDuration = '0ms'; 6670 } 6671 // Define if we need image drag 6672 const scaledWidth = image.width * zoom.scale; 6673 const scaledHeight = image.height * zoom.scale; 6674 image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0); 6675 image.maxX = -image.minX; 6676 image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0); 6677 image.maxY = -image.minY; 6678 image.touchesCurrent.x = evCache.length > 0 ? evCache[0].pageX : e.pageX; 6679 image.touchesCurrent.y = evCache.length > 0 ? evCache[0].pageY : e.pageY; 6680 const touchesDiff = Math.max(Math.abs(image.touchesCurrent.x - image.touchesStart.x), Math.abs(image.touchesCurrent.y - image.touchesStart.y)); 6681 if (touchesDiff > 5) { 6682 swiper.allowClick = false; 6683 } 6684 if (!image.isMoved && !isScaling) { 6685 if (swiper.isHorizontal() && (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x || Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)) { 6686 image.isTouched = false; 6687 allowTouchMove(); 6688 return; 6689 } 6690 if (!swiper.isHorizontal() && (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y || Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)) { 6691 image.isTouched = false; 6692 allowTouchMove(); 6693 return; 6694 } 6695 } 6696 if (e.cancelable) { 6697 e.preventDefault(); 6698 } 6699 e.stopPropagation(); 6700 preventTouchMove(); 6701 image.isMoved = true; 6702 const scaleRatio = (zoom.scale - currentScale) / (gesture.maxRatio - swiper.params.zoom.minRatio); 6703 const { 6704 originX, 6705 originY 6706 } = gesture; 6707 image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX + scaleRatio * (image.width - originX * 2); 6708 image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY + scaleRatio * (image.height - originY * 2); 6709 if (image.currentX < image.minX) { 6710 image.currentX = image.minX + 1 - (image.minX - image.currentX + 1) ** 0.8; 6711 } 6712 if (image.currentX > image.maxX) { 6713 image.currentX = image.maxX - 1 + (image.currentX - image.maxX + 1) ** 0.8; 6714 } 6715 if (image.currentY < image.minY) { 6716 image.currentY = image.minY + 1 - (image.minY - image.currentY + 1) ** 0.8; 6717 } 6718 if (image.currentY > image.maxY) { 6719 image.currentY = image.maxY - 1 + (image.currentY - image.maxY + 1) ** 0.8; 6720 } 6721 6722 // Velocity 6723 if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x; 6724 if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y; 6725 if (!velocity.prevTime) velocity.prevTime = Date.now(); 6726 velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2; 6727 velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2; 6728 if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0; 6729 if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0; 6730 velocity.prevPositionX = image.touchesCurrent.x; 6731 velocity.prevPositionY = image.touchesCurrent.y; 6732 velocity.prevTime = Date.now(); 6733 gesture.imageWrapEl.style.transform = `translate3d(${image.currentX}px, ${image.currentY}px,0)`; 6734 } 6735 function onTouchEnd() { 6736 const zoom = swiper.zoom; 6737 if (!gesture.imageEl) return; 6738 if (!image.isTouched || !image.isMoved) { 6739 image.isTouched = false; 6740 image.isMoved = false; 6741 return; 6742 } 6743 image.isTouched = false; 6744 image.isMoved = false; 6745 let momentumDurationX = 300; 6746 let momentumDurationY = 300; 6747 const momentumDistanceX = velocity.x * momentumDurationX; 6748 const newPositionX = image.currentX + momentumDistanceX; 6749 const momentumDistanceY = velocity.y * momentumDurationY; 6750 const newPositionY = image.currentY + momentumDistanceY; 6751 6752 // Fix duration 6753 if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x); 6754 if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y); 6755 const momentumDuration = Math.max(momentumDurationX, momentumDurationY); 6756 image.currentX = newPositionX; 6757 image.currentY = newPositionY; 6758 // Define if we need image drag 6759 const scaledWidth = image.width * zoom.scale; 6760 const scaledHeight = image.height * zoom.scale; 6761 image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0); 6762 image.maxX = -image.minX; 6763 image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0); 6764 image.maxY = -image.minY; 6765 image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX); 6766 image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY); 6767 gesture.imageWrapEl.style.transitionDuration = `${momentumDuration}ms`; 6768 gesture.imageWrapEl.style.transform = `translate3d(${image.currentX}px, ${image.currentY}px,0)`; 6769 } 6770 function onTransitionEnd() { 6771 const zoom = swiper.zoom; 6772 if (gesture.slideEl && swiper.activeIndex !== swiper.slides.indexOf(gesture.slideEl)) { 6773 if (gesture.imageEl) { 6774 gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)'; 6775 } 6776 if (gesture.imageWrapEl) { 6777 gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)'; 6778 } 6779 gesture.slideEl.classList.remove(`${swiper.params.zoom.zoomedSlideClass}`); 6780 zoom.scale = 1; 6781 currentScale = 1; 6782 gesture.slideEl = undefined; 6783 gesture.imageEl = undefined; 6784 gesture.imageWrapEl = undefined; 6785 gesture.originX = 0; 6786 gesture.originY = 0; 6787 } 6788 } 6789 function zoomIn(e) { 6790 const zoom = swiper.zoom; 6791 const params = swiper.params.zoom; 6792 if (!gesture.slideEl) { 6793 if (e && e.target) { 6794 gesture.slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`); 6795 } 6796 if (!gesture.slideEl) { 6797 if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) { 6798 gesture.slideEl = elementChildren(swiper.slidesEl, `.${swiper.params.slideActiveClass}`)[0]; 6799 } else { 6800 gesture.slideEl = swiper.slides[swiper.activeIndex]; 6801 } 6802 } 6803 let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`); 6804 if (imageEl) { 6805 imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0]; 6806 } 6807 gesture.imageEl = imageEl; 6808 if (imageEl) { 6809 gesture.imageWrapEl = elementParents(gesture.imageEl, `.${params.containerClass}`)[0]; 6810 } else { 6811 gesture.imageWrapEl = undefined; 6812 } 6813 } 6814 if (!gesture.imageEl || !gesture.imageWrapEl) return; 6815 if (swiper.params.cssMode) { 6816 swiper.wrapperEl.style.overflow = 'hidden'; 6817 swiper.wrapperEl.style.touchAction = 'none'; 6818 } 6819 gesture.slideEl.classList.add(`${params.zoomedSlideClass}`); 6820 let touchX; 6821 let touchY; 6822 let offsetX; 6823 let offsetY; 6824 let diffX; 6825 let diffY; 6826 let translateX; 6827 let translateY; 6828 let imageWidth; 6829 let imageHeight; 6830 let scaledWidth; 6831 let scaledHeight; 6832 let translateMinX; 6833 let translateMinY; 6834 let translateMaxX; 6835 let translateMaxY; 6836 let slideWidth; 6837 let slideHeight; 6838 if (typeof image.touchesStart.x === 'undefined' && e) { 6839 touchX = e.pageX; 6840 touchY = e.pageY; 6841 } else { 6842 touchX = image.touchesStart.x; 6843 touchY = image.touchesStart.y; 6844 } 6845 const forceZoomRatio = typeof e === 'number' ? e : null; 6846 if (currentScale === 1 && forceZoomRatio) { 6847 touchX = undefined; 6848 touchY = undefined; 6849 image.touchesStart.x = undefined; 6850 image.touchesStart.y = undefined; 6851 } 6852 const maxRatio = getMaxRatio(); 6853 zoom.scale = forceZoomRatio || maxRatio; 6854 currentScale = forceZoomRatio || maxRatio; 6855 if (e && !(currentScale === 1 && forceZoomRatio)) { 6856 slideWidth = gesture.slideEl.offsetWidth; 6857 slideHeight = gesture.slideEl.offsetHeight; 6858 offsetX = elementOffset(gesture.slideEl).left + window.scrollX; 6859 offsetY = elementOffset(gesture.slideEl).top + window.scrollY; 6860 diffX = offsetX + slideWidth / 2 - touchX; 6861 diffY = offsetY + slideHeight / 2 - touchY; 6862 imageWidth = gesture.imageEl.offsetWidth || gesture.imageEl.clientWidth; 6863 imageHeight = gesture.imageEl.offsetHeight || gesture.imageEl.clientHeight; 6864 scaledWidth = imageWidth * zoom.scale; 6865 scaledHeight = imageHeight * zoom.scale; 6866 translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0); 6867 translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0); 6868 translateMaxX = -translateMinX; 6869 translateMaxY = -translateMinY; 6870 translateX = diffX * zoom.scale; 6871 translateY = diffY * zoom.scale; 6872 if (translateX < translateMinX) { 6873 translateX = translateMinX; 6874 } 6875 if (translateX > translateMaxX) { 6876 translateX = translateMaxX; 6877 } 6878 if (translateY < translateMinY) { 6879 translateY = translateMinY; 6880 } 6881 if (translateY > translateMaxY) { 6882 translateY = translateMaxY; 6883 } 6884 } else { 6885 translateX = 0; 6886 translateY = 0; 6887 } 6888 if (forceZoomRatio && zoom.scale === 1) { 6889 gesture.originX = 0; 6890 gesture.originY = 0; 6891 } 6892 gesture.imageWrapEl.style.transitionDuration = '300ms'; 6893 gesture.imageWrapEl.style.transform = `translate3d(${translateX}px, ${translateY}px,0)`; 6894 gesture.imageEl.style.transitionDuration = '300ms'; 6895 gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`; 6896 } 6897 function zoomOut() { 6898 const zoom = swiper.zoom; 6899 const params = swiper.params.zoom; 6900 if (!gesture.slideEl) { 6901 if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) { 6902 gesture.slideEl = elementChildren(swiper.slidesEl, `.${swiper.params.slideActiveClass}`)[0]; 6903 } else { 6904 gesture.slideEl = swiper.slides[swiper.activeIndex]; 6905 } 6906 let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`); 6907 if (imageEl) { 6908 imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0]; 6909 } 6910 gesture.imageEl = imageEl; 6911 if (imageEl) { 6912 gesture.imageWrapEl = elementParents(gesture.imageEl, `.${params.containerClass}`)[0]; 6913 } else { 6914 gesture.imageWrapEl = undefined; 6915 } 6916 } 6917 if (!gesture.imageEl || !gesture.imageWrapEl) return; 6918 if (swiper.params.cssMode) { 6919 swiper.wrapperEl.style.overflow = ''; 6920 swiper.wrapperEl.style.touchAction = ''; 6921 } 6922 zoom.scale = 1; 6923 currentScale = 1; 6924 image.touchesStart.x = undefined; 6925 image.touchesStart.y = undefined; 6926 gesture.imageWrapEl.style.transitionDuration = '300ms'; 6927 gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)'; 6928 gesture.imageEl.style.transitionDuration = '300ms'; 6929 gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)'; 6930 gesture.slideEl.classList.remove(`${params.zoomedSlideClass}`); 6931 gesture.slideEl = undefined; 6932 gesture.originX = 0; 6933 gesture.originY = 0; 6934 } 6935 6936 // Toggle Zoom 6937 function zoomToggle(e) { 6938 const zoom = swiper.zoom; 6939 if (zoom.scale && zoom.scale !== 1) { 6940 // Zoom Out 6941 zoomOut(); 6942 } else { 6943 // Zoom In 6944 zoomIn(e); 6945 } 6946 } 6947 function getListeners() { 6948 const passiveListener = swiper.params.passiveListeners ? { 6949 passive: true, 6950 capture: false 6951 } : false; 6952 const activeListenerWithCapture = swiper.params.passiveListeners ? { 6953 passive: false, 6954 capture: true 6955 } : true; 6956 return { 6957 passiveListener, 6958 activeListenerWithCapture 6959 }; 6960 } 6961 6962 // Attach/Detach Events 6963 function enable() { 6964 const zoom = swiper.zoom; 6965 if (zoom.enabled) return; 6966 zoom.enabled = true; 6967 const { 6968 passiveListener, 6969 activeListenerWithCapture 6970 } = getListeners(); 6971 6972 // Scale image 6973 swiper.wrapperEl.addEventListener('pointerdown', onGestureStart, passiveListener); 6974 swiper.wrapperEl.addEventListener('pointermove', onGestureChange, activeListenerWithCapture); 6975 ['pointerup', 'pointercancel', 'pointerout'].forEach(eventName => { 6976 swiper.wrapperEl.addEventListener(eventName, onGestureEnd, passiveListener); 6977 }); 6978 6979 // Move image 6980 swiper.wrapperEl.addEventListener('pointermove', onTouchMove, activeListenerWithCapture); 6981 } 6982 function disable() { 6983 const zoom = swiper.zoom; 6984 if (!zoom.enabled) return; 6985 zoom.enabled = false; 6986 const { 6987 passiveListener, 6988 activeListenerWithCapture 6989 } = getListeners(); 6990 6991 // Scale image 6992 swiper.wrapperEl.removeEventListener('pointerdown', onGestureStart, passiveListener); 6993 swiper.wrapperEl.removeEventListener('pointermove', onGestureChange, activeListenerWithCapture); 6994 ['pointerup', 'pointercancel', 'pointerout'].forEach(eventName => { 6995 swiper.wrapperEl.removeEventListener(eventName, onGestureEnd, passiveListener); 6996 }); 6997 6998 // Move image 6999 swiper.wrapperEl.removeEventListener('pointermove', onTouchMove, activeListenerWithCapture); 7000 } 7001 on('init', () => { 7002 if (swiper.params.zoom.enabled) { 7003 enable(); 7004 } 7005 }); 7006 on('destroy', () => { 7007 disable(); 7008 }); 7009 on('touchStart', (_s, e) => { 7010 if (!swiper.zoom.enabled) return; 7011 onTouchStart(e); 7012 }); 7013 on('touchEnd', (_s, e) => { 7014 if (!swiper.zoom.enabled) return; 7015 onTouchEnd(); 7016 }); 7017 on('doubleTap', (_s, e) => { 7018 if (!swiper.animating && swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) { 7019 zoomToggle(e); 7020 } 7021 }); 7022 on('transitionEnd', () => { 7023 if (swiper.zoom.enabled && swiper.params.zoom.enabled) { 7024 onTransitionEnd(); 7025 } 7026 }); 7027 on('slideChange', () => { 7028 if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) { 7029 onTransitionEnd(); 7030 } 7031 }); 7032 Object.assign(swiper.zoom, { 7033 enable, 7034 disable, 7035 in: zoomIn, 7036 out: zoomOut, 7037 toggle: zoomToggle 7038 }); 7039 } 7040 7041 /* eslint no-bitwise: ["error", { "allow": [">>"] }] */ 7042 function Controller(_ref) { 7043 let { 7044 swiper, 7045 extendParams, 7046 on 7047 } = _ref; 7048 extendParams({ 7049 controller: { 7050 control: undefined, 7051 inverse: false, 7052 by: 'slide' // or 'container' 7053 } 7054 }); 7055 7056 swiper.controller = { 7057 control: undefined 7058 }; 7059 function LinearSpline(x, y) { 7060 const binarySearch = function search() { 7061 let maxIndex; 7062 let minIndex; 7063 let guess; 7064 return (array, val) => { 7065 minIndex = -1; 7066 maxIndex = array.length; 7067 while (maxIndex - minIndex > 1) { 7068 guess = maxIndex + minIndex >> 1; 7069 if (array[guess] <= val) { 7070 minIndex = guess; 7071 } else { 7072 maxIndex = guess; 7073 } 7074 } 7075 return maxIndex; 7076 }; 7077 }(); 7078 this.x = x; 7079 this.y = y; 7080 this.lastIndex = x.length - 1; 7081 // Given an x value (x2), return the expected y2 value: 7082 // (x1,y1) is the known point before given value, 7083 // (x3,y3) is the known point after given value. 7084 let i1; 7085 let i3; 7086 this.interpolate = function interpolate(x2) { 7087 if (!x2) return 0; 7088 7089 // Get the indexes of x1 and x3 (the array indexes before and after given x2): 7090 i3 = binarySearch(this.x, x2); 7091 i1 = i3 - 1; 7092 7093 // We have our indexes i1 & i3, so we can calculate already: 7094 // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1 7095 return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1]; 7096 }; 7097 return this; 7098 } 7099 function getInterpolateFunction(c) { 7100 swiper.controller.spline = swiper.params.loop ? new LinearSpline(swiper.slidesGrid, c.slidesGrid) : new LinearSpline(swiper.snapGrid, c.snapGrid); 7101 } 7102 function setTranslate(_t, byController) { 7103 const controlled = swiper.controller.control; 7104 let multiplier; 7105 let controlledTranslate; 7106 const Swiper = swiper.constructor; 7107 function setControlledTranslate(c) { 7108 if (c.destroyed) return; 7109 7110 // this will create an Interpolate function based on the snapGrids 7111 // x is the Grid of the scrolled scroller and y will be the controlled scroller 7112 // it makes sense to create this only once and recall it for the interpolation 7113 // the function does a lot of value caching for performance 7114 const translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate; 7115 if (swiper.params.controller.by === 'slide') { 7116 getInterpolateFunction(c); 7117 // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid 7118 // but it did not work out 7119 controlledTranslate = -swiper.controller.spline.interpolate(-translate); 7120 } 7121 if (!controlledTranslate || swiper.params.controller.by === 'container') { 7122 multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate()); 7123 if (Number.isNaN(multiplier) || !Number.isFinite(multiplier)) { 7124 multiplier = 1; 7125 } 7126 controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate(); 7127 } 7128 if (swiper.params.controller.inverse) { 7129 controlledTranslate = c.maxTranslate() - controlledTranslate; 7130 } 7131 c.updateProgress(controlledTranslate); 7132 c.setTranslate(controlledTranslate, swiper); 7133 c.updateActiveIndex(); 7134 c.updateSlidesClasses(); 7135 } 7136 if (Array.isArray(controlled)) { 7137 for (let i = 0; i < controlled.length; i += 1) { 7138 if (controlled[i] !== byController && controlled[i] instanceof Swiper) { 7139 setControlledTranslate(controlled[i]); 7140 } 7141 } 7142 } else if (controlled instanceof Swiper && byController !== controlled) { 7143 setControlledTranslate(controlled); 7144 } 7145 } 7146 function setTransition(duration, byController) { 7147 const Swiper = swiper.constructor; 7148 const controlled = swiper.controller.control; 7149 let i; 7150 function setControlledTransition(c) { 7151 if (c.destroyed) return; 7152 c.setTransition(duration, swiper); 7153 if (duration !== 0) { 7154 c.transitionStart(); 7155 if (c.params.autoHeight) { 7156 nextTick(() => { 7157 c.updateAutoHeight(); 7158 }); 7159 } 7160 elementTransitionEnd(c.wrapperEl, () => { 7161 if (!controlled) return; 7162 c.transitionEnd(); 7163 }); 7164 } 7165 } 7166 if (Array.isArray(controlled)) { 7167 for (i = 0; i < controlled.length; i += 1) { 7168 if (controlled[i] !== byController && controlled[i] instanceof Swiper) { 7169 setControlledTransition(controlled[i]); 7170 } 7171 } 7172 } else if (controlled instanceof Swiper && byController !== controlled) { 7173 setControlledTransition(controlled); 7174 } 7175 } 7176 function removeSpline() { 7177 if (!swiper.controller.control) return; 7178 if (swiper.controller.spline) { 7179 swiper.controller.spline = undefined; 7180 delete swiper.controller.spline; 7181 } 7182 } 7183 on('beforeInit', () => { 7184 if (typeof window !== 'undefined' && ( 7185 // eslint-disable-line 7186 typeof swiper.params.controller.control === 'string' || swiper.params.controller.control instanceof HTMLElement)) { 7187 const controlElements = typeof swiper.params.controller.control === 'string' ? [...document.querySelectorAll(swiper.params.controller.control)] : [swiper.params.controller.control]; 7188 controlElements.forEach(controlElement => { 7189 if (!swiper.controller.control) swiper.controller.control = []; 7190 if (controlElement && controlElement.swiper) { 7191 swiper.controller.control.push(controlElement.swiper); 7192 } else if (controlElement) { 7193 const eventName = `${swiper.params.eventsPrefix}init`; 7194 const onControllerSwiper = e => { 7195 swiper.controller.control.push(e.detail[0]); 7196 swiper.update(); 7197 controlElement.removeEventListener(eventName, onControllerSwiper); 7198 }; 7199 controlElement.addEventListener(eventName, onControllerSwiper); 7200 } 7201 }); 7202 return; 7203 } 7204 swiper.controller.control = swiper.params.controller.control; 7205 }); 7206 on('update', () => { 7207 removeSpline(); 7208 }); 7209 on('resize', () => { 7210 removeSpline(); 7211 }); 7212 on('observerUpdate', () => { 7213 removeSpline(); 7214 }); 7215 on('setTranslate', (_s, translate, byController) => { 7216 if (!swiper.controller.control || swiper.controller.control.destroyed) return; 7217 swiper.controller.setTranslate(translate, byController); 7218 }); 7219 on('setTransition', (_s, duration, byController) => { 7220 if (!swiper.controller.control || swiper.controller.control.destroyed) return; 7221 swiper.controller.setTransition(duration, byController); 7222 }); 7223 Object.assign(swiper.controller, { 7224 setTranslate, 7225 setTransition 7226 }); 7227 } 7228 7229 function A11y(_ref) { 7230 let { 7231 swiper, 7232 extendParams, 7233 on 7234 } = _ref; 7235 extendParams({ 7236 a11y: { 7237 enabled: true, 7238 notificationClass: 'swiper-notification', 7239 prevSlideMessage: 'Previous slide', 7240 nextSlideMessage: 'Next slide', 7241 firstSlideMessage: 'This is the first slide', 7242 lastSlideMessage: 'This is the last slide', 7243 paginationBulletMessage: 'Go to slide {{index}}', 7244 slideLabelMessage: '{{index}} / {{slidesLength}}', 7245 containerMessage: null, 7246 containerRoleDescriptionMessage: null, 7247 containerRole: null, 7248 itemRoleDescriptionMessage: null, 7249 slideRole: 'group', 7250 id: null, 7251 scrollOnFocus: true 7252 } 7253 }); 7254 swiper.a11y = { 7255 clicked: false 7256 }; 7257 let liveRegion = null; 7258 let preventFocusHandler; 7259 let focusTargetSlideEl; 7260 let visibilityChangedTimestamp = new Date().getTime(); 7261 function notify(message) { 7262 const notification = liveRegion; 7263 if (notification.length === 0) return; 7264 notification.innerHTML = ''; 7265 notification.innerHTML = message; 7266 } 7267 function getRandomNumber(size) { 7268 if (size === void 0) { 7269 size = 16; 7270 } 7271 const randomChar = () => Math.round(16 * Math.random()).toString(16); 7272 return 'x'.repeat(size).replace(/x/g, randomChar); 7273 } 7274 function makeElFocusable(el) { 7275 el = makeElementsArray(el); 7276 el.forEach(subEl => { 7277 subEl.setAttribute('tabIndex', '0'); 7278 }); 7279 } 7280 function makeElNotFocusable(el) { 7281 el = makeElementsArray(el); 7282 el.forEach(subEl => { 7283 subEl.setAttribute('tabIndex', '-1'); 7284 }); 7285 } 7286 function addElRole(el, role) { 7287 el = makeElementsArray(el); 7288 el.forEach(subEl => { 7289 subEl.setAttribute('role', role); 7290 }); 7291 } 7292 function addElRoleDescription(el, description) { 7293 el = makeElementsArray(el); 7294 el.forEach(subEl => { 7295 subEl.setAttribute('aria-roledescription', description); 7296 }); 7297 } 7298 function addElControls(el, controls) { 7299 el = makeElementsArray(el); 7300 el.forEach(subEl => { 7301 subEl.setAttribute('aria-controls', controls); 7302 }); 7303 } 7304 function addElLabel(el, label) { 7305 el = makeElementsArray(el); 7306 el.forEach(subEl => { 7307 subEl.setAttribute('aria-label', label); 7308 }); 7309 } 7310 function addElId(el, id) { 7311 el = makeElementsArray(el); 7312 el.forEach(subEl => { 7313 subEl.setAttribute('id', id); 7314 }); 7315 } 7316 function addElLive(el, live) { 7317 el = makeElementsArray(el); 7318 el.forEach(subEl => { 7319 subEl.setAttribute('aria-live', live); 7320 }); 7321 } 7322 function disableEl(el) { 7323 el = makeElementsArray(el); 7324 el.forEach(subEl => { 7325 subEl.setAttribute('aria-disabled', true); 7326 }); 7327 } 7328 function enableEl(el) { 7329 el = makeElementsArray(el); 7330 el.forEach(subEl => { 7331 subEl.setAttribute('aria-disabled', false); 7332 }); 7333 } 7334 function onEnterOrSpaceKey(e) { 7335 if (e.keyCode !== 13 && e.keyCode !== 32) return; 7336 const params = swiper.params.a11y; 7337 const targetEl = e.target; 7338 if (swiper.pagination && swiper.pagination.el && (targetEl === swiper.pagination.el || swiper.pagination.el.contains(e.target))) { 7339 if (!e.target.matches(classesToSelector(swiper.params.pagination.bulletClass))) return; 7340 } 7341 if (swiper.navigation && swiper.navigation.prevEl && swiper.navigation.nextEl) { 7342 const prevEls = makeElementsArray(swiper.navigation.prevEl); 7343 const nextEls = makeElementsArray(swiper.navigation.nextEl); 7344 if (nextEls.includes(targetEl)) { 7345 if (!(swiper.isEnd && !swiper.params.loop)) { 7346 swiper.slideNext(); 7347 } 7348 if (swiper.isEnd) { 7349 notify(params.lastSlideMessage); 7350 } else { 7351 notify(params.nextSlideMessage); 7352 } 7353 } 7354 if (prevEls.includes(targetEl)) { 7355 if (!(swiper.isBeginning && !swiper.params.loop)) { 7356 swiper.slidePrev(); 7357 } 7358 if (swiper.isBeginning) { 7359 notify(params.firstSlideMessage); 7360 } else { 7361 notify(params.prevSlideMessage); 7362 } 7363 } 7364 } 7365 if (swiper.pagination && targetEl.matches(classesToSelector(swiper.params.pagination.bulletClass))) { 7366 targetEl.click(); 7367 } 7368 } 7369 function updateNavigation() { 7370 if (swiper.params.loop || swiper.params.rewind || !swiper.navigation) return; 7371 const { 7372 nextEl, 7373 prevEl 7374 } = swiper.navigation; 7375 if (prevEl) { 7376 if (swiper.isBeginning) { 7377 disableEl(prevEl); 7378 makeElNotFocusable(prevEl); 7379 } else { 7380 enableEl(prevEl); 7381 makeElFocusable(prevEl); 7382 } 7383 } 7384 if (nextEl) { 7385 if (swiper.isEnd) { 7386 disableEl(nextEl); 7387 makeElNotFocusable(nextEl); 7388 } else { 7389 enableEl(nextEl); 7390 makeElFocusable(nextEl); 7391 } 7392 } 7393 } 7394 function hasPagination() { 7395 return swiper.pagination && swiper.pagination.bullets && swiper.pagination.bullets.length; 7396 } 7397 function hasClickablePagination() { 7398 return hasPagination() && swiper.params.pagination.clickable; 7399 } 7400 function updatePagination() { 7401 const params = swiper.params.a11y; 7402 if (!hasPagination()) return; 7403 swiper.pagination.bullets.forEach(bulletEl => { 7404 if (swiper.params.pagination.clickable) { 7405 makeElFocusable(bulletEl); 7406 if (!swiper.params.pagination.renderBullet) { 7407 addElRole(bulletEl, 'button'); 7408 addElLabel(bulletEl, params.paginationBulletMessage.replace(/\{\{index\}\}/, elementIndex(bulletEl) + 1)); 7409 } 7410 } 7411 if (bulletEl.matches(classesToSelector(swiper.params.pagination.bulletActiveClass))) { 7412 bulletEl.setAttribute('aria-current', 'true'); 7413 } else { 7414 bulletEl.removeAttribute('aria-current'); 7415 } 7416 }); 7417 } 7418 const initNavEl = (el, wrapperId, message) => { 7419 makeElFocusable(el); 7420 if (el.tagName !== 'BUTTON') { 7421 addElRole(el, 'button'); 7422 el.addEventListener('keydown', onEnterOrSpaceKey); 7423 } 7424 addElLabel(el, message); 7425 addElControls(el, wrapperId); 7426 }; 7427 const handlePointerDown = e => { 7428 if (focusTargetSlideEl && focusTargetSlideEl !== e.target && !focusTargetSlideEl.contains(e.target)) { 7429 preventFocusHandler = true; 7430 } 7431 swiper.a11y.clicked = true; 7432 }; 7433 const handlePointerUp = () => { 7434 preventFocusHandler = false; 7435 requestAnimationFrame(() => { 7436 requestAnimationFrame(() => { 7437 if (!swiper.destroyed) { 7438 swiper.a11y.clicked = false; 7439 } 7440 }); 7441 }); 7442 }; 7443 const onVisibilityChange = e => { 7444 visibilityChangedTimestamp = new Date().getTime(); 7445 }; 7446 const handleFocus = e => { 7447 if (swiper.a11y.clicked || !swiper.params.a11y.scrollOnFocus) return; 7448 if (new Date().getTime() - visibilityChangedTimestamp < 100) return; 7449 const slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`); 7450 if (!slideEl || !swiper.slides.includes(slideEl)) return; 7451 focusTargetSlideEl = slideEl; 7452 const isActive = swiper.slides.indexOf(slideEl) === swiper.activeIndex; 7453 const isVisible = swiper.params.watchSlidesProgress && swiper.visibleSlides && swiper.visibleSlides.includes(slideEl); 7454 if (isActive || isVisible) return; 7455 if (e.sourceCapabilities && e.sourceCapabilities.firesTouchEvents) return; 7456 if (swiper.isHorizontal()) { 7457 swiper.el.scrollLeft = 0; 7458 } else { 7459 swiper.el.scrollTop = 0; 7460 } 7461 requestAnimationFrame(() => { 7462 if (preventFocusHandler) return; 7463 if (swiper.params.loop) { 7464 swiper.slideToLoop(parseInt(slideEl.getAttribute('data-swiper-slide-index')), 0); 7465 } else { 7466 swiper.slideTo(swiper.slides.indexOf(slideEl), 0); 7467 } 7468 preventFocusHandler = false; 7469 }); 7470 }; 7471 const initSlides = () => { 7472 const params = swiper.params.a11y; 7473 if (params.itemRoleDescriptionMessage) { 7474 addElRoleDescription(swiper.slides, params.itemRoleDescriptionMessage); 7475 } 7476 if (params.slideRole) { 7477 addElRole(swiper.slides, params.slideRole); 7478 } 7479 const slidesLength = swiper.slides.length; 7480 if (params.slideLabelMessage) { 7481 swiper.slides.forEach((slideEl, index) => { 7482 const slideIndex = swiper.params.loop ? parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10) : index; 7483 const ariaLabelMessage = params.slideLabelMessage.replace(/\{\{index\}\}/, slideIndex + 1).replace(/\{\{slidesLength\}\}/, slidesLength); 7484 addElLabel(slideEl, ariaLabelMessage); 7485 }); 7486 } 7487 }; 7488 const init = () => { 7489 const params = swiper.params.a11y; 7490 swiper.el.append(liveRegion); 7491 7492 // Container 7493 const containerEl = swiper.el; 7494 if (params.containerRoleDescriptionMessage) { 7495 addElRoleDescription(containerEl, params.containerRoleDescriptionMessage); 7496 } 7497 if (params.containerMessage) { 7498 addElLabel(containerEl, params.containerMessage); 7499 } 7500 if (params.containerRole) { 7501 addElRole(containerEl, params.containerRole); 7502 } 7503 7504 // Wrapper 7505 const wrapperEl = swiper.wrapperEl; 7506 const wrapperId = params.id || wrapperEl.getAttribute('id') || `swiper-wrapper-${getRandomNumber(16)}`; 7507 const live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite'; 7508 addElId(wrapperEl, wrapperId); 7509 addElLive(wrapperEl, live); 7510 7511 // Slide 7512 initSlides(); 7513 7514 // Navigation 7515 let { 7516 nextEl, 7517 prevEl 7518 } = swiper.navigation ? swiper.navigation : {}; 7519 nextEl = makeElementsArray(nextEl); 7520 prevEl = makeElementsArray(prevEl); 7521 if (nextEl) { 7522 nextEl.forEach(el => initNavEl(el, wrapperId, params.nextSlideMessage)); 7523 } 7524 if (prevEl) { 7525 prevEl.forEach(el => initNavEl(el, wrapperId, params.prevSlideMessage)); 7526 } 7527 7528 // Pagination 7529 if (hasClickablePagination()) { 7530 const paginationEl = makeElementsArray(swiper.pagination.el); 7531 paginationEl.forEach(el => { 7532 el.addEventListener('keydown', onEnterOrSpaceKey); 7533 }); 7534 } 7535 7536 // Tab focus 7537 const document = getDocument(); 7538 document.addEventListener('visibilitychange', onVisibilityChange); 7539 swiper.el.addEventListener('focus', handleFocus, true); 7540 swiper.el.addEventListener('focus', handleFocus, true); 7541 swiper.el.addEventListener('pointerdown', handlePointerDown, true); 7542 swiper.el.addEventListener('pointerup', handlePointerUp, true); 7543 }; 7544 function destroy() { 7545 if (liveRegion) liveRegion.remove(); 7546 let { 7547 nextEl, 7548 prevEl 7549 } = swiper.navigation ? swiper.navigation : {}; 7550 nextEl = makeElementsArray(nextEl); 7551 prevEl = makeElementsArray(prevEl); 7552 if (nextEl) { 7553 nextEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey)); 7554 } 7555 if (prevEl) { 7556 prevEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey)); 7557 } 7558 7559 // Pagination 7560 if (hasClickablePagination()) { 7561 const paginationEl = makeElementsArray(swiper.pagination.el); 7562 paginationEl.forEach(el => { 7563 el.removeEventListener('keydown', onEnterOrSpaceKey); 7564 }); 7565 } 7566 const document = getDocument(); 7567 document.removeEventListener('visibilitychange', onVisibilityChange); 7568 // Tab focus 7569 if (swiper.el && typeof swiper.el !== 'string') { 7570 swiper.el.removeEventListener('focus', handleFocus, true); 7571 swiper.el.removeEventListener('pointerdown', handlePointerDown, true); 7572 swiper.el.removeEventListener('pointerup', handlePointerUp, true); 7573 } 7574 } 7575 on('beforeInit', () => { 7576 liveRegion = createElement('span', swiper.params.a11y.notificationClass); 7577 liveRegion.setAttribute('aria-live', 'assertive'); 7578 liveRegion.setAttribute('aria-atomic', 'true'); 7579 }); 7580 on('afterInit', () => { 7581 if (!swiper.params.a11y.enabled) return; 7582 init(); 7583 }); 7584 on('slidesLengthChange snapGridLengthChange slidesGridLengthChange', () => { 7585 if (!swiper.params.a11y.enabled) return; 7586 initSlides(); 7587 }); 7588 on('fromEdge toEdge afterInit lock unlock', () => { 7589 if (!swiper.params.a11y.enabled) return; 7590 updateNavigation(); 7591 }); 7592 on('paginationUpdate', () => { 7593 if (!swiper.params.a11y.enabled) return; 7594 updatePagination(); 7595 }); 7596 on('destroy', () => { 7597 if (!swiper.params.a11y.enabled) return; 7598 destroy(); 7599 }); 7600 } 7601 7602 function History(_ref) { 7603 let { 7604 swiper, 7605 extendParams, 7606 on 7607 } = _ref; 7608 extendParams({ 7609 history: { 7610 enabled: false, 7611 root: '', 7612 replaceState: false, 7613 key: 'slides', 7614 keepQuery: false 7615 } 7616 }); 7617 let initialized = false; 7618 let paths = {}; 7619 const slugify = text => { 7620 return text.toString().replace(/\s+/g, '-').replace(/[^\w-]+/g, '').replace(/--+/g, '-').replace(/^-+/, '').replace(/-+$/, ''); 7621 }; 7622 const getPathValues = urlOverride => { 7623 const window = getWindow(); 7624 let location; 7625 if (urlOverride) { 7626 location = new URL(urlOverride); 7627 } else { 7628 location = window.location; 7629 } 7630 const pathArray = location.pathname.slice(1).split('/').filter(part => part !== ''); 7631 const total = pathArray.length; 7632 const key = pathArray[total - 2]; 7633 const value = pathArray[total - 1]; 7634 return { 7635 key, 7636 value 7637 }; 7638 }; 7639 const setHistory = (key, index) => { 7640 const window = getWindow(); 7641 if (!initialized || !swiper.params.history.enabled) return; 7642 let location; 7643 if (swiper.params.url) { 7644 location = new URL(swiper.params.url); 7645 } else { 7646 location = window.location; 7647 } 7648 const slide = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index="${index}"]`) : swiper.slides[index]; 7649 let value = slugify(slide.getAttribute('data-history')); 7650 if (swiper.params.history.root.length > 0) { 7651 let root = swiper.params.history.root; 7652 if (root[root.length - 1] === '/') root = root.slice(0, root.length - 1); 7653 value = `${root}/${key ? `${key}/` : ''}${value}`; 7654 } else if (!location.pathname.includes(key)) { 7655 value = `${key ? `${key}/` : ''}${value}`; 7656 } 7657 if (swiper.params.history.keepQuery) { 7658 value += location.search; 7659 } 7660 const currentState = window.history.state; 7661 if (currentState && currentState.value === value) { 7662 return; 7663 } 7664 if (swiper.params.history.replaceState) { 7665 window.history.replaceState({ 7666 value 7667 }, null, value); 7668 } else { 7669 window.history.pushState({ 7670 value 7671 }, null, value); 7672 } 7673 }; 7674 const scrollToSlide = (speed, value, runCallbacks) => { 7675 if (value) { 7676 for (let i = 0, length = swiper.slides.length; i < length; i += 1) { 7677 const slide = swiper.slides[i]; 7678 const slideHistory = slugify(slide.getAttribute('data-history')); 7679 if (slideHistory === value) { 7680 const index = swiper.getSlideIndex(slide); 7681 swiper.slideTo(index, speed, runCallbacks); 7682 } 7683 } 7684 } else { 7685 swiper.slideTo(0, speed, runCallbacks); 7686 } 7687 }; 7688 const setHistoryPopState = () => { 7689 paths = getPathValues(swiper.params.url); 7690 scrollToSlide(swiper.params.speed, paths.value, false); 7691 }; 7692 const init = () => { 7693 const window = getWindow(); 7694 if (!swiper.params.history) return; 7695 if (!window.history || !window.history.pushState) { 7696 swiper.params.history.enabled = false; 7697 swiper.params.hashNavigation.enabled = true; 7698 return; 7699 } 7700 initialized = true; 7701 paths = getPathValues(swiper.params.url); 7702 if (!paths.key && !paths.value) { 7703 if (!swiper.params.history.replaceState) { 7704 window.addEventListener('popstate', setHistoryPopState); 7705 } 7706 return; 7707 } 7708 scrollToSlide(0, paths.value, swiper.params.runCallbacksOnInit); 7709 if (!swiper.params.history.replaceState) { 7710 window.addEventListener('popstate', setHistoryPopState); 7711 } 7712 }; 7713 const destroy = () => { 7714 const window = getWindow(); 7715 if (!swiper.params.history.replaceState) { 7716 window.removeEventListener('popstate', setHistoryPopState); 7717 } 7718 }; 7719 on('init', () => { 7720 if (swiper.params.history.enabled) { 7721 init(); 7722 } 7723 }); 7724 on('destroy', () => { 7725 if (swiper.params.history.enabled) { 7726 destroy(); 7727 } 7728 }); 7729 on('transitionEnd _freeModeNoMomentumRelease', () => { 7730 if (initialized) { 7731 setHistory(swiper.params.history.key, swiper.activeIndex); 7732 } 7733 }); 7734 on('slideChange', () => { 7735 if (initialized && swiper.params.cssMode) { 7736 setHistory(swiper.params.history.key, swiper.activeIndex); 7737 } 7738 }); 7739 } 7740 7741 function HashNavigation(_ref) { 7742 let { 7743 swiper, 7744 extendParams, 7745 emit, 7746 on 7747 } = _ref; 7748 let initialized = false; 7749 const document = getDocument(); 7750 const window = getWindow(); 7751 extendParams({ 7752 hashNavigation: { 7753 enabled: false, 7754 replaceState: false, 7755 watchState: false, 7756 getSlideIndex(_s, hash) { 7757 if (swiper.virtual && swiper.params.virtual.enabled) { 7758 const slideWithHash = swiper.slides.filter(slideEl => slideEl.getAttribute('data-hash') === hash)[0]; 7759 if (!slideWithHash) return 0; 7760 const index = parseInt(slideWithHash.getAttribute('data-swiper-slide-index'), 10); 7761 return index; 7762 } 7763 return swiper.getSlideIndex(elementChildren(swiper.slidesEl, `.${swiper.params.slideClass}[data-hash="${hash}"], swiper-slide[data-hash="${hash}"]`)[0]); 7764 } 7765 } 7766 }); 7767 const onHashChange = () => { 7768 emit('hashChange'); 7769 const newHash = document.location.hash.replace('#', ''); 7770 const activeSlideEl = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index="${swiper.activeIndex}"]`) : swiper.slides[swiper.activeIndex]; 7771 const activeSlideHash = activeSlideEl ? activeSlideEl.getAttribute('data-hash') : ''; 7772 if (newHash !== activeSlideHash) { 7773 const newIndex = swiper.params.hashNavigation.getSlideIndex(swiper, newHash); 7774 if (typeof newIndex === 'undefined' || Number.isNaN(newIndex)) return; 7775 swiper.slideTo(newIndex); 7776 } 7777 }; 7778 const setHash = () => { 7779 if (!initialized || !swiper.params.hashNavigation.enabled) return; 7780 const activeSlideEl = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index="${swiper.activeIndex}"]`) : swiper.slides[swiper.activeIndex]; 7781 const activeSlideHash = activeSlideEl ? activeSlideEl.getAttribute('data-hash') || activeSlideEl.getAttribute('data-history') : ''; 7782 if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) { 7783 window.history.replaceState(null, null, `#${activeSlideHash}` || ''); 7784 emit('hashSet'); 7785 } else { 7786 document.location.hash = activeSlideHash || ''; 7787 emit('hashSet'); 7788 } 7789 }; 7790 const init = () => { 7791 if (!swiper.params.hashNavigation.enabled || swiper.params.history && swiper.params.history.enabled) return; 7792 initialized = true; 7793 const hash = document.location.hash.replace('#', ''); 7794 if (hash) { 7795 const speed = 0; 7796 const index = swiper.params.hashNavigation.getSlideIndex(swiper, hash); 7797 swiper.slideTo(index || 0, speed, swiper.params.runCallbacksOnInit, true); 7798 } 7799 if (swiper.params.hashNavigation.watchState) { 7800 window.addEventListener('hashchange', onHashChange); 7801 } 7802 }; 7803 const destroy = () => { 7804 if (swiper.params.hashNavigation.watchState) { 7805 window.removeEventListener('hashchange', onHashChange); 7806 } 7807 }; 7808 on('init', () => { 7809 if (swiper.params.hashNavigation.enabled) { 7810 init(); 7811 } 7812 }); 7813 on('destroy', () => { 7814 if (swiper.params.hashNavigation.enabled) { 7815 destroy(); 7816 } 7817 }); 7818 on('transitionEnd _freeModeNoMomentumRelease', () => { 7819 if (initialized) { 7820 setHash(); 7821 } 7822 }); 7823 on('slideChange', () => { 7824 if (initialized && swiper.params.cssMode) { 7825 setHash(); 7826 } 7827 }); 7828 } 7829 7830 /* eslint no-underscore-dangle: "off" */ 7831 /* eslint no-use-before-define: "off" */ 7832 function Autoplay(_ref) { 7833 let { 7834 swiper, 7835 extendParams, 7836 on, 7837 emit, 7838 params 7839 } = _ref; 7840 swiper.autoplay = { 7841 running: false, 7842 paused: false, 7843 timeLeft: 0 7844 }; 7845 extendParams({ 7846 autoplay: { 7847 enabled: false, 7848 delay: 3000, 7849 waitForTransition: true, 7850 disableOnInteraction: false, 7851 stopOnLastSlide: false, 7852 reverseDirection: false, 7853 pauseOnMouseEnter: false 7854 } 7855 }); 7856 let timeout; 7857 let raf; 7858 let autoplayDelayTotal = params && params.autoplay ? params.autoplay.delay : 3000; 7859 let autoplayDelayCurrent = params && params.autoplay ? params.autoplay.delay : 3000; 7860 let autoplayTimeLeft; 7861 let autoplayStartTime = new Date().getTime(); 7862 let wasPaused; 7863 let isTouched; 7864 let pausedByTouch; 7865 let touchStartTimeout; 7866 let slideChanged; 7867 let pausedByInteraction; 7868 let pausedByPointerEnter; 7869 function onTransitionEnd(e) { 7870 if (!swiper || swiper.destroyed || !swiper.wrapperEl) return; 7871 if (e.target !== swiper.wrapperEl) return; 7872 swiper.wrapperEl.removeEventListener('transitionend', onTransitionEnd); 7873 if (pausedByPointerEnter || e.detail && e.detail.bySwiperTouchMove) { 7874 return; 7875 } 7876 resume(); 7877 } 7878 const calcTimeLeft = () => { 7879 if (swiper.destroyed || !swiper.autoplay.running) return; 7880 if (swiper.autoplay.paused) { 7881 wasPaused = true; 7882 } else if (wasPaused) { 7883 autoplayDelayCurrent = autoplayTimeLeft; 7884 wasPaused = false;
vendor: 4,427 bytes, lines 7885-8004
7885 } 7886 const timeLeft = swiper.autoplay.paused ? autoplayTimeLeft : autoplayStartTime + autoplayDelayCurrent - new Date().getTime(); 7887 swiper.autoplay.timeLeft = timeLeft; 7888 emit('autoplayTimeLeft', timeLeft, timeLeft / autoplayDelayTotal); 7889 raf = requestAnimationFrame(() => { 7890 calcTimeLeft(); 7891 }); 7892 }; 7893 const getSlideDelay = () => { 7894 let activeSlideEl; 7895 if (swiper.virtual && swiper.params.virtual.enabled) { 7896 activeSlideEl = swiper.slides.filter(slideEl => slideEl.classList.contains('swiper-slide-active'))[0]; 7897 } else { 7898 activeSlideEl = swiper.slides[swiper.activeIndex]; 7899 } 7900 if (!activeSlideEl) return undefined; 7901 const currentSlideDelay = parseInt(activeSlideEl.getAttribute('data-swiper-autoplay'), 10); 7902 return currentSlideDelay; 7903 }; 7904 const run = delayForce => { 7905 if (swiper.destroyed || !swiper.autoplay.running) return; 7906 cancelAnimationFrame(raf); 7907 calcTimeLeft(); 7908 let delay = typeof delayForce === 'undefined' ? swiper.params.autoplay.delay : delayForce; 7909 autoplayDelayTotal = swiper.params.autoplay.delay; 7910 autoplayDelayCurrent = swiper.params.autoplay.delay; 7911 const currentSlideDelay = getSlideDelay(); 7912 if (!Number.isNaN(currentSlideDelay) && currentSlideDelay > 0 && typeof delayForce === 'undefined') { 7913 delay = currentSlideDelay; 7914 autoplayDelayTotal = currentSlideDelay; 7915 autoplayDelayCurrent = currentSlideDelay; 7916 } 7917 autoplayTimeLeft = delay; 7918 const speed = swiper.params.speed; 7919 const proceed = () => { 7920 if (!swiper || swiper.destroyed) return; 7921 if (swiper.params.autoplay.reverseDirection) { 7922 if (!swiper.isBeginning || swiper.params.loop || swiper.params.rewind) { 7923 swiper.slidePrev(speed, true, true); 7924 emit('autoplay'); 7925 } else if (!swiper.params.autoplay.stopOnLastSlide) { 7926 swiper.slideTo(swiper.slides.length - 1, speed, true, true); 7927 emit('autoplay'); 7928 } 7929 } else { 7930 if (!swiper.isEnd || swiper.params.loop || swiper.params.rewind) { 7931 swiper.slideNext(speed, true, true); 7932 emit('autoplay'); 7933 } else if (!swiper.params.autoplay.stopOnLastSlide) { 7934 swiper.slideTo(0, speed, true, true); 7935 emit('autoplay'); 7936 } 7937 } 7938 if (swiper.params.cssMode) { 7939 autoplayStartTime = new Date().getTime(); 7940 requestAnimationFrame(() => { 7941 run(); 7942 }); 7943 } 7944 }; 7945 if (delay > 0) { 7946 clearTimeout(timeout); 7947 timeout = setTimeout(() => { 7948 proceed(); 7949 }, delay); 7950 } else { 7951 requestAnimationFrame(() => { 7952 proceed(); 7953 }); 7954 } 7955 7956 // eslint-disable-next-line 7957 return delay; 7958 }; 7959 const start = () => { 7960 autoplayStartTime = new Date().getTime(); 7961 swiper.autoplay.running = true; 7962 run(); 7963 emit('autoplayStart'); 7964 }; 7965 const stop = () => { 7966 swiper.autoplay.running = false; 7967 clearTimeout(timeout); 7968 cancelAnimationFrame(raf); 7969 emit('autoplayStop'); 7970 }; 7971 const pause = (internal, reset) => { 7972 if (swiper.destroyed || !swiper.autoplay.running) return; 7973 clearTimeout(timeout); 7974 if (!internal) { 7975 pausedByInteraction = true; 7976 } 7977 const proceed = () => { 7978 emit('autoplayPause'); 7979 if (swiper.params.autoplay.waitForTransition) { 7980 swiper.wrapperEl.addEventListener('transitionend', onTransitionEnd); 7981 } else { 7982 resume(); 7983 } 7984 }; 7985 swiper.autoplay.paused = true; 7986 if (reset) { 7987 if (slideChanged) { 7988 autoplayTimeLeft = swiper.params.autoplay.delay; 7989 } 7990 slideChanged = false; 7991 proceed(); 7992 return; 7993 } 7994 const delay = autoplayTimeLeft || swiper.params.autoplay.delay; 7995 autoplayTimeLeft = delay - (new Date().getTime() - autoplayStartTime); 7996 if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop) return; 7997 if (autoplayTimeLeft < 0) autoplayTimeLeft = 0; 7998 proceed(); 7999 }; 8000 const resume = () => { 8001 if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop || swiper.destroyed || !swiper.autoplay.running) return; 8002 autoplayStartTime = new Date().getTime(); 8003 if (pausedByInteraction) { 8004 pausedByInteraction = false;
vendor: 20,091 bytes, lines 8005-8565
8005 run(autoplayTimeLeft); 8006 } else { 8007 run(); 8008 } 8009 swiper.autoplay.paused = false; 8010 emit('autoplayResume'); 8011 }; 8012 const onVisibilityChange = () => { 8013 if (swiper.destroyed || !swiper.autoplay.running) return; 8014 const document = getDocument(); 8015 if (document.visibilityState === 'hidden') { 8016 pausedByInteraction = true; 8017 pause(true); 8018 } 8019 if (document.visibilityState === 'visible') { 8020 resume(); 8021 } 8022 }; 8023 const onPointerEnter = e => { 8024 if (e.pointerType !== 'mouse') return; 8025 pausedByInteraction = true; 8026 pausedByPointerEnter = true; 8027 if (swiper.animating || swiper.autoplay.paused) return; 8028 pause(true); 8029 }; 8030 const onPointerLeave = e => { 8031 if (e.pointerType !== 'mouse') return; 8032 pausedByPointerEnter = false; 8033 if (swiper.autoplay.paused) { 8034 resume(); 8035 } 8036 }; 8037 const attachMouseEvents = () => { 8038 if (swiper.params.autoplay.pauseOnMouseEnter) { 8039 swiper.el.addEventListener('pointerenter', onPointerEnter); 8040 swiper.el.addEventListener('pointerleave', onPointerLeave); 8041 } 8042 }; 8043 const detachMouseEvents = () => { 8044 if (swiper.el && typeof swiper.el !== 'string') { 8045 swiper.el.removeEventListener('pointerenter', onPointerEnter); 8046 swiper.el.removeEventListener('pointerleave', onPointerLeave); 8047 } 8048 }; 8049 const attachDocumentEvents = () => { 8050 const document = getDocument(); 8051 document.addEventListener('visibilitychange', onVisibilityChange); 8052 }; 8053 const detachDocumentEvents = () => { 8054 const document = getDocument(); 8055 document.removeEventListener('visibilitychange', onVisibilityChange); 8056 }; 8057 on('init', () => { 8058 if (swiper.params.autoplay.enabled) { 8059 attachMouseEvents(); 8060 attachDocumentEvents(); 8061 start(); 8062 } 8063 }); 8064 on('destroy', () => { 8065 detachMouseEvents(); 8066 detachDocumentEvents(); 8067 if (swiper.autoplay.running) { 8068 stop(); 8069 } 8070 }); 8071 on('_freeModeStaticRelease', () => { 8072 if (pausedByTouch || pausedByInteraction) { 8073 resume(); 8074 } 8075 }); 8076 on('_freeModeNoMomentumRelease', () => { 8077 if (!swiper.params.autoplay.disableOnInteraction) { 8078 pause(true, true); 8079 } else { 8080 stop(); 8081 } 8082 }); 8083 on('beforeTransitionStart', (_s, speed, internal) => { 8084 if (swiper.destroyed || !swiper.autoplay.running) return; 8085 if (internal || !swiper.params.autoplay.disableOnInteraction) { 8086 pause(true, true); 8087 } else { 8088 stop(); 8089 } 8090 }); 8091 on('sliderFirstMove', () => { 8092 if (swiper.destroyed || !swiper.autoplay.running) return; 8093 if (swiper.params.autoplay.disableOnInteraction) { 8094 stop(); 8095 return; 8096 } 8097 isTouched = true; 8098 pausedByTouch = false; 8099 pausedByInteraction = false; 8100 touchStartTimeout = setTimeout(() => { 8101 pausedByInteraction = true; 8102 pausedByTouch = true; 8103 pause(true); 8104 }, 200); 8105 }); 8106 on('touchEnd', () => { 8107 if (swiper.destroyed || !swiper.autoplay.running || !isTouched) return; 8108 clearTimeout(touchStartTimeout); 8109 clearTimeout(timeout); 8110 if (swiper.params.autoplay.disableOnInteraction) { 8111 pausedByTouch = false; 8112 isTouched = false; 8113 return; 8114 } 8115 if (pausedByTouch && swiper.params.cssMode) resume(); 8116 pausedByTouch = false; 8117 isTouched = false; 8118 }); 8119 on('slideChange', () => { 8120 if (swiper.destroyed || !swiper.autoplay.running) return; 8121 slideChanged = true; 8122 }); 8123 Object.assign(swiper.autoplay, { 8124 start, 8125 stop, 8126 pause, 8127 resume 8128 }); 8129 } 8130 8131 function Thumb(_ref) { 8132 let { 8133 swiper, 8134 extendParams, 8135 on 8136 } = _ref; 8137 extendParams({ 8138 thumbs: { 8139 swiper: null, 8140 multipleActiveThumbs: true, 8141 autoScrollOffset: 0, 8142 slideThumbActiveClass: 'swiper-slide-thumb-active', 8143 thumbsContainerClass: 'swiper-thumbs' 8144 } 8145 }); 8146 let initialized = false; 8147 let swiperCreated = false; 8148 swiper.thumbs = { 8149 swiper: null 8150 }; 8151 function onThumbClick() { 8152 const thumbsSwiper = swiper.thumbs.swiper; 8153 if (!thumbsSwiper || thumbsSwiper.destroyed) return; 8154 const clickedIndex = thumbsSwiper.clickedIndex; 8155 const clickedSlide = thumbsSwiper.clickedSlide; 8156 if (clickedSlide && clickedSlide.classList.contains(swiper.params.thumbs.slideThumbActiveClass)) return; 8157 if (typeof clickedIndex === 'undefined' || clickedIndex === null) return; 8158 let slideToIndex; 8159 if (thumbsSwiper.params.loop) { 8160 slideToIndex = parseInt(thumbsSwiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10); 8161 } else { 8162 slideToIndex = clickedIndex; 8163 } 8164 if (swiper.params.loop) { 8165 swiper.slideToLoop(slideToIndex); 8166 } else { 8167 swiper.slideTo(slideToIndex); 8168 } 8169 } 8170 function init() { 8171 const { 8172 thumbs: thumbsParams 8173 } = swiper.params; 8174 if (initialized) return false; 8175 initialized = true; 8176 const SwiperClass = swiper.constructor; 8177 if (thumbsParams.swiper instanceof SwiperClass) { 8178 swiper.thumbs.swiper = thumbsParams.swiper; 8179 Object.assign(swiper.thumbs.swiper.originalParams, { 8180 watchSlidesProgress: true, 8181 slideToClickedSlide: false 8182 }); 8183 Object.assign(swiper.thumbs.swiper.params, { 8184 watchSlidesProgress: true, 8185 slideToClickedSlide: false 8186 }); 8187 swiper.thumbs.swiper.update(); 8188 } else if (isObject(thumbsParams.swiper)) { 8189 const thumbsSwiperParams = Object.assign({}, thumbsParams.swiper); 8190 Object.assign(thumbsSwiperParams, { 8191 watchSlidesProgress: true, 8192 slideToClickedSlide: false 8193 }); 8194 swiper.thumbs.swiper = new SwiperClass(thumbsSwiperParams); 8195 swiperCreated = true; 8196 } 8197 swiper.thumbs.swiper.el.classList.add(swiper.params.thumbs.thumbsContainerClass); 8198 swiper.thumbs.swiper.on('tap', onThumbClick); 8199 return true; 8200 } 8201 function update(initial) { 8202 const thumbsSwiper = swiper.thumbs.swiper; 8203 if (!thumbsSwiper || thumbsSwiper.destroyed) return; 8204 const slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView; 8205 8206 // Activate thumbs 8207 let thumbsToActivate = 1; 8208 const thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass; 8209 if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) { 8210 thumbsToActivate = swiper.params.slidesPerView; 8211 } 8212 if (!swiper.params.thumbs.multipleActiveThumbs) { 8213 thumbsToActivate = 1; 8214 } 8215 thumbsToActivate = Math.floor(thumbsToActivate); 8216 thumbsSwiper.slides.forEach(slideEl => slideEl.classList.remove(thumbActiveClass)); 8217 if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) { 8218 for (let i = 0; i < thumbsToActivate; i += 1) { 8219 elementChildren(thumbsSwiper.slidesEl, `[data-swiper-slide-index="${swiper.realIndex + i}"]`).forEach(slideEl => { 8220 slideEl.classList.add(thumbActiveClass); 8221 }); 8222 } 8223 } else { 8224 for (let i = 0; i < thumbsToActivate; i += 1) { 8225 if (thumbsSwiper.slides[swiper.realIndex + i]) { 8226 thumbsSwiper.slides[swiper.realIndex + i].classList.add(thumbActiveClass); 8227 } 8228 } 8229 } 8230 const autoScrollOffset = swiper.params.thumbs.autoScrollOffset; 8231 const useOffset = autoScrollOffset && !thumbsSwiper.params.loop; 8232 if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) { 8233 const currentThumbsIndex = thumbsSwiper.activeIndex; 8234 let newThumbsIndex; 8235 let direction; 8236 if (thumbsSwiper.params.loop) { 8237 const newThumbsSlide = thumbsSwiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') === `${swiper.realIndex}`)[0]; 8238 newThumbsIndex = thumbsSwiper.slides.indexOf(newThumbsSlide); 8239 direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev'; 8240 } else { 8241 newThumbsIndex = swiper.realIndex; 8242 direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev'; 8243 } 8244 if (useOffset) { 8245 newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset; 8246 } 8247 if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) { 8248 if (thumbsSwiper.params.centeredSlides) { 8249 if (newThumbsIndex > currentThumbsIndex) { 8250 newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1; 8251 } else { 8252 newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1; 8253 } 8254 } else if (newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup === 1) ; 8255 thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined); 8256 } 8257 } 8258 } 8259 on('beforeInit', () => { 8260 const { 8261 thumbs 8262 } = swiper.params; 8263 if (!thumbs || !thumbs.swiper) return; 8264 if (typeof thumbs.swiper === 'string' || thumbs.swiper instanceof HTMLElement) { 8265 const document = getDocument(); 8266 const getThumbsElementAndInit = () => { 8267 const thumbsElement = typeof thumbs.swiper === 'string' ? document.querySelector(thumbs.swiper) : thumbs.swiper; 8268 if (thumbsElement && thumbsElement.swiper) { 8269 thumbs.swiper = thumbsElement.swiper; 8270 init(); 8271 update(true); 8272 } else if (thumbsElement) { 8273 const eventName = `${swiper.params.eventsPrefix}init`; 8274 const onThumbsSwiper = e => { 8275 thumbs.swiper = e.detail[0]; 8276 thumbsElement.removeEventListener(eventName, onThumbsSwiper); 8277 init(); 8278 update(true); 8279 thumbs.swiper.update(); 8280 swiper.update(); 8281 }; 8282 thumbsElement.addEventListener(eventName, onThumbsSwiper); 8283 } 8284 return thumbsElement; 8285 }; 8286 const watchForThumbsToAppear = () => { 8287 if (swiper.destroyed) return; 8288 const thumbsElement = getThumbsElementAndInit(); 8289 if (!thumbsElement) { 8290 requestAnimationFrame(watchForThumbsToAppear); 8291 } 8292 }; 8293 requestAnimationFrame(watchForThumbsToAppear); 8294 } else { 8295 init(); 8296 update(true); 8297 } 8298 }); 8299 on('slideChange update resize observerUpdate', () => { 8300 update(); 8301 }); 8302 on('setTransition', (_s, duration) => { 8303 const thumbsSwiper = swiper.thumbs.swiper; 8304 if (!thumbsSwiper || thumbsSwiper.destroyed) return; 8305 thumbsSwiper.setTransition(duration); 8306 }); 8307 on('beforeDestroy', () => { 8308 const thumbsSwiper = swiper.thumbs.swiper; 8309 if (!thumbsSwiper || thumbsSwiper.destroyed) return; 8310 if (swiperCreated) { 8311 thumbsSwiper.destroy(); 8312 } 8313 }); 8314 Object.assign(swiper.thumbs, { 8315 init, 8316 update 8317 }); 8318 } 8319 8320 function freeMode(_ref) { 8321 let { 8322 swiper, 8323 extendParams, 8324 emit, 8325 once 8326 } = _ref; 8327 extendParams({ 8328 freeMode: { 8329 enabled: false, 8330 momentum: true, 8331 momentumRatio: 1, 8332 momentumBounce: true, 8333 momentumBounceRatio: 1, 8334 momentumVelocityRatio: 1, 8335 sticky: false, 8336 minimumVelocity: 0.02 8337 } 8338 }); 8339 function onTouchStart() { 8340 if (swiper.params.cssMode) return; 8341 const translate = swiper.getTranslate(); 8342 swiper.setTranslate(translate); 8343 swiper.setTransition(0); 8344 swiper.touchEventsData.velocities.length = 0; 8345 swiper.freeMode.onTouchEnd({ 8346 currentPos: swiper.rtl ? swiper.translate : -swiper.translate 8347 }); 8348 } 8349 function onTouchMove() { 8350 if (swiper.params.cssMode) return; 8351 const { 8352 touchEventsData: data, 8353 touches 8354 } = swiper; 8355 // Velocity 8356 if (data.velocities.length === 0) { 8357 data.velocities.push({ 8358 position: touches[swiper.isHorizontal() ? 'startX' : 'startY'], 8359 time: data.touchStartTime 8360 }); 8361 } 8362 data.velocities.push({ 8363 position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'], 8364 time: now() 8365 }); 8366 } 8367 function onTouchEnd(_ref2) { 8368 let { 8369 currentPos 8370 } = _ref2; 8371 if (swiper.params.cssMode) return; 8372 const { 8373 params, 8374 wrapperEl, 8375 rtlTranslate: rtl, 8376 snapGrid, 8377 touchEventsData: data 8378 } = swiper; 8379 // Time diff 8380 const touchEndTime = now(); 8381 const timeDiff = touchEndTime - data.touchStartTime; 8382 if (currentPos < -swiper.minTranslate()) { 8383 swiper.slideTo(swiper.activeIndex); 8384 return; 8385 } 8386 if (currentPos > -swiper.maxTranslate()) { 8387 if (swiper.slides.length < snapGrid.length) { 8388 swiper.slideTo(snapGrid.length - 1); 8389 } else { 8390 swiper.slideTo(swiper.slides.length - 1); 8391 } 8392 return; 8393 } 8394 if (params.freeMode.momentum) { 8395 if (data.velocities.length > 1) { 8396 const lastMoveEvent = data.velocities.pop(); 8397 const velocityEvent = data.velocities.pop(); 8398 const distance = lastMoveEvent.position - velocityEvent.position; 8399 const time = lastMoveEvent.time - velocityEvent.time; 8400 swiper.velocity = distance / time; 8401 swiper.velocity /= 2; 8402 if (Math.abs(swiper.velocity) < params.freeMode.minimumVelocity) { 8403 swiper.velocity = 0; 8404 } 8405 // this implies that the user stopped moving a finger then released. 8406 // There would be no events with distance zero, so the last event is stale. 8407 if (time > 150 || now() - lastMoveEvent.time > 300) { 8408 swiper.velocity = 0; 8409 } 8410 } else { 8411 swiper.velocity = 0; 8412 } 8413 swiper.velocity *= params.freeMode.momentumVelocityRatio; 8414 data.velocities.length = 0; 8415 let momentumDuration = 1000 * params.freeMode.momentumRatio; 8416 const momentumDistance = swiper.velocity * momentumDuration; 8417 let newPosition = swiper.translate + momentumDistance; 8418 if (rtl) newPosition = -newPosition; 8419 let doBounce = false; 8420 let afterBouncePosition; 8421 const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeMode.momentumBounceRatio; 8422 let needsLoopFix; 8423 if (newPosition < swiper.maxTranslate()) { 8424 if (params.freeMode.momentumBounce) { 8425 if (newPosition + swiper.maxTranslate() < -bounceAmount) { 8426 newPosition = swiper.maxTranslate() - bounceAmount; 8427 } 8428 afterBouncePosition = swiper.maxTranslate(); 8429 doBounce = true; 8430 data.allowMomentumBounce = true; 8431 } else { 8432 newPosition = swiper.maxTranslate(); 8433 } 8434 if (params.loop && params.centeredSlides) needsLoopFix = true; 8435 } else if (newPosition > swiper.minTranslate()) { 8436 if (params.freeMode.momentumBounce) { 8437 if (newPosition - swiper.minTranslate() > bounceAmount) { 8438 newPosition = swiper.minTranslate() + bounceAmount; 8439 } 8440 afterBouncePosition = swiper.minTranslate(); 8441 doBounce = true; 8442 data.allowMomentumBounce = true; 8443 } else { 8444 newPosition = swiper.minTranslate(); 8445 } 8446 if (params.loop && params.centeredSlides) needsLoopFix = true; 8447 } else if (params.freeMode.sticky) { 8448 let nextSlide; 8449 for (let j = 0; j < snapGrid.length; j += 1) { 8450 if (snapGrid[j] > -newPosition) { 8451 nextSlide = j; 8452 break; 8453 } 8454 } 8455 if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') { 8456 newPosition = snapGrid[nextSlide]; 8457 } else { 8458 newPosition = snapGrid[nextSlide - 1]; 8459 } 8460 newPosition = -newPosition; 8461 } 8462 if (needsLoopFix) { 8463 once('transitionEnd', () => { 8464 swiper.loopFix(); 8465 }); 8466 } 8467 // Fix duration 8468 if (swiper.velocity !== 0) { 8469 if (rtl) { 8470 momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity); 8471 } else { 8472 momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity); 8473 } 8474 if (params.freeMode.sticky) { 8475 // If freeMode.sticky is active and the user ends a swipe with a slow-velocity 8476 // event, then durations can be 20+ seconds to slide one (or zero!) slides. 8477 // It's easy to see this when simulating touch with mouse events. To fix this, 8478 // limit single-slide swipes to the default slide duration. This also has the 8479 // nice side effect of matching slide speed if the user stopped moving before 8480 // lifting finger or mouse vs. moving slowly before lifting the finger/mouse. 8481 // For faster swipes, also apply limits (albeit higher ones). 8482 const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate); 8483 const currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex]; 8484 if (moveDistance < currentSlideSize) { 8485 momentumDuration = params.speed; 8486 } else if (moveDistance < 2 * currentSlideSize) { 8487 momentumDuration = params.speed * 1.5; 8488 } else { 8489 momentumDuration = params.speed * 2.5; 8490 } 8491 } 8492 } else if (params.freeMode.sticky) { 8493 swiper.slideToClosest(); 8494 return; 8495 } 8496 if (params.freeMode.momentumBounce && doBounce) { 8497 swiper.updateProgress(afterBouncePosition); 8498 swiper.setTransition(momentumDuration); 8499 swiper.setTranslate(newPosition); 8500 swiper.transitionStart(true, swiper.swipeDirection); 8501 swiper.animating = true; 8502 elementTransitionEnd(wrapperEl, () => { 8503 if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return; 8504 emit('momentumBounce'); 8505 swiper.setTransition(params.speed); 8506 setTimeout(() => { 8507 swiper.setTranslate(afterBouncePosition); 8508 elementTransitionEnd(wrapperEl, () => { 8509 if (!swiper || swiper.destroyed) return; 8510 swiper.transitionEnd(); 8511 }); 8512 }, 0); 8513 }); 8514 } else if (swiper.velocity) { 8515 emit('_freeModeNoMomentumRelease'); 8516 swiper.updateProgress(newPosition); 8517 swiper.setTransition(momentumDuration); 8518 swiper.setTranslate(newPosition); 8519 swiper.transitionStart(true, swiper.swipeDirection); 8520 if (!swiper.animating) { 8521 swiper.animating = true; 8522 elementTransitionEnd(wrapperEl, () => { 8523 if (!swiper || swiper.destroyed) return; 8524 swiper.transitionEnd(); 8525 }); 8526 } 8527 } else { 8528 swiper.updateProgress(newPosition); 8529 } 8530 swiper.updateActiveIndex(); 8531 swiper.updateSlidesClasses(); 8532 } else if (params.freeMode.sticky) { 8533 swiper.slideToClosest(); 8534 return; 8535 } else if (params.freeMode) { 8536 emit('_freeModeNoMomentumRelease'); 8537 } 8538 if (!params.freeMode.momentum || timeDiff >= params.longSwipesMs) { 8539 emit('_freeModeStaticRelease'); 8540 swiper.updateProgress(); 8541 swiper.updateActiveIndex(); 8542 swiper.updateSlidesClasses(); 8543 } 8544 } 8545 Object.assign(swiper, { 8546 freeMode: { 8547 onTouchStart, 8548 onTouchMove, 8549 onTouchEnd 8550 } 8551 }); 8552 } 8553 8554 function Grid(_ref) { 8555 let { 8556 swiper, 8557 extendParams, 8558 on 8559 } = _ref; 8560 extendParams({ 8561 grid: { 8562 rows: 1, 8563 fill: 'column' 8564 } 8565 });
vendor: 1,326 bytes, lines 8566-8600
8566 let slidesNumberEvenToRows; 8567 let slidesPerRow; 8568 let numFullColumns; 8569 let wasMultiRow; 8570 const getSpaceBetween = () => { 8571 let spaceBetween = swiper.params.spaceBetween; 8572 if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) { 8573 spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size; 8574 } else if (typeof spaceBetween === 'string') { 8575 spaceBetween = parseFloat(spaceBetween); 8576 } 8577 return spaceBetween; 8578 }; 8579 const initSlides = slides => { 8580 const { 8581 slidesPerView 8582 } = swiper.params; 8583 const { 8584 rows, 8585 fill 8586 } = swiper.params.grid; 8587 const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : slides.length; 8588 numFullColumns = Math.floor(slidesLength / rows); 8589 if (Math.floor(slidesLength / rows) === slidesLength / rows) { 8590 slidesNumberEvenToRows = slidesLength; 8591 } else { 8592 slidesNumberEvenToRows = Math.ceil(slidesLength / rows) * rows; 8593 } 8594 if (slidesPerView !== 'auto' && fill === 'row') { 8595 slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, slidesPerView * rows); 8596 } 8597 slidesPerRow = slidesNumberEvenToRows / rows; 8598 }; 8599 const unsetSlides = () => { 8600 if (swiper.slides) {
vendor: 38,235 bytes, lines 8601-9675
8601 swiper.slides.forEach(slide => { 8602 if (slide.swiperSlideGridSet) { 8603 slide.style.height = ''; 8604 slide.style[swiper.getDirectionLabel('margin-top')] = ''; 8605 } 8606 }); 8607 } 8608 }; 8609 const updateSlide = (i, slide, slides) => { 8610 const { 8611 slidesPerGroup 8612 } = swiper.params; 8613 const spaceBetween = getSpaceBetween(); 8614 const { 8615 rows, 8616 fill 8617 } = swiper.params.grid; 8618 const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : slides.length; 8619 // Set slides order 8620 let newSlideOrderIndex; 8621 let column; 8622 let row; 8623 if (fill === 'row' && slidesPerGroup > 1) { 8624 const groupIndex = Math.floor(i / (slidesPerGroup * rows)); 8625 const slideIndexInGroup = i - rows * slidesPerGroup * groupIndex; 8626 const columnsInGroup = groupIndex === 0 ? slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * rows * slidesPerGroup) / rows), slidesPerGroup); 8627 row = Math.floor(slideIndexInGroup / columnsInGroup); 8628 column = slideIndexInGroup - row * columnsInGroup + groupIndex * slidesPerGroup; 8629 newSlideOrderIndex = column + row * slidesNumberEvenToRows / rows; 8630 slide.style.order = newSlideOrderIndex; 8631 } else if (fill === 'column') { 8632 column = Math.floor(i / rows); 8633 row = i - column * rows; 8634 if (column > numFullColumns || column === numFullColumns && row === rows - 1) { 8635 row += 1; 8636 if (row >= rows) { 8637 row = 0; 8638 column += 1; 8639 } 8640 } 8641 } else { 8642 row = Math.floor(i / slidesPerRow); 8643 column = i - row * slidesPerRow; 8644 } 8645 slide.row = row; 8646 slide.column = column; 8647 slide.style.height = `calc((100% - ${(rows - 1) * spaceBetween}px) / ${rows})`; 8648 slide.style[swiper.getDirectionLabel('margin-top')] = row !== 0 ? spaceBetween && `${spaceBetween}px` : ''; 8649 slide.swiperSlideGridSet = true; 8650 }; 8651 const updateWrapperSize = (slideSize, snapGrid) => { 8652 const { 8653 centeredSlides, 8654 roundLengths 8655 } = swiper.params; 8656 const spaceBetween = getSpaceBetween(); 8657 const { 8658 rows 8659 } = swiper.params.grid; 8660 swiper.virtualSize = (slideSize + spaceBetween) * slidesNumberEvenToRows; 8661 swiper.virtualSize = Math.ceil(swiper.virtualSize / rows) - spaceBetween; 8662 if (!swiper.params.cssMode) { 8663 swiper.wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`; 8664 } 8665 if (centeredSlides) { 8666 const newSlidesGrid = []; 8667 for (let i = 0; i < snapGrid.length; i += 1) { 8668 let slidesGridItem = snapGrid[i]; 8669 if (roundLengths) slidesGridItem = Math.floor(slidesGridItem); 8670 if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem); 8671 } 8672 snapGrid.splice(0, snapGrid.length); 8673 snapGrid.push(...newSlidesGrid); 8674 } 8675 }; 8676 const onInit = () => { 8677 wasMultiRow = swiper.params.grid && swiper.params.grid.rows > 1; 8678 }; 8679 const onUpdate = () => { 8680 const { 8681 params, 8682 el 8683 } = swiper; 8684 const isMultiRow = params.grid && params.grid.rows > 1; 8685 if (wasMultiRow && !isMultiRow) { 8686 el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`); 8687 numFullColumns = 1; 8688 swiper.emitContainerClasses(); 8689 } else if (!wasMultiRow && isMultiRow) { 8690 el.classList.add(`${params.containerModifierClass}grid`); 8691 if (params.grid.fill === 'column') { 8692 el.classList.add(`${params.containerModifierClass}grid-column`); 8693 } 8694 swiper.emitContainerClasses(); 8695 } 8696 wasMultiRow = isMultiRow; 8697 }; 8698 on('init', onInit); 8699 on('update', onUpdate); 8700 swiper.grid = { 8701 initSlides, 8702 unsetSlides, 8703 updateSlide, 8704 updateWrapperSize 8705 }; 8706 } 8707 8708 function appendSlide(slides) { 8709 const swiper = this; 8710 const { 8711 params, 8712 slidesEl 8713 } = swiper; 8714 if (params.loop) { 8715 swiper.loopDestroy(); 8716 } 8717 const appendElement = slideEl => { 8718 if (typeof slideEl === 'string') { 8719 const tempDOM = document.createElement('div'); 8720 tempDOM.innerHTML = slideEl; 8721 slidesEl.append(tempDOM.children[0]); 8722 tempDOM.innerHTML = ''; 8723 } else { 8724 slidesEl.append(slideEl); 8725 } 8726 }; 8727 if (typeof slides === 'object' && 'length' in slides) { 8728 for (let i = 0; i < slides.length; i += 1) { 8729 if (slides[i]) appendElement(slides[i]); 8730 } 8731 } else { 8732 appendElement(slides); 8733 } 8734 swiper.recalcSlides(); 8735 if (params.loop) { 8736 swiper.loopCreate(); 8737 } 8738 if (!params.observer || swiper.isElement) { 8739 swiper.update(); 8740 } 8741 } 8742 8743 function prependSlide(slides) { 8744 const swiper = this; 8745 const { 8746 params, 8747 activeIndex, 8748 slidesEl 8749 } = swiper; 8750 if (params.loop) { 8751 swiper.loopDestroy(); 8752 } 8753 let newActiveIndex = activeIndex + 1; 8754 const prependElement = slideEl => { 8755 if (typeof slideEl === 'string') { 8756 const tempDOM = document.createElement('div'); 8757 tempDOM.innerHTML = slideEl; 8758 slidesEl.prepend(tempDOM.children[0]); 8759 tempDOM.innerHTML = ''; 8760 } else { 8761 slidesEl.prepend(slideEl); 8762 } 8763 }; 8764 if (typeof slides === 'object' && 'length' in slides) { 8765 for (let i = 0; i < slides.length; i += 1) { 8766 if (slides[i]) prependElement(slides[i]); 8767 } 8768 newActiveIndex = activeIndex + slides.length; 8769 } else { 8770 prependElement(slides); 8771 } 8772 swiper.recalcSlides(); 8773 if (params.loop) { 8774 swiper.loopCreate(); 8775 } 8776 if (!params.observer || swiper.isElement) { 8777 swiper.update(); 8778 } 8779 swiper.slideTo(newActiveIndex, 0, false); 8780 } 8781 8782 function addSlide(index, slides) { 8783 const swiper = this; 8784 const { 8785 params, 8786 activeIndex, 8787 slidesEl 8788 } = swiper; 8789 let activeIndexBuffer = activeIndex; 8790 if (params.loop) { 8791 activeIndexBuffer -= swiper.loopedSlides; 8792 swiper.loopDestroy(); 8793 swiper.recalcSlides(); 8794 } 8795 const baseLength = swiper.slides.length; 8796 if (index <= 0) { 8797 swiper.prependSlide(slides); 8798 return; 8799 } 8800 if (index >= baseLength) { 8801 swiper.appendSlide(slides); 8802 return; 8803 } 8804 let newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer; 8805 const slidesBuffer = []; 8806 for (let i = baseLength - 1; i >= index; i -= 1) { 8807 const currentSlide = swiper.slides[i]; 8808 currentSlide.remove(); 8809 slidesBuffer.unshift(currentSlide); 8810 } 8811 if (typeof slides === 'object' && 'length' in slides) { 8812 for (let i = 0; i < slides.length; i += 1) { 8813 if (slides[i]) slidesEl.append(slides[i]); 8814 } 8815 newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer; 8816 } else { 8817 slidesEl.append(slides); 8818 } 8819 for (let i = 0; i < slidesBuffer.length; i += 1) { 8820 slidesEl.append(slidesBuffer[i]); 8821 } 8822 swiper.recalcSlides(); 8823 if (params.loop) { 8824 swiper.loopCreate(); 8825 } 8826 if (!params.observer || swiper.isElement) { 8827 swiper.update(); 8828 } 8829 if (params.loop) { 8830 swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false); 8831 } else { 8832 swiper.slideTo(newActiveIndex, 0, false); 8833 } 8834 } 8835 8836 function removeSlide(slidesIndexes) { 8837 const swiper = this; 8838 const { 8839 params, 8840 activeIndex 8841 } = swiper; 8842 let activeIndexBuffer = activeIndex; 8843 if (params.loop) { 8844 activeIndexBuffer -= swiper.loopedSlides; 8845 swiper.loopDestroy(); 8846 } 8847 let newActiveIndex = activeIndexBuffer; 8848 let indexToRemove; 8849 if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) { 8850 for (let i = 0; i < slidesIndexes.length; i += 1) { 8851 indexToRemove = slidesIndexes[i]; 8852 if (swiper.slides[indexToRemove]) swiper.slides[indexToRemove].remove(); 8853 if (indexToRemove < newActiveIndex) newActiveIndex -= 1; 8854 } 8855 newActiveIndex = Math.max(newActiveIndex, 0); 8856 } else { 8857 indexToRemove = slidesIndexes; 8858 if (swiper.slides[indexToRemove]) swiper.slides[indexToRemove].remove(); 8859 if (indexToRemove < newActiveIndex) newActiveIndex -= 1; 8860 newActiveIndex = Math.max(newActiveIndex, 0); 8861 } 8862 swiper.recalcSlides(); 8863 if (params.loop) { 8864 swiper.loopCreate(); 8865 } 8866 if (!params.observer || swiper.isElement) { 8867 swiper.update(); 8868 } 8869 if (params.loop) { 8870 swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false); 8871 } else { 8872 swiper.slideTo(newActiveIndex, 0, false); 8873 } 8874 } 8875 8876 function removeAllSlides() { 8877 const swiper = this; 8878 const slidesIndexes = []; 8879 for (let i = 0; i < swiper.slides.length; i += 1) { 8880 slidesIndexes.push(i); 8881 } 8882 swiper.removeSlide(slidesIndexes); 8883 } 8884 8885 function Manipulation(_ref) { 8886 let { 8887 swiper 8888 } = _ref; 8889 Object.assign(swiper, { 8890 appendSlide: appendSlide.bind(swiper), 8891 prependSlide: prependSlide.bind(swiper), 8892 addSlide: addSlide.bind(swiper), 8893 removeSlide: removeSlide.bind(swiper), 8894 removeAllSlides: removeAllSlides.bind(swiper) 8895 }); 8896 } 8897 8898 function effectInit(params) { 8899 const { 8900 effect, 8901 swiper, 8902 on, 8903 setTranslate, 8904 setTransition, 8905 overwriteParams, 8906 perspective, 8907 recreateShadows, 8908 getEffectParams 8909 } = params; 8910 on('beforeInit', () => { 8911 if (swiper.params.effect !== effect) return; 8912 swiper.classNames.push(`${swiper.params.containerModifierClass}${effect}`); 8913 if (perspective && perspective()) { 8914 swiper.classNames.push(`${swiper.params.containerModifierClass}3d`); 8915 } 8916 const overwriteParamsResult = overwriteParams ? overwriteParams() : {}; 8917 Object.assign(swiper.params, overwriteParamsResult); 8918 Object.assign(swiper.originalParams, overwriteParamsResult); 8919 }); 8920 on('setTranslate', () => { 8921 if (swiper.params.effect !== effect) return; 8922 setTranslate(); 8923 }); 8924 on('setTransition', (_s, duration) => { 8925 if (swiper.params.effect !== effect) return; 8926 setTransition(duration); 8927 }); 8928 on('transitionEnd', () => { 8929 if (swiper.params.effect !== effect) return; 8930 if (recreateShadows) { 8931 if (!getEffectParams || !getEffectParams().slideShadows) return; 8932 // remove shadows 8933 swiper.slides.forEach(slideEl => { 8934 slideEl.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => shadowEl.remove()); 8935 }); 8936 // create new one 8937 recreateShadows(); 8938 } 8939 }); 8940 let requireUpdateOnVirtual; 8941 on('virtualUpdate', () => { 8942 if (swiper.params.effect !== effect) return; 8943 if (!swiper.slides.length) { 8944 requireUpdateOnVirtual = true; 8945 } 8946 requestAnimationFrame(() => { 8947 if (requireUpdateOnVirtual && swiper.slides && swiper.slides.length) { 8948 setTranslate(); 8949 requireUpdateOnVirtual = false; 8950 } 8951 }); 8952 }); 8953 } 8954 8955 function effectTarget(effectParams, slideEl) { 8956 const transformEl = getSlideTransformEl(slideEl); 8957 if (transformEl !== slideEl) { 8958 transformEl.style.backfaceVisibility = 'hidden'; 8959 transformEl.style['-webkit-backface-visibility'] = 'hidden'; 8960 } 8961 return transformEl; 8962 } 8963 8964 function effectVirtualTransitionEnd(_ref) { 8965 let { 8966 swiper, 8967 duration, 8968 transformElements, 8969 allSlides 8970 } = _ref; 8971 const { 8972 activeIndex 8973 } = swiper; 8974 const getSlide = el => { 8975 if (!el.parentElement) { 8976 // assume shadow root 8977 const slide = swiper.slides.filter(slideEl => slideEl.shadowRoot && slideEl.shadowRoot === el.parentNode)[0]; 8978 return slide; 8979 } 8980 return el.parentElement; 8981 }; 8982 if (swiper.params.virtualTranslate && duration !== 0) { 8983 let eventTriggered = false; 8984 let transitionEndTarget; 8985 if (allSlides) { 8986 transitionEndTarget = transformElements; 8987 } else { 8988 transitionEndTarget = transformElements.filter(transformEl => { 8989 const el = transformEl.classList.contains('swiper-slide-transform') ? getSlide(transformEl) : transformEl; 8990 return swiper.getSlideIndex(el) === activeIndex; 8991 }); 8992 } 8993 transitionEndTarget.forEach(el => { 8994 elementTransitionEnd(el, () => { 8995 if (eventTriggered) return; 8996 if (!swiper || swiper.destroyed) return; 8997 eventTriggered = true; 8998 swiper.animating = false; 8999 const evt = new window.CustomEvent('transitionend', { 9000 bubbles: true, 9001 cancelable: true 9002 }); 9003 swiper.wrapperEl.dispatchEvent(evt); 9004 }); 9005 }); 9006 } 9007 } 9008 9009 function EffectFade(_ref) { 9010 let { 9011 swiper, 9012 extendParams, 9013 on 9014 } = _ref; 9015 extendParams({ 9016 fadeEffect: { 9017 crossFade: false 9018 } 9019 }); 9020 const setTranslate = () => { 9021 const { 9022 slides 9023 } = swiper; 9024 const params = swiper.params.fadeEffect; 9025 for (let i = 0; i < slides.length; i += 1) { 9026 const slideEl = swiper.slides[i]; 9027 const offset = slideEl.swiperSlideOffset; 9028 let tx = -offset; 9029 if (!swiper.params.virtualTranslate) tx -= swiper.translate; 9030 let ty = 0; 9031 if (!swiper.isHorizontal()) { 9032 ty = tx; 9033 tx = 0; 9034 } 9035 const slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs(slideEl.progress), 0) : 1 + Math.min(Math.max(slideEl.progress, -1), 0); 9036 const targetEl = effectTarget(params, slideEl); 9037 targetEl.style.opacity = slideOpacity; 9038 targetEl.style.transform = `translate3d(${tx}px, ${ty}px, 0px)`; 9039 } 9040 }; 9041 const setTransition = duration => { 9042 const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl)); 9043 transformElements.forEach(el => { 9044 el.style.transitionDuration = `${duration}ms`; 9045 }); 9046 effectVirtualTransitionEnd({ 9047 swiper, 9048 duration, 9049 transformElements, 9050 allSlides: true 9051 }); 9052 }; 9053 effectInit({ 9054 effect: 'fade', 9055 swiper, 9056 on, 9057 setTranslate, 9058 setTransition, 9059 overwriteParams: () => ({ 9060 slidesPerView: 1, 9061 slidesPerGroup: 1, 9062 watchSlidesProgress: true, 9063 spaceBetween: 0, 9064 virtualTranslate: !swiper.params.cssMode 9065 }) 9066 }); 9067 } 9068 9069 function EffectCube(_ref) { 9070 let { 9071 swiper, 9072 extendParams, 9073 on 9074 } = _ref; 9075 extendParams({ 9076 cubeEffect: { 9077 slideShadows: true, 9078 shadow: true, 9079 shadowOffset: 20, 9080 shadowScale: 0.94 9081 } 9082 }); 9083 const createSlideShadows = (slideEl, progress, isHorizontal) => { 9084 let shadowBefore = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top'); 9085 let shadowAfter = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom'); 9086 if (!shadowBefore) { 9087 shadowBefore = createElement('div', `swiper-slide-shadow-cube swiper-slide-shadow-${isHorizontal ? 'left' : 'top'}`.split(' ')); 9088 slideEl.append(shadowBefore); 9089 } 9090 if (!shadowAfter) { 9091 shadowAfter = createElement('div', `swiper-slide-shadow-cube swiper-slide-shadow-${isHorizontal ? 'right' : 'bottom'}`.split(' ')); 9092 slideEl.append(shadowAfter); 9093 } 9094 if (shadowBefore) shadowBefore.style.opacity = Math.max(-progress, 0); 9095 if (shadowAfter) shadowAfter.style.opacity = Math.max(progress, 0); 9096 }; 9097 const recreateShadows = () => { 9098 // create new ones 9099 const isHorizontal = swiper.isHorizontal(); 9100 swiper.slides.forEach(slideEl => { 9101 const progress = Math.max(Math.min(slideEl.progress, 1), -1); 9102 createSlideShadows(slideEl, progress, isHorizontal); 9103 }); 9104 }; 9105 const setTranslate = () => { 9106 const { 9107 el, 9108 wrapperEl, 9109 slides, 9110 width: swiperWidth, 9111 height: swiperHeight, 9112 rtlTranslate: rtl, 9113 size: swiperSize, 9114 browser 9115 } = swiper; 9116 const r = getRotateFix(swiper); 9117 const params = swiper.params.cubeEffect; 9118 const isHorizontal = swiper.isHorizontal(); 9119 const isVirtual = swiper.virtual && swiper.params.virtual.enabled; 9120 let wrapperRotate = 0; 9121 let cubeShadowEl; 9122 if (params.shadow) { 9123 if (isHorizontal) { 9124 cubeShadowEl = swiper.wrapperEl.querySelector('.swiper-cube-shadow'); 9125 if (!cubeShadowEl) { 9126 cubeShadowEl = createElement('div', 'swiper-cube-shadow'); 9127 swiper.wrapperEl.append(cubeShadowEl); 9128 } 9129 cubeShadowEl.style.height = `${swiperWidth}px`; 9130 } else { 9131 cubeShadowEl = el.querySelector('.swiper-cube-shadow'); 9132 if (!cubeShadowEl) { 9133 cubeShadowEl = createElement('div', 'swiper-cube-shadow'); 9134 el.append(cubeShadowEl); 9135 } 9136 } 9137 } 9138 for (let i = 0; i < slides.length; i += 1) { 9139 const slideEl = slides[i]; 9140 let slideIndex = i; 9141 if (isVirtual) { 9142 slideIndex = parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10); 9143 } 9144 let slideAngle = slideIndex * 90; 9145 let round = Math.floor(slideAngle / 360); 9146 if (rtl) { 9147 slideAngle = -slideAngle; 9148 round = Math.floor(-slideAngle / 360); 9149 } 9150 const progress = Math.max(Math.min(slideEl.progress, 1), -1); 9151 let tx = 0; 9152 let ty = 0; 9153 let tz = 0; 9154 if (slideIndex % 4 === 0) { 9155 tx = -round * 4 * swiperSize; 9156 tz = 0; 9157 } else if ((slideIndex - 1) % 4 === 0) { 9158 tx = 0; 9159 tz = -round * 4 * swiperSize; 9160 } else if ((slideIndex - 2) % 4 === 0) { 9161 tx = swiperSize + round * 4 * swiperSize; 9162 tz = swiperSize; 9163 } else if ((slideIndex - 3) % 4 === 0) { 9164 tx = -swiperSize; 9165 tz = 3 * swiperSize + swiperSize * 4 * round; 9166 } 9167 if (rtl) { 9168 tx = -tx; 9169 } 9170 if (!isHorizontal) { 9171 ty = tx; 9172 tx = 0; 9173 } 9174 const transform = `rotateX(${r(isHorizontal ? 0 : -slideAngle)}deg) rotateY(${r(isHorizontal ? slideAngle : 0)}deg) translate3d(${tx}px, ${ty}px, ${tz}px)`; 9175 if (progress <= 1 && progress > -1) { 9176 wrapperRotate = slideIndex * 90 + progress * 90; 9177 if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90; 9178 } 9179 slideEl.style.transform = transform; 9180 if (params.slideShadows) { 9181 createSlideShadows(slideEl, progress, isHorizontal); 9182 } 9183 } 9184 wrapperEl.style.transformOrigin = `50% 50% -${swiperSize / 2}px`; 9185 wrapperEl.style['-webkit-transform-origin'] = `50% 50% -${swiperSize / 2}px`; 9186 if (params.shadow) { 9187 if (isHorizontal) { 9188 cubeShadowEl.style.transform = `translate3d(0px, ${swiperWidth / 2 + params.shadowOffset}px, ${-swiperWidth / 2}px) rotateX(89.99deg) rotateZ(0deg) scale(${params.shadowScale})`; 9189 } else { 9190 const shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90; 9191 const multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2); 9192 const scale1 = params.shadowScale; 9193 const scale2 = params.shadowScale / multiplier; 9194 const offset = params.shadowOffset; 9195 cubeShadowEl.style.transform = `scale3d(${scale1}, 1, ${scale2}) translate3d(0px, ${swiperHeight / 2 + offset}px, ${-swiperHeight / 2 / scale2}px) rotateX(-89.99deg)`; 9196 } 9197 } 9198 const zFactor = (browser.isSafari || browser.isWebView) && browser.needPerspectiveFix ? -swiperSize / 2 : 0; 9199 wrapperEl.style.transform = `translate3d(0px,0,${zFactor}px) rotateX(${r(swiper.isHorizontal() ? 0 : wrapperRotate)}deg) rotateY(${r(swiper.isHorizontal() ? -wrapperRotate : 0)}deg)`; 9200 wrapperEl.style.setProperty('--swiper-cube-translate-z', `${zFactor}px`); 9201 }; 9202 const setTransition = duration => { 9203 const { 9204 el, 9205 slides 9206 } = swiper; 9207 slides.forEach(slideEl => { 9208 slideEl.style.transitionDuration = `${duration}ms`; 9209 slideEl.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(subEl => { 9210 subEl.style.transitionDuration = `${duration}ms`; 9211 }); 9212 }); 9213 if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) { 9214 const shadowEl = el.querySelector('.swiper-cube-shadow'); 9215 if (shadowEl) shadowEl.style.transitionDuration = `${duration}ms`; 9216 } 9217 }; 9218 effectInit({ 9219 effect: 'cube', 9220 swiper, 9221 on, 9222 setTranslate, 9223 setTransition, 9224 recreateShadows, 9225 getEffectParams: () => swiper.params.cubeEffect, 9226 perspective: () => true, 9227 overwriteParams: () => ({ 9228 slidesPerView: 1, 9229 slidesPerGroup: 1, 9230 watchSlidesProgress: true, 9231 resistanceRatio: 0, 9232 spaceBetween: 0, 9233 centeredSlides: false, 9234 virtualTranslate: true 9235 }) 9236 }); 9237 } 9238 9239 function createShadow(suffix, slideEl, side) { 9240 const shadowClass = `swiper-slide-shadow${side ? `-${side}` : ''}${suffix ? ` swiper-slide-shadow-${suffix}` : ''}`; 9241 const shadowContainer = getSlideTransformEl(slideEl); 9242 let shadowEl = shadowContainer.querySelector(`.${shadowClass.split(' ').join('.')}`); 9243 if (!shadowEl) { 9244 shadowEl = createElement('div', shadowClass.split(' ')); 9245 shadowContainer.append(shadowEl); 9246 } 9247 return shadowEl; 9248 } 9249 9250 function EffectFlip(_ref) { 9251 let { 9252 swiper, 9253 extendParams, 9254 on 9255 } = _ref; 9256 extendParams({ 9257 flipEffect: { 9258 slideShadows: true, 9259 limitRotation: true 9260 } 9261 }); 9262 const createSlideShadows = (slideEl, progress) => { 9263 let shadowBefore = swiper.isHorizontal() ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top'); 9264 let shadowAfter = swiper.isHorizontal() ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom'); 9265 if (!shadowBefore) { 9266 shadowBefore = createShadow('flip', slideEl, swiper.isHorizontal() ? 'left' : 'top'); 9267 } 9268 if (!shadowAfter) { 9269 shadowAfter = createShadow('flip', slideEl, swiper.isHorizontal() ? 'right' : 'bottom'); 9270 } 9271 if (shadowBefore) shadowBefore.style.opacity = Math.max(-progress, 0); 9272 if (shadowAfter) shadowAfter.style.opacity = Math.max(progress, 0); 9273 }; 9274 const recreateShadows = () => { 9275 // Set shadows 9276 swiper.params.flipEffect; 9277 swiper.slides.forEach(slideEl => { 9278 let progress = slideEl.progress; 9279 if (swiper.params.flipEffect.limitRotation) { 9280 progress = Math.max(Math.min(slideEl.progress, 1), -1); 9281 } 9282 createSlideShadows(slideEl, progress); 9283 }); 9284 }; 9285 const setTranslate = () => { 9286 const { 9287 slides, 9288 rtlTranslate: rtl 9289 } = swiper; 9290 const params = swiper.params.flipEffect; 9291 const rotateFix = getRotateFix(swiper); 9292 for (let i = 0; i < slides.length; i += 1) { 9293 const slideEl = slides[i]; 9294 let progress = slideEl.progress; 9295 if (swiper.params.flipEffect.limitRotation) { 9296 progress = Math.max(Math.min(slideEl.progress, 1), -1); 9297 } 9298 const offset = slideEl.swiperSlideOffset; 9299 const rotate = -180 * progress; 9300 let rotateY = rotate; 9301 let rotateX = 0; 9302 let tx = swiper.params.cssMode ? -offset - swiper.translate : -offset; 9303 let ty = 0; 9304 if (!swiper.isHorizontal()) { 9305 ty = tx; 9306 tx = 0; 9307 rotateX = -rotateY; 9308 rotateY = 0; 9309 } else if (rtl) { 9310 rotateY = -rotateY; 9311 } 9312 slideEl.style.zIndex = -Math.abs(Math.round(progress)) + slides.length; 9313 if (params.slideShadows) { 9314 createSlideShadows(slideEl, progress); 9315 } 9316 const transform = `translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateFix(rotateX)}deg) rotateY(${rotateFix(rotateY)}deg)`; 9317 const targetEl = effectTarget(params, slideEl); 9318 targetEl.style.transform = transform; 9319 } 9320 }; 9321 const setTransition = duration => { 9322 const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl)); 9323 transformElements.forEach(el => { 9324 el.style.transitionDuration = `${duration}ms`; 9325 el.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => { 9326 shadowEl.style.transitionDuration = `${duration}ms`; 9327 }); 9328 }); 9329 effectVirtualTransitionEnd({ 9330 swiper, 9331 duration, 9332 transformElements 9333 }); 9334 }; 9335 effectInit({ 9336 effect: 'flip', 9337 swiper, 9338 on, 9339 setTranslate, 9340 setTransition, 9341 recreateShadows, 9342 getEffectParams: () => swiper.params.flipEffect, 9343 perspective: () => true, 9344 overwriteParams: () => ({ 9345 slidesPerView: 1, 9346 slidesPerGroup: 1, 9347 watchSlidesProgress: true, 9348 spaceBetween: 0, 9349 virtualTranslate: !swiper.params.cssMode 9350 }) 9351 }); 9352 } 9353 9354 function EffectCoverflow(_ref) { 9355 let { 9356 swiper, 9357 extendParams, 9358 on 9359 } = _ref; 9360 extendParams({ 9361 coverflowEffect: { 9362 rotate: 50, 9363 stretch: 0, 9364 depth: 100, 9365 scale: 1, 9366 modifier: 1, 9367 slideShadows: true 9368 } 9369 }); 9370 const setTranslate = () => { 9371 const { 9372 width: swiperWidth, 9373 height: swiperHeight, 9374 slides, 9375 slidesSizesGrid 9376 } = swiper; 9377 const params = swiper.params.coverflowEffect; 9378 const isHorizontal = swiper.isHorizontal(); 9379 const transform = swiper.translate; 9380 const center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2; 9381 const rotate = isHorizontal ? params.rotate : -params.rotate; 9382 const translate = params.depth; 9383 const r = getRotateFix(swiper); 9384 // Each slide offset from center 9385 for (let i = 0, length = slides.length; i < length; i += 1) { 9386 const slideEl = slides[i]; 9387 const slideSize = slidesSizesGrid[i]; 9388 const slideOffset = slideEl.swiperSlideOffset; 9389 const centerOffset = (center - slideOffset - slideSize / 2) / slideSize; 9390 const offsetMultiplier = typeof params.modifier === 'function' ? params.modifier(centerOffset) : centerOffset * params.modifier; 9391 let rotateY = isHorizontal ? rotate * offsetMultiplier : 0; 9392 let rotateX = isHorizontal ? 0 : rotate * offsetMultiplier; 9393 // var rotateZ = 0 9394 let translateZ = -translate * Math.abs(offsetMultiplier); 9395 let stretch = params.stretch; 9396 // Allow percentage to make a relative stretch for responsive sliders 9397 if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) { 9398 stretch = parseFloat(params.stretch) / 100 * slideSize; 9399 } 9400 let translateY = isHorizontal ? 0 : stretch * offsetMultiplier; 9401 let translateX = isHorizontal ? stretch * offsetMultiplier : 0; 9402 let scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier); 9403 9404 // Fix for ultra small values 9405 if (Math.abs(translateX) < 0.001) translateX = 0; 9406 if (Math.abs(translateY) < 0.001) translateY = 0; 9407 if (Math.abs(translateZ) < 0.001) translateZ = 0; 9408 if (Math.abs(rotateY) < 0.001) rotateY = 0; 9409 if (Math.abs(rotateX) < 0.001) rotateX = 0; 9410 if (Math.abs(scale) < 0.001) scale = 0; 9411 const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px) rotateX(${r(rotateX)}deg) rotateY(${r(rotateY)}deg) scale(${scale})`; 9412 const targetEl = effectTarget(params, slideEl); 9413 targetEl.style.transform = slideTransform; 9414 slideEl.style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1; 9415 if (params.slideShadows) { 9416 // Set shadows 9417 let shadowBeforeEl = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top'); 9418 let shadowAfterEl = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom'); 9419 if (!shadowBeforeEl) { 9420 shadowBeforeEl = createShadow('coverflow', slideEl, isHorizontal ? 'left' : 'top'); 9421 } 9422 if (!shadowAfterEl) { 9423 shadowAfterEl = createShadow('coverflow', slideEl, isHorizontal ? 'right' : 'bottom'); 9424 } 9425 if (shadowBeforeEl) shadowBeforeEl.style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0; 9426 if (shadowAfterEl) shadowAfterEl.style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0; 9427 } 9428 } 9429 }; 9430 const setTransition = duration => { 9431 const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl)); 9432 transformElements.forEach(el => { 9433 el.style.transitionDuration = `${duration}ms`; 9434 el.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => { 9435 shadowEl.style.transitionDuration = `${duration}ms`; 9436 }); 9437 }); 9438 }; 9439 effectInit({ 9440 effect: 'coverflow', 9441 swiper, 9442 on, 9443 setTranslate, 9444 setTransition, 9445 perspective: () => true, 9446 overwriteParams: () => ({ 9447 watchSlidesProgress: true 9448 }) 9449 }); 9450 } 9451 9452 function EffectCreative(_ref) { 9453 let { 9454 swiper, 9455 extendParams, 9456 on 9457 } = _ref; 9458 extendParams({ 9459 creativeEffect: { 9460 limitProgress: 1, 9461 shadowPerProgress: false, 9462 progressMultiplier: 1, 9463 perspective: true, 9464 prev: { 9465 translate: [0, 0, 0], 9466 rotate: [0, 0, 0], 9467 opacity: 1, 9468 scale: 1 9469 }, 9470 next: { 9471 translate: [0, 0, 0], 9472 rotate: [0, 0, 0], 9473 opacity: 1, 9474 scale: 1 9475 } 9476 } 9477 }); 9478 const getTranslateValue = value => { 9479 if (typeof value === 'string') return value; 9480 return `${value}px`; 9481 }; 9482 const setTranslate = () => { 9483 const { 9484 slides, 9485 wrapperEl, 9486 slidesSizesGrid 9487 } = swiper; 9488 const params = swiper.params.creativeEffect; 9489 const { 9490 progressMultiplier: multiplier 9491 } = params; 9492 const isCenteredSlides = swiper.params.centeredSlides; 9493 const rotateFix = getRotateFix(swiper); 9494 if (isCenteredSlides) { 9495 const margin = slidesSizesGrid[0] / 2 - swiper.params.slidesOffsetBefore || 0; 9496 wrapperEl.style.transform = `translateX(calc(50% - ${margin}px))`; 9497 } 9498 for (let i = 0; i < slides.length; i += 1) { 9499 const slideEl = slides[i]; 9500 const slideProgress = slideEl.progress; 9501 const progress = Math.min(Math.max(slideEl.progress, -params.limitProgress), params.limitProgress); 9502 let originalProgress = progress; 9503 if (!isCenteredSlides) { 9504 originalProgress = Math.min(Math.max(slideEl.originalProgress, -params.limitProgress), params.limitProgress); 9505 } 9506 const offset = slideEl.swiperSlideOffset; 9507 const t = [swiper.params.cssMode ? -offset - swiper.translate : -offset, 0, 0]; 9508 const r = [0, 0, 0]; 9509 let custom = false; 9510 if (!swiper.isHorizontal()) { 9511 t[1] = t[0]; 9512 t[0] = 0; 9513 } 9514 let data = { 9515 translate: [0, 0, 0], 9516 rotate: [0, 0, 0], 9517 scale: 1, 9518 opacity: 1 9519 }; 9520 if (progress < 0) { 9521 data = params.next; 9522 custom = true; 9523 } else if (progress > 0) { 9524 data = params.prev; 9525 custom = true; 9526 } 9527 // set translate 9528 t.forEach((value, index) => { 9529 t[index] = `calc(${value}px + (${getTranslateValue(data.translate[index])} * ${Math.abs(progress * multiplier)}))`; 9530 }); 9531 // set rotates 9532 r.forEach((value, index) => { 9533 let val = data.rotate[index] * Math.abs(progress * multiplier); 9534 r[index] = val; 9535 }); 9536 slideEl.style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length; 9537 const translateString = t.join(', '); 9538 const rotateString = `rotateX(${rotateFix(r[0])}deg) rotateY(${rotateFix(r[1])}deg) rotateZ(${rotateFix(r[2])}deg)`; 9539 const scaleString = originalProgress < 0 ? `scale(${1 + (1 - data.scale) * originalProgress * multiplier})` : `scale(${1 - (1 - data.scale) * originalProgress * multiplier})`; 9540 const opacityString = originalProgress < 0 ? 1 + (1 - data.opacity) * originalProgress * multiplier : 1 - (1 - data.opacity) * originalProgress * multiplier; 9541 const transform = `translate3d(${translateString}) ${rotateString} ${scaleString}`; 9542 9543 // Set shadows 9544 if (custom && data.shadow || !custom) { 9545 let shadowEl = slideEl.querySelector('.swiper-slide-shadow'); 9546 if (!shadowEl && data.shadow) { 9547 shadowEl = createShadow('creative', slideEl); 9548 } 9549 if (shadowEl) { 9550 const shadowOpacity = params.shadowPerProgress ? progress * (1 / params.limitProgress) : progress; 9551 shadowEl.style.opacity = Math.min(Math.max(Math.abs(shadowOpacity), 0), 1); 9552 } 9553 } 9554 const targetEl = effectTarget(params, slideEl); 9555 targetEl.style.transform = transform; 9556 targetEl.style.opacity = opacityString; 9557 if (data.origin) { 9558 targetEl.style.transformOrigin = data.origin; 9559 } 9560 } 9561 }; 9562 const setTransition = duration => { 9563 const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl)); 9564 transformElements.forEach(el => { 9565 el.style.transitionDuration = `${duration}ms`; 9566 el.querySelectorAll('.swiper-slide-shadow').forEach(shadowEl => { 9567 shadowEl.style.transitionDuration = `${duration}ms`; 9568 }); 9569 }); 9570 effectVirtualTransitionEnd({ 9571 swiper, 9572 duration, 9573 transformElements, 9574 allSlides: true 9575 }); 9576 }; 9577 effectInit({ 9578 effect: 'creative', 9579 swiper, 9580 on, 9581 setTranslate, 9582 setTransition, 9583 perspective: () => swiper.params.creativeEffect.perspective, 9584 overwriteParams: () => ({ 9585 watchSlidesProgress: true, 9586 virtualTranslate: !swiper.params.cssMode 9587 }) 9588 }); 9589 } 9590 9591 function EffectCards(_ref) { 9592 let { 9593 swiper, 9594 extendParams, 9595 on 9596 } = _ref; 9597 extendParams({ 9598 cardsEffect: { 9599 slideShadows: true, 9600 rotate: true, 9601 perSlideRotate: 2, 9602 perSlideOffset: 8 9603 } 9604 }); 9605 const setTranslate = () => { 9606 const { 9607 slides, 9608 activeIndex, 9609 rtlTranslate: rtl 9610 } = swiper; 9611 const params = swiper.params.cardsEffect; 9612 const { 9613 startTranslate, 9614 isTouched 9615 } = swiper.touchEventsData; 9616 const currentTranslate = rtl ? -swiper.translate : swiper.translate; 9617 for (let i = 0; i < slides.length; i += 1) { 9618 const slideEl = slides[i]; 9619 const slideProgress = slideEl.progress; 9620 const progress = Math.min(Math.max(slideProgress, -4), 4); 9621 let offset = slideEl.swiperSlideOffset; 9622 if (swiper.params.centeredSlides && !swiper.params.cssMode) { 9623 swiper.wrapperEl.style.transform = `translateX(${swiper.minTranslate()}px)`; 9624 } 9625 if (swiper.params.centeredSlides && swiper.params.cssMode) { 9626 offset -= slides[0].swiperSlideOffset; 9627 } 9628 let tX = swiper.params.cssMode ? -offset - swiper.translate : -offset; 9629 let tY = 0; 9630 const tZ = -100 * Math.abs(progress); 9631 let scale = 1; 9632 let rotate = -params.perSlideRotate * progress; 9633 let tXAdd = params.perSlideOffset - Math.abs(progress) * 0.75; 9634 const slideIndex = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.from + i : i; 9635 const isSwipeToNext = (slideIndex === activeIndex || slideIndex === activeIndex - 1) && progress > 0 && progress < 1 && (isTouched || swiper.params.cssMode) && currentTranslate < startTranslate; 9636 const isSwipeToPrev = (slideIndex === activeIndex || slideIndex === activeIndex + 1) && progress < 0 && progress > -1 && (isTouched || swiper.params.cssMode) && currentTranslate > startTranslate; 9637 if (isSwipeToNext || isSwipeToPrev) { 9638 const subProgress = (1 - Math.abs((Math.abs(progress) - 0.5) / 0.5)) ** 0.5; 9639 rotate += -28 * progress * subProgress; 9640 scale += -0.5 * subProgress; 9641 tXAdd += 96 * subProgress; 9642 tY = `${-25 * subProgress * Math.abs(progress)}%`; 9643 } 9644 if (progress < 0) { 9645 // next 9646 tX = `calc(${tX}px ${rtl ? '-' : '+'} (${tXAdd * Math.abs(progress)}%))`; 9647 } else if (progress > 0) { 9648 // prev 9649 tX = `calc(${tX}px ${rtl ? '-' : '+'} (-${tXAdd * Math.abs(progress)}%))`; 9650 } else { 9651 tX = `${tX}px`; 9652 } 9653 if (!swiper.isHorizontal()) { 9654 const prevY = tY; 9655 tY = tX; 9656 tX = prevY; 9657 } 9658 const scaleString = progress < 0 ? `${1 + (1 - scale) * progress}` : `${1 - (1 - scale) * progress}`; 9659 9660 /* eslint-disable */ 9661 const transform = ` 9662 translate3d(${tX}, ${tY}, ${tZ}px) 9663 rotateZ(${params.rotate ? rtl ? -rotate : rotate : 0}deg) 9664 scale(${scaleString}) 9665 `; 9666 /* eslint-enable */ 9667 9668 if (params.slideShadows) { 9669 // Set shadows 9670 let shadowEl = slideEl.querySelector('.swiper-slide-shadow'); 9671 if (!shadowEl) { 9672 shadowEl = createShadow('cards', slideEl); 9673 } 9674 if (shadowEl) shadowEl.style.opacity = Math.min(Math.max((Math.abs(progress) - 0.5) / 0.5, 0), 1); 9675 }
9676 slideEl.style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length; 9677 const targetEl = effectTarget(params, slideEl); 9678 targetEl.style.transform = transform; 9679 } 9680 }; 9681 const setTransition = duration => { 9682 const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl)); 9683 transformElements.forEach(el => { 9684 el.style.transitionDuration = `${duration}ms`; 9685 el.querySelectorAll('.swiper-slide-shadow').forEach(shadowEl => { 9686 shadowEl.style.transitionDuration = `${duration}ms`; 9687 }); 9688 }); 9689 effectVirtualTransitionEnd({ 9690 swiper, 9691 duration, 9692 transformElements 9693 }); 9694 }; 9695 effectInit({ 9696 effect: 'cards', 9697 swiper, 9698 on, 9699 setTranslate, 9700 setTransition, 9701 perspective: () => true, 9702 overwriteParams: () => ({ 9703 watchSlidesProgress: true, 9704 virtualTranslate: !swiper.params.cssMode 9705 }) 9706 }); 9707 } 9708 9709 /** 9710 * Swiper 11.1.12 9711 * Most modern mobile touch slider and framework with hardware accelerated transitions 9712 * https://swiperjs.com 9713 * 9714 * Copyright 2014-2024 Vladimir Kharlampidi 9715 * 9716 * Released under the MIT License 9717 * 9718 * Released on: September 1, 2024 9719 */ 9720 9721 9722 // Swiper Class 9723 const modules = [Virtual, Keyboard, Mousewheel, Navigation, Pagination, Scrollbar, Parallax, Zoom, Controller, A11y, History, HashNavigation, Autoplay, Thumb, freeMode, Grid, Manipulation, EffectFade, EffectCube, EffectFlip, EffectCoverflow, EffectCreative, EffectCards]; 9724 Swiper.use(modules); 9725 9726 return Swiper; 9727 9728})(); 9729 9730!function(t,s){"object"==typeof exports&&"undefined"!=typeof module?module.exports=s():"function"==typeof define&&define.amd?define(s):(t||self).Typed=s()}(this,function(){function t(){return t=Object.assign?Object.assign.bind():function(t){for(var s=1;s<arguments.length;s++){var e=arguments[s];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])}return t},t.apply(this,arguments)}var s={strings:["These are the default values...","You know what you should do?","Use your own!","Have a great day!"],stringsElement:null,typeSpeed:0,startDelay:0,backSpeed:0,smartBackspace:!0,shuffle:!1,backDelay:700,fadeOut:!1,fadeOutClass:"typed-fade-out",fadeOutDelay:500,loop:!1,loopCount:Infinity,showCursor:!0,cursorChar:"|",autoInsertCss:!0,attr:null,bindInputFocusEvents:!1,contentType:"html",onBegin:function(t){},onComplete:function(t){},preStringTyped:function(t,s){},onStringTyped:function(t,s){},onLastStringBackspaced:function(t){},onTypingPaused:function(t,s){},onTypingResumed:function(t,s){},onReset:function(t){},onStop:function(t,s){},onStart:function(t,s){},onDestroy:function(t){}},e=new(/*#__PURE__*/function(){function e(){}var n=e.prototype;return n.load=function(e,n,i){if(e.el="string"==typeof i?document.querySelector(i):i,e.options=t({},s,n),e.isInput="input"===e.el.tagName.toLowerCase(),e.attr=e.options.attr,e.bindInputFocusEvents=e.options.bindInputFocusEvents,e.showCursor=!e.isInput&&e.options.showCursor,e.cursorChar=e.options.cursorChar,e.cursorBlinking=!0,e.elContent=e.attr?e.el.getAttribute(e.attr):e.el.textContent,e.contentType=e.options.contentType,e.typeSpeed=e.options.typeSpeed,e.startDelay=e.options.startDelay,e.backSpeed=e.options.backSpeed,e.smartBackspace=e.options.smartBackspace,e.backDelay=e.options.backDelay,e.fadeOut=e.options.fadeOut,e.fadeOutClass=e.options.fadeOutClass,e.fadeOutDelay=e.options.fadeOutDelay,e.isPaused=!1,e.strings=e.options.strings.map(function(t){return t.trim()}),e.stringsElement="string"==typeof e.options.stringsElement?document.querySelector(e.options.stringsElement):e.options.stringsElement,e.stringsElement){e.strings=[],e.stringsElement.style.cssText="clip: rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px;";var r=Array.prototype.slice.apply(e.stringsElement.children),o=r.length;if(o)for(var a=0;a<o;a+=1)e.strings.push(r[a].innerHTML.trim())}for(var u in e.strPos=0,e.currentElContent=this.getCurrentElContent(e),e.currentElContent&&e.currentElContent.length>0&&(e.strPos=e.currentElContent.length-1,e.strings.unshift(e.currentElContent)),e.sequence=[],e.strings)e.sequence[u]=u;e.arrayPos=0,e.stopNum=0,e.loop=e.options.loop,e.loopCount=e.options.loopCount,e.curLoop=0,e.shuffle=e.options.shuffle,e.pause={status:!1,t
vendor: 5,359 bytes, lines 9730-9731
9730ypewrite:!0,curString:"",curStrPos:0},e.typingComplete=!1,e.autoInsertCss=e.options.autoInsertCss,e.autoInsertCss&&(this.appendCursorAnimationCss(e),this.appendFadeOutAnimationCss(e))},n.getCurrentElContent=function(t){return t.attr?t.el.getAttribute(t.attr):t.isInput?t.el.value:"html"===t.contentType?t.el.innerHTML:t.el.textContent},n.appendCursorAnimationCss=function(t){var s="data-typed-js-cursor-css";if(t.showCursor&&!document.querySelector("["+s+"]")){var e=document.createElement("style");e.setAttribute(s,"true"),e.innerHTML="\n .typed-cursor{\n opacity: 1;\n }\n .typed-cursor.typed-cursor--blink{\n animation: typedjsBlink 0.7s infinite;\n -webkit-animation: typedjsBlink 0.7s infinite;\n animation: typedjsBlink 0.7s infinite;\n }\n @keyframes typedjsBlink{\n 50% { opacity: 0.0; }\n }\n @-webkit-keyframes typedjsBlink{\n 0% { opacity: 1; }\n 50% { opacity: 0.0; }\n 100% { opacity: 1; }\n }\n ",document.body.appendChild(e)}},n.appendFadeOutAnimationCss=function(t){var s="data-typed-fadeout-js-css";if(t.fadeOut&&!document.querySelector("["+s+"]")){var e=document.createElement("style");e.setAttribute(s,"true"),e.innerHTML="\n .typed-fade-out{\n opacity: 0;\n transition: opacity .25s;\n }\n .typed-cursor.typed-cursor--blink.typed-fade-out{\n -webkit-animation: 0;\n animation: 0;\n }\n ",document.body.appendChild(e)}},e}()),n=new(/*#__PURE__*/function(){function t(){}var s=t.prototype;return s.typeHtmlChars=function(t,s,e){if("html"!==e.contentType)return s;var n=t.substring(s).charAt(0);if("<"===n||"&"===n){var i;for(i="<"===n?">":";";t.substring(s+1).charAt(0)!==i&&!(1+ ++s>t.length););s++}return s},s.backSpaceHtmlChars=function(t,s,e){if("html"!==e.contentType)return s;var n=t.substring(s).charAt(0);if(">"===n||";"===n){var i;for(i=">"===n?"<":"&";t.substring(s-1).charAt(0)!==i&&!(--s<0););s--}return s},t}());/*#__PURE__*/ 9731return function(){function t(t,s){e.load(this,s,t),this.begin()}var s=t.prototype;return s.toggle=function(){this.pause.status?this.start():this.stop()},s.stop=function(){this.typingComplete||this.pause.status||(this.toggleBlinking(!0),this.pause.status=!0,this.options.onStop(this.arrayPos,this))},s.start=function(){this.typingComplete||this.pause.status&&(this.pause.status=!1,this.pause.typewrite?this.typewrite(this.pause.curString,this.pause.curStrPos):this.backspace(this.pause.curString,this.pause.curStrPos),this.options.onStart(this.arrayPos,this))},s.destroy=function(){this.reset(!1),this.options.onDestroy(this)},s.reset=function(t){void 0===t&&(t=!0),clearInterval(this.timeout),this.replaceText(""),this.cursor&&this.cursor.parentNode&&(this.cursor.parentNode.removeChild(this.cursor),this.cursor=null),this.strPos=0,this.arrayPos=0,this.curLoop=0,t&&(this.insertCursor(),this.options.onReset(this),this.begin())},s.begin=function(){var t=this;this.options.onBegin(this),this.typingComplete=!1,this.shuffleStringsIfNeeded(this),this.insertCursor(),this.bindInputFocusEvents&&this.bindFocusEvents(),this.timeout=setTimeout(function(){0===t.strPos?t.typewrite(t.strings[t.sequence[t.arrayPos]],t.strPos):t.backspace(t.strings[t.sequence[t.arrayPos]],t.strPos)},this.startDelay)},s.typewrite=function(t,s){var e=this;this.fadeOut&&this.el.classList.contains(this.fadeOutClass)&&(this.el.classList.remove(this.fadeOutClass),this.cursor&&this.cursor.classList.remove(this.fadeOutClass));var i=this.humanizer(this.typeSpeed),r=1;!0!==this.pause.status?this.timeout=setTimeout(function(){s=n.typeHtmlChars(t,s,e);var i=0,o=t.substring(s);if("^"===o.charAt(0)&&/^\^\d+/.test(o)){var a=1;a+=(o=/\d+/.exec(o)[0]).length,i=parseInt(o),e.temporaryPause=!0,e.options.onTypingPaused(e.arrayPos,e),t=t.substring(0,s)+t.substring(s+a),e.toggleBlinking(!0)}if("`"===o.charAt(0)){for(;"`"!==t.substring(s+r).charAt(0)&&(r++,!(s+r>t.length)););var u=t.substring(0,s),p=t.substring(u.length+1,s+r),c=t.substring(s+r+1);t=u+p+c,r--}e.timeout=setTimeout(function(){e.toggleBlinking(!1),s>=t.length?e.doneTyping(t,s):e.keepTyping(t,s,r),e.temporaryPause&&(e.temporaryPause=!1,e.options.onTypingResumed(e.arrayPos,e))},i)},i):this.setPauseStatus(t,s,!0)},s.keepTyping=function(t,s,e){0===s&&(this.toggleBlinking(!1),this.options.preStringTyped(this.arrayPos,this));var n=t.substring(0,s+=e);this.replaceText(n),this.typewrite(t,s)},s.doneTyping=function(t,s){var e=this;this.options.onStringTyped(this.arrayPos,this),this.toggleBlinking(!0),this.arrayPos===this.strings.length-1&&(this.complete(),!1===this.loop||this.curLoop===this.loopCount)||(this.timeout=setTimeout(function(){e.backspace(t,s)},this.backDelay))},s.backspace=function(t,s){var e=this;if(!0!==this.pause.status){if(this.fadeOut)return this.initFadeOut();this.toggleBlinking(!1);var i=this.humanizer(this.backSpeed);this.timeout=setTimeout(function(){s=n.backSpaceHtmlChars(t,s,e);var i=t.substring(0,s);if(e.replaceText(i),e.smartBackspace){var r=e.strings[e.arrayPos+1];e.stopNum=r&&i===r.substring(0,s)?s:0}s>e.stopNum?(s--,e.backspace(t,s)):s<=e.stopNum&&(e.arrayPos++,e.arrayPos===e.strings.length?(e.arrayPos=0,e.options.onLastStringBackspaced(),e.shuffleStringsIfNeeded(),e.begin()):e.typewrite(e.strings[e.sequence[e.arrayPos
9731]],s))},i)}else this.setPauseStatus(t,s,!1)},s.complete=function(){this.options.onComplete(this),this.loop?this.curLoop++:this.typingComplete=!0},s.setPauseStatus=function(t,s,e){this.pause.typewrite=e,this.pause.curString=t,this.pause.curStrPos=s},s.toggleBlinking=function(t){this.cursor&&(this.pause.status||this.cursorBlinking!==t&&(this.cursorBlinking=t,t?this.cursor.classList.add("typed-cursor--blink"):this.cursor.classList.remove("typed-cursor--blink")))},s.humanizer=function(t){return Math.round(Math.random()*t/2)+t},s.shuffleStringsIfNeeded=function(){this.shuffle&&(this.sequence=this.sequence.sort(function(){return Math.random()-.5}))},s.initFadeOut=function(){var t=this;return this.el.className+=" "+this.fadeOutClass,this.cursor&&(this.cursor.className+=" "+this.fadeOutClass),setTimeout(function(){t.arrayPos++,t.replaceText(""),t.strings.length>t.arrayPos?t.typewrite(t.strings[t.sequence[t.arrayPos]],0):(t.typewrite(t.strings[0],0),t.arrayPos=0)},this.fadeOutDelay)},s.replaceText=function(t){this.attr?this.el.setAttribute(this.attr,t):this.isInput?this.el.value=t:"html"===this.contentType?this.el.innerHTML=t:this.el.textContent=t},s.bindFocusEvents=function(){var t=this;this.isInput&&(this.el.addEventListener("focus",function(s){t.stop()}),this.el.addEventListener("blur",function(s){t.el.value&&0!==t.el.value.length||t.start()}))},s.insertCursor=function(){this.showCursor&&(this.cursor||(this.cursor=document.createElement("span"),this.cursor.className="typed-cursor",this.cursor.setAttribute("aria-hidden",!0),this.cursor.innerHTML=this.cursorChar,this.el.parentNode&&this.el.parentNode.insertBefore(this.cursor,this.el.nextSibling)))},t}()}); 9732 9733 9734ScrollTrigger.batch(document.querySelectorAll('.stagger'), { 9735 onToggle: batch => { 9736 gsap.to(batch, {duration: 0.7, opacity: 1, y: 0, stagger: 0.2, overwrite: true}); 9737 } 9738}); 9739 9740ScrollTrigger.batch(document.querySelectorAll('.fade'), { 9741 start: "top 80%", 9742 end: "bottom 20%", 9743 onToggle: (batch, self) => { 9744 gsap.to(batch, {duration: 0.5, opacity: 1, stagger: 0.2, overwrite: true}) 9745 } 9746}); 9747 9748let headerBottom = gsap.timeline({ paused: true }) 9749 9750headerBottom.to($('.header-main').find('.header-bottom'), { 9751 height: 0, 9752 alpha: 0, 9753 autoAlpha: 0, 9754 duration: .3, 9755 ease: 'power2.in', 9756}); 9757 9758headerBottom.reverse() 9759 9760//For Header 9761ScrollTrigger.create({ 9762 trigger: ".header-main", 9763 start: 'top top', 9764 end: "100% 0%", 9765 endTrigger: "html", 9766 toggleClass: "active", 9767 onToggle: (self) => { 9768 self.direction == 1 ? headerBottom.reversed(!headerBottom.reversed()) : headerBottom.reversed(!headerBottom.reversed()) 9769 } 9770}); 9771 9772 9773//For Search Card 9774ScrollTrigger.create({ 9775 trigger: ".hero-search-card", 9776 start: 'top top', 9777 end: 99999, 9778 endTrigger: "html", 9779 onToggle: (self) => { 9780 self.direction == 1 ? $('body').addClass('search-active') : $('body').removeClass('search-active') 9781 }, 9782 onUpdate: () => { 9783 $('body').removeClass('hs-active') 9784 } 9785}); 9786 9787 9788$(document).on("click", "[data-scrollto]", function(e) { 9789 e.preventDefault(); 9790 let scrollToElm = $(this).data("scrollto"); 9791 let scrollPos = 9792 $('[data-scroll-id="' + scrollToElm + '"]').offset().top - 9793 $(".header-main").outerHeight(); 9794 $("html,body").stop().animate({ 9795 scrollTop: scrollPos 9796 }, 700); 9797 $(".menu-active .h-active").trigger("click"); 9798}); 9799 9800 9801//For language 9802$(document).on("click", ".lang-dropdown li>a", function () { 9803 let lang = $(this).data("lang"); 9804 let languageSelect = document.querySelector("select.goog-te-combo"); 9805 9806 languageSelect.value = lang; 9807 languageSelect.dispatchEvent(new Event("change")); 9808 9809 $("#lang-select").text(lang); 9810 $("#switchType").attr("flag-name", lang); 9811}); 9812 9813 9814// for typing slider 9815$('.search-group .st-wrap .st-slide-text').each(function(){ 9816 let typed = new Typed($(this).get(0), { 9817 strings: ["Destinations", "Tour", "Package", "Transfer", "Thailand", "India", "Singapore", "Malaysia", "UAE", "Indonesia"], 9818 loop:true, 9819 typeSpeed: 60, 9820 backSpeed: 60 9821 }); 9822}); 9823 9824//For search on focus 9825$(document).on('focus', '.search-group>input', function(){ 9826 $(this).parent().find('.st-wrap').stop().fadeOut(400); 9827}); 9828 9829//For document click 9830$(document).on('click', function(e){
9831 if(!$(e.target).closest('.search-group').length){ 9832 $('.search-group .st-wrap').stop().fadeIn(400); 9833 } 9834}); 9835 9836$(document).on('click', '.tab-nav-wrapper li>a', function(e) { 9837 e.preventDefault(); 9838 let dataId = $(this).attr('data-id'); 9839 $('.tab-nav-wrapper li>a').removeClass('active') 9840 $(this).addClass('active') 9841 $('.tab-wrapper .tab-item[tab-id="' + dataId + '"]').fadeIn().siblings().hide() 9842}); 9843 9844// Mega Menu 9845function megaMenu() { 9846 $(".megamenu").each(function() { 9847 $(this).css({ "width": $('.bottom-nav')[0].offsetWidth }); 9848 }); 9849} 9850 9851megaMenu(); 9852 9853$(window).on("resize", function() { 9854 megaMenu(); 9855}); 9856 9857$(document).on('mouseenter', '.megamenu .mg-list li>a', function() { 9858 let navId = $(this).attr('menu-id'); 9859 $(this).parent().addClass('active').siblings().removeClass('active'); 9860 $('.mg-wrap .mg-item[menu-item="' + navId + '"]').fadeIn().siblings().hide(); 9861}); 9862 9863 9864$(document).on("click", "#userMenuToggle", function(event) { 9865 $("body").addClass("um-active"); 9866}); 9867 9868$(document).on("click", "#menuToggle", function(event) { 9869 $("body").toggleClass("menu-active"); 9870}); 9871 9872 9873$(document).on('click', '.nav >li >a', function(e) { 9874 $(this).parent().toggleClass('active').siblings().removeClass('active').find(".submenu, .megamenu").removeClass('menu-open'); 9875 $(this).parent().find(".submenu, .megamenu").toggleClass('menu-open'); 9876}); 9877 9878$(document).on('click', '.close-icon', function() { 9879 $(this).parents('.submenu, .megamenu').removeClass('menu-open') 9880}); 9881 9882$(document).on("click", "#userMenuClose", function(event) { 9883 $("body").removeClass("um-active"); 9884}); 9885 9886$(document).on("click", "#searchToggle", function(event) { 9887 $("body").toggleClass("hs-active"); 9888}); 9889 9890
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.