1 2(function(d){typeof define=="function"&&define.amd?define(d):d()})(function(){"use strict";const d=`<div class="cc-body" id="cookieconsent:body"> 3 <span class="cc-message" id="cookieconsent:desc"> 4 {{description}} 5 {{selection}} 6 </span> 7 <div class="cc-compliance cc-highlight"> 8 {{allow-all}} 9 {{allow}} 10 {{deny}} 11 </div> 12 <div class="powered-by">Powered by <a href="https://dp-wired.de/?ref=consent-note" rel="noopener" target="_blank">DP Wired</a></div> 13</div>`,f=`<div class="cc-body" id="cookieconsent:body"> 14 <span class="cc-message" id="cookieconsent:desc"> 15 {{description}} 16 </span> 17 <div class="cc-compliance cc-highlight"> 18 {{allow-all}} 19 {{config}} 20 {{deny}} 21 </div> 22 <div class="powered-by">Powered by <a href="https://dp-wired.de/?ref=consent-note" rel="noopener" target="_blank">DP Wired</a></div> 23</div>`,h=`<div class="dp--cookie-check"> 24 <label for="dp--cookie-require"> 25 <input type="checkbox" id="dp--cookie-require" class="dp--check-box" checked="checked" disabled="disabled" /> 26 {{dpRequire}} 27 </label> 28 <label for="dp--cookie-statistics"> 29 <input type="checkbox" id="dp--cookie-statistics" class="dp--check-box" {{checked.statistics}} value="" /> 30 {{dpStatistik}} 31 </label> 32 <label for="dp--cookie-marketing"> 33 <input type="checkbox" id="dp--cookie-marketing" class="dp--check-box" {{checked.marketing}} value="" /> 34 {{dpMarketing}} 35 </label> 36</div> 37`,v=`{{message}} 38 39<a class="cc-link" 40 role=button 41 href="{{href}}" 42 rel="noopener noreferrer nofollow" 43 target="{{target}}" 44> 45 {{link}} 46</a> 47`,k=`<button class="cc-btn cc-allow-all cc-w-100"> 48 {{allow-all}} 49</button> 50`,b=`<button class="cc-btn cc-allow"> 51 {{allow}} 52</button> 53`,y=`<button class="cc-btn cc-dismiss"> 54 {{dismiss}} 55</button> 56`,g=`<button class="cc-btn cc-deny"> 57 {{deny}} 58</button> 59`,w=`<button class="cc-btn cc-config" > 60 {{config}} 61</button> 62`,m=`<div class="dp--revoke {{classes}}"> 63 <i class="dp--icon-fingerprint"></i> 64 <span class="dp--hover">{{policy}}</span> 65</div> 66`,C=`<div class="dp--overlay-inner"> 67 <div class="dp--overlay-header">{{notice}}</div> 68 <div class="dp--overlay-description">{{desc}}</div> 69 <div class="dp--overlay-button"> 70 <button class="db--overlay-submit" onclick="window.DPCookieConsent.forceAccept(this)" data-cookieconsent="{{type}}"> 71 {{btn}} 72 </button> 73 </div> 74</div> 75`,x='<div aria-describedby="cookieconsent:desc" aria-label="cookieconsent-dialog" aria-live="polite" class="cc-window {{classes}}" id="cookieconsent:window" role="dialog"></div>',E=`<div aria-describedby="cookieconsent:config" aria-label="cookieconsent-dialog" aria-live="polite" class="cc-window-config cc-type-extend" id="cookieconsent:config" role="dialog"> 76 <div class="cc-config" > 77 <div class="cc-config-header"> 78 <span>{{config-header}}</span> 79 <button class="cc-btn-close"> 80 <i class="dp--icon-x"></i> 81 </button> 82 </div> 83 <div class="cc-config-body"> 84 <div class="cc-message">{{message}}</div> 85 <div> 86 {{cookie-group}} 87 </div> 88 </div> 89 <div class="cc-config-footer"> 90 {{deny}} 91 {{allow}} 92 {{allow-all}} 93 </div> 94 <div class="powered-by">Powered by <a href="https://dp-wired.de/?ref=consent-note" rel="noopener" target="_blank">DP Wired</a></div> 95 </div> 96</div> 97`,B=`<div class="cc-config-group"> 98 <div class="cc-config-group-name"> 99 <button class="cc-btn cc-btn-collapse"> 100 <i class="dp--icon-chevron"></i> 101 {{group}} 102 </button> 103 104 <div class="cc-form-switch"> 105 <input class="dp--check-box" id="dp--cookie-{{group-lower}}" type="checkbox" value=""> 106 <label class="cc-check-label" for="dp--cookie-{{group-lower}}"> 107 <span class="cc-sr-only">{{group}}</span> 108 </label> 109 </div> 110 </div> 111 112 <div class="cc-config-cookies"> 113 {{config-cookie}} 114 </div> 115</div>`,A=`<ul class="cc-config-group-cookie"> 116 <li> 117 <div class="cc-label">{{cookie}}</div> 118 <div> 119 {{cookie_name}} 120 <div class="cc-cookie-description cc-pt-2">
120{{cookie_description}}</div> 121 </div> 122 </li> 123 <li class="cc-pt-2"> 124 <div class="cc-label">{{duration}}</div> 125 <div>{{cookie_duration}} {{cookie_duration_time}}</div> 126 </li> 127 <li class="cc-pt-2"> 128 <div class="cc-label">{{vendor}}</div> 129 <div><a href="{{cookie_vendor_link}}" target="_blank">{{cookie_vendor}}</a></div> 130 </li> 131</ul> 132`;/*! 133 * Cookie Consent 134 * Copyright 2021 Dirk Persky (https://github.com/DirkPersky/npm-dp_cookieconsent/issues) 135 * Licensed under AGPL v3+ (https://github.com/DirkPersky/npm-dp_cookieconsent/blob/master/LICENSE) 136 */(function(i,H){if(!i.hasInitialised){(function(){if(typeof window.CustomEvent=="function")return!1;function s(o,e){e=e||{bubbles:!1,cancelable:!1,detail:void 0};var t=document.createEvent("CustomEvent");return t.initCustomEvent(o,e.bubbles,e.cancelable,e.detail),t}s.prototype=window.Event.prototype,window.CustomEvent=s})(),function(){if(typeof window.Event=="function")return!1;function s(o,e){e=e||{bubbles:!0,cancelable:!0,detail:void 0};var t=document.createEvent("Event");return t.initEvent(o,e.bubbles,e.cancelable,e.detail),t}s.prototype=window.Event.prototype,window.Event=s}();var r={detectRobot:function(s){return new RegExp([/Chrome-Lighthouse/,/bot/,/spider/,/crawl/,/APIs-Google/,/AdsBot/,/Googlebot/,/mediapartners/,/Google Favicon/,/FeedFetcher/,/Google-Read-Aloud/,/DuplexWeb-Google/,/googleweblight/,/bing/,/yandex/,/baidu/,/duckduck/,/yahoo/,/ecosia/,/ia_archiver/,/semrush/].map(e=>e.source).join("|"),"i").test(s)},reformatCheckboxOptions:function(s){var o=Object.entries(s).map(e=>{var t=String(e[1]).toLowerCase()=="true";return{name:e[0],checked:t}});return o},getCookie:function(s){var o="; "+document.cookie,e=o.split("; "+s+"=");return e.length<2?void 0:JSON.parse(e.pop().split(";").shift())},setCookie:function(s,o,e,t,n,c){var a=new Date;a.setHours(a.getHours()+(e||365)*24);var l=[s+"="+JSON.stringify(o),"expires="+a.toUTCString(),"path="+(n||"/"),"SameSite=Strict"];t&&l.push("domain="+t),c&&l.push("secure"),document.cookie=l.join(";")},prepareCookie:function(s,o){var e={status:"open"},t=this.getCookie(o);return typeof t!="undefined"&&this.deepExtend(e,t),this.deepExtend(e,s),{exists:typeof t!="undefined",config:e}},getElementsByTag:function(s,o){return typeof o=="undefined"&&(o="data-cookieconsent"),document.querySelectorAll(s+"["+o+"]")},deepExtend:function(s,o){for(var e in o)o.hasOwnProperty(e)&&(e in s&&typeof s[e]=="object"&&typeof o[e]=="object"?this.deepExtend(s[e],o[e]):s[e]=o[e]);return s},appendElement:function(s,o){var e=document.createElement("div"),t=o!=null?o:document.body;e.innerHTML=this.replaceContent(s);var n=e.children[0];return t.appendChild(n),n},applyStyle:function(s){if(typeof this.options[s]!="undefined")for(const[o,e]of Object.entries(this.options[s]))for(const[t,n]of Object.entries(e))document.documentElement.style.setProperty(`--dp-cookie-${s}-${o}-${t}`,n)},fireEvent:function(s,o){var e;o?e=new CustomEvent(s,{detail:{$el:o}}):e=new Event(s),document.dispatchEvent(e)}};i.utils=r;var L=function(){var s={cookie:{name:"dp_cookieconsent_status",path:"/",domain:"",expiryDays:365,secure:!1},position:"bottom-right",content:{},theme:"edgeless",type:"opt-in",revokable:!0,reloadOnRevoke:!0,checkboxes:[{name:"statistics",checked:!1},{name:"marketing",checked:!1}],palette:{popup:{background:"rgba(0,0,0,0.8)",text:"#ffffff"},button:{background:"#f96332",text:"#ffffff"}},overlay:{notice:!0,box:{background:"rgba(0,0,0,0.8)",text:"#ffffff"},btn:{background:"#f96332",text:"#ffffff"}},onPopupOpen:function(){},onPopupClose:function(){},onInitialise:function(){},onStatusChange:function(e,t){},onRevokeChoice:function(){},compilance:{"opt-in":d,extend:f},revokeBtn:m,overlayLayout:C,wrap:{consent:x,config:E},elements:{"allow-all":k,allow:b,dismiss:y,deny:g,config:w,selection:h,description:v}};function o(){}return o.prototype.replaceContent=function(e){var t=this.options,n=["cc-"+t.position,"cc-type-"+t.type,"cc-theme-"+t.theme,"cc-hide"];e=e.replaceAll("{{classes}}",n.join(" "));for(const[c,a]of Object.entries(t.elements))e=e.replaceAll("{{"+c+"}}",a||"");for(const[c,a]of Object.entries(t.content))e=e.replaceAll("{{"+c+"}}",a||"");return e},o.prototype.templateOverwrites=function(){let e=i.utils.getElementsByTag("script","data-dp-cookieRevoke");e.length>0&&(this.options.revokeBtn=e[0].innerHTML);let t=i.utils.getElementsByTag("script","data-dp-cookieDesc");t.length>0&&(this.options.elements.description=t[0].innerHTML);let n=i.utils.getElementsByTag("script","data-dp-cookieSelect");n.length>0&&(this.options.elements.selection=n[0].innerHTML)},o.prototype.initialise=function(e){r.deepExtend(this.options={},s),typeof e.checkboxes=="object"&&(e.checkboxes=r.reformatCheckboxOptions(e.checkboxes)),typeof e=="object"&&r.deepExtend(this.options,e);var t=this.options.onInitialise.bind(this);this.templateOverwrites(),this.options.revokable&&(this.revokeBtn=i.utils.appendElement.call(this,this.options.revokeBtn)),this.window=i.utils.appendElement.call(this,this.options.wrap.consent),this.options.type=="extend"&&i.configWindow.initialise(this.options.wrap.config),i.utils.applyStyle.call(this,"palette"),i.utils.applyStyle.call(this,"overlay"),this.addCompilance(this.window),t(this),this.bindBtns(),this.presetCheckboxes()},o.prototype.presetCheckboxes=function(){var e=i.utils.getCookie(this.options.cookie.name);typeof e!="undefined"&&r.deepExtend(this.options.checkboxes,e.checkboxes);var t=this.getCheckboxInputs(!0);t.length>0&&t.forEach(n=>{var c=n.id;c=c.replace("dp--cookie-",""),this.options.checkboxes.map((a,l)=>{a.name==c&&(n.checked=a.checked)}),c=="required"&&(n.checked=!0,n.disabled=!0)})},o.prototype.addCompilance=function(e){var t=this.options.compilance["opt-in"];typeof this.options.compilance[this.options.type]!="undefined"&&(t=this.options.compilance[this.options.type]),this.compilance=i.utils.appendElement.call(this,t,e),this.allowAllBtn=this.compilance.getElementsByClassName("cc-allow-all"),this.allowBtn=this.compilance.getElementsByClassName("cc-allow"),this.denyBtn=this.compilance.getElementsByClassName("cc-deny"),this.dismissBtn=this.compilance.getElementsByClassName("cc-dismiss"),this.configBtn=this.compilance.querySelector("button.cc-config")},o.prototype.bindBtns=function(){this.allowAllBtn.length>0&&(this.allowAllBtn[0].onclick=()=>this.allowAll.call(this)),this.allowBtn.length>0&&(this.allowBtn[0].onclick=()=>this.allow.call(this)),this.dismissBtn.length>0&&(this.dismissBtn[0].onclick=()=>this.allow.call(this)),this.denyBtn.length>0&&(this.denyBtn[0].onclick=()=>this.denyAll.call(this)),this.revokeBtn&&(this.revokeBtn.onclick=()=>this.revoke.call(this)),this.configBtn&&(this.configBtn.onclick=()=>i.configWindow.showConfig())},o.prototype.allowAll=function(){this.saveCheckboxes(!0),i.utils.fireEvent("dp--cookie-accept"),this.save()},o.prototype.denyAll=function(){this.saveCheckboxes(!1),i.utils.fireEvent("dp--cookie-deny"),this.save()},o.prototype.allow=function(){i.utils.fireEvent("dp--cookie-accept"),this.save()},o.prototype.getCheckboxInputs=function(e){var t=document.querySelectorAll('input[id^="dp--cookie-"]');if(e)return t;var n=[];return t.forEach(c=>{var a=c.id;switch(a=a.replace("dp--cookie-",""),a){case"required":break;default:n.push(c)}}),n},o.prototype.saveCheckboxes=function(e){var t=this.getCheckboxInputs();t.length>0&&t.forEach(n=>{var c=n.id;c=c.replace("dp--cookie-",""),typeof e!="undefined"&&(n.checked=e);var a=this.options.checkboxes.map((l,p)=>
136{if(l.name==c)return this.options.checkboxes[p].checked=n.checked,!0}).filter(l=>l);a.length||this.options.checkboxes.push({name:c,checked:n.checked})})},o.prototype.save=function(){this.saveCheckboxes(),this.close()},o.prototype.hasChanged=function(){var e=!1;return typeof this.originalCookie=="undefined"||typeof this.originalCookie.checkboxes=="undefined"?!1:(this.originalCookie.checkboxes.map((t,n)=>{var c=this.options.checkboxes[n];if(t.checked===!0&&(!c||c.checked==!1)){e=!0;var a=this.options.onStatusChange.bind(this);a(c,t)}}),e)},o.prototype.hasConsent=function(){var e=i.utils.getCookie(this.options.cookie.name);return!(typeof e=="undefined"||e.status=="open")},o.prototype.saveCookie=function(e){var t=i.utils.prepareCookie(e,this.options.cookie.name);!t.exists&&t.config.status=="open"||(i.utils.setCookie(this.options.cookie.name,t.config,this.options.cookie.expiryDays,this.options.cookie.domain,this.options.cookie.path,this.options.cookie.secure),this.hasConsent()&&this.hasChanged()&&this.options.reloadOnRevoke&&location.reload())},o.prototype.revoke=function(){var e=this.options.onRevokeChoice.bind(this);e(this),i.utils.fireEvent("dp--cookie-revoke"),this.open()},o.prototype.open=function(){this.revokeBtn&&this.revokeBtn.classList.add("cc-hide"),this.showPopup(),this.originalCookie=i.utils.getCookie(this.options.cookie.name);var e=this.options.onPopupOpen.bind(this);e(this),this.saveCookie({status:"open"}),document.querySelector("body").classList.add("dp--cookie-consent")},o.prototype.hidePopup=function(){this.window.classList.add("cc-hide")},o.prototype.showPopup=function(){this.window.classList.remove("cc-hide")},o.prototype.close=function(){this.hidePopup(),i.configWindow.closeConfig(),this.revokeBtn&&this.revokeBtn.classList.remove("cc-hide");var e=this.options.onPopupClose.bind(this);e(this),this.saveCookie({status:"approved",checkboxes:this.options.checkboxes}),document.querySelector("body").classList.remove("dp--cookie-consent"),this.execute()},o.prototype.execute=function(){i.Handler.execute(this.options.checkboxes),i.Overlay.execute(this.options.checkboxes)},new o}();i.popup=L;var S=function(){function s(){}return s.prototype.overlays=function(){i.popup.options.overlay.notice&&(this.templateOverwrites(),this.overlaysView("iframe"),this.overlaysView("dp-content"))},s.prototype.templateOverwrites=function(){let o=i.utils.getElementsByTag("script","data-dp-cookieIframe");o.length>0&&(i.popup.options.overlayLayout=o[0].innerHTML)},s.prototype.overlaysView=function(o){var e=i.utils.getElementsByTag(o);e.length!=0&&e.forEach(t=>{var n=t.getAttribute("data-cookieconsent-notice")||i.popup.options.content.media.notice,c=t.getAttribute("data-cookieconsent-description")||i.popup.options.content.media.desc,a=t.getAttribute("data-cookieconsent-btn")||i.popup.options.content.media.btn,l=t.getAttribute("data-cookieconsent");if(!t.hasAttribute("data-cookieconsent-overlay-loaded")){t.setAttribute("data-cookieconsent-overlay-loaded","loaded");var p=document.createElement("div");p.classList.add("dp--overlay");var u=i.popup.options.overlayLayout.replace("{{notice}}",n).replace("{{desc}}",c).replace("{{type}}",l).replace("{{btn}}",a);u=i.utils.appendElement.call(i.popup,u,p),u.getElementsByClassName("db--overlay-submit"),t.parentNode.insertBefore(p,t.nextSibling)}})},s.prototype.execute=function(o){this.executeIframe(o),this.executeContent(o)},s.prototype.ajax=function(o,e,t,n){var c=new XMLHttpRequest;c.open(o,e),c.setRequestHeader("X-Requested-With","XMLHttpRequest"),c.setRequestHeader("Content-type","text/html"),c.onload=function(){c.status<200||c.status>=300?n(c):t(c)},c.onerror=function(){n(c)},c.send()},s.prototype.executeContent=function(o){var e=i.utils.getElementsByTag("dp-content");e.length>0&&e.forEach(t=>{if(i.Handler.typeAllowed(t,o)){t.classList.add("dp--loaded"),t.setAttribute("data-cookieconsent-loaded",t.getAttribute("data-cookieconsent")),t.removeAttribute("data-cookieconsent");var n=t.getAttribute("data-src");n&&n.length>0?this.ajax("GET",n,function(c){t.innerHTML=c.response,i.utils.fireEvent("dp--cookie-content",t)},function(c){}):i.utils.fireEvent("dp--cookie-content",t)}})},s.prototype.executeIframe=function(o){var e=i.utils.getElementsByTag("iframe");e.length>0&&e.forEach(t=>{if(i.Handler.typeAllowed(t,o)){var n=t.cloneNode(!0);n.getAttribute("data-src")&&(n.src=n.getAttribute("data-src")),t.parentNode.replaceChild(n,t),n.classList.add("dp--loaded"),n.setAttribute("data-cookieconsent-loaded",n.getAttribute("data-cookieconsent")),n.removeAttribute("data-cookieconsent"),i.utils.fireEvent("dp--cookie-iframe",n)}})},new s}();i.Overlay=S;var O=function(){function s(){}return s.prototype.execute=function(o){var e=i.utils.getElementsByTag("script");e.length>0&&e.forEach(t=>
136{if(this.typeAllowed(t,o)){var n=t.innerHTML;n&&n.length&&(n=n.trim()),n&&n.length?(eval.call(this,n),i.utils.fireEvent("dp--cookie-fire",t)):t.getAttribute("data-src")?this.asyncJS(t.getAttribute("data-src"),function(c){i.utils.fireEvent("dp--cookie-fire",t)}):t.src&&this.asyncJS(t.src,function(c){i.utils.fireEvent("dp--cookie-fire",t)}),t.setAttribute("data-cookieconsent-loaded",t.getAttribute("data-cookieconsent")),t.removeAttribute("data-cookieconsent")}})},s.prototype.asyncLoad=function(o,e,t){var n=document,c=n.createElement(e),a=n.getElementsByTagName(e)[0];switch(e){case"script":c.src=o,c.setAttribute("defer","");break;case"link":c.rel="stylesheet",c.type="text/css",c.setAttribute("defer",""),c.href=o;break}t&&c.addEventListener("load",function(l){t(null,l)},!1),a.parentNode.insertBefore(c,a)},s.prototype.asyncJS=function(o,e){this.asyncLoad(o,"script",e)},s.prototype.typeAllowed=function(o,e){var t=o.getAttribute("data-cookieconsent"),n=e.map(c=>{if(c.name==t&&c.checked===!0)return!0});return n.indexOf(!0)!==-1},new s}();i.Handler=O,i.initialise=function(s,o){if(o||(o=function(){}),i.popup.initialise(s),i.Overlay.overlays(),o(i.popup),i.utils.fireEvent("dp--cookie-init"),i.popup.hasConsent()||r.detectRobot(navigator.userAgent)){i.popup.close(),i.utils.fireEvent("dp--cookie-accept-init");return}i.popup.open()};var P=function(){function s(){}return s.prototype.initialise=function(o){this.prepareConfig(),this.configWrap=i.utils.appendElement.call(i.popup,o),this.getElements(),this.bindBtns()},s.prototype.prepareConfig=function(){var o=i.popup.options,e=o.cookies.map(t=>{var n=t.cookies.map(c=>(this.options=i.utils.deepExtend({elements:{},content:c},o),i.popup.replaceContent.call(this,A))).join("");return this.options=i.utils.deepExtend({elements:{"config-cookie":n},content:{group:t.name,"group-lower":t.field}},o),i.popup.replaceContent.call(this,B)}).join("");i.popup.options.elements["cookie-group"]=e},s.prototype.getElements=function(){this.closeBtn=this.configWrap.querySelector("button.cc-btn-close"),this.allowAllBtn=this.configWrap.querySelector("button.cc-allow-all"),this.allowBtn=this.configWrap.querySelector("button.cc-allow"),this.denyBtn=this.configWrap.querySelector("button.cc-deny"),this.configGroups=this.configWrap.querySelectorAll(".cc-config-group")},s.prototype.bindBtns=function(){this.allowAllBtn&&(this.allowAllBtn.onclick=()=>i.popup.allowAll(this)),this.allowBtn&&(this.allowBtn.onclick=()=>i.popup.allow(this)),this.denyBtn&&(this.denyBtn.onclick=()=>i.popup.denyAll(this)),this.closeBtn&&(this.closeBtn.onclick=()=>this.hideConfig.call(this)),this.configGroups&&this.configGroups.forEach(o=>{o.querySelector(".cc-btn-collapse").onclick=()=>{var e=!o.classList.contains("cc-show");this.configGroups.forEach(t=>t.classList.remove("cc-show")),e&&o.classList.add("cc-show")}})},s.prototype.closeConfig=function(){this.configWrap&&this.configWrap.classList.remove("cc-show")},s.prototype.hideConfig=function(){i.popup.showPopup(),this.configWrap&&this.closeConfig()},s.prototype.showConfig=function(){this.configWrap&&this.configWrap.classList.add("cc-show"),i.popup.hidePopup()},new s}();i.configWindow=P,i.forceAccept=function(s){var o=s.getAttribute("data-cookieconsent"),e=i.popup.getCheckboxInputs();console.log(e),e.length>0&&(e.forEach(t=>{var n=t.id;n=n.replace("dp--cookie-",""),i.popup.hasConsent()||(t.checked=!1),n==o&&(t.checked=!0)}),i.utils.fireEvent("dp--cookie-accept")),i.popup.save()},i.forceDeny=function(s){var o=s.getAttribute("data-cookieconsent"),e=i.popup.getCheckboxInputs();e.length>0&&e.forEach(t=>{var n=t.id;n=n.replace("dp--cookie-",""),i.popup.hasConsent()||(t.checked=!1),n==o&&(t.checked=!1)}),i.popup.save()},i.hasInitialised=!0,window.DPCookieConsent=i,window.addEventListener("load",function(){window.DPCookieConsent.initialise(window.cookieconsent_options||{}),window.DPCookieConsent.loaded=!0})}})(window.DPCookieConsent||{})}); 137 138/* 139 * Javascript functions for TYPO3 extension sr_feuser_register 140 * 141 */ 142(function () { 143 window.addEventListener('load', (event) => { 144 // Click event when cancelling delete 145 var submit = document.getElementById("tx_srfeuserregister_pi1_delete_doNotSave"); 146 if (submit !== null) { 147 submit.addEventListener('click', (event) => { 148 var form = submit.form; 149 if (form) { 150 var element = form.elements.namedItem("tx_srfeuserregister_pi1[cmd]"); 151 if (element) { 152 element.setAttribute('value', 'edit'); 153 } 154 } 155 return true; 156 }); 157 } 158 }); 159})(); 160(() => { 161 var __create = Object.create; 162 var __defProp = Object.defineProperty; 163 var __getOwnPropDesc = Object.getOwnPropertyDescriptor; 164 var __getOwnPropNames = Object.getOwnPropertyNames; 165 var __getProtoOf = Object.getPrototypeOf; 166 var __hasOwnProp = Object.prototype.hasOwnProperty; 167 var __name = (target, value) =>
167 __defProp(target, "name", { value, configurable: true }); 168 var __commonJS = (cb, mod) => function __require() { 169 return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; 170 }; 171 var __copyProps = (to, from, except, desc) => { 172 if (from && typeof from === "object" || typeof from === "function") { 173 for (let key of __getOwnPropNames(from)) 174 if (!__hasOwnProp.call(to, key) && key !== except) 175 __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); 176 } 177 return to; 178 }; 179 var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( 180 // If the importer is in node compatibility mode or this is not an ESM 181 // file that has been converted to a CommonJS file using a Babel- 182 // compatible transform (i.e. "__esModule" has not been set), then set 183 // "default" to the CommonJS "module.exports" for node compatibility. 184 isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, 185 mod 186 )); 187 188
vendor: 82,955 bytes, lines 188-1223
188// node_modules/glightbox/dist/js/glightbox.min.js 189 var require_glightbox_min = __commonJS({ 190 "node_modules/glightbox/dist/js/glightbox.min.js"(exports, module) { 191 !(function(e, t) { 192 "object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : (e = e || self).GLightbox = t(); 193 })(exports, (function() { 194 "use strict"; 195 function e(e2, t2) { 196 if (!(e2 instanceof t2)) throw new TypeError("Cannot call a class as a function"); 197 } 198 __name(e, "e"); 199 function t(e2, t2) { 200 for (var i2 = 0; i2 < t2.length; i2++) { 201 var s2 = t2[i2]; 202 s2.enumerable = s2.enumerable || false, s2.configurable = true, "value" in s2 && (s2.writable = true), Object.defineProperty(e2, n(s2.key), s2); 203 } 204 } 205 __name(t, "t"); 206 function i(e2, i2, n2) { 207 return i2 && t(e2.prototype, i2), n2 && t(e2, n2), Object.defineProperty(e2, "prototype", { writable: false }), e2; 208 } 209 __name(i, "i"); 210 function n(e2) { 211 var t2 = (function(e3, t3) { 212 if ("object" != typeof e3 || !e3) return e3; 213 var i2 = e3[Symbol.toPrimitive]; 214 if (void 0 !== i2) { 215 var n2 = i2.call(e3, t3 || "default"); 216 if ("object" != typeof n2) return n2; 217 throw new TypeError("@@toPrimitive must return a primitive value."); 218 } 219 return ("string" === t3 ? String : Number)(e3); 220 })(e2, "string"); 221 return "symbol" == typeof t2 ? t2 : t2 + ""; 222 } 223 __name(n, "n"); 224 function s(e2) { 225 return (s = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e3) { 226 return typeof e3; 227 } : function(e3) { 228 return e3 && "function" == typeof Symbol && e3.constructor === Symbol && e3 !== Symbol.prototype ? "symbol" : typeof e3; 229 })(e2); 230 } 231 __name(s, "s"); 232 var l = Date.now(); 233 function o() { 234 var e2 = {}, t2 = true, i2 = 0, n2 = arguments.length; 235 "[object Boolean]" === Object.prototype.toString.call(arguments[0]) && (t2 = arguments[0], i2++); 236 for (var s2 = function(i3) { 237 for (var n3 in i3) Object.prototype.hasOwnProperty.call(i3, n3) && (t2 && "[object Object]" === Object.prototype.toString.call(i3[n3]) ? e2[n3] = o(true, e2[n3], i3[n3]) : e2[n3] = i3[n3]); 238 }; i2 < n2; i2++) { 239 var l2 = arguments[i2]; 240 s2(l2); 241 } 242 return e2; 243 } 244 __name(o, "o"); 245 function r(e2, t2) { 246 if ((E(e2) || e2 === window || e2 === document) && (e2 = [e2]), L(e2) || I(e2) || (e2 = [e2]), 0 != M(e2)) { 247 if (L(e2) && !I(e2)) for (var i2 = e2.length, n2 = 0; n2 < i2 && false !== t2.call(e2[n2], e2[n2], n2, e2); n2++) ; 248 else if (I(e2)) { 249 for (var s2 in e2) if (P(e2, s2) && false === t2.call(e2[s2], e2[s2], s2, e2)) break; 250 } 251 } 252 } 253 __name(r, "r"); 254 function a(e2) { 255 var t2 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null, i2 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : null, n2 = e2[l] = e2[l] || [], s2 = { all: n2, evt: null, found: null }; 256 return t2 && i2 && M(n2) > 0 && r(n2, (function(e3, n3) { 257 if (e3.eventName == t2 && e3.fn.toString() == i2.toString()) return s2.found = true, s2.evt = n3, false; 258 })), s2; 259 } 260 __name(a, "a"); 261 function h(e2) { 262 var t2 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, i2 = t2.onElement, n2 = t2.withCallback, s2 = t2.avoidDuplicate, l2 = void 0 === s2 || s2, o2 = t2.once, h2 = void 0 !== o2 && o2, d2 = t2.useCapture, c2 = void 0 !== d2 && d2, u2 = arguments.length > 2 ? arguments[2] : void 0, g2 = i2 || []; 263 function v2(e3) { 264 C(n2) && n2.call(u2, e3, this), h2 && v2.destroy(); 265 } 266 __name(v2, "v"); 267 return k(g2) && (g2 = document.querySelectorAll(g2)), v2.destroy = function() { 268 r(g2, (function(t3) { 269 var i3 = a(t3, e2, v2); 270 i3.found && i3.all.splice(i3.evt, 1), t3.removeEventListener && t3.removeEventListener(e2, v2, c2); 271 })); 272 }, r(g2, (function(t3) { 273 var i3 = a(t3, e2, v2); 274 (t3.addEventListener && l2 && !i3.found || !l2) && (t3.addEventListener(e2, v2, c2), i3.all.push({ eventName: e2, fn: v2 })); 275 })), v2; 276 } 277 __name(h, "h"); 278 function d(e2, t2) { 279 r(t2.split(" "), (function(t3) { 280 return e2.classList.add(t3); 281 })); 282 } 283 __name(d, "d"); 284 function c(e2, t2) { 285 r(t2.split(" "), (function(t3) { 286 return e2.classList.remove(t3); 287 })); 288 } 289 __name(c, "c"); 290 function u(e2, t2) { 291 return e2.classList.contains(t2); 292 } 293 __name(u, "u"); 294 function g(e2, t2) { 295 for (; e2 !== document.body; ) { 296 if (!(e2 = e2.parentElement)) return false; 297 if ("function" == typeof e2.matches ? e2.matches(t2) : e2.msMatchesSelector(t2)) return e2; 298 } 299 } 300 __name(g, "g"); 301 function v(e2) { 302 var t2 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "", i2 = arguments.length > 2 && void 0 !== arguments[2] && arguments[2]; 303 if (!e2 || "" === t2) return false; 304 if ("none" === t2) return C(i2) && i2(), false; 305 var n2 = b(), s2 = t2.split(" "); 306 r(s2, (function(t3) { 307 d(e2, "g" + t3); 308 })), h(n2, { onElement: e2, avoidDuplicate: false, once: true, withCallback: /* @__PURE__ */ __name(function(e3, t3) { 309 r(s2, (function(e4) { 310 c(t3, "g" + e4); 311 })), C(i2) && i2(); 312 }, "withCallback") }); 313 } 314 __name(v, "v"); 315 function f(e2) { 316 var t2 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : ""; 317 if ("" === t2) return e2.style.webkitTransform = "", e2.style.MozTransform = "", e2.style.msTransform = "", e2.style.OTransform = "", e2.style.transform = "", false; 318 e2.style.webkitTransform = t2, e2.style.MozTransform = t2, e2.style.msTransform = t2, e2.style.OTransform = t2, e2.style.transform = t2; 319 } 320 __name(f, "f"); 321 function p(e2) { 322 e2.style.display = "block"; 323 } 324 __name(p, "p"); 325 function m(e2) { 326 e2.style.display = "none"; 327 } 328 __name(m, "m"); 329 function y(e2) { 330 var t2 = document.createDocumentFragment(), i2 = document.createElement("div"); 331 for (i2.innerHTML = e2; i2.firstChild; ) t2.appendChild(i2.firstChild); 332 return t2; 333 } 334 __name(y, "y"); 335 function x() { 336 return { width: window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth, height: window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight }; 337 } 338 __name(x, "x"); 339 function b() { 340 var e2, t2 = document.createElement("fakeelement"), i2 = { animation: "animationend", OAnimation: "oAnimationEnd", MozAnimation: "animationend", WebkitAnimation: "webkitAnimationEnd" }; 341 for (e2 in i2) if (void 0 !== t2.style[e2]) return i2[e2]; 342 } 343 __name(b, "b"); 344 function S(e2, t2, i2, n2) { 345 if (e2()) t2(); 346 else { 347 var s2; 348 i2 || (i2 = 100); 349 var l2 = setInterval((function() { 350 e2() && (clearInterval(l2), s2 && clearTimeout(s2), t2()); 351 }), i2); 352 n2 && (s2 = setTimeout((function() { 353 clearInterval(l2); 354 }), n2)); 355 } 356 } 357 __name(S, "S"); 358 function w(e2, t2, i2) { 359 if (O(e2)) console.error("Inject assets error"); 360 else if (C(t2) && (i2 = t2, t2 = false), k(t2) && t2 in window) C(i2) && i2(); 361 else { 362 var n2; 363 if (-1 !== e2.indexOf(".css")) { 364 if ((n2 = document.querySelectorAll('link[href="' + e2 + '"]')) && n2.length > 0) return void (C(i2) && i2()); 365 var s2 = document.getElementsByTagName("head")[0], l2 = s2.querySelectorAll('link[rel="stylesheet"]'), o2 = document.createElement("link"); 366 return o2.rel = "stylesheet", o2.type = "text/css", o2.href = e2, o2.media = "all", l2 ? s2.insertBefore(o2, l2[0]) : s2.appendChild(o2), void (C(i2) && i2()); 367 } 368 if ((n2 = document.querySelectorAll('script[src="' + e2 + '"]')) && n2.length > 0) { 369 if (C(i2)) { 370 if (k(t2)) return S((function() { 371 return void 0 !== window[t2]; 372 }), (function() { 373 i2(); 374 })), false; 375 i2(); 376 } 377 } else { 378 var r2 = document.createElement("script"); 379 r2.type = "text/javascript", r2.src = e2, r2.onload = function() { 380 if (C(i2)) { 381 if (k(t2)) return S((function() { 382 return void 0 !== window[t2]; 383 }), (function() { 384 i2(); 385 })), false; 386 i2(); 387 } 388 }, document.body.appendChild(r2); 389 } 390 } 391 } 392 __name(w, "w"); 393 function T() { 394 return "navigator" in window && window.navigator.userAgent.match(/(iPad)|(iPhone)|(iPod)|(Android)|(PlayBook)|(BB10)|(BlackBerry)|(Opera Mini)|(IEMobile)|(webOS)|(MeeGo)/i); 395 } 396 __name(T, "T"); 397 function C(e2) { 398 return "function" == typeof e2; 399 } 400 __name(C, "C"); 401 function k(e2) { 402 return "string" == typeof e2; 403 } 404 __name(k, "k"); 405 function E(e2) { 406 return !(!e2 || !e2.nodeType || 1 != e2.nodeType); 407 } 408 __name(E, "E"); 409 function A(e2) { 410 return Array.isArray(e2); 411 } 412 __name(A, "A"); 413 function L(e2) { 414 return e2 && e2.length && isFinite(e2.length); 415 } 416 __name(L, "L"); 417 function I(e2) { 418 return "object" === s(e2) && null != e2 && !C(e2) && !A(e2); 419 } 420 __name(I, "I"); 421 function O(e2) { 422 return null == e2; 423 } 424 __name(O, "O"); 425 function P(e2, t2) { 426 return null !== e2 && hasOwnProperty.call(e2, t2); 427 } 428 __name(P, "P"); 429 function M(e2) { 430 if (I(e2)) { 431 if (e2.keys) return e2.keys().length; 432 var t2 = 0; 433 for (var i2 in e2) P(e2, i2) && t2++; 434 return t2; 435 } 436 return e2.length; 437 } 438 __name(M, "M"); 439 function z(e2) { 440 return !isNaN(parseFloat(e2)) && isFinite(e2); 441 } 442 __name(z, "z"); 443 function X() { 444 var e2 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : -1, t2 = document.querySelectorAll(".gbtn[data-taborder]:not(.disabled)"); 445 if (!t2.length) return false; 446 if (1 == t2.length) return t2[0]; 447 "string" == typeof e2 && (e2 = parseInt(e2)); 448 var i2 = []; 449 r(t2, (function(e3) { 450 i2.push(e3.getAttribute("data-taborder")); 451 })); 452 var n2 = Math.max.apply(Math, i2.map((function(e3) { 453 return parseInt(e3); 454 }))), s2 = e2 < 0 ? 1 : e2 + 1; 455 s2 > n2 && (s2 = "1"); 456 var l2 = i2.filter((function(e3) { 457 return e3 >= parseInt(s2); 458 })), o2 = l2.sort()[0]; 459 return document.querySelector('.gbtn[data-taborder="'.concat(o2, '"]')); 460 } 461 __name(X, "X"); 462 function Y(e2) { 463 if (e2.events.hasOwnProperty("keyboard")) return false; 464 e2.events.keyboard = h("keydown", { onElement: window, withCallback: /* @__PURE__ */ __name(function(t2, i2) { 465 var n2 = (t2 = t2 || window.event).keyCode; 466 if (9 == n2) { 467 var s2 = document.querySelector(".gbtn.focused"); 468 if (!s2) { 469 var l2 = !(!document.activeElement || !document.activeElement.nodeName) && document.activeElement.nodeName.toLocaleLowerCase(); 470 if ("input" == l2 || "textarea" == l2 || "button" == l2) return; 471 } 472 t2.preventDefault(); 473 var o2 = document.querySelectorAll(".gbtn[data-taborder]"); 474 if (!o2 || o2.length <= 0) return; 475 if (!s2) { 476 var r2 = X(); 477 return void (r2 && (r2.focus(), d(r2, "focused"))); 478 } 479 var a2 = X(s2.getAttribute("data-taborder")); 480 c(s2, "focused"), a2 && (a2.focus(), d(a2, "focused")); 481 } 482 39 == n2 && e2.nextSlide(), 37 == n2 && e2.prevSlide(), 27 == n2 && e2.close(); 483 }, "withCallback") }); 484 } 485 __name(Y, "Y"); 486 var q = i(/* @__PURE__ */ __name((function t2(i2, n2) { 487 var s2 = this, l2 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : null; 488 if (e(this, t2), this.img = i2, this.slide = n2, this.onclose = l2, this.img.setZoomEvents) return false; 489 this.active = false, this.zoomedIn = false, this.dragging = false, this.currentX = null, this.currentY = null, this.initialX = null, this.initialY = null, this.xOffset = 0, this.yOffset = 0, this.img.addEventListener("mousedown", (function(e2) { 490 return s2.dragStart(e2); 491 }), false), this.img.addEventListener("mouseup", (function(e2) { 492 return s2.dragEnd(e2); 493 }), false), this.img.addEventListener("mousemove", (function(e2) { 494 return s2.drag(e2); 495 }), false), this.img.addEventListener("click", (function(e2) { 496 return s2.slide.classList.contains("dragging-nav") ? (s2.zoomOut(), false) : s2.zoomedIn ? void (s2.zoomedIn && !s2.dragging && s2.zoomOut()) : s2.zoomIn(); 497 }), false), this.img.setZoomEvents = true; 498 }), "t"), [{ key: "zoomIn", value: /* @__PURE__ */ __name(function() { 499 var e2 = this.widowWidth(); 500 if (!(this.zoomedIn || e2 <= 768)) { 501 var t2 = this.img; 502 if (t2.setAttribute("data-style", t2.getAttribute("style")), t2.style.maxWidth = t2.naturalWidth + "px", t2.style.maxHeight = t2.naturalHeight + "px", t2.naturalWidth > e2) { 503 var i2 = e2 / 2 - t2.naturalWidth / 2; 504 this.setTranslate(this.img.parentNode, i2, 0); 505 } 506 this.slide.classList.add("zoomed"), this.zoomedIn = true; 507 } 508 }, "value") }, { key: "zoomOut", value: /* @__PURE__ */ __name(function() { 509 this.img.parentNode.setAttribute("style", ""), this.img.setAttribute("style", this.img.getAttribute("data-style")), this.slide.classList.remove("zoomed"), this.zoomedIn = false, this.currentX = null, this.currentY = null, this.initialX = null, this.initialY = null, this.xOffset = 0, this.yOffset = 0, this.onclose && "function" == typeof this.onclose && this.onclose(); 510 }, "value") }, { key: "dragStart", value: /* @__PURE__ */ __name(function(e2) { 511 e2.preventDefault(), this.zoomedIn ? ("touchstart" === e2.type ? (this.initialX = e2.touches[0].clientX - this.xOffset, this.initialY = e2.touches[0].clientY - this.yOffset) : (this.initialX = e2.clientX - this.xOffset, this.initialY = e2.clientY - this.yOffset), e2.target === this.img && (this.active = true, this.img.classList.add("dragging"))) : this.active = false; 512 }, "value") }, { key: "dragEnd", value: /* @__PURE__ */ __name(function(e2) { 513 var t2 = this; 514 e2.preventDefault(), this.initialX = this.currentX, this.initialY = this.currentY, this.active = false, setTimeout((function() { 515 t2.dragging = false, t2.img.isDragging = false, t2.img.classList.remove("dragging"); 516 }), 100); 517 }, "value") }, { key: "drag", value: /* @__PURE__ */ __name(function(e2) { 518 this.active && (e2.preventDefault(), "touchmove" === e2.type ? (this.currentX = e2.touches[0].clientX - this.initialX, this.currentY = e2.touches[0].clientY - this.initialY) : (this.currentX = e2.clientX - this.initialX, this.currentY = e2.clientY - this.initialY), this.xOffset = this.currentX, this.yOffset = this.currentY, this.img.isDragging = true, this.dragging = true, this.setTranslate(this.img, this.currentX, this.currentY)); 519 }, "value") }, { key: "onMove", value: /* @__PURE__ */ __name(function(e2) { 520 if (this.zoomedIn) { 521 var t2 = e2.clientX - this.img.naturalWidth / 2, i2 = e2.clientY - this.img.naturalHeight / 2; 522 this.setTranslate(this.img, t2, i2); 523 } 524 }, "value") }, { key: "setTranslate", value: /* @__PURE__ */ __name(function(e2, t2, i2) { 525 e2.style.transform = "translate3d(" + t2 + "px, " + i2 + "px, 0)"; 526 }, "value") }, { key: "widowWidth", value: /* @__PURE__ */ __name(function() { 527 return window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; 528 }, "value") }]), N = i(/* @__PURE__ */ __name((function t2() { 529 var i2 = this, n2 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; 530 e(this, t2); 531 var s2 = n2.dragEl, l2 = n2.toleranceX, o2 = void 0 === l2 ? 40 : l2, r2 = n2.toleranceY, a2 = void 0 === r2 ? 65 : r2, h2 = n2.slide, d2 = void 0 === h2 ? null : h2, c2 = n2.instance, u2 = void 0 === c2 ? null : c2; 532 this.el = s2, this.active = false, this.dragging = false, this.currentX = null, this.currentY = null, this.initialX = null, this.initialY = null, this.xOffset = 0, this.yOffset = 0, this.direction = null, this.lastDirection = null, this.toleranceX = o2, this.toleranceY = a2, this.toleranceReached = false, this.dragContainer = this.el, this.slide = d2, this.instance = u2, this.el.addEventListener("mousedown", (function(e2) { 533 return i2.dragStart(e2); 534 }), false), this.el.addEventListener("mouseup", (function(e2) { 535 return i2.dragEnd(e2); 536 }), false), this.el.addEventListener("mousemove", (function(e2) { 537 return i2.drag(e2); 538 }), false); 539 }), "t"), [{ key: "dragStart", value: /* @__PURE__ */ __name(function(e2) { 540 if (this.slide.classList.contains("zoomed")) this.active = false; 541 else { 542 "touchstart" === e2.type ? (this.initialX = e2.touches[0].clientX - this.xOffset, this.initialY = e2.touches[0].clientY - this.yOffset) : (this.initialX = e2.clientX - this.xOffset, this.initialY = e2.clientY - this.yOffset); 543 var t2 = e2.target.nodeName.toLowerCase(); 544 e2.target.classList.contains("nodrag") || g(e2.target, ".nodrag") || -1 !== ["input", "select", "textarea", "button", "a"].indexOf(t2) ? this.active = false : (e2.preventDefault(), (e2.target === this.el || "img" !== t2 && g(e2.target, ".gslide-inline")) && (this.active = true, this.el.classList.add("dragging"), this.dragContainer = g(e2.target, ".ginner-container"))); 545 } 546 }, "value") }, { key: "dragEnd", value: /* @__PURE__ */ __name(function(e2) { 547 var t2 = this; 548 e2 && e2.preventDefault(), this.initialX = 0, this.initialY = 0, this.currentX = null, this.currentY = null, this.initialX = null, this.initialY = null, this.xOffset = 0, this.yOffset = 0, this.active = false, this.doSlideChange && (this.instance.preventOutsideClick = true, "right" == this.doSlideChange && this.instance.prevSlide(), "left" == this.doSlideChange && this.instance.nextSlide()), this.doSlideClose && this.instance.close(), this.toleranceReached || this.setTranslate(this.dragContainer, 0, 0, true), setTimeout((function() { 549 t2.instance.preventOutsideClick = false, t2.toleranceReached = false, t2.lastDirection = null, t2.dragging = false, t2.el.isDragging = false, t2.el.classList.remove("dragging"), t2.slide.classList.remove("dragging-nav"), t2.dragContainer.style.transform = "", t2.dragContainer.style.transition = ""; 550 }), 100); 551 }, "value") }, { key: "drag", value: /* @__PURE__ */ __name(function(e2) { 552 if (this.active) { 553 e2.preventDefault(), this.slide.classList.add("dragging-nav"), "touchmove" === e2.type ? (this.currentX = e2.touches[0].clientX - this.initialX, this.currentY = e2.touches[0].clientY - this.initialY) : (this.currentX = e2.clientX - this.initialX, this.currentY = e2.clientY - this.initialY), this.xOffset = this.currentX, this.yOffset = this.currentY, this.el.isDragging = true, this.dragging = true, this.doSlideChange = false, this.doSlideClose = false; 554 var t2 = Math.abs(this.currentX), i2 = Math.abs(this.currentY); 555 if (t2 > 0 && t2 >= Math.abs(this.currentY) && (!this.lastDirection || "x" == this.lastDirection)) { 556 this.yOffset = 0, this.lastDirection = "x", this.setTranslate(this.dragContainer, this.currentX, 0); 557 var n2 = this.shouldChange(); 558 if (!this.instance.settings.dragAutoSnap && n2 && (this.doSlideChange = n2), this.instance.settings.dragAutoSnap && n2) return this.instance.preventOutsideClick = true, this.toleranceReached = true, this.active = false, this.instance.preventOutsideClick = true, this.dragEnd(null), "right" == n2 && this.instance.prevSlide(), void ("left" == n2 && this.instance.nextSlide()); 559 } 560 if (this.toleranceY > 0 && i2 > 0 && i2 >= t2 && (!this.lastDirection || "y" == this.lastDirection)) { 561 this.xOffset = 0, this.lastDirection = "y", this.setTranslate(this.dragContainer, 0, this.currentY); 562 var s2 = this.shouldClose(); 563 return !this.instance.settings.dragAutoSnap && s2 && (this.doSlideClose = true), void (this.instance.settings.dragAutoSnap && s2 && this.instance.close()); 564 } 565 } 566 }, "value") }, { key: "shouldChange", value: /* @__PURE__ */ __name(function() { 567 var e2 = false; 568 if (Math.abs(this.currentX) >= this.toleranceX) { 569 var t2 = this.currentX > 0 ? "right" : "left"; 570 ("left" == t2 && this.slide !== this.slide.parentNode.lastChild || "right" == t2 && this.slide !== this.slide.parentNode.firstChild) && (e2 = t2); 571 } 572 return e2; 573 }, "value") }, { key: "shouldClose", value: /* @__PURE__ */ __name(function() { 574 var e2 = false; 575 return Math.abs(this.currentY) >= this.toleranceY && (e2 = true), e2; 576 }, "value") }, { key: "setTranslate", value: /* @__PURE__ */ __name(function(e2, t2, i2) { 577 var n2 = arguments.length > 3 && void 0 !== arguments[3] && arguments[3]; 578 e2.style.transition = n2 ? "all .2s ease" : "", e2.style.transform = "translate3d(".concat(t2, "px, ").concat(i2, "px, 0)"); 579 }, "value") }]); 580 function D(e2, t2, i2, n2) { 581 var s2 = e2.querySelector(".gslide-media"), l2 = new Image(), o2 = "gSlideTitle_" + i2, r2 = "gSlideDesc_" + i2; 582 l2.addEventListener("load", (function() { 583 C(n2) && n2(); 584 }), false), l2.src = t2.href, "" != t2.sizes && "" != t2.srcset && (l2.sizes = t2.sizes, l2.srcset = t2.srcset), l2.alt = "", O(t2.alt) || "" === t2.alt || (l2.alt = t2.alt), "" !== t2.title && l2.setAttribute("aria-labelledby", o2), "" !== t2.description && l2.setAttribute("aria-describedby", r2), t2.hasOwnProperty("_hasCustomWidth") && t2._hasCustomWidth && (l2.style.width = t2.width), t2.hasOwnProperty("_hasCustomHeight") && t2._hasCustomHeight && (l2.style.height = t2.height), s2.insertBefore(l2, s2.firstChild); 585 } 586 __name(D, "D"); 587 function _(e2, t2, i2, n2) { 588 var s2 = this, l2 = e2.querySelector(".ginner-container"), o2 = "gvideo" + i2, r2 = e2.querySelector(".gslide-media"), a2 = this.getAllPlayers(); 589 d(l2, "gvideo-container"), r2.insertBefore(y('<div class="gvideo-wrapper"></div>'), r2.firstChild); 590 var h2 = e2.querySelector(".gvideo-wrapper"); 591 w(this.settings.plyr.css, "Plyr"); 592 var c2 = t2.href, u2 = null == t2 ? void 0 : t2.videoProvider, g2 = false; 593 r2.style.maxWidth = t2.width, w(this.settings.plyr.js, "Plyr", (function() { 594 if (!u2 && c2.match(/vimeo\.com\/([0-9]*)/) && (u2 = "vimeo"), !u2 && (c2.match(/(youtube\.com|youtube-nocookie\.com)\/watch\?v=([a-zA-Z0-9\-_]+)/) || c2.match(/youtu\.be\/([a-zA-Z0-9\-_]+)/) || c2.match(/(youtube\.com|youtube-nocookie\.com)\/embed\/([a-zA-Z0-9\-_]+)/) || c2.match(/(youtube\.com|youtube-nocookie\.com)\/shorts\/([a-zA-Z0-9\-_]+)/)) && (u2 = "youtube"), "local" === u2 || !u2) { 595 u2 = "local"; 596 var l3 = '<video id="' + o2 + '" '; 597 l3 += 'style="background:#000; max-width: '.concat(t2.width, ';" '), l3 += 'preload="metadata" ', l3 += 'x-webkit-airplay="allow" ', l3 += "playsinline ", l3 += "controls ", l3 += 'class="gvideo-local">', l3 += '<source src="'.concat(c2, '">'), g2 = y(l3 += "</video>"); 598 } 599 var r3 = g2 || y('<div id="'.concat(o2, '" data-plyr-provider="').concat(u2, '" data-plyr-embed-id="').concat(c2, '"></div>')); 600 d(h2, "".concat(u2, "-video gvideo")), h2.appendChild(r3), h2.setAttribute("data-id", o2), h2.setAttribute("data-index", i2); 601 var v2 = P(s2.settings.plyr, "config") ? s2.settings.plyr.config : {}, f2 = new Plyr("#" + o2, v2); 602 f2.on("ready", (function(e3) { 603 a2[o2] = e3.detail.plyr, C(n2) && n2(); 604 })), S((function() { 605 return e2.querySelector("iframe") && "true" == e2.querySelector("iframe").dataset.ready; 606 }), (function() { 607 s2.resize(e2); 608 })), f2.on("enterfullscreen", W), f2.on("exitfullscreen", W); 609 })); 610 } 611 __name(_, "_"); 612 function W(e2) { 613 var t2 = g(e2.target, ".gslide-media"); 614 "enterfullscreen" === e2.type && d(t2, "fullscreen"), "exitfullscreen" === e2.type && c(t2, "fullscreen"); 615 } 616 __name(W, "W"); 617 function B(e2, t2, i2, n2) { 618 var s2, l2 = this, o2 = e2.querySelector(".gslide-media"), r2 = !(!P(t2, "href") || !t2.href) && t2.href.split("#").pop().trim(), a2 = !(!P(t2, "content") || !t2.content) && t2.content; 619 if (a2 && (k(a2) && (s2 = y('<div class="ginlined-content">'.concat(a2, "</div>"))), E(a2))) { 620 "none" == a2.style.display && (a2.style.display = "block"); 621 var c2 = document.createElement("div"); 622 c2.className = "ginlined-content", c2.appendChild(a2), s2 = c2; 623 } 624 if (r2) { 625 var u2 = document.getElementById(r2); 626 if (!u2) return false; 627 var g2 = u2.cloneNode(true); 628 g2.style.height = t2.height, g2.style.maxWidth = t2.width, d(g2, "ginlined-content"), s2 = g2; 629 } 630 if (!s2) return console.error("Unable to append inline slide content", t2), false; 631 o2.style.height = t2.height, o2.style.width = t2.width, o2.appendChild(s2), this.events["inlineclose" + r2] = h("click", { onElement: o2.querySelectorAll(".gtrigger-close"), withCallback: /* @__PURE__ */ __name(function(e3) { 632 e3.preventDefault(), l2.close(); 633 }, "withCallback") }), C(n2) && n2(); 634 } 635 __name(B, "B"); 636 function H(e2, t2, i2, n2) { 637 var s2 = e2.querySelector(".gslide-media"), l2 = (function(e3) { 638 var t3 = e3.url, i3 = e3.allow, n3 = e3.callback, s3 = e3.appendTo, l3 = document.createElement("iframe"); 639 return l3.className = "vimeo-video gvideo", l3.src = t3, l3.style.width = "100%", l3.style.height = "100%", i3 && l3.setAttribute("allow", i3), l3.onload = function() { 640 l3.onload = null, d(l3, "node-ready"), C(n3) && n3(); 641 }, s3 && s3.appendChild(l3), l3; 642 })({ url: t2.href, callback: n2 }); 643 s2.parentNode.style.maxWidth = t2.width, s2.parentNode.style.height = t2.height, s2.appendChild(l2); 644 } 645 __name(H, "H"); 646 var j = i(/* @__PURE__ */ __name((function t2() { 647 var i2 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; 648 e(this, t2), this.defaults = { href: "", sizes: "", srcset: "", title: "", type: "", videoProvider: "", description: "", alt: "", descPosition: "bottom", effect: "", width: "", height: "", content: false, zoomable: true, draggable: true }, I(i2) && (this.defaults = o(this.defaults, i2)); 649 }), "t"), [{ key: "sourceType", value: /* @__PURE__ */ __name(function(e2) { 650 var t2 = e2; 651 return null !== (e2 = e2.toLowerCase()).match(/\.(jpeg|jpg|jpe|gif|png|apn|webp|avif|svg)/) ? "image" : e2.match(/(youtube\.com|youtube-nocookie\.com)\/watch\?v=([a-zA-Z0-9\-_]+)/) || e2.match(/youtu\.be\/([a-zA-Z0-9\-_]+)/) || e2.match(/(youtube\.com|youtube-nocookie\.com)\/embed\/([a-zA-Z0-9\-_]+)/) || e2.match(/(youtube\.com|youtube-nocookie\.com)\/shorts\/([a-zA-Z0-9\-_]+)/) || e2.match(/vimeo\.com\/([0-9]*)/) || null !== e2.match(/\.(mp4|ogg|webm|mov)/) ? "video" : null !== e2.match(/\.(mp3|wav|wma|aac|ogg)/) ? "audio" : e2.indexOf("#") > -1 && "" !== t2.split("#").pop().trim() ? "inline" : e2.indexOf("goajax=true") > -1 ? "ajax" : "external"; 652 }, "value") }, { key: "parseConfig", value: /* @__PURE__ */ __name(function(e2, t2) { 653 var i2 = this, n2 = o({ descPosition: t2.descPosition }, this.defaults); 654 if (I(e2) && !E(e2)) { 655 P(e2, "type") || (P(e2, "content") && e2.content ? e2.type = "inline" : P(e2, "href") && (e2.type = this.sourceType(e2.href))); 656 var s2 = o(n2, e2); 657 return this.setSize(s2, t2), s2; 658 } 659 var l2 = "", a2 = e2.getAttribute("data-glightbox"), h2 = e2.nodeName.toLowerCase(); 660 if ("a" === h2 && (l2 = e2.href), "img" === h2 && (l2 = e2.src, n2.alt = e2.alt), n2.href = l2, r(n2, (function(s3, l3) { 661 P(t2, l3) && "width" !== l3 && (n2[l3] = t2[l3]); 662 var o2 = e2.dataset[l3]; 663 O(o2) || (n2[l3] = i2.sanitizeValue(o2)); 664 })), n2.content && (n2.type = "inline"), !n2.type && l2 && (n2.type = this.sourceType(l2)), O(a2)) { 665 if (!n2.title && "a" == h2) { 666 var d2 = e2.title; 667 O(d2) || "" === d2 || (n2.title = d2); 668 } 669 if (!n2.title && "img" == h2) { 670 var c2 = e2.alt; 671 O(c2) || "" === c2 || (n2.title = c2); 672 } 673 } else { 674 var u2 = []; 675 r(n2, (function(e3, t3) { 676 u2.push(";\\s?" + t3); 677 })), u2 = u2.join("\\s?:|"), "" !== a2.trim() && r(n2, (function(e3, t3) { 678 var s3 = a2, l3 = new RegExp("s?" + t3 + "s?:s?(.*?)(" + u2 + "s?:|$)"), o2 = s3.match(l3); 679 if (o2 && o2.length && o2[1]) { 680 var r2 = o2[1].trim().replace(/;\s*$/, ""); 681 n2[t3] = i2.sanitizeValue(r2); 682 } 683 })); 684 } 685 if (n2.description && "." === n2.description.substring(0, 1)) { 686 var g2; 687 try { 688 g2 = document.querySelector(n2.description).innerHTML; 689 } catch (e3) { 690 if (!(e3 instanceof DOMException)) throw e3; 691 } 692 g2 && (n2.description = g2); 693 } 694 if (!n2.description) { 695 var v2 = e2.querySelector(".glightbox-desc"); 696 v2 && (n2.description = v2.innerHTML); 697 } 698 return this.setSize(n2, t2, e2), this.slideConfig = n2, n2; 699 }, "value") }, { key: "setSize", value: /* @__PURE__ */ __name(function(e2, t2) { 700 var i2 = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : null, n2 = "video" == e2.type ? this.checkSize(t2.videosWidth) : this.checkSize(t2.width), s2 = this.checkSize(t2.height); 701 return e2.width = P(e2, "width") && "" !== e2.width ? this.checkSize(e2.width) : n2, e2.height = P(e2, "height") && "" !== e2.height ? this.checkSize(e2.height) : s2, i2 && "image" == e2.type && (e2._hasCustomWidth = !!i2.dataset.width, e2._hasCustomHeight = !!i2.dataset.height), e2; 702 }, "value") }, { key: "checkSize", value: /* @__PURE__ */ __name(function(e2) { 703 return z(e2) ? "".concat(e2, "px") : e2; 704 }, "value") }, { key: "sanitizeValue", value: /* @__PURE__ */ __name(function(e2) { 705 return "true" !== e2 && "false" !== e2 ? e2 : "true" === e2; 706 }, "value") }]), V = i(/* @__PURE__ */ __name((function t2(i2, n2, s2) { 707 e(this, t2), this.element = i2, this.instance = n2, this.index = s2; 708 }), "t"), [{ key: "setContent", value: /* @__PURE__ */ __name(function() { 709 var e2 = this, t2 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null, i2 = arguments.length > 1 && void 0 !== arguments[1] && arguments[1]; 710 if (u(t2, "loaded")) return false; 711 var n2 = this.instance.settings, s2 = this.slideConfig, l2 = T(); 712 C(n2.beforeSlideLoad) && n2.beforeSlideLoad({ index: this.index, slide: t2, player: false }); 713 var o2 = s2.type, r2 = s2.descPosition, a2 = t2.querySelector(".gslide-media"), h2 = t2.querySelector(".gslide-title"), c2 = t2.querySelector(".gslide-desc"), g2 = t2.querySelector(".gdesc-inner"), v2 = i2, f2 = "gSlideTitle_" + this.index, p2 = "gSlideDesc_" + this.index; 714 if (C(n2.afterSlideLoad) && (v2 = /* @__PURE__ */ __name(function() { 715 C(i2) && i2(), n2.afterSlideLoad({ index: e2.index, slide: t2, player: e2.instance.getSlidePlayerInstance(e2.index) }); 716 }, "v")), "" == s2.title && "" == s2.description ? g2 && g2.parentNode.parentNode.removeChild(g2.parentNode) : (h2 && "" !== s2.title ? (h2.id = f2, h2.innerHTML = s2.title) : h2.parentNode.removeChild(h2), c2 && "" !== s2.description ? (c2.id = p2, l2 && n2.moreLength > 0 ? (s2.smallDescription = this.slideShortDesc(s2.description, n2.moreLength, n2.moreText), c2.innerHTML = s2.smallDescription, this.descriptionEvents(c2, s2)) : c2.innerHTML = s2.description) : c2.parentNode.removeChild(c2), d(a2.parentNode, "desc-".concat(r2)), d(g2.parentNode, "description-".concat(r2))), d(a2, "gslide-".concat(o2)), d(t2, "loaded"), "video" !== o2) { 717 if ("external" !== o2) return "inline" === o2 ? (B.apply(this.instance, [t2, s2, this.index, v2]), void (s2.draggable && new N({ dragEl: t2.querySelector(".gslide-inline"), toleranceX: n2.dragToleranceX, toleranceY: n2.dragToleranceY, slide: t2, instance: this.instance }))) : void ("image" !== o2 ? C(v2) && v2() : D(t2, s2, this.index, (function() { 718 var i3 = t2.querySelector("img"); 719 s2.draggable && new N({ dragEl: i3, toleranceX: n2.dragToleranceX, toleranceY: n2.dragToleranceY, slide: t2, instance: e2.instance }), s2.zoomable && i3.naturalWidth > i3.offsetWidth && (d(i3, "zoomable"), new q(i3, t2, (function() { 720 e2.instance.resize(); 721 }))), C(v2) && v2(); 722 }))); 723 H.apply(this, [t2, s2, this.index, v2]); 724 } else _.apply(this.instance, [t2, s2, this.index, v2]); 725 }, "value") }, { key: "slideShortDesc", value: /* @__PURE__ */ __name(function(e2) { 726 var t2 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 50, i2 = arguments.length > 2 && void 0 !== arguments[2] && arguments[2], n2 = document.createElement("div"); 727 n2.innerHTML = e2; 728 var s2 = n2.innerText, l2 = i2; 729 if ((e2 = s2.trim()).length <= t2) return e2; 730 var o2 = e2.substr(0, t2 - 1); 731 return l2 ? (n2 = null, o2 + '... <a href="#" class="desc-more">' + i2 + "</a>") : o2; 732 }, "value") }, { key: "descriptionEvents", value: /* @__PURE__ */ __name(function(e2, t2) { 733 var i2 = this, n2 = e2.querySelector(".desc-more"); 734 if (!n2) return false; 735 h("click", { onElement: n2, withCallback: /* @__PURE__ */ __name(function(e3, n3) { 736 e3.preventDefault(); 737 var s2 = document.body, l2 = g(n3, ".gslide-desc"); 738 if (!l2) return false; 739 l2.innerHTML = t2.description, d(s2, "gdesc-open"); 740 var o2 = h("click", { onElement: [s2, g(l2, ".gslide-description")], withCallback: /* @__PURE__ */ __name(function(e4, n4) { 741 "a" !== e4.target.nodeName.toLowerCase() && (c(s2, "gdesc-open"), d(s2, "gdesc-closed"), l2.innerHTML = t2.smallDescription, i2.descriptionEvents(l2, t2), setTimeout((function() { 742 c(s2, "gdesc-closed"); 743 }), 400), o2.destroy()); 744 }, "withCallback") }); 745 }, "withCallback") }); 746 }, "value") }, { key: "create", value: /* @__PURE__ */ __name(function() { 747 return y(this.instance.settings.slideHTML); 748 }, "value") }, { key: "getConfig", value: /* @__PURE__ */ __name(function() { 749 E(this.element) || this.element.hasOwnProperty("draggable") || (this.element.draggable = this.instance.settings.draggable); 750 var e2 = new j(this.instance.settings.slideExtraAttributes); 751 return this.slideConfig = e2.parseConfig(this.element, this.instance.settings), this.slideConfig; 752 }, "value") }]); 753 function F(e2) { 754 return Math.sqrt(e2.x * e2.x + e2.y * e2.y); 755 } 756 __name(F, "F"); 757 function R(e2, t2) { 758 var i2 = (function(e3, t3) { 759 var i3 = F(e3) * F(t3); 760 if (0 === i3) return 0; 761 var n2 = (function(e4, t4) { 762 return e4.x * t4.x + e4.y * t4.y; 763 })(e3, t3) / i3; 764 return n2 > 1 && (n2 = 1), Math.acos(n2); 765 })(e2, t2); 766 return (function(e3, t3) { 767 return e3.x * t3.y - t3.x * e3.y; 768 })(e2, t2) > 0 && (i2 *= -1), 180 * i2 / Math.PI; 769 } 770 __name(R, "R"); 771 var G = i(/* @__PURE__ */ __name((function t2(i2) { 772 e(this, t2), this.handlers = [], this.el = i2; 773 }), "t"), [{ key: "add", value: /* @__PURE__ */ __name(function(e2) { 774 this.handlers.push(e2); 775 }, "value") }, { key: "del", value: /* @__PURE__ */ __name(function(e2) { 776 e2 || (this.handlers = []); 777 for (var t2 = this.handlers.length; t2 >= 0; t2--) this.handlers[t2] === e2 && this.handlers.splice(t2, 1); 778 }, "value") }, { key: "dispatch", value: /* @__PURE__ */ __name(function() { 779 for (var e2 = 0, t2 = this.handlers.length; e2 < t2; e2++) { 780 var i2 = this.handlers[e2]; 781 "function" == typeof i2 && i2.apply(this.el, arguments); 782 } 783 }, "value") }]); 784 function Z(e2, t2) { 785 var i2 = new G(e2); 786 return i2.add(t2), i2; 787 } 788 __name(Z, "Z"); 789 var U = i(/* @__PURE__ */ __name((function t2(i2, n2) { 790 e(this, t2), this.element = "string" == typeof i2 ? document.querySelector(i2) : i2, this.start = this.start.bind(this), this.move = this.move.bind(this), this.end = this.end.bind(this), this.cancel = this.cancel.bind(this), this.element.addEventListener("touchstart", this.start, false), this.element.addEventListener("touchmove", this.move, false), this.element.addEventListener("touchend", this.end, false), this.element.addEventListener("touchcancel", this.cancel, false), this.preV = { x: null, y: null }, this.pinchStartLen = null, this.zoom = 1, this.isDoubleTap = false; 791 var s2 = /* @__PURE__ */ __name(function() { 792 }, "s"); 793 this.rotate = Z(this.element, n2.rotate || s2), this.touchStart = Z(this.element, n2.touchStart || s2), this.multipointStart = Z(this.element, n2.multipointStart || s2), this.multipointEnd = Z(this.element, n2.multipointEnd || s2), this.pinch = Z(this.element, n2.pinch || s2), this.swipe = Z(this.element, n2.swipe || s2), this.tap = Z(this.element, n2.tap || s2), this.doubleTap = Z(this.element, n2.doubleTap || s2), this.longTap = Z(this.element, n2.longTap || s2), this.singleTap = Z(this.element, n2.singleTap || s2), this.pressMove = Z(this.element, n2.pressMove || s2), this.twoFingerPressMove = Z(this.element, n2.twoFingerPressMove || s2), this.touchMove = Z(this.element, n2.touchMove || s2), this.touchEnd = Z(this.element, n2.touchEnd || s2), this.touchCancel = Z(this.element, n2.touchCancel || s2), this.translateContainer = this.element, this._cancelAllHandler = this.cancelAll.bind(this), window.addEventListener("scroll", this._cancelAllHandler), this.delta = null, this.last = null, this.now = null, this.tapTimeout = null, this.singleTapTimeout = null, this.longTapTimeout = null, this.swipeTimeout = null, this.x1 = this.x2 = this.y1 = this.y2 = null, this.preTapPosition = { x: null, y: null }; 794 }), "t"), [{ key: "start", value: /* @__PURE__ */ __name(function(e2) { 795 if (e2.touches) if (e2.target && e2.target.nodeName && ["a", "button", "input"].indexOf(e2.target.nodeName.toLowerCase()) >= 0) console.log("ignore drag for this touched element", e2.target.nodeName.toLowerCase()); 796 else { 797 this.now = Date.now(), this.x1 = e2.touches[0].pageX, this.y1 = e2.touches[0].pageY, this.delta = this.now - (this.last || this.now), this.touchStart.dispatch(e2, this.element), null !== this.preTapPosition.x && (this.isDoubleTap = this.delta > 0 && this.delta <= 250 && Math.abs(this.preTapPosition.x - this.x1) < 30 && Math.abs(this.preTapPosition.y - this.y1) < 30, this.isDoubleTap && clearTimeout(this.singleTapTimeout)), this.preTapPosition.x = this.x1, this.preTapPosition.y = this.y1, this.last = this.now; 798 var t2 = this.preV; 799 if (e2.touches.length > 1) { 800 this._cancelLongTap(), this._cancelSingleTap(); 801 var i2 = { x: e2.touches[1].pageX - this.x1, y: e2.touches[1].pageY - this.y1 }; 802 t2.x = i2.x, t2.y = i2.y, this.pinchStartLen = F(t2), this.multipointStart.dispatch(e2, this.element); 803 } 804 this._preventTap = false, this.longTapTimeout = setTimeout(function() { 805 this.longTap.dispatch(e2, this.element), this._preventTap = true; 806 }.bind(this), 750); 807 } 808 }, "value") }, { key: "move", value: /* @__PURE__ */ __name(function(e2) { 809 if (e2.touches) { 810 var t2 = this.preV, i2 = e2.touches.length, n2 = e2.touches[0].pageX, s2 = e2.touches[0].pageY; 811 if (this.isDoubleTap = false, i2 > 1) { 812 var l2 = e2.touches[1].pageX, o2 = e2.touches[1].pageY, r2 = { x: e2.touches[1].pageX - n2, y: e2.touches[1].pageY - s2 }; 813 null !== t2.x && (this.pinchStartLen > 0 && (e2.zoom = F(r2) / this.pinchStartLen, this.pinch.dispatch(e2, this.element)), e2.angle = R(r2, t2), this.rotate.dispatch(e2, this.element)), t2.x = r2.x, t2.y = r2.y, null !== this.x2 && null !== this.sx2 ? (e2.deltaX = (n2 - this.x2 + l2 - this.sx2) / 2, e2.deltaY = (s2 - this.y2 + o2 - this.sy2) / 2) : (e2.deltaX = 0, e2.deltaY = 0), this.twoFingerPressMove.dispatch(e2, this.element), this.sx2 = l2, this.sy2 = o2; 814 } else { 815 if (null !== this.x2) { 816 e2.deltaX = n2 - this.x2, e2.deltaY = s2 - this.y2; 817 var a2 = Math.abs(this.x1 - this.x2), h2 = Math.abs(this.y1 - this.y2); 818 (a2 > 10 || h2 > 10) && (this._preventTap = true); 819 } else e2.deltaX = 0, e2.deltaY = 0; 820 this.pressMove.dispatch(e2, this.element); 821 } 822 this.touchMove.dispatch(e2, this.element), this._cancelLongTap(), this.x2 = n2, this.y2 = s2, i2 > 1 && e2.preventDefault(); 823 } 824 }, "value") }, { key: "end", value: /* @__PURE__ */ __name(function(e2) { 825 if (e2.changedTouches) { 826 this._cancelLongTap(); 827 var t2 = this; 828 e2.touches.length < 2 && (this.multipointEnd.dispatch(e2, this.element), this.sx2 = this.sy2 = null), this.x2 && Math.abs(this.x1 - this.x2) > 30 || this.y2 && Math.abs(this.y1 - this.y2) > 30 ? (e2.direction = this._swipeDirection(this.x1, this.x2, this.y1, this.y2), this.swipeTimeout = setTimeout((function() { 829 t2.swipe.dispatch(e2, t2.element); 830 }), 0)) : (this.tapTimeout = setTimeout((function() { 831 t2._preventTap || t2.tap.dispatch(e2, t2.element), t2.isDoubleTap && (t2.doubleTap.dispatch(e2, t2.element), t2.isDoubleTap = false); 832 }), 0), t2.isDoubleTap || (t2.singleTapTimeout = setTimeout((function() { 833 t2.singleTap.dispatch(e2, t2.element); 834 }), 250))), this.touchEnd.dispatch(e2, this.element), this.preV.x = 0, this.preV.y = 0, this.zoom = 1, this.pinchStartLen = null, this.x1 = this.x2 = this.y1 = this.y2 = null; 835 } 836 }, "value") }, { key: "cancelAll", value: /* @__PURE__ */ __name(function() { 837 this._preventTap = true, clearTimeout(this.singleTapTimeout), clearTimeout(this.tapTimeout), clearTimeout(this.longTapTimeout), clearTimeout(this.swipeTimeout); 838 }, "value") }, { key: "cancel", value: /* @__PURE__ */ __name(function(e2) { 839 this.cancelAll(), this.touchCancel.dispatch(e2, this.element); 840 }, "value") }, { key: "_cancelLongTap", value: /* @__PURE__ */ __name(function() { 841 clearTimeout(this.longTapTimeout); 842 }, "value") }, { key: "_cancelSingleTap", value: /* @__PURE__ */ __name(function() { 843 clearTimeout(this.singleTapTimeout); 844 }, "value") }, { key: "_swipeDirection", value: /* @__PURE__ */ __name(function(e2, t2, i2, n2) { 845 return Math.abs(e2 - t2) >= Math.abs(i2 - n2) ? e2 - t2 > 0 ? "Left" : "Right" : i2 - n2 > 0 ? "Up" : "Down"; 846 }, "value") }, { key: "on", value: /* @__PURE__ */ __name(function(e2, t2) { 847 this[e2] && this[e2].add(t2); 848 }, "value") }, { key: "off", value: /* @__PURE__ */ __name(function(e2, t2) { 849 this[e2] && this[e2].del(t2); 850 }, "value") }, { key: "destroy", value: /* @__PURE__ */ __name(function() { 851 return this.singleTapTimeout && clearTimeout(this.singleTapTimeout), this.tapTimeout && clearTimeout(this.tapTimeout), this.longTapTimeout && clearTimeout(this.longTapTimeout), this.swipeTimeout && clearTimeout(this.swipeTimeout), this.element.removeEventListener("touchstart", this.start), this.element.removeEventListener("touchmove", this.move), this.element.removeEventListener("touchend", this.end), this.element.removeEventListener("touchcancel", this.cancel), this.rotate.del(), this.touchStart.del(), this.multipointStart.del(), this.multipointEnd.del(), this.pinch.del(), this.swipe.del(), this.tap.del(), this.doubleTap.del(), this.longTap.del(), this.singleTap.del(), this.pressMove.del(), this.twoFingerPressMove.del(), this.touchMove.del(), this.touchEnd.del(), this.touchCancel.del(), this.preV = this.pinchStartLen = this.zoom = this.isDoubleTap = this.delta = this.last = this.now = this.tapTimeout = this.singleTapTimeout = this.longTapTimeout = this.swipeTimeout = this.x1 = this.x2 = this.y1 = this.y2 = this.preTapPosition = this.rotate = this.touchStart = this.multipointStart = this.multipointEnd = this.pinch = this.swipe = this.tap = this.doubleTap = this.longTap = this.singleTap = this.pressMove = this.touchMove = this.touchEnd = this.touchCancel = this.twoFingerPressMove = null, window.removeEventListener("scroll", this._cancelAllHandler), null; 852 }, "value") }]); 853 function $(e2) { 854 var t2 = (function() { 855 var e3, t3 = document.createElement("fakeelement"), i3 = { transition: "transitionend", OTransition: "oTransitionEnd", MozTransition: "transitionend", WebkitTransition: "webkitTransitionEnd" }; 856 for (e3 in i3) if (void 0 !== t3.style[e3]) return i3[e3]; 857 })(), i2 = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth, n2 = u(e2, "gslide-media") ? e2 : e2.querySelector(".gslide-media"), s2 = g(n2, ".ginner-container"), l2 = e2.querySelector(".gslide-description"); 858 i2 > 769 && (n2 = s2), d(n2, "greset"), f(n2, "translate3d(0, 0, 0)"), h(t2, { onElement: n2, once: true, withCallback: /* @__PURE__ */ __name(function(e3, t3) { 859 c(n2, "greset"); 860 }, "withCallback") }), n2.style.opacity = "", l2 && (l2.style.opacity = ""); 861 } 862 __name($, "$"); 863 function J(e2) { 864 if (e2.events.hasOwnProperty("touch")) return false; 865 var t2, i2, n2, s2 = x(), l2 = s2.width, o2 = s2.height, r2 = false, a2 = null, h2 = null, v2 = null, p2 = false, m2 = 1, y2 = 1, b2 = false, S2 = false, w2 = null, T2 = null, C2 = null, k2 = null, E2 = 0, A2 = 0, L2 = false, I2 = false, O2 = {}, P2 = {}, M2 = 0, z2 = 0, X2 = document.getElementById("glightbox-slider"), Y2 = document.querySelector(".goverlay"), q2 = new U(X2, { touchStart: /* @__PURE__ */ __name(function(t3) { 866 if (r2 = true, (u(t3.targetTouches[0].target, "ginner-container") || g(t3.targetTouches[0].target, ".gslide-desc") || "a" == t3.targetTouches[0].target.nodeName.toLowerCase()) && (r2 = false), g(t3.targetTouches[0].target, ".gslide-inline") && !u(t3.targetTouches[0].target.parentNode, "gslide-inline") && (r2 = false), r2) { 867 if (P2 = t3.targetTouches[0], O2.pageX = t3.targetTouches[0].pageX, O2.pageY = t3.targetTouches[0].pageY, M2 = t3.targetTouches[0].clientX, z2 = t3.targetTouches[0].clientY, a2 = e2.activeSlide, h2 = a2.querySelector(".gslide-media"), n2 = a2.querySelector(".gslide-inline"), v2 = null, u(h2, "gslide-image") && (v2 = h2.querySelector("img")), (window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth) > 769 && (h2 = a2.querySelector(".ginner-container")), c(Y2, "greset"), t3.pageX > 20 && t3.pageX < window.innerWidth - 20) return; 868 t3.preventDefault(); 869 } 870 }, "touchStart"), touchMove: /* @__PURE__ */ __name(function(s3) { 871 if (r2 && (P2 = s3.targetTouches[0], !b2 && !S2)) { 872 if (n2 && n2.offsetHeight > o2) { 873 var a3 = O2.pageX - P2.pageX; 874 if (Math.abs(a3) <= 13) return false; 875 } 876 p2 = true; 877 var d2, c2 = s3.targetTouches[0].clientX, u2 = s3.targetTouches[0].clientY, g2 = M2 - c2, m3 = z2 - u2; 878 if (Math.abs(g2) > Math.abs(m3) ? (L2 = false, I2 = true) : (I2 = false, L2 = true), t2 = P2.pageX - O2.pageX, E2 = 100 * t2 / l2, i2 = P2.pageY - O2.pageY, A2 = 100 * i2 / o2, L2 && v2 && (d2 = 1 - Math.abs(i2) / o2, Y2.style.opacity = d2, e2.settings.touchFollowAxis && (E2 = 0)), I2 && (d2 = 1 - Math.abs(t2) / l2, h2.style.opacity = d2, e2.settings.touchFollowAxis && (A2 = 0)), !v2) return f(h2, "translate3d(".concat(E2, "%, 0, 0)")); 879 f(h2, "translate3d(".concat(E2, "%, ").concat(A2, "%, 0)")); 880 } 881 }, "touchMove"), touchEnd: /* @__PURE__ */ __name(function() { 882 if (r2) { 883 if (p2 = false, S2 || b2) return C2 = w2, void (k2 = T2); 884 var t3 = Math.abs(parseInt(A2)), i3 = Math.abs(parseInt(E2)); 885 if (!(t3 > 29 && v2)) return t3 < 29 && i3 < 25 ? (d(Y2, "greset"), Y2.style.opacity = 1, $(h2)) : void 0; 886 e2.close(); 887 } 888 }, "touchEnd"), multipointEnd: /* @__PURE__ */ __name(function() { 889 setTimeout((function() { 890 b2 = false; 891 }), 50); 892 }, "multipointEnd"), multipointStart: /* @__PURE__ */ __name(function() { 893 b2 = true, m2 = y2 || 1; 894 }, "multipointStart"), pinch: /* @__PURE__ */ __name(function(e3) { 895 if (!v2 || p2) return false; 896 b2 = true, v2.scaleX = v2.scaleY = m2 * e3.zoom; 897 var t3 = m2 * e3.zoom; 898 if (S2 = true, t3 <= 1) return S2 = false, t3 = 1, k2 = null, C2 = null, w2 = null, T2 = null, void v2.setAttribute("style", ""); 899 t3 > 4.5 && (t3 = 4.5), v2.style.transform = "scale3d(".concat(t3, ", ").concat(t3, ", 1)"), y2 = t3; 900 }, "pinch"), pressMove: /* @__PURE__ */ __name(function(e3) { 901 if (S2 && !b2) { 902 var t3 = P2.pageX - O2.pageX, i3 = P2.pageY - O2.pageY; 903 C2 && (t3 += C2), k2 && (i3 += k2), w2 = t3, T2 = i3; 904 var n3 = "translate3d(".concat(t3, "px, ").concat(i3, "px, 0)"); 905 y2 && (n3 += " scale3d(".concat(y2, ", ").concat(y2, ", 1)")), f(v2, n3); 906 } 907 }, "pressMove"), swipe: /* @__PURE__ */ __name(function(t3) { 908 if (!S2) if (b2) b2 = false; 909 else { 910 if ("Left" == t3.direction) { 911 if (e2.index == e2.elements.length - 1) return $(h2); 912 e2.nextSlide(); 913 } 914 if ("Right" == t3.direction) { 915 if (0 == e2.index) return $(h2); 916 e2.prevSlide(); 917 } 918 } 919 }, "swipe") }); 920 e2.events.touch = q2; 921 } 922 __name(J, "J"); 923 var K = T(), Q = null !== T() || void 0 !== document.createTouch || "ontouchstart" in window || "onmsgesturechange" in window || navigator.msMaxTouchPoints, ee = document.getElementsByTagName("html")[0], te = { selector: ".glightbox", elements: null, skin: "clean", theme: "clean", closeButton: true, startAt: null, autoplayVideos: true, autofocusVideos: true, descPosition: "bottom", width: "900px", height: "506px", videosWidth: "960px", beforeSlideChange: null, afterSlideChange: null, beforeSlideLoad: null, afterSlideLoad: null, slideInserted: null, slideRemoved: null, slideExtraAttributes: null, onOpen: null, onClose: null, loop: false, zoomable: true, draggable: true, dragAutoSnap: false, dragToleranceX: 40, dragToleranceY: 65, preload: true, oneSlidePerOpen: false, touchNavigation: true, touchFollowAxis: true, keyboardNavigation: true, closeOnOutsideClick: true, plugins: false, plyr: { css: "https://cdn.plyr.io/3.6.12/plyr.css", js: "https://cdn.plyr.io/3.6.12/plyr.js", config: { ratio: "16:9", fullscreen: { enabled: true, iosNative: true }, youtube: { noCookie: true, rel: 0, showinfo: 0, iv_load_policy: 3 }, vimeo: { byline: false, portrait: false, title: false, transparent: false } } }, openEffect: "zoom", closeEffect: "zoom", slideEffect: "slide", moreText: "See more", moreLength: 60, cssEfects: { fade: { in: "fadeIn", out: "fadeOut" }, zoom: { in: "zoomIn", out: "zoomOut" }, slide: { in: "slideInRight", out: "slideOutLeft" }, slideBack: { in: "slideInLeft", out: "slideOutRight" }, none: { in: "none", out: "none" } }, svg: { close: '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 512 512" xml:space="preserve"><g><g><path d="M505.943,6.058c-8.077-8.077-21.172-8.077-29.249,0L6.058,476.693c-8.077,8.077-8.077,21.172,0,29.249C10.096,509.982,15.39,512,20.683,512c5.293,0,10.586-2.019,14.625-6.059L505.943,35.306C514.019,27.23,514.019,14.135,505.943,6.058z"/></g></g><g><g><path d="M505.942,476.694L35.306,6.059c-8.076-8.077-21.172-8.077-29.248,0c-8.077,8.076-8.077,21.171,0,29.248l470.636,470.636c4.038,4.039,9.332,6.058,14.625,6.058c5.293,0,10.587-2.019,14.624-6.057C514.018,497.866,514.018,484.771,505.942,476.694z"/></g></g></svg>', next: '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 477.175 477.175" xml:space="preserve"> <g><path d="M360.731,229.075l-225.1-225.1c-5.3-5.3-13.8-5.3-19.1,0s-5.3,13.8,0,19.1l215.5,215.5l-215.5,215.5c-5.3,5.3-5.3,13.8,0,19.1c2.6,2.6,6.1,4,9.5,4c3.4,0,6.9-1.3,9.5-4l225.1-225.1C365.931,242.875,365.931,234.275,360.731,229.075z"/></g></svg>', prev: '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 477.175 477.175" xml:space="preserve"><g><path d="M145.188,238.575l215.5-215.5c5.3-5.3,5.3-13.8,0-19.1s-13.8-5.3-19.1,0l-225.1,225.1c-5.3,5.3-5.3,13.8,0,19.1l225.1,225c2.6,2.6,6.1,4,9.5,4s6.9-1.3,9.5-4c5.3-5.3,5.3-13.8,0-19.1L145.188,238.575z"/></g></svg>' }, slideHTML: '<div class="gslide">\n <div class="gslide-inner-content">\n <div class="ginner-container">\n <div class="gslide-media">\n </div>\n <div class="gslide-description">\n <div class="gdesc-inner">\n <h4 class="gslide-title"></h4>\n <div class="gslide-desc"></div>\n </div>\n </div>\n </div>\n </div>\n</div>', lightboxHTML: '<div id="glightbox-body" class="glightbox-container" tabindex="-1" role="dialog" aria-hidden="false">\n <div class="gloader visible"></div>\n <div class="goverlay"></div>\n <div class="gcontainer">\n <div id="glightbox-slider" class="gslider"></div>\n <button class="gclose gbtn" aria-label="Close" data-taborder="3">{closeSVG}</button>\n <button class="gprev gbtn" aria-label="Previous" data-taborder="2">{prevSVG}</button>\n <button class="gnext gbtn" aria-label="Next" data-taborder="1">{nextSVG}</button>\n</div>\n</div>' }, ie = i(/* @__PURE__ */ __name((function t2() { 924 var i2 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; 925 e(this, t2), this.customOptions = i2, this.settings = o(te, i2), this.effectsClasses = this.getAnimationClasses(), this.videoPlayers = {}, this.apiEvents = [], this.fullElementsList = false; 926 }), "t"), [{ key: "init", value: /* @__PURE__ */ __name(function() { 927 var e2 = this, t2 = this.getSelector(); 928 t2 && (this.baseEvents = h("click", { onElement: t2, withCallback: /* @__PURE__ */ __name(function(t3, i2) { 929 t3.preventDefault(), e2.open(i2); 930 }, "withCallback") })), this.elements = this.getElements(); 931 }, "value") }, { key: "open", value: /* @__PURE__ */ __name(function() { 932 var e2 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null, t2 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null; 933 if (0 === this.elements.length) return false; 934 this.activeSlide = null, this.prevActiveSlideIndex = null, this.prevActiveSlide = null; 935 var i2 = z(t2) ? t2 : this.settings.startAt; 936 if (E(e2)) { 937 var n2 = e2.getAttribute("data-gallery"); 938 n2 && (this.fullElementsList = this.elements, this.elements = this.getGalleryElements(this.elements, n2)), O(i2) && (i2 = this.getElementIndex(e2)) < 0 && (i2 = 0); 939 } 940 z(i2) || (i2 = 0), this.build(), v(this.overlay, "none" === this.settings.openEffect ? "none" : this.settings.cssEfects.fade.in); 941 var s2 = document.body, l2 = window.innerWidth - document.documentElement.clientWidth; 942 if (l2 > 0) { 943 var o2 = document.createElement("style"); 944 o2.type = "text/css", o2.className = "gcss-styles", o2.innerText = ".gscrollbar-fixer {margin-right: ".concat(l2, "px}"), document.head.appendChild(o2), d(s2, "gscrollbar-fixer"); 945 } 946 d(s2, "glightbox-open"), d(ee, "glightbox-open"), K && (d(document.body, "glightbox-mobile"), this.settings.slideEffect = "slide"), this.showSlide(i2, true), 1 === this.elements.length ? (d(this.prevButton, "glightbox-button-hidden"), d(this.nextButton, "glightbox-button-hidden")) : (c(this.prevButton, "glightbox-button-hidden"), c(this.nextButton, "glightbox-button-hidden")), this.lightboxOpen = true, this.trigger("open"), C(this.settings.onOpen) && this.settings.onOpen(), Q && this.settings.touchNavigation && J(this), this.settings.keyboardNavigation && Y(this); 947 }, "value") }, { key: "openAt", value: /* @__PURE__ */ __name(function() { 948 var e2 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0; 949 this.open(null, e2); 950 }, "value") }, { key: "showSlide", value: /* @__PURE__ */ __name(function() { 951 var e2 = this, t2 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0, i2 = arguments.length > 1 && void 0 !== arguments[1] && arguments[1]; 952 p(this.loader), this.index = parseInt(t2); 953 var n2 = this.slidesContainer.querySelector(".current"); 954 n2 && c(n2, "current"), this.slideAnimateOut(); 955 var s2 = this.slidesContainer.querySelectorAll(".gslide")[t2]; 956 if (u(s2, "loaded")) this.slideAnimateIn(s2, i2), m(this.loader); 957 else { 958 p(this.loader); 959 var l2 = this.elements[t2], o2 = { index: this.index, slide: s2, slideNode: s2, slideConfig: l2.slideConfig, slideIndex: this.index, trigger: l2.node, player: null }; 960 this.trigger("slide_before_load", o2), l2.instance.setContent(s2, (function() { 961 m(e2.loader), e2.resize(), e2.slideAnimateIn(s2, i2), e2.trigger("slide_after_load", o2); 962 })); 963 } 964 this.slideDescription = s2.querySelector(".gslide-description"), this.slideDescriptionContained = this.slideDescription && u(this.slideDescription.parentNode, "gslide-media"), this.settings.preload && (this.preloadSlide(t2 + 1), this.preloadSlide(t2 - 1)), this.updateNavigationClasses(), this.activeSlide = s2; 965 }, "value") }, { key: "preloadSlide", value: /* @__PURE__ */ __name(function(e2) { 966 var t2 = this; 967 if (e2 < 0 || e2 > this.elements.length - 1) return false; 968 if (O(this.elements[e2])) return false; 969 var i2 = this.slidesContainer.querySelectorAll(".gslide")[e2]; 970 if (u(i2, "loaded")) return false; 971 var n2 = this.elements[e2], s2 = n2.type, l2 = { index: e2, slide: i2, slideNode: i2, slideConfig: n2.slideConfig, slideIndex: e2, trigger: n2.node, player: null }; 972 this.trigger("slide_before_load", l2), "video" === s2 || "external" === s2 ? setTimeout((function() { 973 n2.instance.setContent(i2, (function() { 974 t2.trigger("slide_after_load", l2); 975 })); 976 }), 200) : n2.instance.setContent(i2, (function() { 977 t2.trigger("slide_after_load", l2); 978 })); 979 }, "value") }, { key: "prevSlide", value: /* @__PURE__ */ __name(function() { 980 this.goToSlide(this.index - 1); 981 }, "value") }, { key: "nextSlide", value: /* @__PURE__ */ __name(function() { 982 this.goToSlide(this.index + 1); 983 }, "value") }, { key: "goToSlide", value: /* @__PURE__ */ __name(function() { 984 var e2 = arguments.length > 0 && void 0 !== arguments[0] && arguments[0]; 985 if (this.prevActiveSlide = this.activeSlide, this.prevActiveSlideIndex = this.index, !this.loop() && (e2 < 0 || e2 > this.elements.length - 1)) return false; 986 e2 < 0 ? e2 = this.elements.length - 1 : e2 >= this.elements.length && (e2 = 0), this.showSlide(e2); 987 }, "value") }, { key: "insertSlide", value: /* @__PURE__ */ __name(function() { 988 var e2 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, t2 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : -1; 989 t2 < 0 && (t2 = this.elements.length); 990 var i2 = new V(e2, this, t2), n2 = i2.getConfig(), s2 = o({}, n2), l2 = i2.create(), r2 = this.elements.length - 1; 991 s2.index = t2, s2.node = false, s2.instance = i2, s2.slideConfig = n2, this.elements.splice(t2, 0, s2); 992 var a2 = null, h2 = null; 993 if (this.slidesContainer) { 994 if (t2 > r2) this.slidesContainer.appendChild(l2); 995 else { 996 var d2 = this.slidesContainer.querySelectorAll(".gslide")[t2]; 997 this.slidesContainer.insertBefore(l2, d2); 998 } 999 (this.settings.preload && 0 == this.index && 0 == t2 || this.index - 1 == t2 || this.index + 1 == t2) && this.preloadSlide(t2), 0 === this.index && 0 === t2 && (this.index = 1), this.updateNavigationClasses(), a2 = this.slidesContainer.querySelectorAll(".gslide")[t2], h2 = this.getSlidePlayerInstance(t2), s2.slideNode = a2; 1000 } 1001 this.trigger("slide_inserted", { index: t2, slide: a2, slideNode: a2, slideConfig: n2, slideIndex: t2, trigger: null, player: h2 }), C(this.settings.slideInserted) && this.settings.slideInserted({ index: t2, slide: a2, player: h2 }); 1002 }, "value") }, { key: "removeSlide", value: /* @__PURE__ */ __name(function() { 1003 var e2 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : -1; 1004 if (e2 < 0 || e2 > this.elements.length - 1) return false; 1005 var t2 = this.slidesContainer && this.slidesContainer.querySelectorAll(".gslide")[e2]; 1006 t2 && (this.getActiveSlideIndex() == e2 && (e2 == this.elements.length - 1 ? this.prevSlide() : this.nextSlide()), t2.parentNode.removeChild(t2)), this.elements.splice(e2, 1), this.trigger("slide_removed", e2), C(this.settings.slideRemoved) && this.settings.slideRemoved(e2); 1007 }, "value") }, { key: "slideAnimateIn", value: /* @__PURE__ */ __name(function(e2, t2) { 1008 var i2 = this, n2 = e2.querySelector(".gslide-media"), s2 = e2.querySelector(".gslide-description"), l2 = { index: this.prevActiveSlideIndex, slide: this.prevActiveSlide, slideNode: this.prevActiveSlide, slideIndex: this.prevActiveSlide, slideConfig: O(this.prevActiveSlideIndex) ? null : this.elements[this.prevActiveSlideIndex].slideConfig, trigger: O(this.prevActiveSlideIndex) ? null : this.elements[this.prevActiveSlideIndex].node, player: this.getSlidePlayerInstance(this.prevActiveSlideIndex) }, o2 = { index: this.index, slide: this.activeSlide, slideNode: this.activeSlide, slideConfig: this.elements[this.index].slideConfig, slideIndex: this.index, trigger: this.elements[this.index].node, player: this.getSlidePlayerInstance(this.index) }; 1009 if (n2.offsetWidth > 0 && s2 && (m(s2), s2.style.display = ""), c(e2, this.effectsClasses), t2) v(e2, this.settings.cssEfects[this.settings.openEffect].in, (function() { 1010 i2.settings.autoplayVideos && i2.slidePlayerPlay(e2), i2.trigger("slide_changed", { prev: l2, current: o2 }), C(i2.settings.afterSlideChange) && i2.settings.afterSlideChange.apply(i2, [l2, o2]); 1011 })); 1012 else { 1013 var r2 = this.settings.slideEffect, a2 = "none" !== r2 ? this.settings.cssEfects[r2].in : r2; 1014 this.prevActiveSlideIndex > this.index && "slide" == this.settings.slideEffect && (a2 = this.settings.cssEfects.slideBack.in), v(e2, a2, (function() { 1015 i2.settings.autoplayVideos && i2.slidePlayerPlay(e2), i2.trigger("slide_changed", { prev: l2, current: o2 }), C(i2.settings.afterSlideChange) && i2.settings.afterSlideChange.apply(i2, [l2, o2]); 1016 })); 1017 } 1018 setTimeout((function() { 1019 i2.resize(e2); 1020 }), 100), d(e2, "current"); 1021 }, "value") }, { key: "slideAnimateOut", value: /* @__PURE__ */ __name(function() { 1022 if (!this.prevActiveSlide) return false; 1023 var e2 = this.prevActiveSlide; 1024 c(e2, this.effectsClasses), d(e2, "prev"); 1025 var t2 = this.settings.slideEffect, i2 = "none" !== t2 ? this.settings.cssEfects[t2].out : t2; 1026 this.slidePlayerPause(e2), this.trigger("slide_before_change", { prev: { index: this.prevActiveSlideIndex, slide: this.prevActiveSlide, slideNode: this.prevActiveSlide, slideIndex: this.prevActiveSlideIndex, slideConfig: O(this.prevActiveSlideIndex) ? null : this.elements[this.prevActiveSlideIndex].slideConfig, trigger: O(this.prevActiveSlideIndex) ? null : this.elements[this.prevActiveSlideIndex].node, player: this.getSlidePlayerInstance(this.prevActiveSlideIndex) }, current: { index: this.index, slide: this.activeSlide, slideNode: this.activeSlide, slideIndex: this.index, slideConfig: this.elements[this.index].slideConfig, trigger: this.elements[this.index].node, player: this.getSlidePlayerInstance(this.index) } }), C(this.settings.beforeSlideChange) && this.settings.beforeSlideChange.apply(this, [{ index: this.prevActiveSlideIndex, slide: this.prevActiveSlide, player: this.getSlidePlayerInstance(this.prevActiveSlideIndex) }, { index: this.index, slide: this.activeSlide, player: this.getSlidePlayerInstance(this.index) }]), this.prevActiveSlideIndex > this.index && "slide" == this.settings.slideEffect && (i2 = this.settings.cssEfects.slideBack.out), v(e2, i2, (function() { 1027 var t3 = e2.querySelector(".ginner-container"), i3 = e2.querySelector(".gslide-media"), n2 = e2.querySelector(".gslide-description"); 1028 t3.style.transform = "", i3.style.transform = "", c(i3, "greset"), i3.style.opacity = "", n2 && (n2.style.opacity = ""), c(e2, "prev"); 1029 })); 1030 }, "value") }, { key: "getAllPlayers", value: /* @__PURE__ */ __name(function() { 1031 return this.videoPlayers; 1032 }, "value") }, { key: "getSlidePlayerInstance", value: /* @__PURE__ */ __name(function(e2) { 1033 var t2 = "gvideo" + e2, i2 = this.getAllPlayers(); 1034 return !(!P(i2, t2) || !i2[t2]) && i2[t2]; 1035 }, "value") }, { key: "stopSlideVideo", value: /* @__PURE__ */ __name(function(e2) { 1036 if (E(e2)) { 1037 var t2 = e2.querySelector(".gvideo-wrapper"); 1038 t2 && (e2 = t2.getAttribute("data-index")); 1039 } 1040 console.log("stopSlideVideo is deprecated, use slidePlayerPause"); 1041 var i2 = this.getSlidePlayerInstance(e2); 1042 i2 && i2.playing && i2.pause(); 1043 }, "value") }, { key: "slidePlayerPause", value: /* @__PURE__ */ __name(function(e2) { 1044 if (E(e2)) { 1045 var t2 = e2.querySelector(".gvideo-wrapper"); 1046 t2 && (e2 = t2.getAttribute("data-index")); 1047 } 1048 var i2 = this.getSlidePlayerInstance(e2); 1049 i2 && i2.playing && i2.pause(); 1050 }, "value") }, { key: "playSlideVideo", value: /* @__PURE__ */ __name(function(e2) { 1051 if (E(e2)) { 1052 var t2 = e2.querySelector(".gvideo-wrapper"); 1053 t2 && (e2 = t2.getAttribute("data-index")); 1054 } 1055 console.log("playSlideVideo is deprecated, use slidePlayerPlay"); 1056 var i2 = this.getSlidePlayerInstance(e2); 1057 i2 && !i2.playing && i2.play(); 1058 }, "value") }, { key: "slidePlayerPlay", value: /* @__PURE__ */ __name(function(e2) { 1059 var t2; 1060 if (!K || null !== (t2 = this.settings.plyr.config) && void 0 !== t2 && t2.muted) { 1061 if (E(e2)) { 1062 var i2 = e2.querySelector(".gvideo-wrapper"); 1063 i2 && (e2 = i2.getAttribute("data-index")); 1064 } 1065 var n2 = this.getSlidePlayerInstance(e2); 1066 n2 && !n2.playing && (n2.play(), this.settings.autofocusVideos && n2.elements.container.focus()); 1067 } 1068 }, "value") }, { key: "setElements", value: /* @__PURE__ */ __name(function(e2) { 1069 var t2 = this; 1070 this.settings.elements = false; 1071 var i2 = []; 1072 e2 && e2.length && r(e2, (function(e3, n2) { 1073 var s2 = new V(e3, t2, n2), l2 = s2.getConfig(), r2 = o({}, l2); 1074 r2.slideConfig = l2, r2.instance = s2, r2.index = n2, i2.push(r2); 1075 })), this.elements = i2, this.lightboxOpen && (this.slidesContainer.innerHTML = "", this.elements.length && (r(this.elements, (function() { 1076 var e3 = y(t2.settings.slideHTML); 1077 t2.slidesContainer.appendChild(e3); 1078 })), this.showSlide(0, true))); 1079 }, "value") }, { key: "getElementIndex", value: /* @__PURE__ */ __name(function(e2) { 1080 var t2 = false; 1081 return r(this.elements, (function(i2, n2) { 1082 if (P(i2, "node") && i2.node == e2) return t2 = n2, true; 1083 })), t2; 1084 }, "value") }, { key: "getElements", value: /* @__PURE__ */ __name(function() { 1085 var e2 = this, t2 = []; 1086 this.elements = this.elements ? this.elements : [], !O(this.settings.elements) && A(this.settings.elements) && this.settings.elements.length && r(this.settings.elements, (function(i3, n2) { 1087 var s2 = new V(i3, e2, n2), l2 = s2.getConfig(), r2 = o({}, l2); 1088 r2.node = false, r2.index = n2, r2.instance = s2, r2.slideConfig = l2, t2.push(r2); 1089 })); 1090 var i2 = false; 1091 return this.getSelector() && (i2 = document.querySelectorAll(this.getSelector())), i2 ? (r(i2, (function(i3, n2) { 1092 var s2 = new V(i3, e2, n2), l2 = s2.getConfig(), r2 = o({}, l2); 1093 r2.node = i3, r2.index = n2, r2.instance = s2, r2.slideConfig = l2, r2.gallery = i3.getAttribute("data-gallery"), t2.push(r2); 1094 })), t2) : t2; 1095 }, "value") }, { key: "getGalleryElements", value: /* @__PURE__ */ __name(function(e2, t2) { 1096 return e2.filter((function(e3) { 1097 return e3.gallery == t2; 1098 })); 1099 }, "value") }, { key: "getSelector", value: /* @__PURE__ */ __name(function() { 1100 return !this.settings.elements && (this.settings.selector && "data-" == this.settings.selector.substring(0, 5) ? "*[".concat(this.settings.selector, "]") : this.settings.selector); 1101 }, "value") }, { key: "getActiveSlide", value: /* @__PURE__ */ __name(function() { 1102 return this.slidesContainer.querySelectorAll(".gslide")[this.index]; 1103 }, "value") }, { key: "getActiveSlideIndex", value: /* @__PURE__ */ __name(function() { 1104 return this.index; 1105 }, "value") }, { key: "getAnimationClasses", value: /* @__PURE__ */ __name(function() { 1106 var e2 = []; 1107 for (var t2 in this.settings.cssEfects) if (this.settings.cssEfects.hasOwnProperty(t2)) { 1108 var i2 = this.settings.cssEfects[t2]; 1109 e2.push("g".concat(i2.in)), e2.push("g".concat(i2.out)); 1110 } 1111 return e2.join(" "); 1112 }, "value") }, { key: "build", value: /* @__PURE__ */ __name(function() { 1113 var e2 = this; 1114 if (this.built) return false; 1115 var t2 = document.body.childNodes, i2 = []; 1116 r(t2, (function(e3) { 1117 e3.parentNode == document.body && "#" !== e3.nodeName.charAt(0) && e3.hasAttribute && !e3.hasAttribute("aria-hidden") && (i2.push(e3), e3.setAttribute("aria-hidden", "true")); 1118 })); 1119 var n2 = P(this.settings.svg, "next") ? this.settings.svg.next : "", s2 = P(this.settings.svg, "prev") ? this.settings.svg.prev : "", l2 = P(this.settings.svg, "close") ? this.settings.svg.close : "", o2 = this.settings.lightboxHTML; 1120 o2 = y(o2 = (o2 = (o2 = o2.replace(/{nextSVG}/g, n2)).replace(/{prevSVG}/g, s2)).replace(/{closeSVG}/g, l2)), document.body.appendChild(o2); 1121 var a2 = document.getElementById("glightbox-body"); 1122 this.modal = a2; 1123 var c2 = a2.querySelector(".gclose"); 1124 this.prevButton = a2.querySelector(".gprev"), this.nextButton = a2.querySelector(".gnext"), this.overlay = a2.querySelector(".goverlay"), this.loader = a2.querySelector(".gloader"), this.slidesContainer = document.getElementById("glightbox-slider"), this.bodyHiddenChildElms = i2, this.events = {}, d(this.modal, "glightbox-" + this.settings.skin), this.settings.closeButton && c2 && (this.events.close = h("click", { onElement: c2, withCallback: /* @__PURE__ */ __name(function(t3, i3) { 1125 t3.preventDefault(), e2.close(); 1126 }, "withCallback") })), c2 && !this.settings.closeButton && c2.parentNode.removeChild(c2), this.nextButton && (this.events.next = h("click", { onElement: this.nextButton, withCallback: /* @__PURE__ */ __name(function(t3, i3) { 1127 t3.preventDefault(), e2.nextSlide(); 1128 }, "withCallback") })), this.prevButton && (this.events.prev = h("click", { onElement: this.prevButton, withCallback: /* @__PURE__ */ __name(function(t3, i3) { 1129 t3.preventDefault(), e2.prevSlide(); 1130 }, "withCallback") })), this.settings.closeOnOutsideClick && (this.events.outClose = h("click", { onElement: a2, withCallback: /* @__PURE__ */ __name(function(t3, i3) { 1131 e2.preventOutsideClick || u(document.body, "glightbox-mobile") || g(t3.target, ".ginner-container") || g(t3.target, ".gbtn") || u(t3.target, "gnext") || u(t3.target, "gprev") || e2.close(); 1132 }, "withCallback") })), r(this.elements, (function(t3, i3) { 1133 e2.slidesContainer.appendChild(t3.instance.create()), t3.slideNode = e2.slidesContainer.querySelectorAll(".gslide")[i3]; 1134 })), Q && d(document.body, "glightbox-touch"), this.events.resize = h("resize", { onElement: window, withCallback: /* @__PURE__ */ __name(function() { 1135 e2.resize(); 1136 }, "withCallback") }), this.built = true; 1137 }, "value") }, { key: "resize", value: /* @__PURE__ */ __name(function() { 1138 var e2 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null; 1139 if ((e2 = e2 || this.activeSlide) && !u(e2, "zoomed")) { 1140 var t2 = x(), i2 = e2.querySelector(".gvideo-wrapper"), n2 = e2.querySelector(".gslide-image"), s2 = this.slideDescription, l2 = t2.width, o2 = t2.height; 1141 if (l2 <= 768 ? d(document.body, "glightbox-mobile") : c(document.body, "glightbox-mobile"), i2 || n2) { 1142 var r2 = false; 1143 if (s2 && (u(s2, "description-bottom") || u(s2, "description-top")) && !u(s2, "gabsolute") && (r2 = true), n2) { 1144 if (l2 <= 768) n2.querySelector("img"); 1145 else if (r2) { 1146 var a2, h2, g2 = s2.offsetHeight, v2 = n2.querySelector("img"), f2 = null === (a2 = this.elements[this.index]) || void 0 === a2 ? void 0 : a2.node, p2 = "100vh"; 1147 f2 && (p2 = null !== (h2 = f2.getAttribute("data-height")) && void 0 !== h2 ? h2 : p2), v2.setAttribute("style", "max-height: calc(".concat(p2, " - ").concat(g2, "px)")), s2.setAttribute("style", "max-width: ".concat(v2.offsetWidth, "px;")); 1148 } 1149 } 1150 if (i2) { 1151 var m2 = P(this.settings.plyr.config, "ratio") ? this.settings.plyr.config.ratio : ""; 1152 if (!m2) { 1153 var y2 = i2.clientWidth, b2 = i2.clientHeight, S2 = y2 / b2; 1154 m2 = "".concat(y2 / S2, ":").concat(b2 / S2); 1155 } 1156 var w2 = m2.split(":"), T2 = this.settings.videosWidth, C2 = this.settings.videosWidth, k2 = (C2 = z(T2) || -1 !== T2.indexOf("px") ? parseInt(T2) : -1 !== T2.indexOf("vw") ? l2 * parseInt(T2) / 100 : -1 !== T2.indexOf("vh") ? o2 * parseInt(T2) / 100 : -1 !== T2.indexOf("%") ? l2 * parseInt(T2) / 100 : parseInt(i2.clientWidth)) / (parseInt(w2[0]) / parseInt(w2[1])); 1157 if (k2 = Math.floor(k2), r2 && (o2 -= s2.offsetHeight), C2 > l2 || k2 > o2 || o2 < k2 && l2 > C2) { 1158 var E2 = i2.offsetWidth, A2 = i2.offsetHeight, L2 = o2 / A2, I2 = { width: E2 * L2, height: A2 * L2 }; 1159 i2.parentNode.setAttribute("style", "max-width: ".concat(I2.width, "px")), r2 && s2.setAttribute("style", "max-width: ".concat(I2.width, "px;")); 1160 } else i2.parentNode.style.maxWidth = "".concat(T2), r2 && s2.setAttribute("style", "max-width: ".concat(T2, ";")); 1161 } 1162 } 1163 } 1164 }, "value") }, { key: "reload", value: /* @__PURE__ */ __name(function() { 1165 this.init(); 1166 }, "value") }, { key: "updateNavigationClasses", value: /* @__PURE__ */ __name(function() { 1167 var e2 = this.loop(); 1168 c(this.nextButton, "disabled"), c(this.prevButton, "disabled"), 0 == this.index && this.elements.length - 1 == 0 ? (d(this.prevButton, "disabled"), d(this.nextButton, "disabled")) : 0 !== this.index || e2 ? this.index !== this.elements.length - 1 || e2 || d(this.nextButton, "disabled") : d(this.prevButton, "disabled"); 1169 }, "value") }, { key: "loop", value: /* @__PURE__ */ __name(function() { 1170 var e2 = P(this.settings, "loopAtEnd") ? this.settings.loopAtEnd : null; 1171 return e2 = P(this.settings, "loop") ? this.settings.loop : e2, e2; 1172 }, "value") }, { key: "close", value: /* @__PURE__ */ __name(function() { 1173 var e2 = this; 1174 if (!this.lightboxOpen) { 1175 if (this.events) { 1176 for (var t2 in this.events) this.events.hasOwnProperty(t2) && this.events[t2].destroy(); 1177 this.events = null; 1178 } 1179 return false; 1180 } 1181 if (this.closing) return false; 1182 this.closing = true, this.slidePlayerPause(this.activeSlide), this.fullElementsList && (this.elements = this.fullElementsList), this.bodyHiddenChildElms.length && r(this.bodyHiddenChildElms, (function(e3) { 1183 e3.removeAttribute("aria-hidden"); 1184 })), d(this.modal, "glightbox-closing"), v(this.overlay, "none" == this.settings.openEffect ? "none" : this.settings.cssEfects.fade.out), v(this.activeSlide, this.settings.cssEfects[this.settings.closeEffect].out, (function() { 1185 if (e2.activeSlide = null, e2.prevActiveSlideIndex = null, e2.prevActiveSlide = null, e2.built = false, e2.events) { 1186 for (var t3 in e2.events) e2.events.hasOwnProperty(t3) && e2.events[t3].destroy(); 1187 e2.events = null; 1188 } 1189 var i2 = document.body; 1190 c(ee, "glightbox-open"), c(i2, "glightbox-open touching gdesc-open glightbox-touch glightbox-mobile gscrollbar-fixer"), e2.modal.parentNode.removeChild(e2.modal), e2.trigger("close"), C(e2.settings.onClose) && e2.settings.onClose(); 1191 var n2 = document.querySelector(".gcss-styles"); 1192 n2 && n2.parentNode.removeChild(n2), e2.lightboxOpen = false, e2.closing = null; 1193 })); 1194 }, "value") }, { key: "destroy", value: /* @__PURE__ */ __name(function() { 1195 this.close(), this.clearAllEvents(), this.baseEvents && this.baseEvents.destroy(); 1196 }, "value") }, { key: "on", value: /* @__PURE__ */ __name(function(e2, t2) { 1197 var i2 = arguments.length > 2 && void 0 !== arguments[2] && arguments[2]; 1198 if (!e2 || !C(t2)) throw new TypeError("Event name and callback must be defined"); 1199 this.apiEvents.push({ evt: e2, once: i2, callback: t2 }); 1200 }, "value") }, { key: "once", value: /* @__PURE__ */ __name(function(e2, t2) { 1201 this.on(e2, t2, true); 1202 }, "value") }, { key: "trigger", value: /* @__PURE__ */ __name(function(e2) { 1203 var t2 = this, i2 = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null, n2 = []; 1204 r(this.apiEvents, (function(t3, s2) { 1205 var l2 = t3.evt, o2 = t3.once, r2 = t3.callback; 1206 l2 == e2 && (r2(i2), o2 && n2.push(s2)); 1207 })), n2.length && r(n2, (function(e3) { 1208 return t2.apiEvents.splice(e3, 1); 1209 })); 1210 }, "value") }, { key: "clearAllEvents", value: /* @__PURE__ */ __name(function() { 1211 this.apiEvents.splice(0, this.apiEvents.length); 1212 }, "value") }, { key: "version", value: /* @__PURE__ */ __name(function() { 1213 return "3.3.1"; 1214 }, "value") }]); 1215 return function() { 1216 var e2 = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, t2 = new ie(e2); 1217 return t2.init(), t2; 1218 }; 1219 })); 1220 } 1221 }); 1222 1223
vendor: 13,729 bytes, lines 1223-1532
1223// node_modules/toastify-js/src/toastify.js 1224 var require_toastify = __commonJS({ 1225 "node_modules/toastify-js/src/toastify.js"(exports, module) { 1226 (function(root, factory) { 1227 if (typeof module === "object" && module.exports) { 1228 module.exports = factory(); 1229 } else { 1230 root.Toastify = factory(); 1231 } 1232 })(exports, function(global) { 1233 var Toastify2 = /* @__PURE__ */ __name(function(options) { 1234 return new Toastify2.lib.init(options); 1235 }, "Toastify"), version = "1.12.0"; 1236 Toastify2.defaults = { 1237 oldestFirst: true, 1238 text: "Toastify is awesome!", 1239 node: void 0, 1240 duration: 3e3, 1241 selector: void 0, 1242 callback: /* @__PURE__ */ __name(function() { 1243 }, "callback"), 1244 destination: void 0, 1245 newWindow: false, 1246 close: false, 1247 gravity: "toastify-top", 1248 positionLeft: false, 1249 position: "", 1250 backgroundColor: "", 1251 avatar: "", 1252 className: "", 1253 stopOnFocus: true, 1254 onClick: /* @__PURE__ */ __name(function() { 1255 }, "onClick"), 1256 offset: { x: 0, y: 0 }, 1257 escapeMarkup: true, 1258 ariaLive: "polite", 1259 style: { background: "" } 1260 }; 1261 Toastify2.lib = Toastify2.prototype = { 1262 toastify: version, 1263 constructor: Toastify2, 1264 // Initializing the object with required parameters 1265 init: /* @__PURE__ */ __name(function(options) { 1266 if (!options) { 1267 options = {}; 1268 } 1269 this.options = {}; 1270 this.toastElement = null; 1271 this.options.text = options.text || Toastify2.defaults.text; 1272 this.options.node = options.node || Toastify2.defaults.node; 1273 this.options.duration = options.duration === 0 ? 0 : options.duration || Toastify2.defaults.duration; 1274 this.options.selector = options.selector || Toastify2.defaults.selector; 1275 this.options.callback = options.callback || Toastify2.defaults.callback; 1276 this.options.destination = options.destination || Toastify2.defaults.destination; 1277 this.options.newWindow = options.newWindow || Toastify2.defaults.newWindow; 1278 this.options.close = options.close || Toastify2.defaults.close; 1279 this.options.gravity = options.gravity === "bottom" ? "toastify-bottom" : Toastify2.defaults.gravity; 1280 this.options.positionLeft = options.positionLeft || Toastify2.defaults.positionLeft; 1281 this.options.position = options.position || Toastify2.defaults.position; 1282 this.options.backgroundColor = options.backgroundColor || Toastify2.defaults.backgroundColor; 1283 this.options.avatar = options.avatar || Toastify2.defaults.avatar; 1284 this.options.className = options.className || Toastify2.defaults.className; 1285 this.options.stopOnFocus = options.stopOnFocus === void 0 ? Toastify2.defaults.stopOnFocus : options.stopOnFocus; 1286 this.options.onClick = options.onClick || Toastify2.defaults.onClick; 1287 this.options.offset = options.offset || Toastify2.defaults.offset; 1288 this.options.escapeMarkup = options.escapeMarkup !== void 0 ? options.escapeMarkup : Toastify2.defaults.escapeMarkup; 1289 this.options.ariaLive = options.ariaLive || Toastify2.defaults.ariaLive; 1290 this.options.style = options.style || Toastify2.defaults.style; 1291 if (options.backgroundColor) { 1292 this.options.style.background = options.backgroundColor; 1293 } 1294 return this; 1295 }, "init"), 1296 // Building the DOM element 1297 buildToast: /* @__PURE__ */ __name(function() { 1298 if (!this.options) { 1299 throw "Toastify is not initialized"; 1300 } 1301 var divElement = document.createElement("div"); 1302 divElement.className = "toastify on " + this.options.className; 1303 if (!!this.options.position) { 1304 divElement.className += " toastify-" + this.options.position; 1305 } else { 1306 if (this.options.positionLeft === true) { 1307 divElement.className += " toastify-left"; 1308 console.warn("Property `positionLeft` will be depreciated in further versions. Please use `position` instead."); 1309 } else { 1310 divElement.className += " toastify-right"; 1311 } 1312 } 1313 divElement.className += " " + this.options.gravity; 1314 if (this.options.backgroundColor) { 1315 console.warn('DEPRECATION NOTICE: "backgroundColor" is being deprecated. Please use the "style.background" property.'); 1316 } 1317 for (var property in this.options.style) { 1318 divElement.style[property] = this.options.style[property]; 1319 } 1320 if (this.options.ariaLive) { 1321 divElement.setAttribute("aria-live", this.options.ariaLive); 1322 } 1323 if (this.options.node && this.options.node.nodeType === Node.ELEMENT_NODE) { 1324 divElement.appendChild(this.options.node); 1325 } else { 1326 if (this.options.escapeMarkup) { 1327 divElement.innerText = this.options.text; 1328 } else { 1329 divElement.innerHTML = this.options.text; 1330 } 1331 if (this.options.avatar !== "") { 1332 var avatarElement = document.createElement("img"); 1333 avatarElement.src = this.options.avatar; 1334 avatarElement.className = "toastify-avatar"; 1335 if (this.options.position == "left" || this.options.positionLeft === true) { 1336 divElement.appendChild(avatarElement); 1337 } else { 1338 divElement.insertAdjacentElement("afterbegin", avatarElement); 1339 } 1340 } 1341 } 1342 if (this.options.close === true) { 1343 var closeElement = document.createElement("button"); 1344 closeElement.type = "button"; 1345 closeElement.setAttribute("aria-label", "Close"); 1346 closeElement.className = "toast-close"; 1347 closeElement.innerHTML = "✖"; 1348 closeElement.addEventListener( 1349 "click", 1350 function(event) { 1351 event.stopPropagation(); 1352 this.removeElement(this.toastElement); 1353 window.clearTimeout(this.toastElement.timeOutValue); 1354 }.bind(this) 1355 ); 1356 var width = window.innerWidth > 0 ? window.innerWidth : screen.width; 1357 if ((this.options.position == "left" || this.options.positionLeft === true) && width > 360) { 1358 divElement.insertAdjacentElement("afterbegin", closeElement); 1359 } else { 1360 divElement.appendChild(closeElement); 1361 } 1362 } 1363 if (this.options.stopOnFocus && this.options.duration > 0) { 1364 var self2 = this; 1365 divElement.addEventListener( 1366 "mouseover", 1367 function(event) { 1368 window.clearTimeout(divElement.timeOutValue); 1369 } 1370 ); 1371 divElement.addEventListener( 1372 "mouseleave", 1373 function() { 1374 divElement.timeOutValue = window.setTimeout( 1375 function() { 1376 self2.removeElement(divElement); 1377 }, 1378 self2.options.duration 1379 ); 1380 } 1381 ); 1382 } 1383 if (typeof this.options.destination !== "undefined") { 1384 divElement.addEventListener( 1385 "click", 1386 function(event) { 1387 event.stopPropagation(); 1388 if (this.options.newWindow === true) { 1389 window.open(this.options.destination, "_blank"); 1390 } else { 1391 window.location = this.options.destination; 1392 } 1393 }.bind(this) 1394 ); 1395 } 1396 if (typeof this.options.onClick === "function" && typeof this.options.destination === "undefined") { 1397 divElement.addEventListener( 1398 "click", 1399 function(event) { 1400 event.stopPropagation(); 1401 this.options.onClick(); 1402 }.bind(this) 1403 ); 1404 } 1405 if (typeof this.options.offset === "object") { 1406 var x = getAxisOffsetAValue("x", this.options); 1407 var y = getAxisOffsetAValue("y", this.options); 1408 var xOffset = this.options.position == "left" ? x : "-" + x; 1409 var yOffset = this.options.gravity == "toastify-top" ? y : "-" + y; 1410 divElement.style.transform = "translate(" + xOffset + "," + yOffset + ")"; 1411 } 1412 return divElement; 1413 }, "buildToast"), 1414 // Displaying the toast 1415 showToast: /* @__PURE__ */ __name(function() { 1416 this.toastElement = this.buildToast(); 1417 var rootElement; 1418 if (typeof this.options.selector === "string") { 1419 rootElement = document.getElementById(this.options.selector); 1420 } else if (this.options.selector instanceof HTMLElement || typeof ShadowRoot !== "undefined" && this.options.selector instanceof ShadowRoot) { 1421 rootElement = this.options.selector; 1422 } else { 1423 rootElement = document.body; 1424 } 1425 if (!rootElement) { 1426 throw "Root element is not defined"; 1427 } 1428 var elementToInsert = Toastify2.defaults.oldestFirst ? rootElement.firstChild : rootElement.lastChild; 1429 rootElement.insertBefore(this.toastElement, elementToInsert); 1430 Toastify2.reposition(); 1431 if (this.options.duration > 0) { 1432 this.toastElement.timeOutValue = window.setTimeout( 1433 function() { 1434 this.removeElement(this.toastElement); 1435 }.bind(this), 1436 this.options.duration 1437 ); 1438 } 1439 return this; 1440 }, "showToast"), 1441 hideToast: /* @__PURE__ */ __name(function() { 1442 if (this.toastElement.timeOutValue) { 1443 clearTimeout(this.toastElement.timeOutValue); 1444 } 1445 this.removeElement(this.toastElement); 1446 }, "hideToast"), 1447 // Removing the element from the DOM 1448 removeElement: /* @__PURE__ */ __name(function(toastElement) { 1449 toastElement.className = toastElement.className.replace(" on", ""); 1450 window.setTimeout( 1451 function() { 1452 if (this.options.node && this.options.node.parentNode) { 1453 this.options.node.parentNode.removeChild(this.options.node); 1454 } 1455 if (toastElement.parentNode) { 1456 toastElement.parentNode.removeChild(toastElement); 1457 } 1458 this.options.callback.call(toastElement); 1459 Toastify2.reposition(); 1460 }.bind(this), 1461 400 1462 ); 1463 }, "removeElement") 1464 }; 1465 Toastify2.reposition = function() { 1466 var topLeftOffsetSize = { 1467 top: 15, 1468 bottom: 15 1469 }; 1470 var topRightOffsetSize = { 1471 top: 15, 1472 bottom: 15 1473 }; 1474 var offsetSize = { 1475 top: 15, 1476 bottom: 15 1477 }; 1478 var allToasts = document.getElementsByClassName("toastify"); 1479 var classUsed; 1480 for (var i = 0; i < allToasts.length; i++) { 1481 if (containsClass(allToasts[i], "toastify-top") === true) { 1482 classUsed = "toastify-top"; 1483 } else { 1484 classUsed = "toastify-bottom"; 1485 } 1486 var height = allToasts[i].offsetHeight; 1487 classUsed = classUsed.substr(9, classUsed.length - 1); 1488 var offset = 15; 1489 var width = window.innerWidth > 0 ? window.innerWidth : screen.width; 1490 if (width <= 360) { 1491 allToasts[i].style[classUsed] = offsetSize[classUsed] + "px"; 1492 offsetSize[classUsed] += height + offset; 1493 } else { 1494 if (containsClass(allToasts[i], "toastify-left") === true) { 1495 allToasts[i].style[classUsed] = topLeftOffsetSize[classUsed] + "px"; 1496 topLeftOffsetSize[classUsed] += height + offset; 1497 } else { 1498 allToasts[i].style[classUsed] = topRightOffsetSize[classUsed] + "px"; 1499 topRightOffsetSize[classUsed] += height + offset; 1500 } 1501 } 1502 } 1503 return this; 1504 }; 1505 function getAxisOffsetAValue(axis, options) { 1506 if (options.offset[axis]) { 1507 if (isNaN(options.offset[axis])) { 1508 return options.offset[axis]; 1509 } else { 1510 return options.offset[axis] + "px"; 1511 } 1512 } 1513 return "0px"; 1514 } 1515 __name(getAxisOffsetAValue, "getAxisOffsetAValue"); 1516 function containsClass(elem, yourClass) { 1517 if (!elem || typeof yourClass !== "string") { 1518 return false; 1519 } else if (elem.className && elem.className.trim().split(/\s+/gi).indexOf(yourClass) > -1) { 1520 return true; 1521 } else { 1522 return false; 1523 } 1524 } 1525 __name(containsClass, "containsClass"); 1526 Toastify2.lib.init.prototype = Toastify2.lib; 1527 return Toastify2; 1528 }); 1529 } 1530 }); 1531 1532
vendor: 110,466 bytes, lines 1532-4271
1532// node_modules/tiny-slider/dist/tiny-slider.js 1533 var require_tiny_slider = __commonJS({ 1534 "node_modules/tiny-slider/dist/tiny-slider.js"(exports) { 1535 "use strict"; 1536 Object.defineProperty(exports, "__esModule", { value: true }); 1537 var win$1 = window; 1538 var raf = win$1.requestAnimationFrame || win$1.webkitRequestAnimationFrame || win$1.mozRequestAnimationFrame || win$1.msRequestAnimationFrame || function(cb) { 1539 return setTimeout(cb, 16); 1540 }; 1541 var win = window; 1542 var caf = win.cancelAnimationFrame || win.mozCancelAnimationFrame || function(id) { 1543 clearTimeout(id); 1544 }; 1545 function extend() { 1546 var obj, name, copy, target = arguments[0] || {}, i = 1, length = arguments.length; 1547 for (; i < length; i++) { 1548 if ((obj = arguments[i]) !== null) { 1549 for (name in obj) { 1550 copy = obj[name]; 1551 if (target === copy) { 1552 continue; 1553 } else if (copy !== void 0) { 1554 target[name] = copy; 1555 } 1556 } 1557 } 1558 } 1559 return target; 1560 } 1561 __name(extend, "extend"); 1562 function checkStorageValue(value) { 1563 return ["true", "false"].indexOf(value) >= 0 ? JSON.parse(value) : value; 1564 } 1565 __name(checkStorageValue, "checkStorageValue"); 1566 function setLocalStorage(storage, key, value, access) { 1567 if (access) { 1568 try { 1569 storage.setItem(key, value); 1570 } catch (e) { 1571 } 1572 } 1573 return value; 1574 } 1575 __name(setLocalStorage, "setLocalStorage"); 1576 function getSlideId() { 1577 var id = window.tnsId; 1578 window.tnsId = !id ? 1 : id + 1; 1579 return "tns" + window.tnsId; 1580 } 1581 __name(getSlideId, "getSlideId"); 1582 function getBody() { 1583 var doc = document, body = doc.body; 1584 if (!body) { 1585 body = doc.createElement("body"); 1586 body.fake = true; 1587 } 1588 return body; 1589 } 1590 __name(getBody, "getBody"); 1591 var docElement = document.documentElement; 1592 function setFakeBody(body) { 1593 var docOverflow = ""; 1594 if (body.fake) { 1595 docOverflow = docElement.style.overflow; 1596 body.style.background = ""; 1597 body.style.overflow = docElement.style.overflow = "hidden"; 1598 docElement.appendChild(body); 1599 } 1600 return docOverflow; 1601 } 1602 __name(setFakeBody, "setFakeBody"); 1603 function resetFakeBody(body, docOverflow) { 1604 if (body.fake) { 1605 body.remove(); 1606 docElement.style.overflow = docOverflow; 1607 docElement.offsetHeight; 1608 } 1609 } 1610 __name(resetFakeBody, "resetFakeBody"); 1611 function calc() { 1612 var doc = document, body = getBody(), docOverflow = setFakeBody(body), div = doc.createElement("div"), result = false; 1613 body.appendChild(div); 1614 try { 1615 var str = "(10px * 10)", vals = ["calc" + str, "-moz-calc" + str, "-webkit-calc" + str], val; 1616 for (var i = 0; i < 3; i++) { 1617 val = vals[i]; 1618 div.style.width = val; 1619 if (div.offsetWidth === 100) { 1620 result = val.replace(str, ""); 1621 break; 1622 } 1623 } 1624 } catch (e) { 1625 } 1626 body.fake ? resetFakeBody(body, docOverflow) : div.remove(); 1627 return result; 1628 } 1629 __name(calc, "calc"); 1630 function percentageLayout() { 1631 var doc = document, body = getBody(), docOverflow = setFakeBody(body), wrapper = doc.createElement("div"), outer = doc.createElement("div"), str = "", count = 70, perPage = 3, supported = false; 1632 wrapper.className = "tns-t-subp2"; 1633 outer.className = "tns-t-ct"; 1634 for (var i = 0; i < count; i++) { 1635 str += "<div></div>"; 1636 } 1637 outer.innerHTML = str; 1638 wrapper.appendChild(outer); 1639 body.appendChild(wrapper); 1640 supported = Math.abs(wrapper.getBoundingClientRect().left - outer.children[count - perPage].getBoundingClientRect().left) < 2; 1641 body.fake ? resetFakeBody(body, docOverflow) : wrapper.remove(); 1642 return supported; 1643 } 1644 __name(percentageLayout, "percentageLayout"); 1645 function mediaquerySupport() { 1646 if (window.matchMedia || window.msMatchMedia) { 1647 return true; 1648 } 1649 var doc = document, body = getBody(), docOverflow = setFakeBody(body), div = doc.createElement("div"), style = doc.createElement("style"), rule = "@media all and (min-width:1px){.tns-mq-test{position:absolute}}", position; 1650 style.type = "text/css"; 1651 div.className = "tns-mq-test"; 1652 body.appendChild(style); 1653 body.appendChild(div); 1654 if (style.styleSheet) { 1655 style.styleSheet.cssText = rule; 1656 } else { 1657 style.appendChild(doc.createTextNode(rule)); 1658 } 1659 position = window.getComputedStyle ? window.getComputedStyle(div).position : div.currentStyle["position"]; 1660 body.fake ? resetFakeBody(body, docOverflow) : div.remove(); 1661 return position === "absolute"; 1662 } 1663 __name(mediaquerySupport, "mediaquerySupport"); 1664 function createStyleSheet(media, nonce) { 1665 var style = document.createElement("style"); 1666 if (media) { 1667 style.setAttribute("media", media); 1668 } 1669 if (nonce) { 1670 style.setAttribute("nonce", nonce); 1671 } 1672 document.querySelector("head").appendChild(style); 1673 return style.sheet ? style.sheet : style.styleSheet; 1674 } 1675 __name(createStyleSheet, "createStyleSheet"); 1676 function addCSSRule(sheet, selector3, rules, index) { 1677 "insertRule" in sheet ? sheet.insertRule(selector3 + "{" + rules + "}", index) : sheet.addRule(selector3, rules, index); 1678 } 1679 __name(addCSSRule, "addCSSRule"); 1680 function removeCSSRule(sheet, index) { 1681 "deleteRule" in sheet ? sheet.deleteRule(index) : sheet.removeRule(index); 1682 } 1683 __name(removeCSSRule, "removeCSSRule"); 1684 function getCssRulesLength(sheet) { 1685 var rule = "insertRule" in sheet ? sheet.cssRules : sheet.rules; 1686 return rule.length; 1687 } 1688 __name(getCssRulesLength, "getCssRulesLength"); 1689 function toDegree(y, x) { 1690 return Math.atan2(y, x) * (180 / Math.PI); 1691 } 1692 __name(toDegree, "toDegree"); 1693 function getTouchDirection(angle, range) { 1694 var direction = false, gap = Math.abs(90 - Math.abs(angle)); 1695 if (gap >= 90 - range) { 1696 direction = "horizontal"; 1697 } else if (gap <= range) { 1698 direction = "vertical"; 1699 } 1700 return direction; 1701 } 1702 __name(getTouchDirection, "getTouchDirection"); 1703 function forEach(arr, callback, scope) { 1704 for (var i = 0, l = arr.length; i < l; i++) { 1705 callback.call(scope, arr[i], i); 1706 } 1707 } 1708 __name(forEach, "forEach"); 1709 var classListSupport = "classList" in document.createElement("_"); 1710 var hasClass = classListSupport ? function(el, str) { 1711 return el.classList.contains(str); 1712 } : function(el, str) { 1713 return el.className.indexOf(str) >= 0; 1714 }; 1715 var addClass = classListSupport ? function(el, str) { 1716 if (!hasClass(el, str)) { 1717 el.classList.add(str); 1718 } 1719 } : function(el, str) { 1720 if (!hasClass(el, str)) { 1721 el.className += " " + str; 1722 } 1723 }; 1724 var removeClass = classListSupport ? function(el, str) { 1725 if (hasClass(el, str)) { 1726 el.classList.remove(str); 1727 } 1728 } : function(el, str) { 1729 if (hasClass(el, str)) { 1730 el.className = el.className.replace(str, ""); 1731 } 1732 }; 1733 function hasAttr(el, attr) { 1734 return el.hasAttribute(attr); 1735 } 1736 __name(hasAttr, "hasAttr"); 1737 function getAttr(el, attr) { 1738 return el.getAttribute(attr); 1739 } 1740 __name(getAttr, "getAttr"); 1741 function isNodeList(el) { 1742 return typeof el.item !== "undefined"; 1743 } 1744 __name(isNodeList, "isNodeList"); 1745 function setAttrs(els, attrs) { 1746 els = isNodeList(els) || els instanceof Array ? els : [els]; 1747 if (Object.prototype.toString.call(attrs) !== "[object Object]") { 1748 return; 1749 } 1750 for (var i = els.length; i--; ) { 1751 for (var key in attrs) { 1752 els[i].setAttribute(key, attrs[key]); 1753 } 1754 } 1755 } 1756 __name(setAttrs, "setAttrs"); 1757 function removeAttrs(els, attrs) { 1758 els = isNodeList(els) || els instanceof Array ? els : [els]; 1759 attrs = attrs instanceof Array ? attrs : [attrs]; 1760 var attrLength = attrs.length; 1761 for (var i = els.length; i--; ) { 1762 for (var j = attrLength; j--; ) { 1763 els[i].removeAttribute(attrs[j]); 1764 } 1765 } 1766 } 1767 __name(removeAttrs, "removeAttrs"); 1768 function arrayFromNodeList(nl) { 1769 var arr = []; 1770 for (var i = 0, l = nl.length; i < l; i++) { 1771 arr.push(nl[i]); 1772 } 1773 return arr; 1774 } 1775 __name(arrayFromNodeList, "arrayFromNodeList"); 1776 function hideElement(el, forceHide) { 1777 if (el.style.display !== "none") { 1778 el.style.display = "none"; 1779 } 1780 } 1781 __name(hideElement, "hideElement"); 1782 function showElement(el, forceHide) { 1783 if (el.style.display === "none") { 1784 el.style.display = ""; 1785 } 1786 } 1787 __name(showElement, "showElement"); 1788 function isVisible(el) { 1789 return window.getComputedStyle(el).display !== "none"; 1790 } 1791 __name(isVisible, "isVisible"); 1792 function whichProperty(props) { 1793 if (typeof props === "string") { 1794 var arr = [props], Props = props.charAt(0).toUpperCase() + props.substr(1), prefixes = ["Webkit", "Moz", "ms", "O"]; 1795 prefixes.forEach(function(prefix) { 1796 if (prefix !== "ms" || props === "transform") { 1797 arr.push(prefix + Props); 1798 } 1799 }); 1800 props = arr; 1801 } 1802 var el = document.createElement("fakeelement"); 1803 props.length; 1804 for (var i = 0; i < props.length; i++) { 1805 var prop = props[i]; 1806 if (el.style[prop] !== void 0) { 1807 return prop; 1808 } 1809 } 1810 return false; 1811 } 1812 __name(whichProperty, "whichProperty"); 1813 function has3DTransforms(tf) { 1814 if (!tf) { 1815 return false; 1816 } 1817 if (!window.getComputedStyle) { 1818 return false; 1819 } 1820 var doc = document, body = getBody(), docOverflow = setFakeBody(body), el = doc.createElement("p"), has3d, cssTF = tf.length > 9 ? "-" + tf.slice(0, -9).toLowerCase() + "-" : ""; 1821 cssTF += "transform"; 1822 body.insertBefore(el, null); 1823 el.style[tf] = "translate3d(1px,1px,1px)"; 1824 has3d = window.getComputedStyle(el).getPropertyValue(cssTF); 1825 body.fake ? resetFakeBody(body, docOverflow) : el.remove(); 1826 return has3d !== void 0 && has3d.length > 0 && has3d !== "none"; 1827 } 1828 __name(has3DTransforms, "has3DTransforms"); 1829 function getEndProperty(propIn, propOut) { 1830 var endProp = false; 1831 if (/^Webkit/.test(propIn)) { 1832 endProp = "webkit" + propOut + "End"; 1833 } else if (/^O/.test(propIn)) { 1834 endProp = "o" + propOut + "End"; 1835 } else if (propIn) { 1836 endProp = propOut.toLowerCase() + "end"; 1837 } 1838 return endProp; 1839 } 1840 __name(getEndProperty, "getEndProperty"); 1841 var supportsPassive = false; 1842 try { 1843 opts = Object.defineProperty({}, "passive", { 1844 get: /* @__PURE__ */ __name(function() { 1845 supportsPassive = true; 1846 }, "get") 1847 }); 1848 window.addEventListener("test", null, opts); 1849 } catch (e) { 1850 } 1851 var opts; 1852 var passiveOption = supportsPassive ? { 1853 passive: true 1854 } : false; 1855 function addEvents(el, obj, preventScrolling) { 1856 for (var prop in obj) { 1857 var option = ["touchstart", "touchmove"].indexOf(prop) >= 0 && !preventScrolling ? passiveOption : false; 1858 el.addEventListener(prop, obj[prop], option); 1859 } 1860 } 1861 __name(addEvents, "addEvents"); 1862 function removeEvents(el, obj) { 1863 for (var prop in obj) { 1864 var option = ["touchstart", "touchmove"].indexOf(prop) >= 0 ? passiveOption : false; 1865 el.removeEventListener(prop, obj[prop], option); 1866 } 1867 } 1868 __name(removeEvents, "removeEvents"); 1869 function Events() { 1870 return { 1871 topics: {}, 1872 on: /* @__PURE__ */ __name(function(eventName, fn) { 1873 this.topics[eventName] = this.topics[eventName] || []; 1874 this.topics[eventName].push(fn); 1875 }, "on"), 1876 off: /* @__PURE__ */ __name(function(eventName, fn) { 1877 if (this.topics[eventName]) { 1878 for (var i = 0; i < this.topics[eventName].length; i++) { 1879 if (this.topics[eventName][i] === fn) { 1880 this.topics[eventName].splice(i, 1); 1881 break; 1882 } 1883 } 1884 } 1885 }, "off"), 1886 emit: /* @__PURE__ */ __name(function(eventName, data) { 1887 data.type = eventName; 1888 if (this.topics[eventName]) { 1889 this.topics[eventName].forEach(function(fn) { 1890 fn(data, eventName); 1891 }); 1892 } 1893 }, "emit") 1894 }; 1895 } 1896 __name(Events, "Events"); 1897 function jsTransform(element, attr, prefix, postfix, to, duration, callback) { 1898 var tick = Math.min(duration, 10), unit = to.indexOf("%") >= 0 ? "%" : "px", to = to.replace(unit, ""), from = Number(element.style[attr].replace(prefix, "").replace(postfix, "").replace(unit, "")), positionTick = (to - from) / duration * tick; 1899 setTimeout(moveElement, tick); 1900 function moveElement() { 1901 duration -= tick; 1902 from += positionTick; 1903 element.style[attr] = prefix + from + unit + postfix; 1904 if (duration > 0) { 1905 setTimeout(moveElement, tick); 1906 } else { 1907 callback(); 1908 } 1909 } 1910 __name(moveElement, "moveElement"); 1911 } 1912 __name(jsTransform, "jsTransform"); 1913 if (!Object.keys) { 1914 Object.keys = function(object) { 1915 var keys = []; 1916 for (var name in object) { 1917 if (Object.prototype.hasOwnProperty.call(object, name)) { 1918 keys.push(name); 1919 } 1920 } 1921 return keys; 1922 }; 1923 } 1924 if (!("remove" in Element.prototype)) { 1925 Element.prototype.remove = function() { 1926 if (this.parentNode) { 1927 this.parentNode.removeChild(this); 1928 } 1929 }; 1930 } 1931 var tns2 = /* @__PURE__ */ __name(function(options) { 1932 options = extend({ 1933 container: ".slider", 1934 mode: "carousel", 1935 axis: "horizontal", 1936 items: 1, 1937 gutter: 0, 1938 edgePadding: 0, 1939 fixedWidth: false, 1940 autoWidth: false, 1941 viewportMax: false, 1942 slideBy: 1, 1943 center: false, 1944 controls: true, 1945 controlsPosition: "top", 1946 controlsText: ["prev", "next"], 1947 controlsContainer: false, 1948 prevButton: false, 1949 nextButton: false, 1950 nav: true, 1951 navPosition: "top", 1952 navContainer: false, 1953 navAsThumbnails: false, 1954 arrowKeys: false, 1955 speed: 300, 1956 autoplay: false, 1957 autoplayPosition: "top", 1958 autoplayTimeout: 5e3, 1959 autoplayDirection: "forward", 1960 autoplayText: ["start", "stop"], 1961 autoplayHoverPause: false, 1962 autoplayButton: false, 1963 autoplayButtonOutput: true, 1964 autoplayResetOnVisibility: true, 1965 animateIn: "tns-fadeIn", 1966 animateOut: "tns-fadeOut", 1967 animateNormal: "tns-normal", 1968 animateDelay: false, 1969 loop: true, 1970 rewind: false, 1971 autoHeight: false, 1972 responsive: false, 1973 lazyload: false, 1974 lazyloadSelector: ".tns-lazy-img", 1975 touch: true, 1976 mouseDrag: false, 1977 swipeAngle: 15, 1978 nested: false, 1979 preventActionWhenRunning: false, 1980 preventScrollOnTouch: false, 1981 freezable: true, 1982 onInit: false, 1983 useLocalStorage: true, 1984 nonce: false 1985 }, options || {}); 1986 var doc = document, win2 = window, KEYS = { 1987 ENTER: 13, 1988 SPACE: 32, 1989 LEFT: 37, 1990 RIGHT: 39 1991 }, tnsStorage = {}, localStorageAccess = options.useLocalStorage; 1992 if (localStorageAccess) { 1993 var browserInfo = navigator.userAgent; 1994 var uid = /* @__PURE__ */ new Date(); 1995 try { 1996 tnsStorage = win2.localStorage; 1997 if (tnsStorage) { 1998 tnsStorage.setItem(uid, uid); 1999 localStorageAccess = tnsStorage.getItem(uid) == uid; 2000 tnsStorage.removeItem(uid); 2001 } else { 2002 localStorageAccess = false; 2003 } 2004 if (!localStorageAccess) { 2005 tnsStorage = {}; 2006 } 2007 } catch (e) { 2008 localStorageAccess = false; 2009 } 2010 if (localStorageAccess) { 2011 if (tnsStorage["tnsApp"] && tnsStorage["tnsApp"] !== browserInfo) { 2012 ["tC", "tPL", "tMQ", "tTf", "t3D", "tTDu", "tTDe", "tADu", "tADe", "tTE", "tAE"].forEach(function(item) { 2013 tnsStorage.removeItem(item); 2014 }); 2015 } 2016 localStorage["tnsApp"] = browserInfo; 2017 } 2018 } 2019 var CALC = tnsStorage["tC"] ? checkStorageValue(tnsStorage["tC"]) : setLocalStorage(tnsStorage, "tC", calc(), localStorageAccess), PERCENTAGELAYOUT = tnsStorage["tPL"] ? checkStorageValue(tnsStorage["tPL"]) : setLocalStorage(tnsStorage, "tPL", percentageLayout(), localStorageAccess), CSSMQ = tnsStorage["tMQ"] ? checkStorageValue(tnsStorage["tMQ"]) : setLocalStorage(tnsStorage, "tMQ", mediaquerySupport(), localStorageAccess), TRANSFORM = tnsStorage["tTf"] ? checkStorageValue(tnsStorage["tTf"]) : setLocalStorage(tnsStorage, "tTf", whichProperty("transform"), localStorageAccess), HAS3DTRANSFORMS = tnsStorage["t3D"] ? checkStorageValue(tnsStorage["t3D"]) : setLocalStorage(tnsStorage, "t3D", has3DTransforms(TRANSFORM), localStorageAccess), TRANSITIONDURATION = tnsStorage["tTDu"] ? checkStorageValue(tnsStorage["tTDu"]) : setLocalStorage(tnsStorage, "tTDu", whichProperty("transitionDuration"), localStorageAccess), TRANSITIONDELAY = tnsStorage["tTDe"] ? checkStorageValue(tnsStorage["tTDe"]) : setLocalStorage(tnsStorage, "tTDe", whichProperty("transitionDelay"), localStorageAccess), ANIMATIONDURATION = tnsStorage["tADu"] ? checkStorageValue(tnsStorage["tADu"]) : setLocalStorage(tnsStorage, "tADu", whichProperty("animationDuration"), localStorageAccess), ANIMATIONDELAY = tnsStorage["tADe"] ? checkStorageValue(tnsStorage["tADe"]) : setLocalStorage(tnsStorage, "tADe", whichProperty("animationDelay"), localStorageAccess), TRANSITIONEND = tnsStorage["tTE"] ? checkStorageValue(tnsStorage["tTE"]) : setLocalStorage(tnsStorage, "tTE", getEndProperty(TRANSITIONDURATION, "Transition"), localStorageAccess), ANIMATIONEND = tnsStorage["tAE"] ? checkStorageValue(tnsStorage["tAE"]) : setLocalStorage(tnsStorage, "tAE", getEndProperty(ANIMATIONDURATION, "Animation"), localStorageAccess); 2020 var supportConsoleWarn = win2.console && typeof win2.console.warn === "function", tnsList = ["container", "controlsContainer", "prevButton", "nextButton", "navContainer", "autoplayButton"], optionsElements = {}; 2021 tnsList.forEach(function(item) { 2022 if (typeof options[item] === "string") { 2023 var str = options[item], el = doc.querySelector(str); 2024 optionsElements[item] = str; 2025 if (el && el.nodeName) { 2026 options[item] = el; 2027 } else { 2028 if (supportConsoleWarn) { 2029 console.warn("Can't find", options[item]); 2030 } 2031 return; 2032 } 2033 } 2034 }); 2035 if (options.container.children.length < 1) { 2036 if (supportConsoleWarn) { 2037 console.warn("No slides found in", options.container); 2038 } 2039 return; 2040 } 2041 var responsive = options.responsive, nested = options.nested, carousel = options.mode === "carousel" ? true : false; 2042 if (responsive) { 2043 if (0 in responsive) { 2044 options = extend(options, responsive[0]); 2045 delete responsive[0]; 2046 } 2047 var responsiveTem = {}; 2048 for (var key in responsive) { 2049 var val = responsive[key]; 2050 val = typeof val === "number" ? { 2051 items: val 2052 } : val; 2053 responsiveTem[key] = val; 2054 } 2055 responsive = responsiveTem; 2056 responsiveTem = null; 2057 } 2058 function updateOptions(obj) { 2059 for (var key2 in obj) { 2060 if (!carousel) { 2061 if (key2 === "slideBy") { 2062 obj[key2] = "page"; 2063 } 2064 if (key2 === "edgePadding") { 2065 obj[key2] = false; 2066 } 2067 if (key2 === "autoHeight") { 2068 obj[key2] = false; 2069 } 2070 } 2071 if (key2 === "responsive") { 2072 updateOptions(obj[key2]); 2073 } 2074 } 2075 } 2076 __name(updateOptions, "updateOptions"); 2077 if (!carousel) { 2078 updateOptions(options); 2079 } 2080 if (!carousel) { 2081 options.axis = "horizontal"; 2082 options.slideBy = "page"; 2083 options.edgePadding = false; 2084 var animateIn = options.animateIn, animateOut = options.animateOut, animateDelay = options.animateDelay, animateNormal = options.animateNormal; 2085 } 2086 var horizontal = options.axis === "horizontal" ? true : false, outerWrapper = doc.createElement("div"), innerWrapper = doc.createElement("div"), middleWrapper, container = options.container, containerParent = container.parentNode, containerHTML = container.outerHTML, slideItems = container.children, slideCount = slideItems.length, breakpointZone, windowWidth = getWindowWidth(), isOn = false; 2087 if (responsive) { 2088 setBreakpointZone(); 2089 } 2090 if (carousel) { 2091 container.className += " tns-vpfix"; 2092 } 2093 var autoWidth = options.autoWidth, fixedWidth = getOption("fixedWidth"), edgePadding = getOption("edgePadding"), gutter = getOption("gutter"), viewport = getViewportWidth(), center = getOption("center"), items = !autoWidth ? Math.floor(getOption("items")) : 1, slideBy = getOption("slideBy"), viewportMax = options.viewportMax || options.fixedWidthViewportWidth, arrowKeys = getOption("arrowKeys"), speed = getOption("speed"), rewind = options.rewind, loop = rewind ? false : options.loop, autoHeight = getOption("autoHeight"), controls = getOption("controls"), controlsText = getOption("controlsText"), nav = getOption("nav"), touch = getOption("touch"), mouseDrag = getOption("mouseDrag"), autoplay = getOption("autoplay"), autoplayTimeout = getOption("autoplayTimeout"), autoplayText = getOption("autoplayText"), autoplayHoverPause = getOption("autoplayHoverPause"), autoplayResetOnVisibility = getOption("autoplayResetOnVisibility"), sheet = createStyleSheet(null, getOption("nonce")), lazyload = options.lazyload, lazyloadSelector = options.lazyloadSelector, slidePositions, slideItemsOut = [], cloneCount = loop ? getCloneCountForLoop() : 0, slideCountNew = !carousel ? slideCount + cloneCount : slideCount + cloneCount * 2, hasRightDeadZone = (fixedWidth || autoWidth) && !loop ? true : false, rightBoundary = fixedWidth ? getRightBoundary() : null, updateIndexBeforeTransform = !carousel || !loop ? true : false, transformAttr = horizontal ? "left" : "top", transformPrefix = "", transformPostfix = "", getIndexMax = (function() { 2094 if (fixedWidth) { 2095 return function() { 2096 return center && !loop ? slideCount - 1 : Math.ceil(-rightBoundary / (fixedWidth + gutter)); 2097 }; 2098 } else if (autoWidth) { 2099 return function() { 2100 for (var i = 0; i < slideCountNew; i++) { 2101 if (slidePositions[i] >= -rightBoundary) { 2102 return i; 2103 } 2104 } 2105 }; 2106 } else { 2107 return function() { 2108 if (center && carousel && !loop) { 2109 return slideCount - 1; 2110 } else { 2111 return loop || carousel ? Math.max(0, slideCountNew - Math.ceil(items)) : slideCountNew - 1; 2112 } 2113 }; 2114 } 2115 })(), index = getStartIndex(getOption("startIndex")), indexCached = index; 2116 getCurrentSlide(); 2117 var indexMin = 0, indexMax = !autoWidth ? getIndexMax() : null, preventActionWhenRunning = options.preventActionWhenRunning, swipeAngle = options.swipeAngle, moveDirectionExpected = swipeAngle ? "?" : true, running = false, onInit = options.onInit, events = new Events(), newContainerClasses = " tns-slider tns-" + options.mode, slideId = container.id || getSlideId(), disable = getOption("disable"), disabled = false, freezable = options.freezable, freeze = freezable && !autoWidth ? getFreeze() : false, frozen = false, controlsEvents = { 2118 "click": onControlsClick, 2119 "keydown": onControlsKeydown 2120 }, navEvents = { 2121 "click": onNavClick, 2122 "keydown": onNavKeydown 2123 }, hoverEvents = { 2124 "mouseover": mouseoverPause, 2125 "mouseout": mouseoutRestart 2126 }, visibilityEvent = { 2127 "visibilitychange": onVisibilityChange 2128 }, docmentKeydownEvent = { 2129 "keydown": onDocumentKeydown 2130 }, touchEvents = { 2131 "touchstart": onPanStart, 2132 "touchmove": onPanMove, 2133 "touchend": onPanEnd, 2134 "touchcancel": onPanEnd 2135 }, dragEvents = { 2136 "mousedown": onPanStart, 2137 "mousemove": onPanMove, 2138 "mouseup": onPanEnd, 2139 "mouseleave": onPanEnd 2140 }, hasControls = hasOption("controls"), hasNav = hasOption("nav"), navAsThumbnails = autoWidth ? true : options.navAsThumbnails, hasAutoplay = hasOption("autoplay"), hasTouch = hasOption("touch"), hasMouseDrag = hasOption("mouseDrag"), slideActiveClass = "tns-slide-active", slideClonedClass = "tns-slide-cloned", imgCompleteClass = "tns-complete", imgEvents = { 2141 "load": onImgLoaded, 2142 "error": onImgFailed 2143 }, imgsComplete, liveregionCurrent, preventScroll = options.preventScrollOnTouch === "force" ? true : false; 2144 if (hasControls) { 2145 var controlsContainer = options.controlsContainer, controlsContainerHTML = options.controlsContainer ? options.controlsContainer.outerHTML : "", prevButton = options.prevButton, nextButton = options.nextButton, prevButtonHTML = options.prevButton ? options.prevButton.outerHTML : "", nextButtonHTML = options.nextButton ? options.nextButton.outerHTML : "", prevIsButton, nextIsButton; 2146 } 2147 if (hasNav) { 2148 var navContainer = options.navContainer, navContainerHTML = options.navContainer ? options.navContainer.outerHTML : "", navItems, pages = autoWidth ? slideCount : getPages(), pagesCached = 0, navClicked = -1, navCurrentIndex = getCurrentNavIndex(), navCurrentIndexCached = navCurrentIndex, navActiveClass = "tns-nav-active", navStr = "Carousel Page ", navStrCurrent = " (Current Slide)"; 2149 } 2150 if (hasAutoplay) { 2151 var autoplayDirection = options.autoplayDirection === "forward" ? 1 : -1, autoplayButton = options.autoplayButton, autoplayButtonHTML = options.autoplayButton ? options.autoplayButton.outerHTML : "", autoplayHtmlStrings = ["<span class='tns-visually-hidden'>", " animation</span>"], autoplayTimer, animating, autoplayHoverPaused, autoplayUserPaused, autoplayVisibilityPaused; 2152 } 2153 if (hasTouch || hasMouseDrag) { 2154 var initPosition = {}, lastPosition = {}, translateInit, panStart = false, rafIndex, getDist = horizontal ? function(a, b) { 2155 return a.x - b.x; 2156 } : function(a, b) { 2157 return a.y - b.y; 2158 }; 2159 } 2160 if (!autoWidth) { 2161 resetVariblesWhenDisable(disable || freeze); 2162 } 2163 if (TRANSFORM) { 2164 transformAttr = TRANSFORM; 2165 transformPrefix = "translate"; 2166 if (HAS3DTRANSFORMS) { 2167 transformPrefix += horizontal ? "3d(" : "3d(0px, "; 2168 transformPostfix = horizontal ? ", 0px, 0px)" : ", 0px)"; 2169 } else { 2170 transformPrefix += horizontal ? "X(" : "Y("; 2171 transformPostfix = ")"; 2172 } 2173 } 2174 if (carousel) { 2175 container.className = container.className.replace("tns-vpfix", ""); 2176 } 2177 initStructure(); 2178 initSheet(); 2179 initSliderTransform(); 2180 function resetVariblesWhenDisable(condition) { 2181 if (condition) { 2182 controls = nav = touch = mouseDrag = arrowKeys = autoplay = autoplayHoverPause = autoplayResetOnVisibility = false; 2183 } 2184 } 2185 __name(resetVariblesWhenDisable, "resetVariblesWhenDisable"); 2186 function getCurrentSlide() { 2187 var tem = carousel ? index - cloneCount : index; 2188 while (tem < 0) { 2189 tem += slideCount; 2190 } 2191 return tem % slideCount + 1; 2192 } 2193 __name(getCurrentSlide, "getCurrentSlide"); 2194 function getStartIndex(ind) { 2195 ind = ind ? Math.max(0, Math.min(loop ? slideCount - 1 : slideCount - items, ind)) : 0; 2196 return carousel ? ind + cloneCount : ind; 2197 } 2198 __name(getStartIndex, "getStartIndex"); 2199 function getAbsIndex(i) { 2200 if (i == null) { 2201 i = index; 2202 } 2203 if (carousel) { 2204 i -= cloneCount; 2205 } 2206 while (i < 0) { 2207 i += slideCount; 2208 } 2209 return Math.floor(i % slideCount); 2210 } 2211 __name(getAbsIndex, "getAbsIndex"); 2212 function getCurrentNavIndex() { 2213 var absIndex = getAbsIndex(), result; 2214 result = navAsThumbnails ? absIndex : fixedWidth || autoWidth ? Math.ceil((absIndex + 1) * pages / slideCount - 1) : Math.floor(absIndex / items); 2215 if (!loop && carousel && index === indexMax) { 2216 result = pages - 1; 2217 } 2218 return result; 2219 } 2220 __name(getCurrentNavIndex, "getCurrentNavIndex"); 2221 function getItemsMax() { 2222 if (autoWidth || fixedWidth && !viewportMax) { 2223 return slideCount - 1; 2224 } else { 2225 var str = fixedWidth ? "fixedWidth" : "items", arr = []; 2226 if (fixedWidth || options[str] < slideCount) { 2227 arr.push(options[str]); 2228 } 2229 if (responsive) { 2230 for (var bp in responsive) { 2231 var tem = responsive[bp][str]; 2232 if (tem && (fixedWidth || tem < slideCount)) { 2233 arr.push(tem); 2234 } 2235 } 2236 } 2237 if (!arr.length) { 2238 arr.push(0); 2239 } 2240 return Math.ceil(fixedWidth ? viewportMax / Math.min.apply(null, arr) : Math.max.apply(null, arr)); 2241 } 2242 } 2243 __name(getItemsMax, "getItemsMax"); 2244 function getCloneCountForLoop() { 2245 var itemsMax = getItemsMax(), result = carousel ? Math.ceil((itemsMax * 5 - slideCount) / 2) : itemsMax * 4 - slideCount; 2246 result = Math.max(itemsMax, result); 2247 return hasOption("edgePadding") ? result + 1 : result; 2248 } 2249 __name(getCloneCountForLoop, "getCloneCountForLoop"); 2250 function getWindowWidth() { 2251 return win2.innerWidth || doc.documentElement.clientWidth || doc.body.clientWidth; 2252 } 2253 __name(getWindowWidth, "getWindowWidth"); 2254 function getInsertPosition(pos) { 2255 return pos === "top" ? "afterbegin" : "beforeend"; 2256 } 2257 __name(getInsertPosition, "getInsertPosition"); 2258 function getClientWidth(el) { 2259 if (el == null) { 2260 return; 2261 } 2262 var div = doc.createElement("div"), rect, width; 2263 el.appendChild(div); 2264 rect = div.getBoundingClientRect(); 2265 width = rect.right - rect.left; 2266 div.remove(); 2267 return width || getClientWidth(el.parentNode); 2268 } 2269 __name(getClientWidth, "getClientWidth"); 2270 function getViewportWidth() { 2271 var gap = edgePadding ? edgePadding * 2 - gutter : 0; 2272 return getClientWidth(containerParent) - gap; 2273 } 2274 __name(getViewportWidth, "getViewportWidth"); 2275 function hasOption(item) { 2276 if (options[item]) { 2277 return true; 2278 } else { 2279 if (responsive) { 2280 for (var bp in responsive) { 2281 if (responsive[bp][item]) { 2282 return true; 2283 } 2284 } 2285 } 2286 return false; 2287 } 2288 } 2289 __name(hasOption, "hasOption"); 2290 function getOption(item, ww) { 2291 if (ww == null) { 2292 ww = windowWidth; 2293 } 2294 if (item === "items" && fixedWidth) { 2295 return Math.floor((viewport + gutter) / (fixedWidth + gutter)) || 1; 2296 } else { 2297 var result = options[item]; 2298 if (responsive) { 2299 for (var bp in responsive) { 2300 if (ww >= parseInt(bp)) { 2301 if (item in responsive[bp]) { 2302 result = responsive[bp][item]; 2303 } 2304 } 2305 } 2306 } 2307 if (item === "slideBy" && result === "page") { 2308 result = getOption("items"); 2309 } 2310 if (!carousel && (item === "slideBy" || item === "items")) { 2311 result = Math.floor(result); 2312 } 2313 return result; 2314 } 2315 } 2316 __name(getOption, "getOption"); 2317 function getSlideMarginLeft(i) { 2318 return CALC ? CALC + "(" + i * 100 + "% / " + slideCountNew + ")" : i * 100 / slideCountNew + "%"; 2319 } 2320 __name(getSlideMarginLeft, "getSlideMarginLeft"); 2321 function getInnerWrapperStyles(edgePaddingTem, gutterTem, fixedWidthTem, speedTem, autoHeightBP) { 2322 var str = ""; 2323 if (edgePaddingTem !== void 0) { 2324 var gap = edgePaddingTem; 2325 if (gutterTem) { 2326 gap -= gutterTem; 2327 } 2328 str = horizontal ? "margin: 0 " + gap + "px 0 " + edgePaddingTem + "px;" : "margin: " + edgePaddingTem + "px 0 " + gap + "px 0;"; 2329 } else if (gutterTem && !fixedWidthTem) { 2330 var gutterTemUnit = "-" + gutterTem + "px", dir = horizontal ? gutterTemUnit + " 0 0" : "0 " + gutterTemUnit + " 0"; 2331 str = "margin: 0 " + dir + ";"; 2332 } 2333 if (!carousel && autoHeightBP && TRANSITIONDURATION && speedTem) { 2334 str += getTransitionDurationStyle(speedTem); 2335 } 2336 return str; 2337 } 2338 __name(getInnerWrapperStyles, "getInnerWrapperStyles"); 2339 function getContainerWidth(fixedWidthTem, gutterTem, itemsTem) { 2340 if (fixedWidthTem) { 2341 return (fixedWidthTem + gutterTem) * slideCountNew + "px"; 2342 } else { 2343 return CALC ? CALC + "(" + slideCountNew * 100 + "% / " + itemsTem + ")" : slideCountNew * 100 / itemsTem + "%"; 2344 } 2345 } 2346 __name(getContainerWidth, "getContainerWidth"); 2347 function getSlideWidthStyle(fixedWidthTem, gutterTem, itemsTem) { 2348 var width; 2349 if (fixedWidthTem) { 2350 width = fixedWidthTem + gutterTem + "px"; 2351 } else { 2352 if (!carousel) { 2353 itemsTem = Math.floor(itemsTem); 2354 } 2355 var dividend = carousel ? slideCountNew : itemsTem; 2356 width = CALC ? CALC + "(100% / " + dividend + ")" : 100 / dividend + "%"; 2357 } 2358 width = "width:" + width; 2359 return nested !== "inner" ? width + ";" : width + " !important;"; 2360 } 2361 __name(getSlideWidthStyle, "getSlideWidthStyle"); 2362 function getSlideGutterStyle(gutterTem) { 2363 var str = ""; 2364 if (gutterTem !== false) { 2365 var prop = horizontal ? "padding-" : "margin-", dir = horizontal ? "right" : "bottom"; 2366 str = prop + dir + ": " + gutterTem + "px;"; 2367 } 2368 return str; 2369 } 2370 __name(getSlideGutterStyle, "getSlideGutterStyle"); 2371 function getCSSPrefix(name, num) { 2372 var prefix = name.substring(0, name.length - num).toLowerCase(); 2373 if (prefix) { 2374 prefix = "-" + prefix + "-"; 2375 } 2376 return prefix; 2377 } 2378 __name(getCSSPrefix, "getCSSPrefix"); 2379 function getTransitionDurationStyle(speed2) { 2380 return getCSSPrefix(TRANSITIONDURATION, 18) + "transition-duration:" + speed2 / 1e3 + "s;"; 2381 } 2382 __name(getTransitionDurationStyle, "getTransitionDurationStyle"); 2383 function getAnimationDurationStyle(speed2) { 2384 return getCSSPrefix(ANIMATIONDURATION, 17) + "animation-duration:" + speed2 / 1e3 + "s;"; 2385 } 2386 __name(getAnimationDurationStyle, "getAnimationDurationStyle"); 2387 function initStructure() { 2388 var classOuter = "tns-outer", classInner = "tns-inner"; 2389 hasOption("gutter"); 2390 outerWrapper.className = classOuter; 2391 innerWrapper.className = classInner; 2392 outerWrapper.id = slideId + "-ow"; 2393 innerWrapper.id = slideId + "-iw"; 2394 if (container.id === "") { 2395 container.id = slideId; 2396 } 2397 newContainerClasses += PERCENTAGELAYOUT || autoWidth ? " tns-subpixel" : " tns-no-subpixel"; 2398 newContainerClasses += CALC ? " tns-calc" : " tns-no-calc"; 2399 if (autoWidth) { 2400 newContainerClasses += " tns-autowidth"; 2401 } 2402 newContainerClasses += " tns-" + options.axis; 2403 container.className += newContainerClasses; 2404 if (carousel) { 2405 middleWrapper = doc.createElement("div"); 2406 middleWrapper.id = slideId + "-mw"; 2407 middleWrapper.className = "tns-ovh"; 2408 outerWrapper.appendChild(middleWrapper); 2409 middleWrapper.appendChild(innerWrapper); 2410 } else { 2411 outerWrapper.appendChild(innerWrapper); 2412 } 2413 if (autoHeight) { 2414 var wp = middleWrapper ? middleWrapper : innerWrapper; 2415 wp.className += " tns-ah"; 2416 } 2417 containerParent.insertBefore(outerWrapper, container); 2418 innerWrapper.appendChild(container); 2419 forEach(slideItems, function(item, i) { 2420 addClass(item, "tns-item"); 2421 if (!item.id) { 2422 item.id = slideId + "-item" + i; 2423 } 2424 if (!carousel && animateNormal) { 2425 addClass(item, animateNormal); 2426 } 2427 setAttrs(item, { 2428 "aria-hidden": "true", 2429 "tabindex": "-1" 2430 }); 2431 }); 2432 if (cloneCount) { 2433 var fragmentBefore = doc.createDocumentFragment(), fragmentAfter = doc.createDocumentFragment(); 2434 for (var j = cloneCount; j--; ) { 2435 var num = j % slideCount, cloneFirst = slideItems[num].cloneNode(true); 2436 addClass(cloneFirst, slideClonedClass); 2437 removeAttrs(cloneFirst, "id"); 2438 fragmentAfter.insertBefore(cloneFirst, fragmentAfter.firstChild); 2439 if (carousel) { 2440 var cloneLast = slideItems[slideCount - 1 - num].cloneNode(true); 2441 addClass(cloneLast, slideClonedClass); 2442 removeAttrs(cloneLast, "id"); 2443 fragmentBefore.appendChild(cloneLast); 2444 } 2445 } 2446 container.insertBefore(fragmentBefore, container.firstChild); 2447 container.appendChild(fragmentAfter); 2448 slideItems = container.children; 2449 } 2450 } 2451 __name(initStructure, "initStructure"); 2452 function initSliderTransform() { 2453 if (hasOption("autoHeight") || autoWidth || !horizontal) { 2454 var imgs = container.querySelectorAll("img"); 2455 forEach(imgs, function(img) { 2456 var src = img.src; 2457 if (!lazyload) { 2458 if (src && src.indexOf("data:image") < 0) { 2459 img.src = ""; 2460 addEvents(img, imgEvents); 2461 addClass(img, "loading"); 2462 img.src = src; 2463 } else { 2464 imgLoaded(img); 2465 } 2466 } 2467 }); 2468 raf(function() { 2469 imgsLoadedCheck(arrayFromNodeList(imgs), function() { 2470 imgsComplete = true; 2471 }); 2472 }); 2473 if (hasOption("autoHeight")) { 2474 imgs = getImageArray(index, Math.min(index + items - 1, slideCountNew - 1)); 2475 } 2476 lazyload ? initSliderTransformStyleCheck() : raf(function() { 2477 imgsLoadedCheck(arrayFromNodeList(imgs), initSliderTransformStyleCheck); 2478 }); 2479 } else { 2480 if (carousel) { 2481 doContainerTransformSilent(); 2482 } 2483 initTools(); 2484 initEvents(); 2485 } 2486 } 2487 __name(initSliderTransform, "initSliderTransform"); 2488 function initSliderTransformStyleCheck() { 2489 if (autoWidth && slideCount > 1) { 2490 var num = loop ? index : slideCount - 1; 2491 (/* @__PURE__ */ __name((function stylesApplicationCheck() { 2492 var left = slideItems[num].getBoundingClientRect().left; 2493 var right = slideItems[num - 1].getBoundingClientRect().right; 2494 Math.abs(left - right) <= 1 ? initSliderTransformCore() : setTimeout(function() { 2495 stylesApplicationCheck(); 2496 }, 16); 2497 }), "stylesApplicationCheck"))(); 2498 } else { 2499 initSliderTransformCore(); 2500 } 2501 } 2502 __name(initSliderTransformStyleCheck, "initSliderTransformStyleCheck"); 2503 function initSliderTransformCore() { 2504 if (!horizontal || autoWidth) { 2505 setSlidePositions(); 2506 if (autoWidth) { 2507 rightBoundary = getRightBoundary(); 2508 if (freezable) { 2509 freeze = getFreeze(); 2510 } 2511 indexMax = getIndexMax(); 2512 resetVariblesWhenDisable(disable || freeze); 2513 } else { 2514 updateContentWrapperHeight(); 2515 } 2516 } 2517 if (carousel) { 2518 doContainerTransformSilent(); 2519 } 2520 initTools(); 2521 initEvents(); 2522 } 2523 __name(initSliderTransformCore, "initSliderTransformCore"); 2524 function initSheet() { 2525 if (!carousel) { 2526 for (var i = index, l = index + Math.min(slideCount, items); i < l; i++) { 2527 var item = slideItems[i]; 2528 item.style.left = (i - index) * 100 / items + "%"; 2529 addClass(item, animateIn); 2530 removeClass(item, animateNormal); 2531 } 2532 } 2533 if (horizontal) { 2534 if (PERCENTAGELAYOUT || autoWidth) { 2535 addCSSRule(sheet, "#" + slideId + " > .tns-item", "font-size:" + win2.getComputedStyle(slideItems[0]).fontSize + ";", getCssRulesLength(sheet)); 2536 addCSSRule(sheet, "#" + slideId, "font-size:0;", getCssRulesLength(sheet)); 2537 } else if (carousel) { 2538 forEach(slideItems, function(slide, i2) { 2539 slide.style.marginLeft = getSlideMarginLeft(i2); 2540 }); 2541 } 2542 } 2543 if (CSSMQ) { 2544 if (TRANSITIONDURATION) { 2545 var str = middleWrapper && options.autoHeight ? getTransitionDurationStyle(options.speed) : ""; 2546 addCSSRule(sheet, "#" + slideId + "-mw", str, getCssRulesLength(sheet)); 2547 } 2548 str = getInnerWrapperStyles(options.edgePadding, options.gutter, options.fixedWidth, options.speed, options.autoHeight); 2549 addCSSRule(sheet, "#" + slideId + "-iw", str, getCssRulesLength(sheet)); 2550 if (carousel) { 2551 str = horizontal && !autoWidth ? "width:" + getContainerWidth(options.fixedWidth, options.gutter, options.items) + ";" : ""; 2552 if (TRANSITIONDURATION) { 2553 str += getTransitionDurationStyle(speed); 2554 } 2555 addCSSRule(sheet, "#" + slideId, str, getCssRulesLength(sheet)); 2556 } 2557 str = horizontal && !autoWidth ? getSlideWidthStyle(options.fixedWidth, options.gutter, options.items) : ""; 2558 if (options.gutter) { 2559 str += getSlideGutterStyle(options.gutter); 2560 } 2561 if (!carousel) { 2562 if (TRANSITIONDURATION) { 2563 str += getTransitionDurationStyle(speed); 2564 } 2565 if (ANIMATIONDURATION) { 2566 str += getAnimationDurationStyle(speed); 2567 } 2568 } 2569 if (str) { 2570 addCSSRule(sheet, "#" + slideId + " > .tns-item", str, getCssRulesLength(sheet)); 2571 } 2572 } else { 2573 update_carousel_transition_duration(); 2574 innerWrapper.style.cssText = getInnerWrapperStyles(edgePadding, gutter, fixedWidth, autoHeight); 2575 if (carousel && horizontal && !autoWidth) { 2576 container.style.width = getContainerWidth(fixedWidth, gutter, items); 2577 } 2578 var str = horizontal && !autoWidth ? getSlideWidthStyle(fixedWidth, gutter, items) : ""; 2579 if (gutter) { 2580 str += getSlideGutterStyle(gutter); 2581 } 2582 if (str) { 2583 addCSSRule(sheet, "#" + slideId + " > .tns-item", str, getCssRulesLength(sheet)); 2584 } 2585 } 2586 if (responsive && CSSMQ) { 2587 for (var bp in responsive) { 2588 bp = parseInt(bp); 2589 var opts2 = responsive[bp], str = "", middleWrapperStr = "", innerWrapperStr = "", containerStr = "", slideStr = "", itemsBP = !autoWidth ? getOption("items", bp) : null, fixedWidthBP = getOption("fixedWidth", bp), speedBP = getOption("speed", bp), edgePaddingBP = getOption("edgePadding", bp), autoHeightBP = getOption("autoHeight", bp), gutterBP = getOption("gutter", bp); 2590 if (TRANSITIONDURATION && middleWrapper && getOption("autoHeight", bp) && "speed" in opts2) { 2591 middleWrapperStr = "#" + slideId + "-mw{" + getTransitionDurationStyle(speedBP) + "}"; 2592 } 2593 if ("edgePadding" in opts2 || "gutter" in opts2) { 2594 innerWrapperStr = "#" + slideId + "-iw{" + getInnerWrapperStyles(edgePaddingBP, gutterBP, fixedWidthBP, speedBP, autoHeightBP) + "}"; 2595 } 2596 if (carousel && horizontal && !autoWidth && ("fixedWidth" in opts2 || "items" in opts2 || fixedWidth && "gutter" in opts2)) { 2597 containerStr = "width:" + getContainerWidth(fixedWidthBP, gutterBP, itemsBP) + ";"; 2598 } 2599 if (TRANSITIONDURATION && "speed" in opts2) { 2600 containerStr += getTransitionDurationStyle(speedBP); 2601 } 2602 if (containerStr) { 2603 containerStr = "#" + slideId + "{" + containerStr + "}"; 2604 } 2605 if ("fixedWidth" in opts2 || fixedWidth && "gutter" in opts2 || !carousel && "items" in opts2) { 2606 slideStr += getSlideWidthStyle(fixedWidthBP, gutterBP, itemsBP); 2607 } 2608 if ("gutter" in opts2) { 2609 slideStr += getSlideGutterStyle(gutterBP); 2610 } 2611 if (!carousel && "speed" in opts2) { 2612 if (TRANSITIONDURATION) { 2613 slideStr += getTransitionDurationStyle(speedBP); 2614 } 2615 if (ANIMATIONDURATION) { 2616 slideStr += getAnimationDurationStyle(speedBP); 2617 } 2618 } 2619 if (slideStr) { 2620 slideStr = "#" + slideId + " > .tns-item{" + slideStr + "}"; 2621 } 2622 str = middleWrapperStr + innerWrapperStr + containerStr + slideStr; 2623 if (str) { 2624 sheet.insertRule("@media (min-width: " + bp / 16 + "em) {" + str + "}", sheet.cssRules.length); 2625 } 2626 } 2627 } 2628 } 2629 __name(initSheet, "initSheet"); 2630 function initTools() { 2631 updateSlideStatus(); 2632 outerWrapper.insertAdjacentHTML("afterbegin", '<div class="tns-liveregion tns-visually-hidden" aria-live="polite" aria-atomic="true">slide <span class="current">' + getLiveRegionStr() + "</span> of " + slideCount + "</div>"); 2633 liveregionCurrent = outerWrapper.querySelector(".tns-liveregion .current"); 2634 if (hasAutoplay) { 2635 var txt = autoplay ? "stop" : "start"; 2636 if (autoplayButton) { 2637 setAttrs(autoplayButton, { 2638 "data-action": txt 2639 }); 2640 } else if (options.autoplayButtonOutput) { 2641 outerWrapper.insertAdjacentHTML(getInsertPosition(options.autoplayPosition), '<button type="button" data-action="' + txt + '">' + autoplayHtmlStrings[0] + txt + autoplayHtmlStrings[1] + autoplayText[0] + "</button>"); 2642 autoplayButton = outerWrapper.querySelector("[data-action]"); 2643 } 2644 if (autoplayButton) { 2645 addEvents(autoplayButton, { 2646 "click": toggleAutoplay 2647 }); 2648 } 2649 if (autoplay) { 2650 startAutoplay(); 2651 if (autoplayHoverPause) { 2652 addEvents(container, hoverEvents); 2653 } 2654 if (autoplayResetOnVisibility) { 2655 addEvents(container, visibilityEvent); 2656 } 2657 } 2658 } 2659 if (hasNav) { 2660 if (navContainer) { 2661 setAttrs(navContainer, { 2662 "aria-label": "Carousel Pagination" 2663 }); 2664 navItems = navContainer.children; 2665 forEach(navItems, function(item, i2) { 2666 setAttrs(item, { 2667 "data-nav": i2, 2668 "tabindex": "-1", 2669 "aria-label": navStr + (i2 + 1), 2670 "aria-controls": slideId 2671 }); 2672 }); 2673 } else { 2674 var navHtml = "", hiddenStr = navAsThumbnails ? "" : 'style="display:none"'; 2675 for (var i = 0; i < slideCount; i++) { 2676 navHtml += '<button type="button" data-nav="' + i + '" tabindex="-1" aria-controls="' + slideId + '" ' + hiddenStr + ' aria-label="' + navStr + (i + 1) + '"></button>'; 2677 } 2678 navHtml = '<div class="tns-nav" aria-label="Carousel Pagination">' + navHtml + "</div>"; 2679 outerWrapper.insertAdjacentHTML(getInsertPosition(options.navPosition), navHtml); 2680 navContainer = outerWrapper.querySelector(".tns-nav"); 2681 navItems = navContainer.children; 2682 } 2683 updateNavVisibility(); 2684 if (TRANSITIONDURATION) { 2685 var prefix = TRANSITIONDURATION.substring(0, TRANSITIONDURATION.length - 18).toLowerCase(), str = "transition: all " + speed / 1e3 + "s"; 2686 if (prefix) { 2687 str = "-" + prefix + "-" + str; 2688 } 2689 addCSSRule(sheet, "[aria-controls^=" + slideId + "-item]", str, getCssRulesLength(sheet)); 2690 } 2691 setAttrs(navItems[navCurrentIndex], { 2692 "aria-label": navStr + (navCurrentIndex + 1) + navStrCurrent 2693 }); 2694 removeAttrs(navItems[navCurrentIndex], "tabindex"); 2695 addClass(navItems[navCurrentIndex], navActiveClass); 2696 addEvents(navContainer, navEvents); 2697 } 2698 if (hasControls) { 2699 if (!controlsContainer && (!prevButton || !nextButton)) { 2700 outerWrapper.insertAdjacentHTML(getInsertPosition(options.controlsPosition), '<div class="tns-controls" aria-label="Carousel Navigation" tabindex="0"><button type="button" data-controls="prev" tabindex="-1" aria-controls="' + slideId + '">' + controlsText[0] + '</button><button type="button" data-controls="next" tabindex="-1" aria-controls="' + slideId + '">' + controlsText[1] + "</button></div>"); 2701 controlsContainer = outerWrapper.querySelector(".tns-controls"); 2702 } 2703 if (!prevButton || !nextButton) { 2704 prevButton = controlsContainer.children[0]; 2705 nextButton = controlsContainer.children[1]; 2706 } 2707 if (options.controlsContainer) { 2708 setAttrs(controlsContainer, { 2709 "aria-label": "Carousel Navigation", 2710 "tabindex": "0" 2711 }); 2712 } 2713 if (options.controlsContainer || options.prevButton && options.nextButton) { 2714 setAttrs([prevButton, nextButton], { 2715 "aria-controls": slideId, 2716 "tabindex": "-1" 2717 }); 2718 } 2719 if (options.controlsContainer || options.prevButton && options.nextButton) { 2720 setAttrs(prevButton, { 2721 "data-controls": "prev" 2722 }); 2723 setAttrs(nextButton, { 2724 "data-controls": "next" 2725 }); 2726 } 2727 prevIsButton = isButton(prevButton); 2728 nextIsButton = isButton(nextButton); 2729 updateControlsStatus(); 2730 if (controlsContainer) { 2731 addEvents(controlsContainer, controlsEvents); 2732 } else { 2733 addEvents(prevButton, controlsEvents); 2734 addEvents(nextButton, controlsEvents); 2735 } 2736 } 2737 disableUI(); 2738 } 2739 __name(initTools, "initTools"); 2740 function initEvents() { 2741 if (carousel && TRANSITIONEND) { 2742 var eve = {}; 2743 eve[TRANSITIONEND] = onTransitionEnd; 2744 addEvents(container, eve); 2745 } 2746 if (touch) { 2747 addEvents(container, touchEvents, options.preventScrollOnTouch); 2748 } 2749 if (mouseDrag) { 2750 addEvents(container, dragEvents); 2751 } 2752 if (arrowKeys) { 2753 addEvents(doc, docmentKeydownEvent); 2754 } 2755 if (nested === "inner") { 2756 events.on("outerResized", function() { 2757 resizeTasks(); 2758 events.emit("innerLoaded", info()); 2759 }); 2760 } else if (responsive || fixedWidth || autoWidth || autoHeight || !horizontal) { 2761 addEvents(win2, { 2762 "resize": onResize 2763 }); 2764 } 2765 if (autoHeight) { 2766 if (nested === "outer") { 2767 events.on("innerLoaded", doAutoHeight); 2768 } else if (!disable) { 2769 doAutoHeight(); 2770 } 2771 } 2772 doLazyLoad(); 2773 if (disable) { 2774 disableSlider(); 2775 } else if (freeze) { 2776 freezeSlider(); 2777 } 2778 events.on("indexChanged", additionalUpdates); 2779 if (nested === "inner") { 2780 events.emit("innerLoaded", info()); 2781 } 2782 if (typeof onInit === "function") { 2783 onInit(info()); 2784 } 2785 isOn = true; 2786 } 2787 __name(initEvents, "initEvents"); 2788 function destroy2() { 2789 sheet.disabled = true; 2790 if (sheet.ownerNode) { 2791 sheet.ownerNode.remove(); 2792 } 2793 removeEvents(win2, { 2794 "resize": onResize 2795 }); 2796 if (arrowKeys) { 2797 removeEvents(doc, docmentKeydownEvent); 2798 } 2799 if (controlsContainer) { 2800 removeEvents(controlsContainer, controlsEvents); 2801 } 2802 if (navContainer) { 2803 removeEvents(navContainer, navEvents); 2804 } 2805 removeEvents(container, hoverEvents); 2806 removeEvents(container, visibilityEvent); 2807 if (autoplayButton) { 2808 removeEvents(autoplayButton, { 2809 "click": toggleAutoplay 2810 }); 2811 } 2812 if (autoplay) { 2813 clearInterval(autoplayTimer); 2814 } 2815 if (carousel && TRANSITIONEND) { 2816 var eve = {}; 2817 eve[TRANSITIONEND] = onTransitionEnd; 2818 removeEvents(container, eve); 2819 } 2820 if (touch) { 2821 removeEvents(container, touchEvents); 2822 } 2823 if (mouseDrag) { 2824 removeEvents(container, dragEvents); 2825 } 2826 var htmlList = [containerHTML, controlsContainerHTML, prevButtonHTML, nextButtonHTML, navContainerHTML, autoplayButtonHTML]; 2827 tnsList.forEach(function(item, i) { 2828 var el = item === "container" ? outerWrapper : options[item]; 2829 if (typeof el === "object" && el) { 2830 var prevEl = el.previousElementSibling ? el.previousElementSibling : false, parentEl = el.parentNode; 2831 el.outerHTML = htmlList[i]; 2832 options[item] = prevEl ? prevEl.nextElementSibling : parentEl.firstElementChild; 2833 } 2834 }); 2835 tnsList = animateIn = animateOut = animateDelay = animateNormal = horizontal = outerWrapper = innerWrapper = container = containerParent = containerHTML = slideItems = slideCount = breakpointZone = windowWidth = autoWidth = fixedWidth = edgePadding = gutter = viewport = items = slideBy = viewportMax = arrowKeys = speed = rewind = loop = autoHeight = sheet = lazyload = slidePositions = slideItemsOut = cloneCount = slideCountNew = hasRightDeadZone = rightBoundary = updateIndexBeforeTransform = transformAttr = transformPrefix = transformPostfix = getIndexMax = index = indexCached = indexMin = indexMax = swipeAngle = moveDirectionExpected = running = onInit = events = newContainerClasses = slideId = disable = disabled = freezable = freeze = frozen = controlsEvents = navEvents = hoverEvents = visibilityEvent = docmentKeydownEvent = touchEvents = dragEvents = hasControls = hasNav = navAsThumbnails = hasAutoplay = hasTouch = hasMouseDrag = slideActiveClass = imgCompleteClass = imgEvents = imgsComplete = controls = controlsText = controlsContainer = controlsContainerHTML = prevButton = nextButton = prevIsButton = nextIsButton = nav = navContainer = navContainerHTML = navItems = pages = pagesCached = navClicked = navCurrentIndex = navCurrentIndexCached = navActiveClass = navStr = navStrCurrent = autoplay = autoplayTimeout = autoplayDirection = autoplayText = autoplayHoverPause = autoplayButton = autoplayButtonHTML = autoplayResetOnVisibility = autoplayHtmlStrings = autoplayTimer = animating = autoplayHoverPaused = autoplayUserPaused = autoplayVisibilityPaused = initPosition = lastPosition = translateInit = panStart = rafIndex = getDist = touch = mouseDrag = null; 2836 for (var a in this) { 2837 if (a !== "rebuild") { 2838 this[a] = null; 2839 } 2840 } 2841 isOn = false; 2842 } 2843 __name(destroy2, "destroy"); 2844 function onResize(e) { 2845 raf(function() { 2846 resizeTasks(getEvent(e)); 2847 }); 2848 } 2849 __name(onResize, "onResize"); 2850 function resizeTasks(e) { 2851 if (!isOn) { 2852 return; 2853 } 2854 if (nested === "outer") { 2855 events.emit("outerResized", info(e)); 2856 } 2857 windowWidth = getWindowWidth(); 2858 var bpChanged, breakpointZoneTem = breakpointZone, needContainerTransform = false; 2859 if (responsive) { 2860 setBreakpointZone(); 2861 bpChanged = breakpointZoneTem !== breakpointZone; 2862 if (bpChanged) { 2863 events.emit("newBreakpointStart", info(e)); 2864 } 2865 } 2866 var indChanged, itemsChanged, itemsTem = items, disableTem = disable, freezeTem = freeze, arrowKeysTem = arrowKeys, controlsTem = controls, navTem = nav, touchTem = touch, mouseDragTem = mouseDrag, autoplayTem = autoplay, autoplayHoverPauseTem = autoplayHoverPause, autoplayResetOnVisibilityTem = autoplayResetOnVisibility, indexTem = index; 2867 if (bpChanged) { 2868 var fixedWidthTem = fixedWidth, autoHeightTem = autoHeight, controlsTextTem = controlsText, centerTem = center, autoplayTextTem = autoplayText; 2869 if (!CSSMQ) { 2870 var gutterTem = gutter, edgePaddingTem = edgePadding; 2871 } 2872 } 2873 arrowKeys = getOption("arrowKeys"); 2874 controls = getOption("controls"); 2875 nav = getOption("nav"); 2876 touch = getOption("touch"); 2877 center = getOption("center"); 2878 mouseDrag = getOption("mouseDrag"); 2879 autoplay = getOption("autoplay"); 2880 autoplayHoverPause = getOption("autoplayHoverPause"); 2881 autoplayResetOnVisibility = getOption("autoplayResetOnVisibility"); 2882 if (bpChanged) { 2883 disable = getOption("disable"); 2884 fixedWidth = getOption("fixedWidth"); 2885 speed = getOption("speed"); 2886 autoHeight = getOption("autoHeight"); 2887 controlsText = getOption("controlsText"); 2888 autoplayText = getOption("autoplayText"); 2889 autoplayTimeout = getOption("autoplayTimeout"); 2890 if (!CSSMQ) { 2891 edgePadding = getOption("edgePadding"); 2892 gutter = getOption("gutter"); 2893 } 2894 } 2895 resetVariblesWhenDisable(disable); 2896 viewport = getViewportWidth(); 2897 if ((!horizontal || autoWidth) && !disable) { 2898 setSlidePositions(); 2899 if (!horizontal) { 2900 updateContentWrapperHeight(); 2901 needContainerTransform = true; 2902 } 2903 } 2904 if (fixedWidth || autoWidth) { 2905 rightBoundary = getRightBoundary(); 2906 indexMax = getIndexMax(); 2907 } 2908 if (bpChanged || fixedWidth) { 2909 items = getOption("items"); 2910 slideBy = getOption("slideBy"); 2911 itemsChanged = items !== itemsTem; 2912 if (itemsChanged) { 2913 if (!fixedWidth && !autoWidth) { 2914 indexMax = getIndexMax(); 2915 } 2916 updateIndex(); 2917 } 2918 } 2919 if (bpChanged) { 2920 if (disable !== disableTem) { 2921 if (disable) { 2922 disableSlider(); 2923 } else { 2924 enableSlider(); 2925 } 2926 } 2927 } 2928 if (freezable && (bpChanged || fixedWidth || autoWidth)) { 2929 freeze = getFreeze(); 2930 if (freeze !== freezeTem) { 2931 if (freeze) { 2932 doContainerTransform(getContainerTransformValue(getStartIndex(0))); 2933 freezeSlider(); 2934 } else { 2935 unfreezeSlider(); 2936 needContainerTransform = true; 2937 } 2938 } 2939 } 2940 resetVariblesWhenDisable(disable || freeze); 2941 if (!autoplay) { 2942 autoplayHoverPause = autoplayResetOnVisibility = false; 2943 } 2944 if (arrowKeys !== arrowKeysTem) { 2945 arrowKeys ? addEvents(doc, docmentKeydownEvent) : removeEvents(doc, docmentKeydownEvent); 2946 } 2947 if (controls !== controlsTem) { 2948 if (controls) { 2949 if (controlsContainer) { 2950 showElement(controlsContainer); 2951 } else { 2952 if (prevButton) { 2953 showElement(prevButton); 2954 } 2955 if (nextButton) { 2956 showElement(nextButton); 2957 } 2958 } 2959 } else { 2960 if (controlsContainer) { 2961 hideElement(controlsContainer); 2962 } else { 2963 if (prevButton) { 2964 hideElement(prevButton); 2965 } 2966 if (nextButton) { 2967 hideElement(nextButton); 2968 } 2969 } 2970 } 2971 } 2972 if (nav !== navTem) { 2973 if (nav) { 2974 showElement(navContainer); 2975 updateNavVisibility(); 2976 } else { 2977 hideElement(navContainer); 2978 } 2979 } 2980 if (touch !== touchTem) { 2981 touch ? addEvents(container, touchEvents, options.preventScrollOnTouch) : removeEvents(container, touchEvents); 2982 } 2983 if (mouseDrag !== mouseDragTem) { 2984 mouseDrag ? addEvents(container, dragEvents) : removeEvents(container, dragEvents); 2985 } 2986 if (autoplay !== autoplayTem) { 2987 if (autoplay) { 2988 if (autoplayButton) { 2989 showElement(autoplayButton); 2990 } 2991 if (!animating && !autoplayUserPaused) { 2992 startAutoplay(); 2993 } 2994 } else { 2995 if (autoplayButton) { 2996 hideElement(autoplayButton); 2997 } 2998 if (animating) { 2999 stopAutoplay(); 3000 } 3001 } 3002 } 3003 if (autoplayHoverPause !== autoplayHoverPauseTem) { 3004 autoplayHoverPause ? addEvents(container, hoverEvents) : removeEvents(container, hoverEvents); 3005 } 3006 if (autoplayResetOnVisibility !== autoplayResetOnVisibilityTem) { 3007 autoplayResetOnVisibility ? addEvents(doc, visibilityEvent) : removeEvents(doc, visibilityEvent); 3008 } 3009 if (bpChanged) { 3010 if (fixedWidth !== fixedWidthTem || center !== centerTem) { 3011 needContainerTransform = true; 3012 } 3013 if (autoHeight !== autoHeightTem) { 3014 if (!autoHeight) { 3015 innerWrapper.style.height = ""; 3016 } 3017 } 3018 if (controls && controlsText !== controlsTextTem) { 3019 prevButton.innerHTML = controlsText[0]; 3020 nextButton.innerHTML = controlsText[1]; 3021 } 3022 if (autoplayButton && autoplayText !== autoplayTextTem) { 3023 var i = autoplay ? 1 : 0, html = autoplayButton.innerHTML, len = html.length - autoplayTextTem[i].length; 3024 if (html.substring(len) === autoplayTextTem[i]) { 3025 autoplayButton.innerHTML = html.substring(0, len) + autoplayText[i]; 3026 } 3027 } 3028 } else { 3029 if (center && (fixedWidth || autoWidth)) { 3030 needContainerTransform = true; 3031 } 3032 } 3033 if (itemsChanged || fixedWidth && !autoWidth) { 3034 pages = getPages(); 3035 updateNavVisibility(); 3036 } 3037 indChanged = index !== indexTem; 3038 if (indChanged) { 3039 events.emit("indexChanged", info()); 3040 needContainerTransform = true; 3041 } else if (itemsChanged) { 3042 if (!indChanged) { 3043 additionalUpdates(); 3044 } 3045 } else if (fixedWidth || autoWidth) { 3046 doLazyLoad(); 3047 updateSlideStatus(); 3048 updateLiveRegion(); 3049 } 3050 if (itemsChanged && !carousel) { 3051 updateGallerySlidePositions(); 3052 } 3053 if (!disable && !freeze) { 3054 if (bpChanged && !CSSMQ) { 3055 if (edgePadding !== edgePaddingTem || gutter !== gutterTem) { 3056 innerWrapper.style.cssText = getInnerWrapperStyles(edgePadding, gutter, fixedWidth, speed, autoHeight); 3057 } 3058 if (horizontal) { 3059 if (carousel) { 3060 container.style.width = getContainerWidth(fixedWidth, gutter, items); 3061 } 3062 var str = getSlideWidthStyle(fixedWidth, gutter, items) + getSlideGutterStyle(gutter); 3063 removeCSSRule(sheet, getCssRulesLength(sheet) - 1); 3064 addCSSRule(sheet, "#" + slideId + " > .tns-item", str, getCssRulesLength(sheet)); 3065 } 3066 } 3067 if (autoHeight) { 3068 doAutoHeight(); 3069 } 3070 if (needContainerTransform) { 3071 doContainerTransformSilent(); 3072 indexCached = index; 3073 } 3074 } 3075 if (bpChanged) { 3076 events.emit("newBreakpointEnd", info(e)); 3077 } 3078 } 3079 __name(resizeTasks, "resizeTasks"); 3080 function getFreeze() { 3081 if (!fixedWidth && !autoWidth) { 3082 var a = center ? items - (items - 1) / 2 : items; 3083 return slideCount <= a; 3084 } 3085 var width = fixedWidth ? (fixedWidth + gutter) * slideCount : slidePositions[slideCount], vp = edgePadding ? viewport + edgePadding * 2 : viewport + gutter; 3086 if (center) { 3087 vp -= fixedWidth ? (viewport - fixedWidth) / 2 : (viewport - (slidePositions[index + 1] - slidePositions[index] - gutter)) / 2; 3088 } 3089 return width <= vp; 3090 } 3091 __name(getFreeze, "getFreeze"); 3092 function setBreakpointZone() { 3093 breakpointZone = 0; 3094 for (var bp in responsive) { 3095 bp = parseInt(bp); 3096 if (windowWidth >= bp) { 3097 breakpointZone = bp; 3098 } 3099 } 3100 } 3101 __name(setBreakpointZone, "setBreakpointZone"); 3102 var updateIndex = /* @__PURE__ */ (function() { 3103 return loop ? carousel ? ( 3104 // loop + carousel 3105 function() { 3106 var leftEdge = indexMin, rightEdge = indexMax; 3107 leftEdge += slideBy; 3108 rightEdge -= slideBy; 3109 if (edgePadding) { 3110 leftEdge += 1; 3111 rightEdge -= 1; 3112 } else if (fixedWidth) { 3113 if ((viewport + gutter) % (fixedWidth + gutter)) { 3114 rightEdge -= 1; 3115 } 3116 } 3117 if (cloneCount) { 3118 if (index > rightEdge) { 3119 index -= slideCount; 3120 } else if (index < leftEdge) { 3121 index += slideCount; 3122 } 3123 } 3124 } 3125 ) : ( 3126 // loop + gallery 3127 function() { 3128 if (index > indexMax) { 3129 while (index >= indexMin + slideCount) { 3130 index -= slideCount; 3131 } 3132 } else if (index < indexMin) { 3133 while (index <= indexMax - slideCount) { 3134 index += slideCount; 3135 } 3136 } 3137 } 3138 ) : ( 3139 // non-loop 3140 function() { 3141 index = Math.max(indexMin, Math.min(indexMax, index)); 3142 } 3143 ); 3144 })(); 3145 function disableUI() { 3146 if (!autoplay && autoplayButton) { 3147 hideElement(autoplayButton); 3148 } 3149 if (!nav && navContainer) { 3150 hideElement(navContainer); 3151 } 3152 if (!controls) { 3153 if (controlsContainer) { 3154 hideElement(controlsContainer); 3155 } else { 3156 if (prevButton) { 3157 hideElement(prevButton); 3158 } 3159 if (nextButton) { 3160 hideElement(nextButton); 3161 } 3162 } 3163 } 3164 } 3165 __name(disableUI, "disableUI"); 3166 function enableUI() { 3167 if (autoplay && autoplayButton) { 3168 showElement(autoplayButton); 3169 } 3170 if (nav && navContainer) { 3171 showElement(navContainer); 3172 } 3173 if (controls) { 3174 if (controlsContainer) { 3175 showElement(controlsContainer); 3176 } else { 3177 if (prevButton) { 3178 showElement(prevButton); 3179 } 3180 if (nextButton) { 3181 showElement(nextButton); 3182 } 3183 } 3184 } 3185 } 3186 __name(enableUI, "enableUI"); 3187 function freezeSlider() { 3188 if (frozen) { 3189 return; 3190 } 3191 if (edgePadding) { 3192 innerWrapper.style.margin = "0px"; 3193 } 3194 if (cloneCount) { 3195 var str = "tns-transparent"; 3196 for (var i = cloneCount; i--; ) { 3197 if (carousel) { 3198 addClass(slideItems[i], str); 3199 } 3200 addClass(slideItems[slideCountNew - i - 1], str); 3201 } 3202 } 3203 disableUI(); 3204 frozen = true; 3205 } 3206 __name(freezeSlider, "freezeSlider"); 3207 function unfreezeSlider() { 3208 if (!frozen) { 3209 return; 3210 } 3211 if (edgePadding && CSSMQ) { 3212 innerWrapper.style.margin = ""; 3213 } 3214 if (cloneCount) { 3215 var str = "tns-transparent"; 3216 for (var i = cloneCount; i--; ) { 3217 if (carousel) { 3218 removeClass(slideItems[i], str); 3219 } 3220 removeClass(slideItems[slideCountNew - i - 1], str); 3221 } 3222 } 3223 enableUI(); 3224 frozen = false; 3225 } 3226 __name(unfreezeSlider, "unfreezeSlider"); 3227 function disableSlider() { 3228 if (disabled) { 3229 return; 3230 } 3231 sheet.disabled = true; 3232 container.className = container.className.replace(newContainerClasses.substring(1), ""); 3233 removeAttrs(container, ["style"]); 3234 if (loop) { 3235 for (var j = cloneCount; j--; ) { 3236 if (carousel) { 3237 hideElement(slideItems[j]); 3238 } 3239 hideElement(slideItems[slideCountNew - j - 1]); 3240 } 3241 } 3242 if (!horizontal || !carousel) { 3243 removeAttrs(innerWrapper, ["style"]); 3244 } 3245 if (!carousel) { 3246 for (var i = index, l = index + slideCount; i < l; i++) { 3247 var item = slideItems[i]; 3248 removeAttrs(item, ["style"]); 3249 removeClass(item, animateIn); 3250 removeClass(item, animateNormal); 3251 } 3252 } 3253 disableUI(); 3254 disabled = true; 3255 } 3256 __name(disableSlider, "disableSlider"); 3257 function enableSlider() { 3258 if (!disabled) { 3259 return; 3260 } 3261 sheet.disabled = false; 3262 container.className += newContainerClasses; 3263 doContainerTransformSilent(); 3264 if (loop) { 3265 for (var j = cloneCount; j--; ) { 3266 if (carousel) { 3267 showElement(slideItems[j]); 3268 } 3269 showElement(slideItems[slideCountNew - j - 1]); 3270 } 3271 } 3272 if (!carousel) { 3273 for (var i = index, l = index + slideCount; i < l; i++) { 3274 var item = slideItems[i], classN = i < index + items ? animateIn : animateNormal; 3275 item.style.left = (i - index) * 100 / items + "%"; 3276 addClass(item, classN); 3277 } 3278 } 3279 enableUI(); 3280 disabled = false; 3281 } 3282 __name(enableSlider, "enableSlider"); 3283 function updateLiveRegion() { 3284 var str = getLiveRegionStr(); 3285 if (liveregionCurrent.innerHTML !== str) { 3286 liveregionCurrent.innerHTML = str; 3287 } 3288 } 3289 __name(updateLiveRegion, "updateLiveRegion"); 3290 function getLiveRegionStr() { 3291 var arr = getVisibleSlideRange(), start = arr[0] + 1, end = arr[1] + 1; 3292 return start === end ? start + "" : start + " to " + end; 3293 } 3294 __name(getLiveRegionStr, "getLiveRegionStr"); 3295 function getVisibleSlideRange(val2) { 3296 if (val2 == null) { 3297 val2 = getContainerTransformValue(); 3298 } 3299 var start = index, end, rangestart, rangeend; 3300 if (center || edgePadding) { 3301 if (autoWidth || fixedWidth) { 3302 rangestart = -(parseFloat(val2) + edgePadding); 3303 rangeend = rangestart + viewport + edgePadding * 2; 3304 } 3305 } else { 3306 if (autoWidth) { 3307 rangestart = slidePositions[index]; 3308 rangeend = rangestart + viewport; 3309 } 3310 } 3311 if (autoWidth) { 3312 slidePositions.forEach(function(point, i) { 3313 if (i < slideCountNew) { 3314 if ((center || edgePadding) && point <= rangestart + 0.5) { 3315 start = i; 3316 } 3317 if (rangeend - point >= 0.5) { 3318 end = i; 3319 } 3320 } 3321 }); 3322 } else { 3323 if (fixedWidth) { 3324 var cell = fixedWidth + gutter; 3325 if (center || edgePadding) { 3326 start = Math.floor(rangestart / cell); 3327 end = Math.ceil(rangeend / cell - 1); 3328 } else { 3329 end = start + Math.ceil(viewport / cell) - 1; 3330 } 3331 } else { 3332 if (center || edgePadding) { 3333 var a = items - 1; 3334 if (center) { 3335 start -= a / 2; 3336 end = index + a / 2; 3337 } else { 3338 end = index + a; 3339 } 3340 if (edgePadding) { 3341 var b = edgePadding * items / viewport; 3342 start -= b; 3343 end += b; 3344 } 3345 start = Math.floor(start); 3346 end = Math.ceil(end); 3347 } else { 3348 end = start + items - 1; 3349 } 3350 } 3351 start = Math.max(start, 0); 3352 end = Math.min(end, slideCountNew - 1); 3353 } 3354 return [start, end]; 3355 } 3356 __name(getVisibleSlideRange, "getVisibleSlideRange"); 3357 function doLazyLoad() { 3358 if (lazyload && !disable) { 3359 var arg = getVisibleSlideRange(); 3360 arg.push(lazyloadSelector); 3361 getImageArray.apply(null, arg).forEach(function(img) { 3362 if (!hasClass(img, imgCompleteClass)) { 3363 var eve = {}; 3364 eve[TRANSITIONEND] = function(e) { 3365 e.stopPropagation(); 3366 }; 3367 addEvents(img, eve); 3368 addEvents(img, imgEvents); 3369 img.src = getAttr(img, "data-src"); 3370 var srcset = getAttr(img, "data-srcset"); 3371 if (srcset) { 3372 img.srcset = srcset; 3373 } 3374 addClass(img, "loading"); 3375 } 3376 }); 3377 } 3378 } 3379 __name(doLazyLoad, "doLazyLoad"); 3380 function onImgLoaded(e) { 3381 imgLoaded(getTarget(e)); 3382 } 3383 __name(onImgLoaded, "onImgLoaded"); 3384 function onImgFailed(e) { 3385 imgFailed(getTarget(e)); 3386 } 3387 __name(onImgFailed, "onImgFailed"); 3388 function imgLoaded(img) { 3389 addClass(img, "loaded"); 3390 imgCompleted(img); 3391 } 3392 __name(imgLoaded, "imgLoaded"); 3393 function imgFailed(img) { 3394 addClass(img, "failed"); 3395 imgCompleted(img); 3396 } 3397 __name(imgFailed, "imgFailed"); 3398 function imgCompleted(img) { 3399 addClass(img, imgCompleteClass); 3400 removeClass(img, "loading"); 3401 removeEvents(img, imgEvents); 3402 } 3403 __name(imgCompleted, "imgCompleted"); 3404 function getImageArray(start, end, imgSelector) { 3405 var imgs = []; 3406 if (!imgSelector) { 3407 imgSelector = "img"; 3408 } 3409 while (start <= end) { 3410 forEach(slideItems[start].querySelectorAll(imgSelector), function(img) { 3411 imgs.push(img); 3412 }); 3413 start++; 3414 } 3415 return imgs; 3416 } 3417 __name(getImageArray, "getImageArray"); 3418 function doAutoHeight() { 3419 var imgs = getImageArray.apply(null, getVisibleSlideRange()); 3420 raf(function() { 3421 imgsLoadedCheck(imgs, updateInnerWrapperHeight); 3422 }); 3423 } 3424 __name(doAutoHeight, "doAutoHeight"); 3425 function imgsLoadedCheck(imgs, cb) { 3426 if (imgsComplete) { 3427 return cb(); 3428 } 3429 imgs.forEach(function(img, index2) { 3430 if (!lazyload && img.complete) { 3431 imgCompleted(img); 3432 } 3433 if (hasClass(img, imgCompleteClass)) { 3434 imgs.splice(index2, 1); 3435 } 3436 }); 3437 if (!imgs.length) { 3438 return cb(); 3439 } 3440 raf(function() { 3441 imgsLoadedCheck(imgs, cb); 3442 }); 3443 } 3444 __name(imgsLoadedCheck, "imgsLoadedCheck"); 3445 function additionalUpdates() { 3446 doLazyLoad(); 3447 updateSlideStatus(); 3448 updateLiveRegion(); 3449 updateControlsStatus(); 3450 updateNavStatus(); 3451 } 3452 __name(additionalUpdates, "additionalUpdates"); 3453 function update_carousel_transition_duration() { 3454 if (carousel && autoHeight) { 3455 middleWrapper.style[TRANSITIONDURATION] = speed / 1e3 + "s"; 3456 } 3457 } 3458 __name(update_carousel_transition_duration, "update_carousel_transition_duration"); 3459 function getMaxSlideHeight(slideStart, slideRange) { 3460 var heights = []; 3461 for (var i = slideStart, l = Math.min(slideStart + slideRange, slideCountNew); i < l; i++) { 3462 heights.push(slideItems[i].offsetHeight); 3463 } 3464 return Math.max.apply(null, heights); 3465 } 3466 __name(getMaxSlideHeight, "getMaxSlideHeight"); 3467 function updateInnerWrapperHeight() { 3468 var maxHeight = autoHeight ? getMaxSlideHeight(index, items) : getMaxSlideHeight(cloneCount, slideCount), wp = middleWrapper ? middleWrapper : innerWrapper; 3469 if (wp.style.height !== maxHeight) { 3470 wp.style.height = maxHeight + "px"; 3471 } 3472 } 3473 __name(updateInnerWrapperHeight, "updateInnerWrapperHeight"); 3474 function setSlidePositions() { 3475 slidePositions = [0]; 3476 var attr = horizontal ? "left" : "top", attr2 = horizontal ? "right" : "bottom", base = slideItems[0].getBoundingClientRect()[attr]; 3477 forEach(slideItems, function(item, i) { 3478 if (i) { 3479 slidePositions.push(item.getBoundingClientRect()[attr] - base); 3480 } 3481 if (i === slideCountNew - 1) { 3482 slidePositions.push(item.getBoundingClientRect()[attr2] - base); 3483 } 3484 }); 3485 } 3486 __name(setSlidePositions, "setSlidePositions"); 3487 function updateSlideStatus() { 3488 var range = getVisibleSlideRange(), start = range[0], end = range[1]; 3489 forEach(slideItems, function(item, i) { 3490 if (i >= start && i <= end) { 3491 if (hasAttr(item, "aria-hidden")) { 3492 removeAttrs(item, ["aria-hidden", "tabindex"]); 3493 addClass(item, slideActiveClass); 3494 } 3495 } else { 3496 if (!hasAttr(item, "aria-hidden")) { 3497 setAttrs(item, { 3498 "aria-hidden": "true", 3499 "tabindex": "-1" 3500 }); 3501 removeClass(item, slideActiveClass); 3502 } 3503 } 3504 }); 3505 } 3506 __name(updateSlideStatus, "updateSlideStatus"); 3507 function updateGallerySlidePositions() { 3508 var l = index + Math.min(slideCount, items); 3509 for (var i = slideCountNew; i--; ) { 3510 var item = slideItems[i]; 3511 if (i >= index && i < l) { 3512 addClass(item, "tns-moving"); 3513 item.style.left = (i - index) * 100 / items + "%"; 3514 addClass(item, animateIn); 3515 removeClass(item, animateNormal); 3516 } else if (item.style.left) { 3517 item.style.left = ""; 3518 addClass(item, animateNormal); 3519 removeClass(item, animateIn); 3520 } 3521 removeClass(item, animateOut); 3522 } 3523 setTimeout(function() { 3524 forEach(slideItems, function(el) { 3525 removeClass(el, "tns-moving"); 3526 }); 3527 }, 300); 3528 } 3529 __name(updateGallerySlidePositions, "updateGallerySlidePositions"); 3530 function updateNavStatus() { 3531 if (nav) { 3532 navCurrentIndex = navClicked >= 0 ? navClicked : getCurrentNavIndex(); 3533 navClicked = -1; 3534 if (navCurrentIndex !== navCurrentIndexCached) { 3535 var navPrev = navItems[navCurrentIndexCached], navCurrent = navItems[navCurrentIndex]; 3536 setAttrs(navPrev, { 3537 "tabindex": "-1", 3538 "aria-label": navStr + (navCurrentIndexCached + 1) 3539 }); 3540 removeClass(navPrev, navActiveClass); 3541 setAttrs(navCurrent, { 3542 "aria-label": navStr + (navCurrentIndex + 1) + navStrCurrent 3543 }); 3544 removeAttrs(navCurrent, "tabindex"); 3545 addClass(navCurrent, navActiveClass); 3546 navCurrentIndexCached = navCurrentIndex; 3547 } 3548 } 3549 } 3550 __name(updateNavStatus, "updateNavStatus"); 3551 function getLowerCaseNodeName(el) { 3552 return el.nodeName.toLowerCase(); 3553 } 3554 __name(getLowerCaseNodeName, "getLowerCaseNodeName"); 3555 function isButton(el) { 3556 return getLowerCaseNodeName(el) === "button"; 3557 } 3558 __name(isButton, "isButton"); 3559 function isAriaDisabled(el) { 3560 return el.getAttribute("aria-disabled") === "true"; 3561 } 3562 __name(isAriaDisabled, "isAriaDisabled"); 3563 function disEnableElement(isButton2, el, val2) { 3564 if (isButton2) { 3565 el.disabled = val2; 3566 } else { 3567 el.setAttribute("aria-disabled", val2.toString()); 3568 } 3569 } 3570 __name(disEnableElement, "disEnableElement"); 3571 function updateControlsStatus() { 3572 if (!controls || rewind || loop) { 3573 return; 3574 } 3575 var prevDisabled = prevIsButton ? prevButton.disabled : isAriaDisabled(prevButton), nextDisabled = nextIsButton ? nextButton.disabled : isAriaDisabled(nextButton), disablePrev = index <= indexMin ? true : false, disableNext = !rewind && index >= indexMax ? true : false; 3576 if (disablePrev && !prevDisabled) { 3577 disEnableElement(prevIsButton, prevButton, true); 3578 } 3579 if (!disablePrev && prevDisabled) { 3580 disEnableElement(prevIsButton, prevButton, false); 3581 } 3582 if (disableNext && !nextDisabled) { 3583 disEnableElement(nextIsButton, nextButton, true); 3584 } 3585 if (!disableNext && nextDisabled) { 3586 disEnableElement(nextIsButton, nextButton, false); 3587 } 3588 } 3589 __name(updateControlsStatus, "updateControlsStatus"); 3590 function resetDuration(el, str) { 3591 if (TRANSITIONDURATION) { 3592 el.style[TRANSITIONDURATION] = str; 3593 } 3594 } 3595 __name(resetDuration, "resetDuration"); 3596 function getSliderWidth() { 3597 return fixedWidth ? (fixedWidth + gutter) * slideCountNew : slidePositions[slideCountNew]; 3598 } 3599 __name(getSliderWidth, "getSliderWidth"); 3600 function getCenterGap(num) { 3601 if (num == null) { 3602 num = index; 3603 } 3604 var gap = edgePadding ? gutter : 0; 3605 return autoWidth ? (viewport - gap - (slidePositions[num + 1] - slidePositions[num] - gutter)) / 2 : fixedWidth ? (viewport - fixedWidth) / 2 : (items - 1) / 2; 3606 } 3607 __name(getCenterGap, "getCenterGap"); 3608 function getRightBoundary() { 3609 var gap = edgePadding ? gutter : 0, result = viewport + gap - getSliderWidth(); 3610 if (center && !loop) { 3611 result = fixedWidth ? -(fixedWidth + gutter) * (slideCountNew - 1) - getCenterGap() : getCenterGap(slideCountNew - 1) - slidePositions[slideCountNew - 1]; 3612 } 3613 if (result > 0) { 3614 result = 0; 3615 } 3616 return result; 3617 } 3618 __name(getRightBoundary, "getRightBoundary"); 3619 function getContainerTransformValue(num) { 3620 if (num == null) { 3621 num = index; 3622 } 3623 var val2; 3624 if (horizontal && !autoWidth) { 3625 if (fixedWidth) { 3626 val2 = -(fixedWidth + gutter) * num; 3627 if (center) { 3628 val2 += getCenterGap(); 3629 } 3630 } else { 3631 var denominator = TRANSFORM ? slideCountNew : items; 3632 if (center) { 3633 num -= getCenterGap(); 3634 } 3635 val2 = -num * 100 / denominator; 3636 } 3637 } else { 3638 val2 = -slidePositions[num]; 3639 if (center && autoWidth) { 3640 val2 += getCenterGap(); 3641 } 3642 } 3643 if (hasRightDeadZone) { 3644 val2 = Math.max(val2, rightBoundary); 3645 } 3646 val2 += horizontal && !autoWidth && !fixedWidth ? "%" : "px"; 3647 return val2; 3648 } 3649 __name(getContainerTransformValue, "getContainerTransformValue"); 3650 function doContainerTransformSilent(val2) { 3651 resetDuration(container, "0s"); 3652 doContainerTransform(val2); 3653 } 3654 __name(doContainerTransformSilent, "doContainerTransformSilent"); 3655 function doContainerTransform(val2) { 3656 if (val2 == null) { 3657 val2 = getContainerTransformValue(); 3658 } 3659 container.style[transformAttr] = transformPrefix + val2 + transformPostfix; 3660 } 3661 __name(doContainerTransform, "doContainerTransform"); 3662 function animateSlide(number, classOut, classIn, isOut) { 3663 var l = number + items; 3664 if (!loop) { 3665 l = Math.min(l, slideCountNew); 3666 } 3667 for (var i = number; i < l; i++) { 3668 var item = slideItems[i]; 3669 if (!isOut) { 3670 item.style.left = (i - index) * 100 / items + "%"; 3671 } 3672 if (animateDelay && TRANSITIONDELAY) { 3673 item.style[TRANSITIONDELAY] = item.style[ANIMATIONDELAY] = animateDelay * (i - number) / 1e3 + "s"; 3674 } 3675 removeClass(item, classOut); 3676 addClass(item, classIn); 3677 if (isOut) { 3678 slideItemsOut.push(item); 3679 } 3680 } 3681 } 3682 __name(animateSlide, "animateSlide"); 3683 var transformCore = /* @__PURE__ */ (function() { 3684 return carousel ? function() { 3685 resetDuration(container, ""); 3686 if (TRANSITIONDURATION || !speed) { 3687 doContainerTransform(); 3688 if (!speed || !isVisible(container)) { 3689 onTransitionEnd(); 3690 } 3691 } else { 3692 jsTransform(container, transformAttr, transformPrefix, transformPostfix, getContainerTransformValue(), speed, onTransitionEnd); 3693 } 3694 if (!horizontal) { 3695 updateContentWrapperHeight(); 3696 } 3697 } : function() { 3698 slideItemsOut = []; 3699 var eve = {}; 3700 eve[TRANSITIONEND] = eve[ANIMATIONEND] = onTransitionEnd; 3701 removeEvents(slideItems[indexCached], eve); 3702 addEvents(slideItems[index], eve); 3703 animateSlide(indexCached, animateIn, animateOut, true); 3704 animateSlide(index, animateNormal, animateIn); 3705 if (!TRANSITIONEND || !ANIMATIONEND || !speed || !isVisible(container)) { 3706 onTransitionEnd(); 3707 } 3708 }; 3709 })(); 3710 function render3(e, sliderMoved) { 3711 if (updateIndexBeforeTransform) { 3712 updateIndex(); 3713 } 3714 if (index !== indexCached || sliderMoved) { 3715 events.emit("indexChanged", info()); 3716 events.emit("transitionStart", info()); 3717 if (autoHeight) { 3718 doAutoHeight(); 3719 } 3720 if (animating && e && ["click", "keydown"].indexOf(e.type) >= 0) { 3721 stopAutoplay(); 3722 } 3723 running = true; 3724 transformCore(); 3725 } 3726 } 3727 __name(render3, "render"); 3728 function strTrans(str) { 3729 return str.toLowerCase().replace(/-/g, ""); 3730 } 3731 __name(strTrans, "strTrans"); 3732 function onTransitionEnd(event) { 3733 if (carousel || running) { 3734 events.emit("transitionEnd", info(event)); 3735 if (!carousel && slideItemsOut.length > 0) { 3736 for (var i = 0; i < slideItemsOut.length; i++) { 3737 var item = slideItemsOut[i]; 3738 item.style.left = ""; 3739 if (ANIMATIONDELAY && TRANSITIONDELAY) { 3740 item.style[ANIMATIONDELAY] = ""; 3741 item.style[TRANSITIONDELAY] = ""; 3742 } 3743 removeClass(item, animateOut); 3744 addClass(item, animateNormal); 3745 } 3746 } 3747 if (!event || !carousel && event.target.parentNode === container || event.target === container && strTrans(event.propertyName) === strTrans(transformAttr)) { 3748 if (!updateIndexBeforeTransform) { 3749 var indexTem = index; 3750 updateIndex(); 3751 if (index !== indexTem) { 3752 events.emit("indexChanged", info()); 3753 doContainerTransformSilent(); 3754 } 3755 } 3756 if (nested === "inner") { 3757 events.emit("innerLoaded", info()); 3758 } 3759 running = false; 3760 indexCached = index; 3761 } 3762 } 3763 } 3764 __name(onTransitionEnd, "onTransitionEnd"); 3765 function goTo(targetIndex, e) { 3766 if (freeze) { 3767 return; 3768 } 3769 if (targetIndex === "prev") { 3770 onControlsClick(e, -1); 3771 } else if (targetIndex === "next") { 3772 onControlsClick(e, 1); 3773 } else { 3774 if (running) { 3775 if (preventActionWhenRunning) { 3776 return; 3777 } else { 3778 onTransitionEnd(); 3779 } 3780 } 3781 var absIndex = getAbsIndex(), indexGap = 0; 3782 if (targetIndex === "first") { 3783 indexGap = -absIndex; 3784 } else if (targetIndex === "last") { 3785 indexGap = carousel ? slideCount - items - absIndex : slideCount - 1 - absIndex; 3786 } else { 3787 if (typeof targetIndex !== "number") { 3788 targetIndex = parseInt(targetIndex); 3789 } 3790 if (!isNaN(targetIndex)) { 3791 if (!e) { 3792 targetIndex = Math.max(0, Math.min(slideCount - 1, targetIndex)); 3793 } 3794 indexGap = targetIndex - absIndex; 3795 } 3796 } 3797 if (!carousel && indexGap && Math.abs(indexGap) < items) { 3798 var factor = indexGap > 0 ? 1 : -1; 3799 indexGap += index + indexGap - slideCount >= indexMin ? slideCount * factor : slideCount * 2 * factor * -1; 3800 } 3801 index += indexGap; 3802 if (carousel && loop) { 3803 if (index < indexMin) { 3804 index += slideCount; 3805 } 3806 if (index > indexMax) { 3807 index -= slideCount; 3808 } 3809 } 3810 if (getAbsIndex(index) !== getAbsIndex(indexCached)) { 3811 render3(e); 3812 } 3813 } 3814 } 3815 __name(goTo, "goTo"); 3816 function onControlsClick(e, dir) { 3817 if (running) { 3818 if (preventActionWhenRunning) { 3819 return; 3820 } else { 3821 onTransitionEnd(); 3822 } 3823 } 3824 var passEventObject; 3825 if (!dir) { 3826 e = getEvent(e); 3827 var target = getTarget(e); 3828 while (target !== controlsContainer && [prevButton, nextButton].indexOf(target) < 0) { 3829 target = target.parentNode; 3830 } 3831 var targetIn = [prevButton, nextButton].indexOf(target); 3832 if (targetIn >= 0) { 3833 passEventObject = true; 3834 dir = targetIn === 0 ? -1 : 1; 3835 } 3836 } 3837 if (rewind) { 3838 if (index === indexMin && dir === -1) { 3839 goTo("last", e); 3840 return; 3841 } else if (index === indexMax && dir === 1) { 3842 goTo("first", e); 3843 return; 3844 } 3845 } 3846 if (dir) { 3847 index += slideBy * dir; 3848 if (autoWidth) { 3849 index = Math.floor(index); 3850 } 3851 render3(passEventObject || e && e.type === "keydown" ? e : null); 3852 } 3853 } 3854 __name(onControlsClick, "onControlsClick"); 3855 function onNavClick(e) { 3856 if (running) { 3857 if (preventActionWhenRunning) { 3858 return; 3859 } else { 3860 onTransitionEnd(); 3861 } 3862 } 3863 e = getEvent(e); 3864 var target = getTarget(e), navIndex; 3865 while (target !== navContainer && !hasAttr(target, "data-nav")) { 3866 target = target.parentNode; 3867 } 3868 if (hasAttr(target, "data-nav")) { 3869 var navIndex = navClicked = Number(getAttr(target, "data-nav")), targetIndexBase = fixedWidth || autoWidth ? navIndex * slideCount / pages : navIndex * items, targetIndex = navAsThumbnails ? navIndex : Math.min(Math.ceil(targetIndexBase), slideCount - 1); 3870 goTo(targetIndex, e); 3871 if (navCurrentIndex === navIndex) { 3872 if (animating) { 3873 stopAutoplay(); 3874 } 3875 navClicked = -1; 3876 } 3877 } 3878 } 3879 __name(onNavClick, "onNavClick"); 3880 function setAutoplayTimer() { 3881 autoplayTimer = setInterval(function() { 3882 onControlsClick(null, autoplayDirection); 3883 }, autoplayTimeout); 3884 animating = true; 3885 } 3886 __name(setAutoplayTimer, "setAutoplayTimer"); 3887 function stopAutoplayTimer() { 3888 clearInterval(autoplayTimer); 3889 animating = false; 3890 } 3891 __name(stopAutoplayTimer, "stopAutoplayTimer"); 3892 function updateAutoplayButton(action, txt) { 3893 setAttrs(autoplayButton, { 3894 "data-action": action 3895 }); 3896 autoplayButton.innerHTML = autoplayHtmlStrings[0] + action + autoplayHtmlStrings[1] + txt; 3897 } 3898 __name(updateAutoplayButton, "updateAutoplayButton"); 3899 function startAutoplay() { 3900 setAutoplayTimer(); 3901 if (autoplayButton) { 3902 updateAutoplayButton("stop", autoplayText[1]); 3903 } 3904 } 3905 __name(startAutoplay, "startAutoplay"); 3906 function stopAutoplay() { 3907 stopAutoplayTimer(); 3908 if (autoplayButton) { 3909 updateAutoplayButton("start", autoplayText[0]); 3910 } 3911 } 3912 __name(stopAutoplay, "stopAutoplay"); 3913 function play() { 3914 if (autoplay && !animating) { 3915 startAutoplay(); 3916 autoplayUserPaused = false; 3917 } 3918 } 3919 __name(play, "play"); 3920 function pause() { 3921 if (animating) { 3922 stopAutoplay(); 3923 autoplayUserPaused = true; 3924 } 3925 } 3926 __name(pause, "pause"); 3927 function toggleAutoplay() { 3928 if (animating) { 3929 stopAutoplay(); 3930 autoplayUserPaused = true; 3931 } else { 3932 startAutoplay(); 3933 autoplayUserPaused = false; 3934 } 3935 } 3936 __name(toggleAutoplay, "toggleAutoplay"); 3937 function onVisibilityChange() { 3938 if (doc.hidden) { 3939 if (animating) { 3940 stopAutoplayTimer(); 3941 autoplayVisibilityPaused = true; 3942 } 3943 } else if (autoplayVisibilityPaused) { 3944 setAutoplayTimer(); 3945 autoplayVisibilityPaused = false; 3946 } 3947 } 3948 __name(onVisibilityChange, "onVisibilityChange"); 3949 function mouseoverPause() { 3950 if (animating) { 3951 stopAutoplayTimer(); 3952 autoplayHoverPaused = true; 3953 } 3954 } 3955 __name(mouseoverPause, "mouseoverPause"); 3956 function mouseoutRestart() { 3957 if (autoplayHoverPaused) { 3958 setAutoplayTimer(); 3959 autoplayHoverPaused = false; 3960 } 3961 } 3962 __name(mouseoutRestart, "mouseoutRestart"); 3963 function onDocumentKeydown(e) { 3964 e = getEvent(e); 3965 var keyIndex = [KEYS.LEFT, KEYS.RIGHT].indexOf(e.keyCode); 3966 if (keyIndex >= 0) { 3967 onControlsClick(e, keyIndex === 0 ? -1 : 1); 3968 } 3969 } 3970 __name(onDocumentKeydown, "onDocumentKeydown"); 3971 function onControlsKeydown(e) { 3972 e = getEvent(e); 3973 var keyIndex = [KEYS.LEFT, KEYS.RIGHT].indexOf(e.keyCode); 3974 if (keyIndex >= 0) { 3975 if (keyIndex === 0) { 3976 if (!prevButton.disabled) { 3977 onControlsClick(e, -1); 3978 } 3979 } else if (!nextButton.disabled) { 3980 onControlsClick(e, 1); 3981 } 3982 } 3983 } 3984 __name(onControlsKeydown, "onControlsKeydown"); 3985 function setFocus(el) { 3986 el.focus(); 3987 } 3988 __name(setFocus, "setFocus"); 3989 function onNavKeydown(e) { 3990 e = getEvent(e); 3991 var curElement = doc.activeElement; 3992 if (!hasAttr(curElement, "data-nav")) { 3993 return; 3994 } 3995 var keyIndex = [KEYS.LEFT, KEYS.RIGHT, KEYS.ENTER, KEYS.SPACE].indexOf(e.keyCode), navIndex = Number(getAttr(curElement, "data-nav")); 3996 if (keyIndex >= 0) { 3997 if (keyIndex === 0) { 3998 if (navIndex > 0) { 3999 setFocus(navItems[navIndex - 1]); 4000 } 4001 } else if (keyIndex === 1) { 4002 if (navIndex < pages - 1) { 4003 setFocus(navItems[navIndex + 1]); 4004 } 4005 } else { 4006 navClicked = navIndex; 4007 goTo(navIndex, e); 4008 } 4009 } 4010 } 4011 __name(onNavKeydown, "onNavKeydown"); 4012 function getEvent(e) { 4013 e = e || win2.event; 4014 return isTouchEvent(e) ? e.changedTouches[0] : e; 4015 } 4016 __name(getEvent, "getEvent"); 4017 function getTarget(e) { 4018 return e.target || win2.event.srcElement; 4019 } 4020 __name(getTarget, "getTarget"); 4021 function isTouchEvent(e) { 4022 return e.type.indexOf("touch") >= 0; 4023 } 4024 __name(isTouchEvent, "isTouchEvent"); 4025 function preventDefaultBehavior(e) { 4026 e.preventDefault ? e.preventDefault() : e.returnValue = false; 4027 } 4028 __name(preventDefaultBehavior, "preventDefaultBehavior"); 4029 function getMoveDirectionExpected() { 4030 return getTouchDirection(toDegree(lastPosition.y - initPosition.y, lastPosition.x - initPosition.x), swipeAngle) === options.axis; 4031 } 4032 __name(getMoveDirectionExpected, "getMoveDirectionExpected"); 4033 function onPanStart(e) { 4034 if (running) { 4035 if (preventActionWhenRunning) { 4036 return; 4037 } else { 4038 onTransitionEnd(); 4039 } 4040 } 4041 if (autoplay && animating) { 4042 stopAutoplayTimer(); 4043 } 4044 panStart = true; 4045 if (rafIndex) { 4046 caf(rafIndex); 4047 rafIndex = null; 4048 } 4049 var $ = getEvent(e); 4050 events.emit(isTouchEvent(e) ? "touchStart" : "dragStart", info(e)); 4051 if (!isTouchEvent(e) && ["img", "a"].indexOf(getLowerCaseNodeName(getTarget(e))) >= 0) { 4052 preventDefaultBehavior(e); 4053 } 4054 lastPosition.x = initPosition.x = $.clientX; 4055 lastPosition.y = initPosition.y = $.clientY; 4056 if (carousel) { 4057 translateInit = parseFloat(container.style[transformAttr].replace(transformPrefix, "")); 4058 resetDuration(container, "0s"); 4059 } 4060 } 4061 __name(onPanStart, "onPanStart"); 4062 function onPanMove(e) { 4063 if (panStart) { 4064 var $ = getEvent(e); 4065 lastPosition.x = $.clientX; 4066 lastPosition.y = $.clientY; 4067 if (carousel) { 4068 if (!rafIndex) { 4069 rafIndex = raf(function() { 4070 panUpdate(e); 4071 }); 4072 } 4073 } else { 4074 if (moveDirectionExpected === "?") { 4075 moveDirectionExpected = getMoveDirectionExpected(); 4076 } 4077 if (moveDirectionExpected) { 4078 preventScroll = true; 4079 } 4080 } 4081 if ((typeof e.cancelable !== "boolean" || e.cancelable) && preventScroll) { 4082 e.preventDefault(); 4083 } 4084 } 4085 } 4086 __name(onPanMove, "onPanMove"); 4087 function panUpdate(e) { 4088 if (!moveDirectionExpected) { 4089 panStart = false; 4090 return; 4091 } 4092 caf(rafIndex); 4093 if (panStart) { 4094 rafIndex = raf(function() { 4095 panUpdate(e); 4096 }); 4097 } 4098 if (moveDirectionExpected === "?") { 4099 moveDirectionExpected = getMoveDirectionExpected(); 4100 } 4101 if (moveDirectionExpected) { 4102 if (!preventScroll && isTouchEvent(e)) { 4103 preventScroll = true; 4104 } 4105 try { 4106 if (e.type) { 4107 events.emit(isTouchEvent(e) ? "touchMove" : "dragMove", info(e)); 4108 } 4109 } catch (err) { 4110 } 4111 var x = translateInit, dist = getDist(lastPosition, initPosition); 4112 if (!horizontal || fixedWidth || autoWidth) { 4113 x += dist; 4114 x += "px"; 4115 } else { 4116 var percentageX = TRANSFORM ? dist * items * 100 / ((viewport + gutter) * slideCountNew) : dist * 100 / (viewport + gutter); 4117 x += percentageX; 4118 x += "%"; 4119 } 4120 container.style[transformAttr] = transformPrefix + x + transformPostfix; 4121 } 4122 } 4123 __name(panUpdate, "panUpdate"); 4124 function onPanEnd(e) { 4125 if (panStart) { 4126 if (rafIndex) { 4127 caf(rafIndex); 4128 rafIndex = null; 4129 } 4130 if (carousel) { 4131 resetDuration(container, ""); 4132 } 4133 panStart = false; 4134 var $ = getEvent(e); 4135 lastPosition.x = $.clientX; 4136 lastPosition.y = $.clientY; 4137 var dist = getDist(lastPosition, initPosition); 4138 if (Math.abs(dist)) { 4139 if (!isTouchEvent(e)) { 4140 var target = getTarget(e); 4141 addEvents(target, { 4142 "click": /* @__PURE__ */ __name(function preventClick(e2) { 4143 preventDefaultBehavior(e2); 4144 removeEvents(target, { 4145 "click": preventClick 4146 }); 4147 }, "preventClick") 4148 }); 4149 } 4150 if (carousel) { 4151 rafIndex = raf(function() { 4152 if (horizontal && !autoWidth) { 4153 var indexMoved = -dist * items / (viewport + gutter); 4154 indexMoved = dist > 0 ? Math.floor(indexMoved) : Math.ceil(indexMoved); 4155 index += indexMoved; 4156 } else { 4157 var moved = -(translateInit + dist); 4158 if (moved <= 0) { 4159 index = indexMin; 4160 } else if (moved >= slidePositions[slideCountNew - 1]) { 4161 index = indexMax; 4162 } else { 4163 var i = 0; 4164 while (i < slideCountNew && moved >= slidePositions[i]) { 4165 index = i; 4166 if (moved > slidePositions[i] && dist < 0) { 4167 index += 1; 4168 } 4169 i++; 4170 } 4171 } 4172 } 4173 render3(e, dist); 4174 events.emit(isTouchEvent(e) ? "touchEnd" : "dragEnd", info(e)); 4175 }); 4176 } else { 4177 if (moveDirectionExpected) { 4178 onControlsClick(e, dist > 0 ? -1 : 1); 4179 } 4180 } 4181 } 4182 } 4183 if (options.preventScrollOnTouch === "auto") { 4184 preventScroll = false; 4185 } 4186 if (swipeAngle) { 4187 moveDirectionExpected = "?"; 4188 } 4189 if (autoplay && !animating) { 4190 setAutoplayTimer(); 4191 } 4192 } 4193 __name(onPanEnd, "onPanEnd"); 4194 function updateContentWrapperHeight() { 4195 var wp = middleWrapper ? middleWrapper : innerWrapper; 4196 wp.style.height = slidePositions[index + items] - slidePositions[index] + "px"; 4197 } 4198 __name(updateContentWrapperHeight, "updateContentWrapperHeight"); 4199 function getPages() { 4200 var rough = fixedWidth ? (fixedWidth + gutter) * slideCount / viewport : slideCount / items; 4201 return Math.min(Math.ceil(rough), slideCount); 4202 } 4203 __name(getPages, "getPages"); 4204 function updateNavVisibility() { 4205 if (!nav || navAsThumbnails) { 4206 return; 4207 } 4208 if (pages !== pagesCached) { 4209 var min = pagesCached, max = pages, fn = showElement; 4210 if (pagesCached > pages) { 4211 min = pages; 4212 max = pagesCached; 4213 fn = hideElement; 4214 } 4215 while (min < max) { 4216 fn(navItems[min]); 4217 min++; 4218 } 4219 pagesCached = pages; 4220 } 4221 } 4222 __name(updateNavVisibility, "updateNavVisibility"); 4223 function info(e) { 4224 return { 4225 container, 4226 slideItems, 4227 navContainer, 4228 navItems, 4229 controlsContainer, 4230 hasControls, 4231 prevButton, 4232 nextButton, 4233 items, 4234 slideBy, 4235 cloneCount, 4236 slideCount, 4237 slideCountNew, 4238 index, 4239 indexCached, 4240 displayIndex: getCurrentSlide(), 4241 navCurrentIndex, 4242 navCurrentIndexCached, 4243 pages, 4244 pagesCached, 4245 sheet, 4246 isOn, 4247 event: e || {} 4248 }; 4249 } 4250 __name(info, "info"); 4251 return { 4252 version: "2.9.4", 4253 getInfo: info, 4254 events, 4255 goTo, 4256 play, 4257 pause, 4258 isOn, 4259 updateSliderHeight: updateInnerWrapperHeight, 4260 refresh: initSliderTransform, 4261 destroy: destroy2, 4262 rebuild: /* @__PURE__ */ __name(function() { 4263 return tns2(extend(options, optionsElements)); 4264 }, "rebuild") 4265 }; 4266 }, "tns"); 4267 exports.tns = tns2; 4268 } 4269 }); 4270 4271
vendor: 13,144 bytes, lines 4271-4624
4271// node_modules/headroom.js/dist/headroom.js 4272 var require_headroom = __commonJS({ 4273 "node_modules/headroom.js/dist/headroom.js"(exports, module) { 4274 (function(global, factory) { 4275 typeof exports === "object" && typeof module !== "undefined" ? module.exports = factory() : typeof define === "function" && define.amd ? define(factory) : (global = global || self, global.Headroom = factory()); 4276 })(exports, function() { 4277 "use strict"; 4278 function isBrowser() { 4279 return typeof window !== "undefined"; 4280 } 4281 __name(isBrowser, "isBrowser"); 4282 function passiveEventsSupported() { 4283 var supported = false; 4284 try { 4285 var options = { 4286 // eslint-disable-next-line getter-return 4287 get passive() { 4288 supported = true; 4289 } 4290 }; 4291 window.addEventListener("test", options, options); 4292 window.removeEventListener("test", options, options); 4293 } catch (err) { 4294 supported = false; 4295 } 4296 return supported; 4297 } 4298 __name(passiveEventsSupported, "passiveEventsSupported"); 4299 function isSupported() { 4300 return !!(isBrowser() && function() { 4301 }.bind && "classList" in document.documentElement && Object.assign && Object.keys && requestAnimationFrame); 4302 } 4303 __name(isSupported, "isSupported"); 4304 function isDocument(obj) { 4305 return obj.nodeType === 9; 4306 } 4307 __name(isDocument, "isDocument"); 4308 function isWindow(obj) { 4309 return obj && obj.document && isDocument(obj.document); 4310 } 4311 __name(isWindow, "isWindow"); 4312 function windowScroller(win) { 4313 var doc = win.document; 4314 var body = doc.body; 4315 var html = doc.documentElement; 4316 return { 4317 /** 4318 * @see http://james.padolsey.com/javascript/get-document-height-cross-browser/ 4319 * @return {Number} the scroll height of the document in pixels 4320 */ 4321 scrollHeight: /* @__PURE__ */ __name(function() { 4322 return Math.max( 4323 body.scrollHeight, 4324 html.scrollHeight, 4325 body.offsetHeight, 4326 html.offsetHeight, 4327 body.clientHeight, 4328 html.clientHeight 4329 ); 4330 }, "scrollHeight"), 4331 /** 4332 * @see http://andylangton.co.uk/blog/development/get-viewport-size-width-and-height-javascript 4333 * @return {Number} the height of the viewport in pixels 4334 */ 4335 height: /* @__PURE__ */ __name(function() { 4336 return win.innerHeight || html.clientHeight || body.clientHeight; 4337 }, "height"), 4338 /** 4339 * Gets the Y scroll position 4340 * @return {Number} pixels the page has scrolled along the Y-axis 4341 */ 4342 scrollY: /* @__PURE__ */ __name(function() { 4343 if (win.pageYOffset !== void 0) { 4344 return win.pageYOffset; 4345 } 4346 return (html || body.parentNode || body).scrollTop; 4347 }, "scrollY") 4348 }; 4349 } 4350 __name(windowScroller, "windowScroller"); 4351 function elementScroller(element) { 4352 return { 4353 /** 4354 * @return {Number} the scroll height of the element in pixels 4355 */ 4356 scrollHeight: /* @__PURE__ */ __name(function() { 4357 return Math.max( 4358 element.scrollHeight, 4359 element.offsetHeight, 4360 element.clientHeight 4361 ); 4362 }, "scrollHeight"), 4363 /** 4364 * @return {Number} the height of the element in pixels 4365 */ 4366 height: /* @__PURE__ */ __name(function() { 4367 return Math.max(element.offsetHeight, element.clientHeight); 4368 }, "height"), 4369 /** 4370 * Gets the Y scroll position 4371 * @return {Number} pixels the element has scrolled along the Y-axis 4372 */ 4373 scrollY: /* @__PURE__ */ __name(function() { 4374 return element.scrollTop; 4375 }, "scrollY") 4376 }; 4377 } 4378 __name(elementScroller, "elementScroller"); 4379 function createScroller(element) { 4380 return isWindow(element) ? windowScroller(element) : elementScroller(element); 4381 } 4382 __name(createScroller, "createScroller"); 4383 function trackScroll(element, options, callback) { 4384 var isPassiveSupported = passiveEventsSupported(); 4385 var rafId; 4386 var scrolled = false; 4387 var scroller = createScroller(element); 4388 var lastScrollY = scroller.scrollY(); 4389 var details = {}; 4390 function update2() { 4391 var scrollY = Math.round(scroller.scrollY()); 4392 var height = scroller.height(); 4393 var scrollHeight = scroller.scrollHeight(); 4394 details.scrollY = scrollY; 4395 details.lastScrollY = lastScrollY; 4396 details.direction = scrollY > lastScrollY ? "down" : "up"; 4397 details.distance = Math.abs(scrollY - lastScrollY); 4398 details.isOutOfBounds = scrollY < 0 || scrollY + height > scrollHeight; 4399 details.top = scrollY <= options.offset[details.direction]; 4400 details.bottom = scrollY + height >= scrollHeight; 4401 details.toleranceExceeded = details.distance > options.tolerance[details.direction]; 4402 callback(details); 4403 lastScrollY = scrollY; 4404 scrolled = false; 4405 } 4406 __name(update2, "update"); 4407 function handleScroll() { 4408 if (!scrolled) { 4409 scrolled = true; 4410 rafId = requestAnimationFrame(update2); 4411 } 4412 } 4413 __name(handleScroll, "handleScroll"); 4414 var eventOptions = isPassiveSupported ? { passive: true, capture: false } : false; 4415 element.addEventListener("scroll", handleScroll, eventOptions); 4416 update2(); 4417 return { 4418 destroy: /* @__PURE__ */ __name(function() { 4419 cancelAnimationFrame(rafId); 4420 element.removeEventListener("scroll", handleScroll, eventOptions); 4421 }, "destroy") 4422 }; 4423 } 4424 __name(trackScroll, "trackScroll"); 4425 function normalizeUpDown(t) { 4426 return t === Object(t) ? t : { down: t, up: t }; 4427 } 4428 __name(normalizeUpDown, "normalizeUpDown"); 4429 function Headroom2(elem, options) { 4430 options = options || {}; 4431 Object.assign(this, Headroom2.options, options); 4432 this.classes = Object.assign({}, Headroom2.options.classes, options.classes); 4433 this.elem = elem; 4434 this.tolerance = normalizeUpDown(this.tolerance); 4435 this.offset = normalizeUpDown(this.offset); 4436 this.initialised = false; 4437 this.frozen = false; 4438 } 4439 __name(Headroom2, "Headroom"); 4440 Headroom2.prototype = { 4441 constructor: Headroom2, 4442 /** 4443 * Start listening to scrolling 4444 * @public 4445 */ 4446 init: /* @__PURE__ */ __name(function() { 4447 if (Headroom2.cutsTheMustard && !this.initialised) { 4448 this.addClass("initial"); 4449 this.initialised = true; 4450 setTimeout( 4451 function(self2) { 4452 self2.scrollTracker = trackScroll( 4453 self2.scroller, 4454 { offset: self2.offset, tolerance: self2.tolerance }, 4455 self2.update.bind(self2) 4456 ); 4457 }, 4458 100, 4459 this 4460 ); 4461 } 4462 return this; 4463 }, "init"), 4464 /** 4465 * Destroy the widget, clearing up after itself 4466 * @public 4467 */ 4468 destroy: /* @__PURE__ */ __name(function() { 4469 this.initialised = false; 4470 Object.keys(this.classes).forEach(this.removeClass, this); 4471 this.scrollTracker.destroy(); 4472 }, "destroy"), 4473 /** 4474 * Unpin the element 4475 * @public 4476 */ 4477 unpin: /* @__PURE__ */ __name(function() { 4478 if (this.hasClass("pinned") || !this.hasClass("unpinned")) { 4479 this.addClass("unpinned"); 4480 this.removeClass("pinned"); 4481 if (this.onUnpin) { 4482 this.onUnpin.call(this); 4483 } 4484 } 4485 }, "unpin"), 4486 /** 4487 * Pin the element 4488 * @public 4489 */ 4490 pin: /* @__PURE__ */ __name(function() { 4491 if (this.hasClass("unpinned")) { 4492 this.addClass("pinned"); 4493 this.removeClass("unpinned"); 4494 if (this.onPin) { 4495 this.onPin.call(this); 4496 } 4497 } 4498 }, "pin"), 4499 /** 4500 * Freezes the current state of the widget 4501 * @public 4502 */ 4503 freeze: /* @__PURE__ */ __name(function() { 4504 this.frozen = true; 4505 this.addClass("frozen"); 4506 }, "freeze"), 4507 /** 4508 * Re-enables the default behaviour of the widget 4509 * @public 4510 */ 4511 unfreeze: /* @__PURE__ */ __name(function() { 4512 this.frozen = false; 4513 this.removeClass("frozen"); 4514 }, "unfreeze"), 4515 top: /* @__PURE__ */ __name(function() { 4516 if (!this.hasClass("top")) { 4517 this.addClass("top"); 4518 this.removeClass("notTop"); 4519 if (this.onTop) { 4520 this.onTop.call(this); 4521 } 4522 } 4523 }, "top"), 4524 notTop: /* @__PURE__ */ __name(function() { 4525 if (!this.hasClass("notTop")) { 4526 this.addClass("notTop"); 4527 this.removeClass("top"); 4528 if (this.onNotTop) { 4529 this.onNotTop.call(this); 4530 } 4531 } 4532 }, "notTop"), 4533 bottom: /* @__PURE__ */ __name(function() { 4534 if (!this.hasClass("bottom")) { 4535 this.addClass("bottom"); 4536 this.removeClass("notBottom"); 4537 if (this.onBottom) { 4538 this.onBottom.call(this); 4539 } 4540 } 4541 }, "bottom"), 4542 notBottom: /* @__PURE__ */ __name(function() { 4543 if (!this.hasClass("notBottom")) { 4544 this.addClass("notBottom"); 4545 this.removeClass("bottom"); 4546 if (this.onNotBottom) { 4547 this.onNotBottom.call(this); 4548 } 4549 } 4550 }, "notBottom"), 4551 shouldUnpin: /* @__PURE__ */ __name(function(details) { 4552 var scrollingDown = details.direction === "down"; 4553 return scrollingDown && !details.top && details.toleranceExceeded; 4554 }, "shouldUnpin"), 4555 shouldPin: /* @__PURE__ */ __name(function(details) { 4556 var scrollingUp = details.direction === "up"; 4557 return scrollingUp && details.toleranceExceeded || details.top; 4558 }, "shouldPin"), 4559 addClass: /* @__PURE__ */ __name(function(className) { 4560 this.elem.classList.add.apply( 4561 this.elem.classList, 4562 this.classes[className].split(" ") 4563 ); 4564 }, "addClass"), 4565 removeClass: /* @__PURE__ */ __name(function(className) { 4566 this.elem.classList.remove.apply( 4567 this.elem.classList, 4568 this.classes[className].split(" ") 4569 ); 4570 }, "removeClass"), 4571 hasClass: /* @__PURE__ */ __name(function(className) { 4572 return this.classes[className].split(" ").every(function(cls) { 4573 return this.classList.contains(cls); 4574 }, this.elem); 4575 }, "hasClass"), 4576 update: /* @__PURE__ */ __name(function(details) { 4577 if (details.isOutOfBounds) { 4578 return; 4579 } 4580 if (this.frozen === true) { 4581 return; 4582 } 4583 if (details.top) { 4584 this.top(); 4585 } else { 4586 this.notTop(); 4587 } 4588 if (details.bottom) { 4589 this.bottom(); 4590 } else { 4591 this.notBottom(); 4592 } 4593 if (this.shouldUnpin(details)) { 4594 this.unpin(); 4595 } else if (this.shouldPin(details)) { 4596 this.pin(); 4597 } 4598 }, "update") 4599 }; 4600 Headroom2.options = { 4601 tolerance: { 4602 up: 0, 4603 down: 0 4604 }, 4605 offset: 0, 4606 scroller: isBrowser() ? window : null, 4607 classes: { 4608 frozen: "headroom--frozen", 4609 pinned: "headroom--pinned", 4610 unpinned: "headroom--unpinned", 4611 top: "headroom--top", 4612 notTop: "headroom--not-top", 4613 bottom: "headroom--bottom", 4614 notBottom: "headroom--not-bottom", 4615 initial: "headroom" 4616 } 4617 }; 4618 Headroom2.cutsTheMustard = isSupported(); 4619 return Headroom2; 4620 }); 4621 } 4622 }); 4623 4624
vendor: 82,486 bytes, lines 4624-5561
4624// node_modules/vanilla-calendar-pro/index.mjs 4625 var __defProp2 = Object.defineProperty; 4626 var __defProps = Object.defineProperties; 4627 var __getOwnPropDescs = Object.getOwnPropertyDescriptors; 4628 var __getOwnPropSymbols = Object.getOwnPropertySymbols; 4629 var __hasOwnProp2 = Object.prototype.hasOwnProperty; 4630 var __propIsEnum = Object.prototype.propertyIsEnumerable; 4631 var __defNormalProp = /* @__PURE__ */ __name((e, t, n) => t in e ? __defProp2(e, t, { enumerable: true, configurable: true, writable: true, value: n }) : e[t] = n, "__defNormalProp"); 4632 var __spreadValues = /* @__PURE__ */ __name((e, t) => { 4633 for (var n in t || (t = {})) __hasOwnProp2.call(t, n) && __defNormalProp(e, n, t[n]); 4634 if (__getOwnPropSymbols) for (var n of __getOwnPropSymbols(t)) __propIsEnum.call(t, n) && __defNormalProp(e, n, t[n]); 4635 return e; 4636 }, "__spreadValues"); 4637 var __spreadProps = /* @__PURE__ */ __name((e, t) => __defProps(e, __getOwnPropDescs(t)), "__spreadProps"); 4638 var __publicField = /* @__PURE__ */ __name((e, t, n) => (__defNormalProp(e, "symbol" != typeof t ? t + "" : t, n), n), "__publicField"); 4639 var errorMessages = { notFoundSelector: /* @__PURE__ */ __name((e) => `${e} is not found, check the first argument passed to new Calendar.`, "notFoundSelector"), notInit: 'The calendar has not been initialized, please initialize it using the "init()" method first.', notLocale: "You specified an incorrect language label or did not specify the required number of values \u200B\u200Bfor \xABlocale.weekdays\xBB or \xABlocale.months\xBB.", incorrectTime: "The value of the time property can be: false, 12 or 24.", incorrectMonthsCount: "For the \xABmultiple\xBB calendar type, the \xABdisplayMonthsCount\xBB parameter can have a value from 2 to 12, and for all others it cannot be greater than 1." }; 4640 var setContext = /* @__PURE__ */ __name((e, t, n) => { 4641 e.context[t] = n; 4642 }, "setContext"); 4643 var destroy = /* @__PURE__ */ __name((e) => { 4644 var t, n, a, o, l; 4645 if (!e.context.isInit) throw new Error(errorMessages.notInit); 4646 e.inputMode ? (null == (t = e.context.mainElement.parentElement) || t.removeChild(e.context.mainElement), null == (a = null == (n = e.context.inputElement) ? void 0 : n.replaceWith) || a.call(n, e.context.originalElement), setContext(e, "inputElement", void 0)) : null == (l = (o = e.context.mainElement).replaceWith) || l.call(o, e.context.originalElement), setContext(e, "mainElement", e.context.originalElement), e.onDestroy && e.onDestroy(e); 4647 }, "destroy"); 4648 var skipOpenOnFocus = /* @__PURE__ */ new WeakSet(); 4649 var shouldSkipOpenOnFocus = /* @__PURE__ */ __name((e) => skipOpenOnFocus.has(e), "shouldSkipOpenOnFocus"); 4650 var setSkipOpenOnFocus = /* @__PURE__ */ __name((e) => { 4651 skipOpenOnFocus.add(e); 4652 }, "setSkipOpenOnFocus"); 4653 var clearSkipOpenOnFocus = /* @__PURE__ */ __name((e) => { 4654 skipOpenOnFocus.delete(e); 4655 }, "clearSkipOpenOnFocus"); 4656 var PREV_TABINDEX_ATTR = "data-vc-prev-tabindex"; 4657 var isFocusable = /* @__PURE__ */ __name((e) => e.tabIndex >= 0 && !e.hasAttribute("disabled") && "true" !== e.getAttribute("aria-disabled"), "isFocusable"); 4658 var storePrevTabIndex = /* @__PURE__ */ __name((e) => { 4659 if (e.hasAttribute(PREV_TABINDEX_ATTR)) return; 4660 const t = e.getAttribute("tabindex"); 4661 e.setAttribute(PREV_TABINDEX_ATTR, null != t ? t : ""); 4662 }, "storePrevTabIndex"); 4663 var restorePrevTabIndex = /* @__PURE__ */ __name((e) => { 4664 if (!e.hasAttribute(PREV_TABINDEX_ATTR)) return; 4665 const t = e.getAttribute(PREV_TABINDEX_ATTR); 4666 "" === t || null === t ? e.removeAttribute("tabindex") : e.setAttribute("tabindex", t), e.removeAttribute(PREV_TABINDEX_ATTR); 4667 }, "restorePrevTabIndex"); 4668 var disableTabbing = /* @__PURE__ */ __name((e) => { 4669 isFocusable(e) && (storePrevTabIndex(e), e.tabIndex = -1); 4670 const t = document.createTreeWalker(e, NodeFilter.SHOW_ELEMENT, { acceptNode: /* @__PURE__ */ __name((e2) => isFocusable(e2) ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP, "acceptNode") }); 4671 for (; t.nextNode(); ) { 4672 const e2 = t.currentNode; 4673 storePrevTabIndex(e2), e2.tabIndex = -1; 4674 } 4675 }, "disableTabbing"); 4676 var restoreTabbing = /* @__PURE__ */ __name((e) => { 4677 restorePrevTabIndex(e), e.querySelectorAll(`[${PREV_TABINDEX_ATTR}]`).forEach(restorePrevTabIndex); 4678 }, "restoreTabbing"); 4679 var hide = /* @__PURE__ */ __name((e) => { 4680 if (e.context.isShowInInputMode && e.context.currentType) { 4681 if (e.context.mainElement.dataset.vcCalendarHidden = "", setContext(e, "isShowInInputMode", false), e.inputMode && disableTabbing(e.context.mainElement), e.context.cleanupHandlers[0] && (e.context.cleanupHandlers.forEach(((e2) => e2())), setContext(e, "cleanupHandlers", [])), e.inputMode && e.context.inputElement && e.context.mainElement.contains(document.activeElement)) { 4682 ("function" == typeof e.openOnFocus || true === e.openOnFocus) && setSkipOpenOnFocus(e), e.context.inputElement.focus(); 4683 } 4684 e.onHide && e.onHide(e); 4685 } 4686 }, "hide"); 4687 function getOffset(e) { 4688 if (!e || !e.getBoundingClientRect) return { top: 0, bottom: 0, left: 0, right: 0 }; 4689 const t = e.getBoundingClientRect(), n = document.documentElement; 4690 return { bottom: t.bottom, right: t.right, top: t.top + window.scrollY - n.clientTop, left: t.left + window.scrollX - n.clientLeft }; 4691 } 4692 __name(getOffset, "getOffset"); 4693 function getViewportDimensions() { 4694 return { vw: Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0), vh: Math.max(document.documentElement.clientHeight || 0, window.innerHeight || 0) }; 4695 } 4696 __name(getViewportDimensions, "getViewportDimensions"); 4697 function getWindowScrollPosition() { 4698 return { left: window.scrollX || document.documentElement.scrollLeft || 0, top: window.scrollY || document.documentElement.scrollTop || 0 }; 4699 } 4700 __name(getWindowScrollPosition, "getWindowScrollPosition"); 4701 function calculateAvailableSpace(e) { 4702 const { top: t, left: n } = getWindowScrollPosition(), { top: a, left: o } = getOffset(e), { vh: l, vw: s } = getViewportDimensions(), i = a - t, r = o - n; 4703 return { top: i, bottom: l - (i + e.clientHeight), left: r, right: s - (r + e.clientWidth) }; 4704 } 4705 __name(calculateAvailableSpace, "calculateAvailableSpace"); 4706 function getAvailablePosition(e, t, n = 5) { 4707 const a = { top: true, bottom: true, left: true, right: true }, o = []; 4708 if (!t || !e) return { canShow: a, parentPositions: o }; 4709 const { bottom: l, top: s } = calculateAvailableSpace(e), { top: i, left: r } = getOffset(e), { height: c, width: d } = t.getBoundingClientRect(), { vh: u, vw: m } = getViewportDimensions(), p = m / 2, h = u / 2; 4710 return [{ condition: i < h, position: "top" }, { condition: i > h, position: "bottom" }, { condition: r < p, position: "left" }, { condition: r > p, position: "right" }].forEach((({ condition: e2, position: t2 }) => { 4711 e2 && o.push(t2); 4712 })), Object.assign(a, { top: c <= s - n, bottom: c <= l - n, left: d <= r, right: d <= m - r }), { canShow: a, parentPositions: o }; 4713 } 4714 __name(getAvailablePosition, "getAvailablePosition"); 4715 var handleDay = /* @__PURE__ */ __name((e, t, n, a) => { 4716 var o; 4717 const l = a.querySelector(`[data-vc-date="${t}"]`), s = null == l ? void 0 : l.querySelector("[data-vc-date-btn]"); 4718 if (!l || !s) return; 4719 if ((null == n ? void 0 : n.modifier) && s.classList.add(...n.modifier.trim().split(" ")), !(null == n ? void 0 : n.html)) return; 4720 const i = document.createElement("div"); 4721 i.className = e.styles.datePopup, i.dataset.vcDatePopup = "", i.innerHTML = e.sanitizerHTML(n.html), s.ariaExpanded = "true", s.ariaLabel = `${s.ariaLabel}, ${null == (o = null == i ? void 0 : i.textContent) ? void 0 : o.replace(/^\s+|\s+(?=\s)|\s+$/g, "").replace(/ /g, " ")}`, l.appendChild(i), requestAnimationFrame((() => { 4722 if (!i) return; 4723 const { canShow: e2 } = getAvailablePosition(l, i), t2 = e2.bottom ? l.offsetHeight : -i.offsetHeight, n2 = e2.left && !e2.right ? l.offsetWidth - i.offsetWidth / 2 : !e2.left && e2.right ? i.offsetWidth / 2 : 0; 4724 Object.assign(i.style, { left: `${n2}px`, top: `${t2}px` }); 4725 })); 4726 }, "handleDay"); 4727 var createDatePopup = /* @__PURE__ */ __name((e, t) => { 4728 var n; 4729 e.popups && (null == (n = Object.entries(e.popups)) || n.forEach((([n2, a]) => handleDay(e, n2, a, t)))); 4730 }, "createDatePopup"); 4731 var getDate = /* @__PURE__ */ __name((e) => /* @__PURE__ */ new Date(`${e}T00:00:00`), "getDate"); 4732 var getDateString = /* @__PURE__ */ __name((e) => `${e.getFullYear()}-${String(e.getMonth() + 1).padStart(2, "0")}-${String(e.getDate()).padStart(2, "0")}`, "getDateString"); 4733 var parseDates = /* @__PURE__ */ __name((e) => e.reduce(((e2, t) => { 4734 if (t instanceof Date || "number" == typeof t) { 4735 const n = t instanceof Date ? t : new Date(t); 4736 e2.push(n.toISOString().substring(0, 10)); 4737 } else t.match(/^(\d{4}-\d{2}-\d{2})$/g) ? e2.push(t) : t.replace(/(\d{4}-\d{2}-\d{2}).*?(\d{4}-\d{2}-\d{2})/g, ((t2, n, a) => { 4738 const o = getDate(n), l = getDate(a), s = new Date(o.getTime()); 4739 for (; s <= l; s.setDate(s.getDate() + 1)) e2.push(getDateString(s)); 4740 return t2; 4741 })); 4742 return e2; 4743 }), []), "parseDates"); 4744 var updateAttribute = /* @__PURE__ */ __name((e, t, n, a = "") => { 4745 t ? e.setAttribute(n, a) : e.getAttribute(n) === a && e.removeAttribute(n); 4746 }, "updateAttribute"); 4747 var setDateModifier = /* @__PURE__ */ __name((e, t, n, a, o, l, s) => { 4748 var i, r, c, d; 4749 const u = getDate(e.context.displayDateMin) > getDate(l) || getDate(e.context.displayDateMax) < getDate(l) || (null == (i = e.context.disableDates) ? void 0 : i.includes(l)) || !e.selectionMonthsMode && "current" !== s || !e.selectionYearsMode && getDate(l).getFullYear() !== t; 4750 updateAttribute(n, u, "data-vc-date-disabled"), a && updateAttribute(a, u, "aria-disabled", "true"), a && updateAttribute(a, u, "tabindex", "-1"), updateAttribute(n, !e.disableToday && e.context.dateToday === l, "data-vc-date-today"), updateAttribute(n, !e.disableToday && e.context.dateToday === l, "aria-current", "date"), updateAttribute(n, null == (r = e.selectedWeekends) ? void 0 : r.includes(o), "data-vc-date-weekend"); 4751 const m = (null == (c = e.selectedHolidays) ? void 0 : c[0]) ? parseDates(e.selectedHolidays) : []; 4752 if (updateAttribute(n, m.includes(l), "data-vc-date-holiday"), (null == (d = e.context.selectedDates) ? void 0 : d.includes(l)) ? (n.setAttribute("data-vc-date-selected", ""), a && a.setAttribute("aria-selected", "true"), e.context.selectedDates.length > 1 && "multiple-ranged" === e.selectionDatesMode && (e.context.selectedDates[0] === l && e.context.selectedDates[e.context.selectedDates.length - 1] === l ? n.setAttribute("data-vc-date-selected", "first-and-last") : e.context.selectedDates[0] === l ? n.setAttribute("data-vc-date-selected", "first") : e.context.selectedDates[e.context.selectedDates.length - 1] === l && n.setAttribute("data-vc-date-selected", "last"), e.context.selectedDates[0] !== l && e.context.selectedDates[e.context.selectedDates.length - 1] !== l && n.setAttribute("data-vc-date-selected", "middle"))) : n.hasAttribute("data-vc-date-selected") && (n.removeAttribute("data-vc-date-selected"), a && a.removeAttribute("aria-selected")), !e.context.disableDates.includes(l) && e.enableEdgeDatesOnly && e.context.selectedDates.length > 1 && "multiple-ranged" === e.selectionDatesMode) { 4753 const t2 = getDate(e.context.selectedDates[0]), a2 = getDate(e.context.selectedDates[e.context.selectedDates.length - 1]), o2 = getDate(l); 4754 updateAttribute(n, o2 > t2 && o2 < a2, "data-vc-date-selected", "middle"); 4755 } 4756 }, "setDateModifier"); 4757 var getLocaleString = /* @__PURE__ */ __name((e, t, n) => (/* @__PURE__ */ new Date(`${e}T00:00:00.000Z`)).toLocaleString(t, n), "getLocaleString"); 4758 var getWeekNumber = /* @__PURE__ */ __name((e, t) => { 4759 const n = getDate(e), a = (n.getDay() - t + 7) % 7; 4760 n.setDate(n.getDate() + 4 - a); 4761 const o = new Date(n.getFullYear(), 0, 1), l = Math.ceil(((+n - +o) / 864e5 + 1) / 7); 4762 return { year: n.getFullYear(), week: l }; 4763 }, "getWeekNumber"); 4764 var addWeekNumberForDate = /* @__PURE__ */ __name((e, t, n) => { 4765 const a = getWeekNumber(n, e.firstWeekday); 4766 a && (t.dataset.vcDateWeekNumber = String(a.week)); 4767 }, "addWeekNumberForDate"); 4768 var setDaysAsDisabled = /* @__PURE__ */ __name((e, t, n) => { 4769 var a, o, l, s, i; 4770 const r = null == (a = e.disableWeekdays) ? void 0 : a.includes(n), c = e.disableAllDates && !!(null == (o = e.context.enableDates) ? void 0 : o[0]); 4771 !r && !c || (null == (l = e.context.enableDates) ? void 0 : l.includes(t)) || (null == (s = e.context.disableDates) ? void 0 : s.includes(t)) || (e.context.disableDates.push(t), null == (i = e.context.disableDates) || i.sort(((e2, t2) => +new Date(e2) - +new Date(t2)))); 4772 }, "setDaysAsDisabled"); 4773 var createDate = /* @__PURE__ */ __name((e, t, n, a, o, l) => { 4774 const s = getDate(o).getDay(), i = "string" == typeof e.locale && e.locale.length ? e.locale : "en", r = document.createElement("div"); 4775 let c; 4776 r.className = e.styles.date, r.dataset.vcDate = o, r.dataset.vcDateMonth = l, r.dataset.vcDateWeekDay = String(s), r.role = "gridcell", ("current" === l || e.displayDatesOutside) && (c = document.createElement("button"), c.className = e.styles.dateBtn, c.type = "button", c.ariaLabel = getLocaleString(o, i, { dateStyle: "long", timeZone: "UTC" }), c.dataset.vcDateBtn = "", c.innerText = String(a), r.appendChild(c)), e.enableWeekNumbers && addWeekNumberForDate(e, r, o), setDaysAsDisabled(e, o, s), setDateModifier(e, t, r, c, s, o, l), n.addDate(r), e.onCreateDateEls && e.onCreateDateEls(e, r); 4777 }, "createDate"); 4778 var createDatesFromCurrentMonth = /* @__PURE__ */ __name((e, t, n, a, o) => { 4779 for (let l = 1; l <= n; l++) { 4780 const n2 = new Date(a, o, l); 4781 createDate(e, a, t, l, getDateString(n2), "current"); 4782 } 4783 }, "createDatesFromCurrentMonth"); 4784 var createDatesFromNextMonth = /* @__PURE__ */ __name((e, t, n, a, o) => { 4785 const l = o + 1 === 12 ? a + 1 : a, s = o + 1 === 12 ? "01" : o + 2 < 10 ? `0${o + 2}` : o + 2; 4786 for (let o2 = 1; o2 <= n; o2++) { 4787 const n2 = o2 < 10 ? `0${o2}` : String(o2); 4788 createDate(e, a, t, o2, `${l}-${s}-${n2}`, "next"); 4789 } 4790 }, "createDatesFromNextMonth"); 4791 var createDatesFromPrevMonth = /* @__PURE__ */ __name((e, t, n, a, o) => { 4792 let l = new Date(n, a, 0).getDate() - (o - 1); 4793 const s = 0 === a ? n - 1 : n, i = 0 === a ? 12 : a < 10 ? `0${a}` : a; 4794 for (let a2 = o; a2 > 0; a2--, l++) { 4795 createDate(e, n, t, l, `${s}-${i}-${l}`, "prev"); 4796 } 4797 }, "createDatesFromPrevMonth"); 4798 var createWeekNumbers = /* @__PURE__ */ __name((e, t, n, a, o) => { 4799 if (!e.enableWeekNumbers) return; 4800 a.textContent = ""; 4801 const l = document.createElement("b"); 4802 l.className = e.styles.weekNumbersTitle, l.innerText = "#", l.dataset.vcWeekNumbers = "title", a.appendChild(l); 4803 const s = document.createElement("div"); 4804 s.className = e.styles.weekNumbersContent, s.dataset.vcWeekNumbers = "content", a.appendChild(s); 4805 const i = document.createElement("button"); 4806 i.type = "button", i.className = e.styles.weekNumber; 4807 const r = o.querySelectorAll("[data-vc-date]"), c = Math.ceil((t + n) / 7); 4808 for (let t2 = 0; t2 < c; t2++) { 4809 const n2 = r[0 === t2 ? 6 : 7 * t2].dataset.vcDate, a2 = getWeekNumber(n2, e.firstWeekday); 4810 if (!a2) return; 4811 const o2 = i.cloneNode(true); 4812 o2.innerText = String(a2.week), o2.dataset.vcWeekNumber = String(a2.week), o2.dataset.vcWeekYear = String(a2.year), o2.role = "rowheader", o2.ariaLabel = `${a2.week}`, s.appendChild(o2); 4813 } 4814 }, "createWeekNumbers"); 4815 var createDates = /* @__PURE__ */ __name((e) => { 4816 const t = new Date(e.context.selectedYear, e.context.selectedMonth, 1), n = e.context.mainElement.querySelectorAll('[data-vc="dates"]'), a = e.context.mainElement.querySelectorAll('[data-vc-week="numbers"]'); 4817 n.forEach(((n2, o) => { 4818 e.selectionDatesMode || (n2.dataset.vcDatesDisabled = ""), n2.textContent = ""; 4819 const l = new Date(t); 4820 l.setMonth(l.getMonth() + o); 4821 const s = l.getMonth(), i = l.getFullYear(), r = (new Date(i, s, 1).getDay() - e.firstWeekday + 7) % 7, c = new Date(i, s + 1, 0).getDate(), d = r + c, u = Math.ceil(d / 7), m = 7 * u - d, p = []; 4822 for (let t2 = 0; t2 < u; t2++) { 4823 const t3 = document.createElement("div"); 4824 t3.className = e.styles.datesRow, t3.setAttribute("data-vc-dates", "row"), t3.setAttribute("role", "row"), p.push(t3); 4825 } 4826 let h = 0, v = 0; 4827 const g = { addDate: /* @__PURE__ */ __name((e2) => { 4828 p[h].appendChild(e2), v++, v >= 7 && (h++, v = 0); 4829 }, "addDate") }; 4830 createDatesFromPrevMonth(e, g, i, s, r), createDatesFromCurrentMonth(e, g, c, i, s), createDatesFromNextMonth(e, g, m, i, s); 4831 for (const e2 of p) n2.appendChild(e2); 4832 createDatePopup(e, n2), createWeekNumbers(e, r, c, a[o], n2); 4833 })); 4834 }, "createDates"); 4835 var layoutDefault = /* @__PURE__ */ __name((e) => ` 4836 <div class="${e.styles.header}" data-vc="header" role="toolbar" aria-label="${e.labels.navigation}"> 4837 <#ArrowPrev [month] /> 4838 <div class="${e.styles.headerContent}" data-vc-header="content"> 4839 <#Month /> 4840 <#Year /> 4841 </div> 4842 <#ArrowNext [month] /> 4843 </div> 4844 <div class="${e.styles.wrapper}" data-vc="wrapper"> 4845 <#WeekNumbers /> 4846 <div class="${e.styles.content}" data-vc="content" role="grid"> 4847 <#Week /> 4848 <#Dates /> 4849 <#DateRangeTooltip /> 4850 </div> 4851 </div> 4852 <#ControlTime /> 4853`, "layoutDefault"); 4854 var layoutMonths = /* @__PURE__ */ __name((e) => ` 4855 <div class="${e.styles.header}" data-vc="header" role="toolbar" aria-label="${e.labels.navigation}"> 4856 <div class="${e.styles.headerContent}" data-vc-header="content"> 4857 <#Month /> 4858 <#Year /> 4859 </div> 4860 </div> 4861 <div class="${e.styles.wrapper}" data-vc="wrapper"> 4862 <div class="${e.styles.content}" data-vc="content"> 4863 <#Months /> 4864 </div> 4865 </div> 4866`, "layoutMonths"); 4867 var layoutMultiple = /* @__PURE__ */ __name((e) => ` 4868 <div class="${e.styles.controls}" data-vc="controls" role="toolbar" aria-label="${e.labels.navigation}"> 4869 <#ArrowPrev [month] /> 4870 <#ArrowNext [month] /> 4871 </div> 4872 <div class="${e.styles.grid}" data-vc="grid"> 4873 <#Multiple> 4874 <div class="${e.styles.column}" data-vc="column" role="region"> 4875 <div class="${e.styles.header}" data-vc="header"> 4876 <div class="${e.styles.headerContent}" data-vc-header="content"> 4877 <#Month /> 4878 <#Year /> 4879 </div> 4880 </div> 4881 <div class="${e.styles.wrapper}" data-vc="wrapper"> 4882 <#WeekNumbers /> 4883 <div class="${e.styles.content}" data-vc="content" role="grid"> 4884 <#Week /> 4885 <#Dates /> 4886 </div> 4887 </div> 4888 </div> 4889 <#/Multiple> 4890 <#DateRangeTooltip /> 4891 </div> 4892 <#ControlTime /> 4893`, "layoutMultiple"); 4894 var layoutYears = /* @__PURE__ */ __name((e) => ` 4895 <div class="${e.styles.header}" data-vc="header" role="toolbar" aria-label="${e.labels.navigation}"> 4896 <#ArrowPrev [year] /> 4897 <div class="${e.styles.headerContent}" data-vc-header="content"> 4898 <#Month /> 4899 <#Year /> 4900 </div> 4901 <#ArrowNext [year] /> 4902 </div> 4903 <div class="${e.styles.wrapper}" data-vc="wrapper"> 4904 <div class="${e.styles.content}" data-vc="content"> 4905 <#Years /> 4906 </div> 4907 </div> 4908`, "layoutYears"); 4909 var ArrowNext = /* @__PURE__ */ __name((e, t) => `<button type="button" class="${e.styles.arrowNext}" data-vc-arrow="next" aria-label="${e.labels.arrowNext[t]}"></button>`, "ArrowNext"); 4910 var ArrowPrev = /* @__PURE__ */ __name((e, t) => `<button type="button" class="${e.styles.arrowPrev}" data-vc-arrow="prev" aria-label="${e.labels.arrowPrev[t]}"></button>`, "ArrowPrev"); 4911 var ControlTime = /* @__PURE__ */ __name((e) => e.selectionTimeMode ? `<div class="${e.styles.time}" data-vc="time" role="group" aria-label="${e.labels.selectingTime}"></div>` : "", "ControlTime"); 4912 var DateRangeTooltip = /* @__PURE__ */ __name((e) => e.onCreateDateRangeTooltip ? `<div class="${e.styles.dateRangeTooltip}" data-vc-date-range-tooltip="hidden"></div>` : "", "DateRangeTooltip"); 4913 var Dates = /* @__PURE__ */ __name((e) => `<div class="${e.styles.dates}" data-vc="dates" aria-live="assertive" aria-label="${e.labels.dates}" ${"multiple" === e.type ? "aria-multiselectable" : ""}></div>`, "Dates"); 4914 var Month = /* @__PURE__ */ __name((e) => `<button type="button" class="${e.styles.month}" data-vc="month"></button>`, "Month"); 4915 var Months = /* @__PURE__ */ __name((e) => `<div class="${e.styles.months}" data-vc="months" role="grid" aria-live="assertive" aria-label="${e.labels.months}"></div>`, "Months"); 4916 var Week = /* @__PURE__ */ __name((e) => `<div class="${e.styles.week}" data-vc="week" role="row" aria-label="${e.labels.week}"></div>`, "Week"); 4917 var WeekNumbers = /* @__PURE__ */ __name((e) => e.enableWeekNumbers ? `<div class="${e.styles.weekNumbers}" data-vc-week="numbers" role="row" aria-label="${e.labels.weekNumber}"></div>` : "", "WeekNumbers"); 4918 var Year = /* @__PURE__ */ __name((e) => `<button type="button" class="${e.styles.year}" data-vc="year"></button>`, "Year"); 4919 var Years = /* @__PURE__ */ __name((e) => `<div class="${e.styles.years}" data-vc="years" role="grid" aria-live="assertive" aria-label="${e.labels.years}"></div>`, "Years"); 4920 var components = { ArrowNext, ArrowPrev, ControlTime, Dates, DateRangeTooltip, Month, Months, Week, WeekNumbers, Year, Years }; 4921 var getComponent = /* @__PURE__ */ __name((e) => components[e], "getComponent"); 4922 var parseLayout = /* @__PURE__ */ __name((e, t) => t.replace(/[\n\t]/g, "").replace(/<#(?!\/?Multiple)(.*?)>/g, ((t2, n) => { 4923 const a = (n.match(/\[(.*?)\]/) || [])[1], o = n.replace(/[/\s\n\t]|\[(.*?)\]/g, ""), l = getComponent(o), s = l ? l(e, null != a ? a : null) : ""; 4924 return e.sanitizerHTML(s); 4925 })).replace(/[\n\t]/g, ""), "parseLayout"); 4926 var parseMultipleLayout = /* @__PURE__ */ __name((e, t) => t.replace(new RegExp("<#Multiple>(.*?)<#\\/Multiple>", "gs"), ((t2, n) => { 4927 const a = Array(e.context.displayMonthsCount).fill(n).join(""); 4928 return e.sanitizerHTML(a); 4929 })).replace(/[\n\t]/g, ""), "parseMultipleLayout"); 4930 var createLayouts = /* @__PURE__ */ __name((e, t) => { 4931 const n = { default: layoutDefault, month: layoutMonths, year: layoutYears, multiple: layoutMultiple }; 4932 if (Object.keys(n).forEach(((t2) => { 4933 const a = t2; 4934 e.layouts[a].length || (e.layouts[a] = n[a](e)); 4935 })), e.context.mainElement.className = e.styles.calendar, e.context.mainElement.dataset.vc = "calendar", e.context.mainElement.dataset.vcType = e.context.currentType, e.context.mainElement.role = "application", e.context.mainElement.tabIndex = 0, e.context.mainElement.ariaLabel = e.labels.application, "multiple" !== e.context.currentType) { 4936 if ("multiple" === e.type && t) { 4937 const n2 = e.context.mainElement.querySelector('[data-vc="controls"]'), a = e.context.mainElement.querySelector('[data-vc="grid"]'), o = t.closest('[data-vc="column"]'); 4938 return n2 && n2.remove(), a && (a.dataset.vcGrid = "hidden"), o && (o.dataset.vcColumn = e.context.currentType), void (o && (o.innerHTML = e.sanitizerHTML(parseLayout(e, e.layouts[e.context.currentType])))); 4939 } 4940 e.context.mainElement.innerHTML = e.sanitizerHTML(parseLayout(e, e.layouts[e.context.currentType])); 4941 } else e.context.mainElement.innerHTML = e.sanitizerHTML(parseMultipleLayout(e, parseLayout(e, e.layouts[e.context.currentType]))); 4942 }, "createLayouts"); 4943 var setVisibilityArrows = /* @__PURE__ */ __name((e, t, n, a) => { 4944 e.style.visibility = n ? "hidden" : "", t.style.visibility = a ? "hidden" : ""; 4945 }, "setVisibilityArrows"); 4946 var handleDefaultType = /* @__PURE__ */ __name((e, t, n) => { 4947 const a = getDate(getDateString(new Date(e.context.selectedYear, e.context.selectedMonth, 1))), o = new Date(a.getTime()), l = new Date(a.getTime()); 4948 o.setMonth(o.getMonth() - e.monthsToSwitch), l.setMonth(l.getMonth() + e.monthsToSwitch); 4949 const s = getDate(e.context.dateMin), i = getDate(e.context.dateMax); 4950 e.selectionYearsMode || (s.setFullYear(a.getFullYear()), i.setFullYear(a.getFullYear())); 4951 const r = !e.selectionMonthsMode || o.getFullYear() < s.getFullYear() || o.getFullYear() === s.getFullYear() && o.getMonth() < s.getMonth(), c = !e.selectionMonthsMode || l.getFullYear() > i.getFullYear() || l.getFullYear() === i.getFullYear() && l.getMonth() > i.getMonth() - (e.context.displayMonthsCount - 1); 4952 setVisibilityArrows(t, n, r, c); 4953 }, "handleDefaultType"); 4954 var handleYearType = /* @__PURE__ */ __name((e, t, n) => { 4955 const a = getDate(e.context.dateMin), o = getDate(e.context.dateMax), l = !!(a.getFullYear() && e.context.displayYear - 7 <= a.getFullYear()), s = !!(o.getFullYear() && e.context.displayYear + 7 >= o.getFullYear()); 4956 setVisibilityArrows(t, n, l, s); 4957 }, "handleYearType"); 4958 var visibilityArrows = /* @__PURE__ */ __name((e) => { 4959 if ("month" === e.context.currentType) return; 4960 const t = e.context.mainElement.querySelector('[data-vc-arrow="prev"]'), n = e.context.mainElement.querySelector('[data-vc-arrow="next"]'); 4961 if (!t || !n) return; 4962 ({ default: /* @__PURE__ */ __name(() => handleDefaultType(e, t, n), "default"), year: /* @__PURE__ */ __name(() => handleYearType(e, t, n), "year") })["multiple" === e.context.currentType ? "default" : e.context.currentType](); 4963 }, "visibilityArrows"); 4964 var visibilityHandler = /* @__PURE__ */ __name((e, t, n, a, o) => { 4965 const l = new Date(a.setFullYear(e.context.selectedYear, e.context.selectedMonth + n)).getFullYear(), s = new Date(a.setMonth(e.context.selectedMonth + n)).getMonth(), i = e.context.locale.months.long[s], r = t.closest('[data-vc="column"]'); 4966 r && (r.ariaLabel = `${i} ${l}`); 4967 const c = { month: { id: s, label: i }, year: { id: l, label: l } }; 4968 t.innerText = String(c[o].label), t.dataset[`vc${o.charAt(0).toUpperCase() + o.slice(1)}`] = String(c[o].id), t.ariaLabel = `${e.labels[o]} ${c[o].label}`; 4969 const d = { month: e.selectionMonthsMode, year: e.selectionYearsMode }, u = false === d[o] || "only-arrows" === d[o]; 4970 u && (t.tabIndex = -1), t.disabled = u; 4971 }, "visibilityHandler"); 4972 var visibilityTitle = /* @__PURE__ */ __name((e) => { 4973 const t = e.context.mainElement.querySelectorAll('[data-vc="month"]'), n = e.context.mainElement.querySelectorAll('[data-vc="year"]'), a = new Date(e.context.selectedYear, e.context.selectedMonth, 1); 4974 [t, n].forEach(((t2) => null == t2 ? void 0 : t2.forEach(((t3, n2) => visibilityHandler(e, t3, n2, a, t3.dataset.vc))))); 4975 }, "visibilityTitle"); 4976 var setYearModifier = /* @__PURE__ */ __name((e, t, n, a, o) => { 4977 var l; 4978 const s = { month: "[data-vc-months-month]", year: "[data-vc-years-year]" }, i = { month: { selected: "data-vc-months-month-selected", aria: "aria-selected", value: "vcMonthsMonth", selectedProperty: "selectedMonth" }, year: { selected: "data-vc-years-year-selected", aria: "aria-selected", value: "vcYearsYear", selectedProperty: "selectedYear" } }; 4979 o && (null == (l = e.context.mainElement.querySelectorAll(s[n])) || l.forEach(((e2) => { 4980 e2.removeAttribute(i[n].selected), e2.removeAttribute(i[n].aria); 4981 })), setContext(e, i[n].selectedProperty, Number(t.dataset[i[n].value])), visibilityTitle(e), "year" === n && visibilityArrows(e)), a && (t.setAttribute(i[n].selected, ""), t.setAttribute(i[n].aria, "true")); 4982 }, "setYearModifier"); 4983 var getColumnID = /* @__PURE__ */ __name((e, t) => { 4984 var n; 4985 if ("multiple" !== e.type) return { currentValue: null, columnID: 0 }; 4986 const a = e.context.mainElement.querySelectorAll('[data-vc="column"]'), o = Array.from(a).findIndex(((e2) => e2.closest(`[data-vc-column="${t}"]`))); 4987 return { currentValue: o >= 0 ? Number(null == (n = a[o].querySelector(`[data-vc="${t}"]`)) ? void 0 : n.getAttribute(`data-vc-${t}`)) : null, columnID: Math.max(o, 0) }; 4988 }, "getColumnID"); 4989 var createMonthEl = /* @__PURE__ */ __name((e, t, n, a, o, l, s) => { 4990 const i = t.cloneNode(false); 4991 return i.className = e.styles.monthsMonth, i.innerText = a, i.ariaLabel = o, i.role = "gridcell", i.dataset.vcMonthsMonth = `${s}`, l && (i.ariaDisabled = "true"), l && (i.tabIndex = -1), i.disabled = l, setYearModifier(e, i, "month", n === s, false), i; 4992 }, "createMonthEl"); 4993 var createMonths = /* @__PURE__ */ __name((e, t) => { 4994 var n, a; 4995 const o = null == (n = null == t ? void 0 : t.closest('[data-vc="header"]')) ? void 0 : n.querySelector('[data-vc="year"]'), l = o ? Number(o.dataset.vcYear) : e.context.selectedYear, s = (null == t ? void 0 : t.dataset.vcMonth) ? Number(t.dataset.vcMonth) : e.context.selectedMonth; 4996 setContext(e, "currentType", "month"), createLayouts(e, t), visibilityTitle(e); 4997 const i = e.context.mainElement.querySelector('[data-vc="months"]'); 4998 if (!e.selectionMonthsMode || !i) return; 4999 const r = e.monthsToSwitch > 1 ? e.context.locale.months.long.map(((t2, n2) => s - e.monthsToSwitch * n2)).concat(e.context.locale.months.long.map(((t2, n2) => s + e.monthsToSwitch * n2))).filter(((e2) => e2 >= 0 && e2 <= 12)) : Array.from(Array(12).keys()), c = document.createElement("button"); 5000 c.type = "button"; 5001 for (let t2 = 0; t2 < 12; t2++) { 5002 const n2 = getDate(e.context.dateMin), a2 = getDate(e.context.dateMax), o2 = e.context.displayMonthsCount - 1, { columnID: d } = getColumnID(e, "month"), u = l <= n2.getFullYear() && t2 < n2.getMonth() + d || l >= a2.getFullYear() && t2 > a2.getMonth() - o2 + d || l > a2.getFullYear() || t2 !== s && !r.includes(t2), m = createMonthEl(e, c, s, e.context.locale.months.short[t2], e.context.locale.months.long[t2], u, t2); 5003 i.appendChild(m), e.onCreateMonthEls && e.onCreateMonthEls(e, m); 5004 } 5005 null == (a = e.context.mainElement.querySelector("[data-vc-months-month]:not([disabled])")) || a.focus(); 5006 }, "createMonths"); 5007 var TimeInput = /* @__PURE__ */ __name((e, t, n, a, o) => ` 5008 <label class="${t}" data-vc-time-input="${e}"> 5009 <input type="text" name="${e}" maxlength="2" aria-label="${n[`input${e.charAt(0).toUpperCase() + e.slice(1)}`]}" value="${a}" ${o ? "disabled" : ""}> 5010 </label> 5011`, "TimeInput"); 5012 var TimeRange = /* @__PURE__ */ __name((e, t, n, a, o, l, s) => ` 5013 <label class="${t}" data-vc-time-range="${e}"> 5014 <input type="range" name="${e}" min="${a}" max="${o}" step="${l}" aria-label="${n[`range${e.charAt(0).toUpperCase() + e.slice(1)}`]}" value="${s}"> 5015 </label> 5016`, "TimeRange"); 5017 var handleActions = /* @__PURE__ */ __name((e, t, n, a) => { 5018 ({ hour: /* @__PURE__ */ __name(() => setContext(e, "selectedHours", n), "hour"), minute: /* @__PURE__ */ __name(() => setContext(e, "selectedMinutes", n), "minute") })[a](), setContext(e, "selectedTime", `${e.context.selectedHours}:${e.context.selectedMinutes}${e.context.selectedKeeping ? ` ${e.context.selectedKeeping}` : ""}`), e.onChangeTime && e.onChangeTime(e, t, false), e.inputMode && e.context.inputElement && e.context.mainElement && e.onChangeToInput && e.onChangeToInput(e, t); 5019 }, "handleActions"); 5020 var transformTime24 = /* @__PURE__ */ __name((e, t) => { 5021 var n; 5022 return (null == (n = { 0: { AM: "00", PM: "12" }, 1: { AM: "01", PM: "13" }, 2: { AM: "02", PM: "14" }, 3: { AM: "03", PM: "15" }, 4: { AM: "04", PM: "16" }, 5: { AM: "05", PM: "17" }, 6: { AM: "06", PM: "18" }, 7: { AM: "07", PM: "19" }, 8: { AM: "08", PM: "20" }, 9: { AM: "09", PM: "21" }, 10: { AM: "10", PM: "22" }, 11: { AM: "11", PM: "23" }, 12: { AM: "00", PM: "12" } }[Number(e)]) ? void 0 : n[t]) || String(e); 5023 }, "transformTime24"); 5024 var handleClickKeepingTime = /* @__PURE__ */ __name((e, t, n, a, o) => { 5025 const l = /* @__PURE__ */ __name((l2) => { 5026 const s = "AM" === e.context.selectedKeeping ? "PM" : "AM", i = transformTime24(e.context.selectedHours, s); 5027 Number(i) <= a && Number(i) >= o ? (setContext(e, "selectedKeeping", s), n.value = i, handleActions(e, l2, e.context.selectedHours, "hour"), t.ariaLabel = `${e.labels.btnKeeping} ${e.context.selectedKeeping}`, t.innerText = e.context.selectedKeeping) : e.onChangeTime && e.onChangeTime(e, l2, true); 5028 }, "l"); 5029 return t.addEventListener("click", l), () => { 5030 t.removeEventListener("click", l); 5031 }; 5032 }, "handleClickKeepingTime"); 5033 var transformTime12 = /* @__PURE__ */ __name((e) => ({ 0: "12", 13: "01", 14: "02", 15: "03", 16: "04", 17: "05", 18: "06", 19: "07", 20: "08", 21: "09", 22: "10", 23: "11" })[Number(e)] || String(e), "transformTime12"); 5034 var updateInputAndRange = /* @__PURE__ */ __name((e, t, n, a) => { 5035 e.value = n, t.value = a; 5036 }, "updateInputAndRange"); 5037 var updateKeepingTime$1 = /* @__PURE__ */ __name((e, t, n) => { 5038 t && n && (setContext(e, "selectedKeeping", n), t.innerText = n); 5039 }, "updateKeepingTime$1"); 5040 var handleInput$1 = /* @__PURE__ */ __name((e, t, n, a, o, l, s) => { 5041 const i = { hour: /* @__PURE__ */ __name((i2, r2, c) => { 5042 if (!e.selectionTimeMode) return; 5043 ({ 12: () => { 5044 if (!e.context.selectedKeeping) return; 5045 const d = Number(transformTime24(r2, e.context.selectedKeeping)); 5046 if (!(d <= l && d >= s)) return updateInputAndRange(n, t, e.context.selectedHours, e.context.selectedHours), void (e.onChangeTime && e.onChangeTime(e, c, true)); 5047 updateInputAndRange(n, t, transformTime12(r2), transformTime24(r2, e.context.selectedKeeping)), i2 > 12 && updateKeepingTime$1(e, a, "PM"), handleActions(e, c, transformTime12(r2), o); 5048 }, 24: () => { 5049 if (!(i2 <= l && i2 >= s)) return updateInputAndRange(n, t, e.context.selectedHours, e.context.selectedHours), void (e.onChangeTime && e.onChangeTime(e, c, true)); 5050 updateInputAndRange(n, t, r2, r2), handleActions(e, c, r2, o); 5051 } })[e.selectionTimeMode](); 5052 }, "hour"), minute: /* @__PURE__ */ __name((a2, i2, r2) => { 5053 if (!(a2 <= l && a2 >= s)) return n.value = e.context.selectedMinutes, void (e.onChangeTime && e.onChangeTime(e, r2, true)); 5054 n.value = i2, t.value = i2, handleActions(e, r2, i2, o); 5055 }, "minute") }, r = /* @__PURE__ */ __name((e2) => { 5056 const t2 = Number(n.value), a2 = n.value.padStart(2, "0"); 5057 i[o] && i[o](t2, a2, e2); 5058 }, "r"); 5059 return n.addEventListener("change", r), () => { 5060 n.removeEventListener("change", r); 5061 }; 5062 }, "handleInput$1"); 5063 var updateInputAndTime = /* @__PURE__ */ __name((e, t, n, a, o) => { 5064 t.value = o, handleActions(e, n, o, a); 5065 }, "updateInputAndTime"); 5066 var updateKeepingTime = /* @__PURE__ */ __name((e, t, n) => { 5067 t && (setContext(e, "selectedKeeping", n), t.innerText = n); 5068 }, "updateKeepingTime"); 5069 var handleRange = /* @__PURE__ */ __name((e, t, n, a, o) => { 5070 const l = /* @__PURE__ */ __name((l2) => { 5071 const s = Number(t.value), i = t.value.padStart(2, "0"), r = "hour" === o, c = 24 === e.selectionTimeMode, d = s > 0 && s < 12; 5072 r && !c && updateKeepingTime(e, a, 0 === s || d ? "AM" : "PM"), updateInputAndTime(e, n, l2, o, !r || c || d ? i : transformTime12(t.value)); 5073 }, "l"); 5074 return t.addEventListener("input", l), () => { 5075 t.removeEventListener("input", l); 5076 }; 5077 }, "handleRange"); 5078 var handleMouseOver = /* @__PURE__ */ __name((e) => e.setAttribute("data-vc-input-focus", ""), "handleMouseOver"); 5079 var handleMouseOut = /* @__PURE__ */ __name((e) => e.removeAttribute("data-vc-input-focus"), "handleMouseOut"); 5080 var handleTime = /* @__PURE__ */ __name((e, t) => { 5081 const n = t.querySelector('[data-vc-time-range="hour"] input[name="hour"]'), a = t.querySelector('[data-vc-time-range="minute"] input[name="minute"]'), o = t.querySelector('[data-vc-time-input="hour"] input[name="hour"]'), l = t.querySelector('[data-vc-time-input="minute"] input[name="minute"]'), s = t.querySelector('[data-vc-time="keeping"]'); 5082 if (!(n && a && o && l)) return; 5083 const i = /* @__PURE__ */ __name((e2) => { 5084 e2.target === n && handleMouseOver(o), e2.target === a && handleMouseOver(l); 5085 }, "i"), r = /* @__PURE__ */ __name((e2) => { 5086 e2.target === n && handleMouseOut(o), e2.target === a && handleMouseOut(l); 5087 }, "r"); 5088 return t.addEventListener("mouseover", i), t.addEventListener("mouseout", r), handleInput$1(e, n, o, s, "hour", e.timeMaxHour, e.timeMinHour), handleInput$1(e, a, l, s, "minute", e.timeMaxMinute, e.timeMinMinute), handleRange(e, n, o, s, "hour"), handleRange(e, a, l, s, "minute"), s && handleClickKeepingTime(e, s, n, e.timeMaxHour, e.timeMinHour), () => { 5089 t.removeEventListener("mouseover", i), t.removeEventListener("mouseout", r); 5090 }; 5091 }, "handleTime"); 5092 var createTime = /* @__PURE__ */ __name((e) => { 5093 const t = e.context.mainElement.querySelector('[data-vc="time"]'); 5094 if (!e.selectionTimeMode || !t) return; 5095 const [n, a] = [e.timeMinHour, e.timeMaxHour], [o, l] = [e.timeMinMinute, e.timeMaxMinute], s = e.context.selectedKeeping ? transformTime24(e.context.selectedHours, e.context.selectedKeeping) : e.context.selectedHours, i = "range" === e.timeControls; 5096 var r; 5097 t.innerHTML = e.sanitizerHTML(` 5098 <div class="${e.styles.timeContent}" data-vc-time="content"> 5099 ${TimeInput("hour", e.styles.timeHour, e.labels, e.context.selectedHours, i)} 5100 ${TimeInput("minute", e.styles.timeMinute, e.labels, e.context.selectedMinutes, i)} 5101 ${12 === e.selectionTimeMode ? (r = e.context.selectedKeeping, `<button type="button" class="${e.styles.timeKeeping}" aria-label="${e.labels.btnKeeping} ${r}" data-vc-time="keeping" ${i ? "disabled" : ""}>${r}</button>`) : ""} 5102 </div> 5103 <div class="${e.styles.timeRanges}" data-vc-time="ranges"> 5104 ${TimeRange("hour", e.styles.timeRange, e.labels, n, a, e.timeStepHour, s)} 5105 ${TimeRange("minute", e.styles.timeRange, e.labels, o, l, e.timeStepMinute, e.context.selectedMinutes)} 5106 </div> 5107 `), handleTime(e, t); 5108 }, "createTime"); 5109 var createWeek = /* @__PURE__ */ __name((e) => { 5110 const t = e.selectedWeekends ? [...e.selectedWeekends] : [], n = [...e.context.locale.weekdays.long].reduce(((n2, a2, o) => [...n2, { id: o, titleShort: e.context.locale.weekdays.short[o], titleLong: a2, isWeekend: t.includes(o) }]), []), a = [...n.slice(e.firstWeekday), ...n.slice(0, e.firstWeekday)]; 5111 e.context.mainElement.querySelectorAll('[data-vc="week"]').forEach(((t2) => { 5112 const n2 = e.onClickWeekDay ? document.createElement("button") : document.createElement("b"); 5113 e.onClickWeekDay && (n2.type = "button"), a.forEach(((a2) => { 5114 const o = n2.cloneNode(true); 5115 o.innerText = a2.titleShort, o.className = e.styles.weekDay, o.role = "columnheader", o.ariaLabel = a2.titleLong, o.dataset.vcWeekDay = String(a2.id), a2.isWeekend && (o.dataset.vcWeekDayOff = ""), t2.appendChild(o); 5116 })); 5117 })); 5118 }, "createWeek"); 5119 var createYearEl = /* @__PURE__ */ __name((e, t, n, a, o) => { 5120 const l = t.cloneNode(false); 5121 return l.className = e.styles.yearsYear, l.innerText = String(o), l.ariaLabel = String(o), l.role = "gridcell", l.dataset.vcYearsYear = `${o}`, a && (l.ariaDisabled = "true"), a && (l.tabIndex = -1), l.disabled = a, setYearModifier(e, l, "year", n === o, false), l; 5122 }, "createYearEl"); 5123 var createYears = /* @__PURE__ */ __name((e, t) => { 5124 var n; 5125 const a = (null == t ? void 0 : t.dataset.vcYear) ? Number(t.dataset.vcYear) : e.context.selectedYear; 5126 setContext(e, "currentType", "year"), createLayouts(e, t), visibilityTitle(e), visibilityArrows(e); 5127 const o = e.context.mainElement.querySelector('[data-vc="years"]'); 5128 if (!e.selectionYearsMode || !o) return; 5129 const l = "multiple" !== e.type || e.context.selectedYear === a ? 0 : 1, s = document.createElement("button"); 5130 s.type = "button"; 5131 for (let t2 = e.context.displayYear - 7; t2 < e.context.displayYear + 8; t2++) { 5132 const n2 = t2 < getDate(e.context.dateMin).getFullYear() + l || t2 > getDate(e.context.dateMax).getFullYear(), i = createYearEl(e, s, a, n2, t2); 5133 o.appendChild(i), e.onCreateYearEls && e.onCreateYearEls(e, i); 5134 } 5135 null == (n = e.context.mainElement.querySelector("[data-vc-years-year]:not([disabled])")) || n.focus(); 5136 }, "createYears"); 5137 var trackChangesHTMLElement = /* @__PURE__ */ __name((e, t, n) => { 5138 new MutationObserver(((e2) => { 5139 for (let a = 0; a < e2.length; a++) { 5140 if (e2[a].attributeName === t) { 5141 n(); 5142 break; 5143 } 5144 } 5145 })).observe(e, { attributes: true }); 5146 }, "trackChangesHTMLElement"); 5147 var haveListener = { value: false, set: /* @__PURE__ */ __name(() => haveListener.value = true, "set"), check: /* @__PURE__ */ __name(() => haveListener.value, "check") }; 5148 var setTheme = /* @__PURE__ */ __name((e, t) => e.dataset.vcTheme = t, "setTheme"); 5149 var trackChangesThemeInSystemSettings = /* @__PURE__ */ __name((e, t) => { 5150 if (setTheme(e.context.mainElement, t.matches ? "dark" : "light"), "system" !== e.selectedTheme || haveListener.check()) return; 5151 const n = /* @__PURE__ */ __name((e2) => { 5152 const t2 = document.querySelectorAll('[data-vc="calendar"]'); 5153 null == t2 || t2.forEach(((t3) => setTheme(t3, e2.matches ? "dark" : "light"))); 5154 }, "n"); 5155 t.addEventListener ? t.addEventListener("change", n) : t.addListener(n), haveListener.set(); 5156 }, "trackChangesThemeInSystemSettings"); 5157 var detectTheme = /* @__PURE__ */ __name((e, t) => { 5158 const n = e.themeAttrDetect.length ? document.querySelector(e.themeAttrDetect) : null, a = e.themeAttrDetect.replace(/^.*\[(.+)\]/g, ((e2, t2) => t2)); 5159 if (!n || "system" === n.getAttribute(a)) return void trackChangesThemeInSystemSettings(e, t); 5160 const o = n.getAttribute(a); 5161 o ? (setTheme(e.context.mainElement, o), trackChangesHTMLElement(n, a, (() => { 5162 const t2 = n.getAttribute(a); 5163 t2 && setTheme(e.context.mainElement, t2); 5164 }))) : trackChangesThemeInSystemSettings(e, t); 5165 }, "detectTheme"); 5166 var handleTheme = /* @__PURE__ */ __name((e) => { 5167 "not all" !== window.matchMedia("(prefers-color-scheme)").media ? "system" === e.selectedTheme ? detectTheme(e, window.matchMedia("(prefers-color-scheme: dark)")) : setTheme(e.context.mainElement, e.selectedTheme) : setTheme(e.context.mainElement, "light"); 5168 }, "handleTheme"); 5169 var capitalizeFirstLetter = /* @__PURE__ */ __name((e) => e.charAt(0).toUpperCase() + e.slice(1).replace(/\./, ""), "capitalizeFirstLetter"); 5170 var getLocaleWeekday = /* @__PURE__ */ __name((e, t, n) => { 5171 const a = /* @__PURE__ */ new Date(`1978-01-0${t + 1}T00:00:00.000Z`), o = a.toLocaleString(n, { weekday: "short", timeZone: "UTC" }), l = a.toLocaleString(n, { weekday: "long", timeZone: "UTC" }); 5172 e.context.locale.weekdays.short.push(capitalizeFirstLetter(o)), e.context.locale.weekdays.long.push(capitalizeFirstLetter(l)); 5173 }, "getLocaleWeekday"); 5174 var getLocaleMonth = /* @__PURE__ */ __name((e, t, n) => { 5175 const a = /* @__PURE__ */ new Date(`1978-${String(t + 1).padStart(2, "0")}-01T00:00:00.000Z`), o = a.toLocaleString(n, { month: "short", timeZone: "UTC" }), l = a.toLocaleString(n, { month: "long", timeZone: "UTC" }); 5176 e.context.locale.months.short.push(capitalizeFirstLetter(o)), e.context.locale.months.long.push(capitalizeFirstLetter(l)); 5177 }, "getLocaleMonth"); 5178 var getLocale = /* @__PURE__ */ __name((e) => { 5179 var t, n, a, o, l, s, i, r; 5180 if (!(e.context.locale.weekdays.short[6] && e.context.locale.weekdays.long[6] && e.context.locale.months.short[11] && e.context.locale.months.long[11])) if ("string" == typeof e.locale) { 5181 if ("string" == typeof e.locale && !e.locale.length) throw new Error(errorMessages.notLocale); 5182 Array.from({ length: 7 }, ((t2, n2) => getLocaleWeekday(e, n2, e.locale))), Array.from({ length: 12 }, ((t2, n2) => getLocaleMonth(e, n2, e.locale))); 5183 } else { 5184 if (!((null == (n = null == (t = e.locale) ? void 0 : t.weekdays) ? void 0 : n.short[6]) && (null == (o = null == (a = e.locale) ? void 0 : a.weekdays) ? void 0 : o.long[6]) && (null == (s = null == (l = e.locale) ? void 0 : l.months) ? void 0 : s.short[11]) && (null == (r = null == (i = e.locale) ? void 0 : i.months) ? void 0 : r.long[11]))) throw new Error(errorMessages.notLocale); 5185 setContext(e, "locale", __spreadValues({}, e.locale)); 5186 } 5187 }, "getLocale"); 5188 var create = /* @__PURE__ */ __name((e) => { 5189 const t = { default: /* @__PURE__ */ __name(() => { 5190 createWeek(e), createDates(e); 5191 }, "default"), multiple: /* @__PURE__ */ __name(() => { 5192 createWeek(e), createDates(e); 5193 }, "multiple"), month: /* @__PURE__ */ __name(() => createMonths(e), "month"), year: /* @__PURE__ */ __name(() => createYears(e), "year") }; 5194 handleTheme(e), getLocale(e), createLayouts(e), visibilityTitle(e), visibilityArrows(e), createTime(e), t[e.context.currentType](); 5195 }, "create"); 5196 var handleArrowKeys = /* @__PURE__ */ __name((e) => { 5197 const t = /* @__PURE__ */ __name((t2) => { 5198 var n; 5199 const a = t2.target; 5200 if (!["ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight"].includes(t2.key) || "button" !== a.localName) return; 5201 const o = Array.from(e.context.mainElement.querySelectorAll('[data-vc="calendar"] button')), l = o.indexOf(a); 5202 if (-1 === l) return; 5203 const s = (i = o[l]).hasAttribute("data-vc-date-btn") ? 7 : i.hasAttribute("data-vc-months-month") ? 4 : i.hasAttribute("data-vc-years-year") ? 5 : 1; 5204 var i; 5205 const r = (0, { ArrowUp: /* @__PURE__ */ __name(() => Math.max(0, l - s), "ArrowUp"), ArrowDown: /* @__PURE__ */ __name(() => Math.min(o.length - 1, l + s), "ArrowDown"), ArrowLeft: /* @__PURE__ */ __name(() => Math.max(0, l - 1), "ArrowLeft"), ArrowRight: /* @__PURE__ */ __name(() => Math.min(o.length - 1, l + 1), "ArrowRight") }[t2.key])(); 5206 null == (n = o[r]) || n.focus(); 5207 }, "t"); 5208 return e.context.mainElement.addEventListener("keydown", t), () => e.context.mainElement.removeEventListener("keydown", t); 5209 }, "handleArrowKeys"); 5210 var handleMonth = /* @__PURE__ */ __name((e, t) => { 5211 const n = getDate(getDateString(new Date(e.context.selectedYear, e.context.selectedMonth, 1))); 5212 ({ prev: /* @__PURE__ */ __name(() => n.setMonth(n.getMonth() - e.monthsToSwitch), "prev"), next: /* @__PURE__ */ __name(() => n.setMonth(n.getMonth() + e.monthsToSwitch), "next") })[t](), setContext(e, "selectedMonth", n.getMonth()), setContext(e, "selectedYear", n.getFullYear()), visibilityTitle(e), visibilityArrows(e), createDates(e); 5213 }, "handleMonth"); 5214 var handleClickArrow = /* @__PURE__ */ __name((e, t) => { 5215 const n = t.target.closest("[data-vc-arrow]"); 5216 if (n) { 5217 if (["default", "multiple"].includes(e.context.currentType)) handleMonth(e, n.dataset.vcArrow); 5218 else if ("year" === e.context.currentType && void 0 !== e.context.displayYear) { 5219 const a = { prev: -15, next: 15 }[n.dataset.vcArrow]; 5220 setContext(e, "displayYear", e.context.displayYear + a), createYears(e, t.target); 5221 } 5222 e.onClickArrow && e.onClickArrow(e, t); 5223 } 5224 }, "handleClickArrow"); 5225 var resolveToggle = /* @__PURE__ */ __name((e, t) => void 0 === t || ("function" == typeof t ? t(e) : t), "resolveToggle"); 5226 var canToggleSelection = /* @__PURE__ */ __name((e) => resolveToggle(e, e.enableDateToggle), "canToggleSelection"); 5227 var handleSelectDate = /* @__PURE__ */ __name((e, t, n) => { 5228 const a = t.dataset.vcDate, o = t.closest("[data-vc-date][data-vc-date-selected]"), l = canToggleSelection(e); 5229 if (o && !l) return; 5230 const s = o ? e.context.selectedDates.filter(((e2) => e2 !== a)) : n ? [...e.context.selectedDates, a] : [a]; 5231 setContext(e, "selectedDates", s); 5232 }, "handleSelectDate"); 5233 var createDateRangeTooltip = /* @__PURE__ */ __name((e, t, n) => { 5234 if (!t) return; 5235 if (!n) return t.dataset.vcDateRangeTooltip = "hidden", void (t.textContent = ""); 5236 const a = e.context.mainElement.getBoundingClientRect(), o = n.getBoundingClientRect(); 5237 t.style.left = o.left - a.left + o.width / 2 + "px", t.style.top = o.bottom - a.top - o.height + "px", t.dataset.vcDateRangeTooltip = "visible", t.innerHTML = e.sanitizerHTML(e.onCreateDateRangeTooltip(e, n, t, o, a)); 5238 }, "createDateRangeTooltip"); 5239 var state = { self: null, lastDateEl: null, isHovering: false, rangeMin: void 0, rangeMax: void 0, tooltipEl: null, timeoutId: null }; 5240 var addHoverEffect = /* @__PURE__ */ __name((e, t, n) => { 5241 var a, o, l; 5242 if (!(null == (o = null == (a = state.self) ? void 0 : a.context) ? void 0 : o.selectedDates[0])) return; 5243 const s = getDateString(e); 5244 (null == (l = state.self.context.disableDates) ? void 0 : l.includes(s)) || (state.self.context.mainElement.querySelectorAll(`[data-vc-date="${s}"]`).forEach(((e2) => e2.dataset.vcDateHover = "")), t.forEach(((e2) => e2.dataset.vcDateHover = "first")), n.forEach(((e2) => { 5245 "first" === e2.dataset.vcDateHover ? e2.dataset.vcDateHover = "first-and-last" : e2.dataset.vcDateHover = "last"; 5246 }))); 5247 }, "addHoverEffect"); 5248 var removeHoverEffect = /* @__PURE__ */ __name(() => { 5249 var e, t; 5250 if (!(null == (t = null == (e = state.self) ? void 0 : e.context) ? void 0 : t.mainElement)) return; 5251 state.self.context.mainElement.querySelectorAll("[data-vc-date-hover]").forEach(((e2) => e2.removeAttribute("data-vc-date-hover"))); 5252 }, "removeHoverEffect"); 5253 var handleHoverDatesEvent = /* @__PURE__ */ __name((e) => { 5254 var t, n; 5255 if (!e || !(null == (n = null == (t = state.self) ? void 0 : t.context) ? void 0 : n.selectedDates[0])) return; 5256 if (!e.closest('[data-vc="dates"]')) return state.lastDateEl = null, createDateRangeTooltip(state.self, state.tooltipEl, null), void removeHoverEffect(); 5257 const a = e.closest("[data-vc-date]"); 5258 if (!a || state.lastDateEl === a) return; 5259 state.lastDateEl = a, createDateRangeTooltip(state.self, state.tooltipEl, a), removeHoverEffect(); 5260 const o = a.dataset.vcDate, l = getDate(state.self.context.selectedDates[0]), s = getDate(o), i = state.self.context.mainElement.querySelectorAll(`[data-vc-date="${state.self.context.selectedDates[0]}"]`), r = state.self.context.mainElement.querySelectorAll(`[data-vc-date="${o}"]`), [c, d] = l < s ? [i, r] : [r, i], [u, m] = l < s ? [l, s] : [s, l]; 5261 for (let e2 = new Date(u); e2 <= m; e2.setDate(e2.getDate() + 1)) addHoverEffect(e2, c, d); 5262 }, "handleHoverDatesEvent"); 5263 var handleHoverSelectedDatesRangeEvent = /* @__PURE__ */ __name((e) => { 5264 const t = null == e ? void 0 : e.closest("[data-vc-date-selected]"); 5265 if (!t && state.lastDateEl) return state.lastDateEl = null, void createDateRangeTooltip(state.self, state.tooltipEl, null); 5266 t && state.lastDateEl !== t && (state.lastDateEl = t, createDateRangeTooltip(state.self, state.tooltipEl, t)); 5267 }, "handleHoverSelectedDatesRangeEvent"); 5268 var optimizedHoverHandler = /* @__PURE__ */ __name((e) => (t) => { 5269 const n = t.target; 5270 state.isHovering || (state.isHovering = true, requestAnimationFrame((() => { 5271 e(n), state.isHovering = false; 5272 }))); 5273 }, "optimizedHoverHandler"); 5274 var optimizedHandleHoverDatesEvent = optimizedHoverHandler(handleHoverDatesEvent); 5275 var optimizedHandleHoverSelectedDatesRangeEvent = optimizedHoverHandler(handleHoverSelectedDatesRangeEvent); 5276 var handleCancelSelectionDates = /* @__PURE__ */ __name((e) => { 5277 state.self && "Escape" === e.key && (state.lastDateEl = null, setContext(state.self, "selectedDates", []), state.self.context.mainElement.removeEventListener("mousemove", optimizedHandleHoverDatesEvent), state.self.context.mainElement.removeEventListener("keydown", handleCancelSelectionDates), createDateRangeTooltip(state.self, state.tooltipEl, null), removeHoverEffect()); 5278 }, "handleCancelSelectionDates"); 5279 var handleMouseLeave = /* @__PURE__ */ __name(() => { 5280 null !== state.timeoutId && clearTimeout(state.timeoutId), state.timeoutId = setTimeout((() => { 5281 state.lastDateEl = null, createDateRangeTooltip(state.self, state.tooltipEl, null), removeHoverEffect(); 5282 }), 50); 5283 }, "handleMouseLeave"); 5284 var updateDisabledDates = /* @__PURE__ */ __name(() => { 5285 var e, t, n, a; 5286 if (!(null == (n = null == (t = null == (e = state.self) ? void 0 : e.context) ? void 0 : t.selectedDates) ? void 0 : n[0]) || !(null == (a = state.self.context.disableDates) ? void 0 : a[0])) return; 5287 const o = getDate(state.self.context.selectedDates[0]), [l, s] = state.self.context.disableDates.map(((e2) => getDate(e2))).reduce((([e2, t2], n2) => [o >= n2 ? n2 : e2, o < n2 && null === t2 ? n2 : t2]), [null, null]); 5288 l && setContext(state.self, "displayDateMin", getDateString(new Date(l.setDate(l.getDate() + 1)))), s && setContext(state.self, "displayDateMax", getDateString(new Date(s.setDate(s.getDate() - 1)))); 5289 state.self.disableDatesPast && !state.self.disableAllDates && getDate(state.self.context.displayDateMin) < getDate(state.self.context.dateToday) && setContext(state.self, "displayDateMin", state.self.context.dateToday); 5290 }, "updateDisabledDates"); 5291 var handleSelectDateRange = /* @__PURE__ */ __name((e, t) => { 5292 state.self = e, state.lastDateEl = t, removeHoverEffect(), e.disableDatesGaps && (state.rangeMin = state.rangeMin ? state.rangeMin : e.context.displayDateMin, state.rangeMax = state.rangeMax ? state.rangeMax : e.context.displayDateMax), e.onCreateDateRangeTooltip && (state.tooltipEl = e.context.mainElement.querySelector("[data-vc-date-range-tooltip]")); 5293 const n = null == t ? void 0 : t.dataset.vcDate; 5294 if (n) { 5295 const t2 = 1 === e.context.selectedDates.length && e.context.selectedDates[0].includes(n), a = t2 && !canToggleSelection(e) ? [n, n] : t2 && canToggleSelection(e) ? [] : e.context.selectedDates.length > 1 ? [n] : [...e.context.selectedDates, n]; 5296 setContext(e, "selectedDates", a), e.context.selectedDates.length > 1 && e.context.selectedDates.sort(((e2, t3) => +new Date(e2) - +new Date(t3))); 5297 } 5298 ({ set: /* @__PURE__ */ __name(() => (e.disableDatesGaps && updateDisabledDates(), createDateRangeTooltip(state.self, state.tooltipEl, t), state.self.context.mainElement.removeEventListener("mousemove", optimizedHandleHoverSelectedDatesRangeEvent), state.self.context.mainElement.removeEventListener("mouseleave", handleMouseLeave), state.self.context.mainElement.removeEventListener("keydown", handleCancelSelectionDates), state.self.context.mainElement.addEventListener("mousemove", optimizedHandleHoverDatesEvent), state.self.context.mainElement.addEventListener("mouseleave", handleMouseLeave), state.self.context.mainElement.addEventListener("keydown", handleCancelSelectionDates), () => { 5299 state.self.context.mainElement.removeEventListener("mousemove", optimizedHandleHoverDatesEvent), state.self.context.mainElement.removeEventListener("mouseleave", handleMouseLeave), state.self.context.mainElement.removeEventListener("keydown", handleCancelSelectionDates); 5300 }), "set"), reset: /* @__PURE__ */ __name(() => { 5301 const [n2, a] = [e.context.selectedDates[0], e.context.selectedDates[e.context.selectedDates.length - 1]], o = e.context.selectedDates[0] !== e.context.selectedDates[e.context.selectedDates.length - 1], l = parseDates([`${n2}:${a}`]).filter(((t2) => !e.context.disableDates.includes(t2))), s = o ? e.enableEdgeDatesOnly ? [n2, a] : l : [e.context.selectedDates[0], e.context.selectedDates[0]]; 5302 if (setContext(e, "selectedDates", s), e.disableDatesGaps && (setContext(e, "displayDateMin", state.rangeMin), setContext(e, "displayDateMax", state.rangeMax)), state.self.context.mainElement.removeEventListener("mousemove", optimizedHandleHoverDatesEvent), state.self.context.mainElement.removeEventListener("mouseleave", handleMouseLeave), state.self.context.mainElement.removeEventListener("keydown", handleCancelSelectionDates), e.onCreateDateRangeTooltip) return e.context.selectedDates[0] || (state.self.context.mainElement.removeEventListener("mousemove", optimizedHandleHoverSelectedDatesRangeEvent), state.self.context.mainElement.removeEventListener("mouseleave", handleMouseLeave), createDateRangeTooltip(state.self, state.tooltipEl, null)), e.context.selectedDates[0] && (state.self.context.mainElement.addEventListener("mousemove", optimizedHandleHoverSelectedDatesRangeEvent), state.self.context.mainElement.addEventListener("mouseleave", handleMouseLeave), createDateRangeTooltip(state.self, state.tooltipEl, t)), () => { 5303 state.self.context.mainElement.removeEventListener("mousemove", optimizedHandleHoverSelectedDatesRangeEvent), state.self.context.mainElement.removeEventListener("mouseleave", handleMouseLeave); 5304 }; 5305 }, "reset") })[1 === e.context.selectedDates.length ? "set" : "reset"](); 5306 }, "handleSelectDateRange"); 5307 var updateDateModifier = /* @__PURE__ */ __name((e) => { 5308 e.context.mainElement.querySelectorAll("[data-vc-date]").forEach(((t) => { 5309 const n = t.querySelector("[data-vc-date-btn]"), a = t.dataset.vcDate, o = getDate(a).getDay(); 5310 setDateModifier(e, e.context.selectedYear, t, n, o, a, "current"); 5311 })); 5312 }, "updateDateModifier"); 5313 var handleClickDate = /* @__PURE__ */ __name((e, t) => { 5314 var n; 5315 const a = t.target, o = a.closest("[data-vc-date-btn]"); 5316 if (!e.selectionDatesMode || !["single", "multiple", "multiple-ranged"].includes(e.selectionDatesMode) || !o) return; 5317 const l = o.closest("[data-vc-date]"); 5318 ({ single: /* @__PURE__ */ __name(() => handleSelectDate(e, l, false), "single"), multiple: /* @__PURE__ */ __name(() => handleSelectDate(e, l, true), "multiple"), "multiple-ranged": /* @__PURE__ */ __name(() => handleSelectDateRange(e, l), "multiple-ranged") })[e.selectionDatesMode](), null == (n = e.context.selectedDates) || n.sort(((e2, t2) => +new Date(e2) - +new Date(t2))), e.onClickDate && e.onClickDate(e, t), e.inputMode && e.context.inputElement && e.context.mainElement && e.onChangeToInput && e.onChangeToInput(e, t); 5319 const s = a.closest('[data-vc-date-month="prev"]'), i = a.closest('[data-vc-date-month="next"]'); 5320 ({ prev: /* @__PURE__ */ __name(() => e.enableMonthChangeOnDayClick ? handleMonth(e, "prev") : updateDateModifier(e), "prev"), next: /* @__PURE__ */ __name(() => e.enableMonthChangeOnDayClick ? handleMonth(e, "next") : updateDateModifier(e), "next"), current: /* @__PURE__ */ __name(() => updateDateModifier(e), "current") })[s ? "prev" : i ? "next" : "current"](); 5321 }, "handleClickDate"); 5322 var typeClick = ["month", "year"]; 5323 var getValue = /* @__PURE__ */ __name((e, t, n) => { 5324 const { currentValue: a, columnID: o } = getColumnID(e, t); 5325 return "month" === e.context.currentType && o >= 0 ? n - o : "year" === e.context.currentType && e.context.selectedYear !== a ? n - 1 : n; 5326 }, "getValue"); 5327 var handleMultipleYearSelection = /* @__PURE__ */ __name((e, t) => { 5328 const n = getValue(e, "year", Number(t.dataset.vcYearsYear)), a = getDate(e.context.dateMin), o = getDate(e.context.dateMax), l = e.context.displayMonthsCount - 1, { columnID: s } = getColumnID(e, "year"), i = e.context.selectedMonth < a.getMonth() && n <= a.getFullYear(), r = e.context.selectedMonth > o.getMonth() - l + s && n >= o.getFullYear(), c = n < a.getFullYear(), d = n > o.getFullYear(), u = i || c ? a.getFullYear() : r || d ? o.getFullYear() : n, m = i || c ? a.getMonth() : r || d ? o.getMonth() - l + s : e.context.selectedMonth; 5329 setContext(e, "selectedYear", u), setContext(e, "selectedMonth", m); 5330 }, "handleMultipleYearSelection"); 5331 var handleMultipleMonthSelection = /* @__PURE__ */ __name((e, t) => { 5332 const n = t.closest('[data-vc-column="month"]').querySelector('[data-vc="year"]'), a = getValue(e, "month", Number(t.dataset.vcMonthsMonth)), o = Number(n.dataset.vcYear), l = getDate(e.context.dateMin), s = getDate(e.context.dateMax), i = a < l.getMonth() && o <= l.getFullYear(), r = a > s.getMonth() && o >= s.getFullYear(); 5333 setContext(e, "selectedYear", o), setContext(e, "selectedMonth", i ? l.getMonth() : r ? s.getMonth() : a); 5334 }, "handleMultipleMonthSelection"); 5335 var handleItemClick = /* @__PURE__ */ __name((e, t, n, a) => { 5336 var o; 5337 ({ year: /* @__PURE__ */ __name(() => { 5338 if ("multiple" === e.type) return handleMultipleYearSelection(e, a); 5339 setContext(e, "selectedYear", Number(a.dataset.vcYearsYear)); 5340 }, "year"), month: /* @__PURE__ */ __name(() => { 5341 if ("multiple" === e.type) return handleMultipleMonthSelection(e, a); 5342 setContext(e, "selectedMonth", Number(a.dataset.vcMonthsMonth)); 5343 }, "month") })[n](); 5344 ({ year: /* @__PURE__ */ __name(() => { 5345 var n2; 5346 return null == (n2 = e.onClickYear) ? void 0 : n2.call(e, e, t); 5347 }, "year"), month: /* @__PURE__ */ __name(() => { 5348 var n2; 5349 return null == (n2 = e.onClickMonth) ? void 0 : n2.call(e, e, t); 5350 }, "month") })[n](), e.context.currentType !== e.type ? (setContext(e, "currentType", e.type), create(e), null == (o = e.context.mainElement.querySelector(`[data-vc="${n}"]`)) || o.focus()) : setYearModifier(e, a, n, true, true); 5351 }, "handleItemClick"); 5352 var handleClickType = /* @__PURE__ */ __name((e, t, n) => { 5353 var a; 5354 const o = t.target, l = o.closest(`[data-vc="${n}"]`), s = { year: /* @__PURE__ */ __name(() => createYears(e, o), "year"), month: /* @__PURE__ */ __name(() => createMonths(e, o), "month") }; 5355 if (l && e.onClickTitle && e.onClickTitle(e, t), l && e.context.currentType !== n) return s[n](); 5356 const i = o.closest(`[data-vc-${n}s-${n}]`); 5357 if (i) return handleItemClick(e, t, n, i); 5358 const r = o.closest('[data-vc="grid"]'), c = o.closest('[data-vc="column"]'); 5359 (e.context.currentType === n && l || "multiple" === e.type && e.context.currentType === n && r && !c) && (setContext(e, "currentType", e.type), create(e), null == (a = e.context.mainElement.querySelector(`[data-vc="${n}"]`)) || a.focus()); 5360 }, "handleClickType"); 5361 var handleClickMonthOrYear = /* @__PURE__ */ __name((e, t) => { 5362 const n = { month: e.selectionMonthsMode, year: e.selectionYearsMode }; 5363 typeClick.forEach(((a) => { 5364 n[a] && t.target && handleClickType(e, t, a); 5365 })); 5366 }, "handleClickMonthOrYear"); 5367 var handleClickWeekNumber = /* @__PURE__ */ __name((e, t) => { 5368 if (!e.enableWeekNumbers || !e.onClickWeekNumber) return; 5369 const n = t.target.closest("[data-vc-week-number]"), a = e.context.mainElement.querySelectorAll("[data-vc-date-week-number]"); 5370 if (!n || !a[0]) return; 5371 const o = Number(n.innerText), l = Number(n.dataset.vcWeekYear), s = Array.from(a).filter(((e2) => Number(e2.dataset.vcDateWeekNumber) === o)); 5372 e.onClickWeekNumber(e, o, l, s, t); 5373 }, "handleClickWeekNumber"); 5374 var handleClickWeekDay = /* @__PURE__ */ __name((e, t) => { 5375 if (!e.onClickWeekDay) return; 5376 const n = t.target.closest("[data-vc-week-day]"), a = t.target.closest('[data-vc="column"]'), o = a ? a.querySelectorAll("[data-vc-date-week-day]") : e.context.mainElement.querySelectorAll("[data-vc-date-week-day]"); 5377 if (!n || !o[0]) return; 5378 const l = Number(n.dataset.vcWeekDay), s = Array.from(o).filter(((e2) => Number(e2.dataset.vcDateWeekDay) === l)); 5379 e.onClickWeekDay(e, l, s, t); 5380 }, "handleClickWeekDay"); 5381 var handleClick = /* @__PURE__ */ __name((e) => { 5382 const t = /* @__PURE__ */ __name((t2) => { 5383 handleClickArrow(e, t2), handleClickWeekDay(e, t2), handleClickWeekNumber(e, t2), handleClickDate(e, t2), handleClickMonthOrYear(e, t2); 5384 }, "t"); 5385 return e.context.mainElement.addEventListener("click", t), () => e.context.mainElement.removeEventListener("click", t); 5386 }, "handleClick"); 5387 var initMonthsCount = /* @__PURE__ */ __name((e) => { 5388 if ("multiple" === e.type && (e.displayMonthsCount <= 1 || e.displayMonthsCount > 12)) throw new Error(errorMessages.incorrectMonthsCount); 5389 if ("multiple" !== e.type && e.displayMonthsCount > 1) throw new Error(errorMessages.incorrectMonthsCount); 5390 setContext(e, "displayMonthsCount", e.displayMonthsCount ? e.displayMonthsCount : "multiple" === e.type ? 2 : 1); 5391 }, "initMonthsCount"); 5392 var getLocalDate = /* @__PURE__ */ __name(() => { 5393 const e = /* @__PURE__ */ new Date(); 5394 return new Date(e.getTime() - 6e4 * e.getTimezoneOffset()).toISOString().substring(0, 10); 5395 }, "getLocalDate"); 5396 var resolveDate = /* @__PURE__ */ __name((e, t) => "today" === e ? getLocalDate() : e instanceof Date || "number" == typeof e || "string" == typeof e ? parseDates([e])[0] : t, "resolveDate"); 5397 var initRange = /* @__PURE__ */ __name((e) => { 5398 var t, n, a; 5399 const o = resolveDate(e.dateMin, e.dateMin), l = resolveDate(e.dateMax, e.dateMax), s = resolveDate(e.displayDateMin, o), i = resolveDate(e.displayDateMax, l); 5400 setContext(e, "dateToday", resolveDate(e.dateToday, e.dateToday)), setContext(e, "displayDateMin", s ? getDate(o) >= getDate(s) ? o : s : o), setContext(e, "displayDateMax", i ? getDate(l) <= getDate(i) ? l : i : l); 5401 const r = e.disableDatesPast && !e.disableAllDates && getDate(s) < getDate(e.context.dateToday); 5402 setContext(e, "displayDateMin", r || e.disableAllDates ? e.context.dateToday : s), setContext(e, "displayDateMax", e.disableAllDates ? e.context.dateToday : i), setContext(e, "disableDates", e.disableDates[0] && !e.disableAllDates ? parseDates(e.disableDates) : e.disableAllDates ? [e.context.displayDateMin] : []), e.context.disableDates.length > 1 && e.context.disableDates.sort(((e2, t2) => +new Date(e2) - +new Date(t2))), setContext(e, "enableDates", e.enableDates[0] ? parseDates(e.enableDates) : []), (null == (t = e.context.enableDates) ? void 0 : t[0]) && (null == (n = e.context.disableDates) ? void 0 : n[0]) && setContext(e, "disableDates", e.context.disableDates.filter(((t2) => !e.context.enableDates.includes(t2)))), e.context.enableDates.length > 1 && e.context.enableDates.sort(((e2, t2) => +new Date(e2) - +new Date(t2))), (null == (a = e.context.enableDates) ? void 0 : a[0]) && e.disableAllDates && (setContext(e, "displayDateMin", e.context.enableDates[0]), setContext(e, "displayDateMax", e.context.enableDates[e.context.enableDates.length - 1])), setContext(e, "dateMin", e.displayDisabledDates ? o : e.context.displayDateMin), setContext(e, "dateMax", e.displayDisabledDates ? l : e.context.displayDateMax); 5403 }, "initRange"); 5404 var initSelectedDates = /* @__PURE__ */ __name((e) => { 5405 var t; 5406 setContext(e, "selectedDates", (null == (t = e.selectedDates) ? void 0 : t[0]) ? parseDates(e.selectedDates) : []); 5407 }, "initSelectedDates"); 5408 var displayClosestValidDate = /* @__PURE__ */ __name((e) => { 5409 const t = /* @__PURE__ */ __name((t2) => { 5410 const n2 = new Date(t2); 5411 setInitialContext(e, n2.getMonth(), n2.getFullYear()); 5412 }, "t"); 5413 if (e.displayDateMin && "today" !== e.displayDateMin && (n = e.displayDateMin, a = /* @__PURE__ */ new Date(), new Date(n).getTime() > a.getTime())) { 5414 const n2 = e.selectedDates.length && e.selectedDates[0] ? parseDates(e.selectedDates)[0] : e.displayDateMin; 5415 return t(getDate(resolveDate(n2, e.displayDateMin))), true; 5416 } 5417 var n, a; 5418 if (e.displayDateMax && "today" !== e.displayDateMax && ((e2, t2) => new Date(e2).getTime() < t2.getTime())(e.displayDateMax, /* @__PURE__ */ new Date())) { 5419 const n2 = e.selectedDates.length && e.selectedDates[0] ? parseDates(e.selectedDates)[0] : e.displayDateMax; 5420 return t(getDate(resolveDate(n2, e.displayDateMax))), true; 5421 } 5422 return false; 5423 }, "displayClosestValidDate"); 5424 var setInitialContext = /* @__PURE__ */ __name((e, t, n) => { 5425 setContext(e, "selectedMonth", t), setContext(e, "selectedYear", n), setContext(e, "displayYear", n); 5426 }, "setInitialContext"); 5427 var initSelectedMonthYear = /* @__PURE__ */ __name((e) => { 5428 var t; 5429 if (e.enableJumpToSelectedDate && (null == (t = e.selectedDates) ? void 0 : t[0]) && void 0 === e.selectedMonth && void 0 === e.selectedYear) { 5430 const t2 = getDate(parseDates(e.selectedDates)[0]); 5431 return void setInitialContext(e, t2.getMonth(), t2.getFullYear()); 5432 } 5433 if (displayClosestValidDate(e)) return; 5434 const n = void 0 !== e.selectedMonth && Number(e.selectedMonth) >= 0 && Number(e.selectedMonth) < 12, a = void 0 !== e.selectedYear && Number(e.selectedYear) >= 0 && Number(e.selectedYear) <= 9999; 5435 setInitialContext(e, n ? Number(e.selectedMonth) : getDate(e.context.dateToday).getMonth(), a ? Number(e.selectedYear) : getDate(e.context.dateToday).getFullYear()); 5436 }, "initSelectedMonthYear"); 5437 var initTime = /* @__PURE__ */ __name((e) => { 5438 var t, n, a; 5439 if (!e.selectionTimeMode) return; 5440 if (![12, 24].includes(e.selectionTimeMode)) throw new Error(errorMessages.incorrectTime); 5441 const o = 12 === e.selectionTimeMode, l = o ? /^(0[1-9]|1[0-2]):([0-5][0-9]) ?(AM|PM)?$/i : /^([0-1]?[0-9]|2[0-3]):([0-5][0-9])$/; 5442 let [s, i, r] = null != (a = null == (n = null == (t = e.selectedTime) ? void 0 : t.match(l)) ? void 0 : n.slice(1)) ? a : []; 5443 s ? o && !r && (r = "AM") : (s = o ? transformTime12(String(e.timeMinHour)) : String(e.timeMinHour), i = String(e.timeMinMinute), r = o ? Number(transformTime12(String(e.timeMinHour))) >= 12 ? "PM" : "AM" : null), setContext(e, "selectedHours", s.padStart(2, "0")), setContext(e, "selectedMinutes", i.padStart(2, "0")), setContext(e, "selectedKeeping", r), setContext(e, "selectedTime", `${e.context.selectedHours}:${e.context.selectedMinutes}${r ? ` ${r}` : ""}`); 5444 }, "initTime"); 5445 var initAllVariables = /* @__PURE__ */ __name((e) => { 5446 setContext(e, "currentType", e.type), initMonthsCount(e), initRange(e), initSelectedMonthYear(e), initSelectedDates(e), initTime(e); 5447 }, "initAllVariables"); 5448 var reset = /* @__PURE__ */ __name((e, { year: t, month: n, dates: a, time: o, locale: l }, s = true) => { 5449 var i; 5450 const r = { year: e.selectedYear, month: e.selectedMonth, dates: e.selectedDates, time: e.selectedTime }; 5451 if (e.selectedYear = t ? r.year : e.context.selectedYear, e.selectedMonth = n ? r.month : e.context.selectedMonth, e.selectedTime = o ? r.time : e.context.selectedTime, e.selectedDates = "only-first" === a && (null == (i = e.context.selectedDates) ? void 0 : i[0]) ? [e.context.selectedDates[0]] : true === a ? r.dates : e.context.selectedDates, l) { 5452 setContext(e, "locale", { months: { short: [], long: [] }, weekdays: { short: [], long: [] } }); 5453 } 5454 initAllVariables(e), s && create(e), e.selectedYear = r.year, e.selectedMonth = r.month, e.selectedDates = r.dates, e.selectedTime = r.time, "multiple-ranged" === e.selectionDatesMode && a && handleSelectDateRange(e, null); 5455 }, "reset"); 5456 var createToInput = /* @__PURE__ */ __name((e) => { 5457 const t = document.createElement("div"); 5458 return t.className = e.styles.calendar, t.dataset.vc = "calendar", t.dataset.vcInput = "", t.dataset.vcCalendarHidden = "", setContext(e, "inputModeInit", true), setContext(e, "isShowInInputMode", false), setContext(e, "mainElement", t), document.body.appendChild(e.context.mainElement), reset(e, { year: true, month: true, dates: true, time: true, locale: true }), setTimeout((() => show(e))), e.onInit && e.onInit(e), handleArrowKeys(e), handleClick(e); 5459 }, "createToInput"); 5460 var canOpenOnFocus = /* @__PURE__ */ __name((e) => resolveToggle(e, e.openOnFocus), "canOpenOnFocus"); 5461 var handleInput = /* @__PURE__ */ __name((e) => { 5462 setContext(e, "inputElement", e.context.mainElement); 5463 const t = /* @__PURE__ */ __name(() => { 5464 e.context.inputModeInit ? setTimeout((() => show(e))) : createToInput(e); 5465 }, "t"); 5466 e.context.inputElement.addEventListener("click", t); 5467 const n = "function" == typeof e.openOnFocus || true === e.openOnFocus, a = /* @__PURE__ */ __name(() => { 5468 shouldSkipOpenOnFocus(e) ? clearSkipOpenOnFocus(e) : canOpenOnFocus(e) && t(); 5469 }, "a"); 5470 n && e.context.inputElement.addEventListener("focus", a); 5471 const o = /* @__PURE__ */ __name((t2) => { 5472 const n2 = "Tab" === t2.key && !t2.shiftKey, a2 = ["ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight"].includes(t2.key); 5473 (n2 || a2) && ((t3) => { 5474 var n3; 5475 if (!e.context.isShowInInputMode) return false; 5476 if (document.activeElement !== e.context.inputElement) return false; 5477 const a3 = /* @__PURE__ */ __name((e2) => e2.tabIndex >= 0 && !e2.hasAttribute("disabled") && "true" !== e2.getAttribute("aria-disabled"), "a"), o2 = null != (n3 = document.createTreeWalker(e.context.mainElement, NodeFilter.SHOW_ELEMENT, { acceptNode: /* @__PURE__ */ __name((e2) => a3(e2) ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP, "acceptNode") }).nextNode()) ? n3 : a3(e.context.mainElement) ? e.context.mainElement : null; 5478 !o2 || o2.tabIndex < 0 || (t3.preventDefault(), o2.focus()); 5479 })(t2); 5480 }, "o"); 5481 return e.context.inputElement.addEventListener("keydown", o), () => { 5482 e.context.inputElement.removeEventListener("click", t), n && e.context.inputElement.removeEventListener("focus", a), e.context.inputElement.removeEventListener("keydown", o); 5483 }; 5484 }, "handleInput"); 5485 var init = /* @__PURE__ */ __name((e) => (setContext(e, "originalElement", e.context.mainElement.cloneNode(true)), setContext(e, "isInit", true), e.inputMode ? handleInput(e) : (initAllVariables(e), create(e), e.onInit && e.onInit(e), handleArrowKeys(e), handleClick(e))), "init"); 5486 var update = /* @__PURE__ */ __name((e, t) => { 5487 if (!e.context.isInit) throw new Error(errorMessages.notInit); 5488 reset(e, __spreadValues(__spreadValues({}, { year: true, month: true, dates: true, time: true, locale: true }), t), !(e.inputMode && !e.context.inputModeInit)), e.onUpdate && e.onUpdate(e); 5489 }, "update"); 5490 var replaceProperties = /* @__PURE__ */ __name((e, t) => { 5491 const n = Object.keys(t); 5492 for (let a = 0; a < n.length; a++) { 5493 const o = n[a]; 5494 "object" != typeof e[o] || "object" != typeof t[o] || t[o] instanceof Date || Array.isArray(t[o]) ? void 0 !== t[o] && (e[o] = t[o]) : replaceProperties(e[o], t[o]); 5495 } 5496 }, "replaceProperties"); 5497 var set = /* @__PURE__ */ __name((e, t, n) => { 5498 replaceProperties(e, t), e.context.isInit && update(e, n); 5499 }, "set"); 5500 function findBestPickerPosition(e, t) { 5501 const n = "left"; 5502 if (!t || !e) return n; 5503 const { canShow: a, parentPositions: o } = getAvailablePosition(e, t), l = a.left && a.right; 5504 return (l && a.bottom ? "center" : l && a.top ? ["top", "center"] : Array.isArray(o) ? ["bottom" === o[0] ? "top" : "bottom", ...o.slice(1)] : o) || n; 5505 } 5506 __name(findBestPickerPosition, "findBestPickerPosition"); 5507 var setPosition = /* @__PURE__ */ __name((e, t, n) => { 5508 if (!e) return; 5509 const a = "auto" === n ? findBestPickerPosition(e, t) : n, o = { top: -t.offsetHeight, bottom: e.offsetHeight, left: 0, center: e.offsetWidth / 2 - t.offsetWidth / 2, right: e.offsetWidth - t.offsetWidth }, l = Array.isArray(a) ? a[0] : "bottom", s = Array.isArray(a) ? a[1] : a; 5510 t.dataset.vcPosition = l; 5511 const { top: i, left: r } = getOffset(e), c = i + o[l]; 5512 let d = r + o[s]; 5513 const { vw: u } = getViewportDimensions(); 5514 if (d + t.clientWidth > u) { 5515 const e2 = window.innerWidth - document.body.clientWidth; 5516 d = u - t.clientWidth - e2; 5517 } else d < 0 && (d = 0); 5518 Object.assign(t.style, { left: `${d}px`, top: `${c}px` }); 5519 }, "setPosition"); 5520 var show = /* @__PURE__ */ __name((e) => { 5521 if (e.context.isShowInInputMode) return; 5522 if (!e.context.currentType) return void e.context.mainElement.click(); 5523 setContext(e, "cleanupHandlers", []), setContext(e, "isShowInInputMode", true), e.inputMode && restoreTabbing(e.context.mainElement), setPosition(e.context.inputElement, e.context.mainElement, e.positionToInput), e.context.mainElement.removeAttribute("data-vc-calendar-hidden"); 5524 const t = /* @__PURE__ */ __name(() => { 5525 setPosition(e.context.inputElement, e.context.mainElement, e.positionToInput); 5526 }, "t"); 5527 window.addEventListener("resize", t), e.context.cleanupHandlers.push((() => window.removeEventListener("resize", t))); 5528 const n = /* @__PURE__ */ __name((t2) => { 5529 "Escape" === t2.key && hide(e); 5530 }, "n"); 5531 document.addEventListener("keydown", n), e.context.cleanupHandlers.push((() => document.removeEventListener("keydown", n))); 5532 const a = /* @__PURE__ */ __name((t2) => { 5533 t2.target === e.context.inputElement || e.context.mainElement.contains(t2.target) || hide(e); 5534 }, "a"); 5535 document.addEventListener("click", a, { capture: true }), e.context.cleanupHandlers.push((() => document.removeEventListener("click", a, { capture: true }))), e.onShow && e.onShow(e); 5536 }, "show"); 5537 var labels = { application: "Calendar", navigation: "Calendar Navigation", arrowNext: { month: "Next month", year: "Next list of years" }, arrowPrev: { month: "Previous month", year: "Previous list of years" }, month: "Select month, current selected month:", months: "List of months", year: "Select year, current selected year:", years: "List of years", week: "Days of the week", weekNumber: "Numbers of weeks in a year", dates: "Dates in the current month", selectingTime: "Selecting a time ", inputHour: "Hours", inputMinute: "Minutes", rangeHour: "Slider for selecting hours", rangeMinute: "Slider for selecting minutes", btnKeeping: "Switch AM/PM, current position:" }; 5538 var styles = { calendar: "vc", controls: "vc-controls", grid: "vc-grid", column: "vc-column", header: "vc-header", headerContent: "vc-header__content", month: "vc-month", year: "vc-year", arrowPrev: "vc-arrow vc-arrow_prev", arrowNext: "vc-arrow vc-arrow_next", wrapper: "vc-wrapper", content: "vc-content", months: "vc-months", monthsMonth: "vc-months__month", years: "vc-years", yearsYear: "vc-years__year", week: "vc-week", weekDay: "vc-week__day", weekNumbers: "vc-week-numbers", weekNumbersTitle: "vc-week-numbers__title", weekNumbersContent: "vc-week-numbers__content", weekNumber: "vc-week-number", dates: "vc-dates", datesRow: "vc-dates__row", date: "vc-date", dateBtn: "vc-date__btn", datePopup: "vc-date__popup", dateRangeTooltip: "vc-date-range-tooltip", time: "vc-time", timeContent: "vc-time__content", timeHour: "vc-time__hour", timeMinute: "vc-time__minute", timeKeeping: "vc-time__keeping", timeRanges: "vc-time__ranges", timeRange: "vc-time__range" }; 5539 var _OptionsCalendar = class _OptionsCalendar { 5540 constructor() { 5541 __publicField(this, "type", "default"), __publicField(this, "inputMode", false), __publicField(this, "openOnFocus", true), __publicField(this, "positionToInput", "left"), __publicField(this, "firstWeekday", 1), __publicField(this, "monthsToSwitch", 1), __publicField(this, "themeAttrDetect", "html[data-theme]"), __publicField(this, "locale", "en"), __publicField(this, "dateToday", "today"), __publicField(this, "dateMin", "1970-01-01"), __publicField(this, "dateMax", "2470-12-31"), __publicField(this, "displayDateMin"), __publicField(this, "displayDateMax"), __publicField(this, "displayDatesOutside", true), __publicField(this, "displayDisabledDates", false), __publicField(this, "displayMonthsCount"), __publicField(this, "disableDates", []), __publicField(this, "disableAllDates", false), __publicField(this, "disableDatesPast", false), __publicField(this, "disableDatesGaps", false), __publicField(this, "disableWeekdays", []), __publicField(this, "disableToday", false), __publicField(this, "enableDates", []), __publicField(this, "enableEdgeDatesOnly", true), __publicField(this, "enableDateToggle", true), __publicField(this, "enableWeekNumbers", false), __publicField(this, "enableMonthChangeOnDayClick", true), __publicField(this, "enableJumpToSelectedDate", false), __publicField(this, "selectionDatesMode", "single"), __publicField(this, "selectionMonthsMode", true), __publicField(this, "selectionYearsMode", true), __publicField(this, "selectionTimeMode", false), __publicField(this, "selectedDates", []), __publicField(this, "selectedMonth"), __publicField(this, "selectedYear"), __publicField(this, "selectedHolidays", []), __publicField(this, "selectedWeekends", [0, 6]), __publicField(this, "selectedTime"), __publicField(this, "selectedTheme", "system"), __publicField(this, "timeMinHour", 0), __publicField(this, "timeMaxHour", 23), __publicField(this, "timeMinMinute", 0), __publicField(this, "timeMaxMinute", 59), __publicField(this, "timeControls", "all"), __publicField(this, "timeStepHour", 1), __publicField(this, "timeStepMinute", 1), __publicField(this, "sanitizerHTML", ((e) => e)), __publicField(this, "onClickDate"), __publicField(this, "onClickWeekDay"), __publicField(this, "onClickWeekNumber"), __publicField(this, "onClickTitle"), __publicField(this, "onClickMonth"), __publicField(this, "onClickYear"), __publicField(this, "onClickArrow"), __publicField(this, "onChangeTime"), __publicField(this, "onChangeToInput"), __publicField(this, "onCreateDateRangeTooltip"), __publicField(this, "onCreateDateEls"), __publicField(this, "onCreateMonthEls"), __publicField(this, "onCreateYearEls"), __publicField(this, "onInit"), __publicField(this, "onUpdate"), __publicField(this, "onDestroy"), __publicField(this, "onShow"), __publicField(this, "onHide"), __publicField(this, "popups", {}), __publicField(this, "labels", __spreadValues({}, labels)), __publicField(this, "layouts", { default: "", multiple: "", month: "", year: "" }), __publicField(this, "styles", __spreadValues({}, styles)); 5542 } 5543 }; 5544 __name(_OptionsCalendar, "OptionsCalendar"); 5545 var OptionsCalendar = _OptionsCalendar; 5546 var _a; 5547 var _Calendar = (_a = class extends OptionsCalendar { 5548 constructor(t, n) { 5549 var a; 5550 super(), __publicField(this, "init", (() => init(this))), __publicField(this, "update", ((e) => update(this, e))), __publicField(this, "destroy", (() => destroy(this))), __publicField(this, "show", (() => show(this))), __publicField(this, "hide", (() => hide(this))), __publicField(this, "set", ((e, t2) => set(this, e, t2))), __publicField(this, "context"), this.context = __spreadProps(__spreadValues({}, this.context), { locale: { months: { short: [], long: [] }, weekdays: { short: [], long: [] } } }), setContext(this, "mainElement", "string" == typeof t ? null != (a = _a.memoizedElements.get(t)) ? a : this.queryAndMemoize(t) : t), n && replaceProperties(this, n); 5551 } 5552 queryAndMemoize(t) { 5553 const n = document.querySelector(t); 5554 if (!n) throw new Error(errorMessages.notFoundSelector(t)); 5555 return _a.memoizedElements.set(t, n), n; 5556 } 5557 }, __name(_a, "e"), _a); 5558 __publicField(_Calendar, "memoizedElements", /* @__PURE__ */ new Map()); 5559 var Calendar = _Calendar; 5560 5561
5561// imbus/javascript/imbus.main.js 5562 var import_glightbox = __toESM(require_glightbox_min()); 5563 var import_toastify_js = __toESM(require_toastify()); 5564 var import_tiny_slider = __toESM(require_tiny_slider()); 5565 var import_headroom = __toESM(require_headroom()); 5566 5567
vendor: 136,554 bytes, lines 5567-8743
5567// node_modules/gsap/gsap-core.js 5568 function _assertThisInitialized(self2) { 5569 if (self2 === void 0) { 5570 throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); 5571 } 5572 return self2; 5573 } 5574 __name(_assertThisInitialized, "_assertThisInitialized"); 5575 function _inheritsLoose(subClass, superClass) { 5576 subClass.prototype = Object.create(superClass.prototype); 5577 subClass.prototype.constructor = subClass; 5578 subClass.__proto__ = superClass; 5579 } 5580 __name(_inheritsLoose, "_inheritsLoose"); 5581 var _config = { 5582 autoSleep: 120, 5583 force3D: "auto", 5584 nullTargetWarn: 1, 5585 units: { 5586 lineHeight: "" 5587 } 5588 }; 5589 var _defaults = { 5590 duration: 0.5, 5591 overwrite: false, 5592 delay: 0 5593 }; 5594 var _suppressOverwrites; 5595 var _reverting; 5596 var _context; 5597 var _bigNum = 1e8; 5598 var _tinyNum = 1 / _bigNum; 5599 var _2PI = Math.PI * 2; 5600 var _HALF_PI = _2PI / 4; 5601 var _gsID = 0; 5602 var _sqrt = Math.sqrt; 5603 var _cos = Math.cos; 5604 var _sin = Math.sin; 5605 var _isString = /* @__PURE__ */ __name(function _isString2(value) { 5606 return typeof value === "string"; 5607 }, "_isString"); 5608 var _isFunction = /* @__PURE__ */ __name(function _isFunction2(value) { 5609 return typeof value === "function"; 5610 }, "_isFunction"); 5611 var _isNumber = /* @__PURE__ */ __name(function _isNumber2(value) { 5612 return typeof value === "number"; 5613 }, "_isNumber"); 5614 var _isUndefined = /* @__PURE__ */ __name(function _isUndefined2(value) { 5615 return typeof value === "undefined"; 5616 }, "_isUndefined"); 5617 var _isObject = /* @__PURE__ */ __name(function _isObject2(value) { 5618 return typeof value === "object"; 5619 }, "_isObject"); 5620 var _isNotFalse = /* @__PURE__ */ __name(function _isNotFalse2(value) { 5621 return value !== false; 5622 }, "_isNotFalse"); 5623 var _windowExists = /* @__PURE__ */ __name(function _windowExists2() { 5624 return typeof window !== "undefined"; 5625 }, "_windowExists"); 5626 var _isFuncOrString = /* @__PURE__ */ __name(function _isFuncOrString2(value) { 5627 return _isFunction(value) || _isString(value); 5628 }, "_isFuncOrString"); 5629 var _isTypedArray = typeof ArrayBuffer === "function" && ArrayBuffer.isView || function() { 5630 }; 5631 var _isArray = Array.isArray; 5632 var _randomExp = /random\([^)]+\)/g; 5633 var _commaDelimExp = /,\s*/g; 5634 var _strictNumExp = /(?:-?\.?\d|\.)+/gi; 5635 var _numExp = /[-+=.]*\d+[.e\-+]*\d*[e\-+]*\d*/g; 5636 var _numWithUnitExp = /[-+=.]*\d+[.e-]*\d*[a-z%]*/g; 5637 var _complexStringNumExp = /[-+=.]*\d+\.?\d*(?:e-|e\+)?\d*/gi; 5638 var _relExp = /[+-]=-?[.\d]+/; 5639 var _delimitedValueExp = /[^,'"\[\]\s]+/gi; 5640 var _unitExp = /^[+\-=e\s\d]*\d+[.\d]*([a-z]*|%)\s*$/i; 5641 var _globalTimeline; 5642 var _win; 5643 var _coreInitted; 5644 var _doc; 5645 var _globals = {}; 5646 var _installScope = {}; 5647 var _coreReady; 5648 var _install = /* @__PURE__ */ __name(function _install2(scope) { 5649 return (_installScope = _merge(scope, _globals)) && gsap; 5650 }, "_install"); 5651 var _missingPlugin = /* @__PURE__ */ __name(function _missingPlugin2(property, value) { 5652 return console.warn("Invalid property", property, "set to", value, "Missing plugin? gsap.registerPlugin()"); 5653 }, "_missingPlugin"); 5654 var _warn = /* @__PURE__ */ __name(function _warn2(message, suppress) { 5655 return !suppress && console.warn(message); 5656 }, "_warn"); 5657 var _addGlobal = /* @__PURE__ */ __name(function _addGlobal2(name, obj) { 5658 return name && (_globals[name] = obj) && _installScope && (_installScope[name] = obj) || _globals; 5659 }, "_addGlobal"); 5660 var _emptyFunc = /* @__PURE__ */ __name(function _emptyFunc2() { 5661 return 0; 5662 }, "_emptyFunc"); 5663 var _startAtRevertConfig = { 5664 suppressEvents: true, 5665 isStart: true, 5666 kill: false 5667 }; 5668 var _revertConfigNoKill = { 5669 suppressEvents: true, 5670 kill: false 5671 }; 5672 var _revertConfig = { 5673 suppressEvents: true 5674 }; 5675 var _reservedProps = {}; 5676 var _lazyTweens = []; 5677 var _lazyLookup = {}; 5678 var _lastRenderedFrame; 5679 var _plugins = {}; 5680 var _effects = {}; 5681 var _nextGCFrame = 30; 5682 var _harnessPlugins = []; 5683 var _callbackNames = ""; 5684 var _harness = /* @__PURE__ */ __name(function _harness2(targets) { 5685 var target = targets[0], harnessPlugin, i; 5686 _isObject(target) || _isFunction(target) || (targets = [targets]); 5687 if (!(harnessPlugin = (target._gsap || {}).harness)) { 5688 i = _harnessPlugins.length; 5689 while (i-- && !_harnessPlugins[i].targetTest(target)) { 5690 } 5691 harnessPlugin = _harnessPlugins[i]; 5692 } 5693 i = targets.length; 5694 while (i--) { 5695 targets[i] && (targets[i]._gsap || (targets[i]._gsap = new GSCache(targets[i], harnessPlugin))) || targets.splice(i, 1); 5696 } 5697 return targets; 5698 }, "_harness"); 5699 var _getCache = /* @__PURE__ */ __name(function _getCache2(target) { 5700 return target._gsap || _harness(toArray(target))[0]._gsap; 5701 }, "_getCache"); 5702 var _getProperty = /* @__PURE__ */ __name(function _getProperty2(target, property, v) { 5703 return (v = target[property]) && _isFunction(v) ? target[property]() : _isUndefined(v) && target.getAttribute && target.getAttribute(property) || v; 5704 }, "_getProperty"); 5705 var _forEachName = /* @__PURE__ */ __name(function _forEachName2(names, func) { 5706 return (names = names.split(",")).forEach(func) || names; 5707 }, "_forEachName"); 5708 var _round = /* @__PURE__ */ __name(function _round2(value) { 5709 return Math.round(value * 1e5) / 1e5 || 0; 5710 }, "_round"); 5711 var _roundPrecise = /* @__PURE__ */ __name(function _roundPrecise2(value) { 5712 return Math.round(value * 1e7) / 1e7 || 0; 5713 }, "_roundPrecise"); 5714 var _parseRelative = /* @__PURE__ */ __name(function _parseRelative2(start, value) { 5715 var operator = value.charAt(0), end = parseFloat(value.substr(2)); 5716 start = parseFloat(start); 5717 return operator === "+" ? start + end : operator === "-" ? start - end : operator === "*" ? start * end : start / end; 5718 }, "_parseRelative"); 5719 var _arrayContainsAny = /* @__PURE__ */ __name(function _arrayContainsAny2(toSearch, toFind) { 5720 var l = toFind.length, i = 0; 5721 for (; toSearch.indexOf(toFind[i]) < 0 && ++i < l; ) { 5722 } 5723 return i < l; 5724 }, "_arrayContainsAny"); 5725 var _lazyRender = /* @__PURE__ */ __name(function _lazyRender2() { 5726 var l = _lazyTweens.length, a = _lazyTweens.slice(0), i, tween; 5727 _lazyLookup = {}; 5728 _lazyTweens.length = 0; 5729 for (i = 0; i < l; i++) { 5730 tween = a[i]; 5731 tween && tween._lazy && (tween.render(tween._lazy[0], tween._lazy[1], true)._lazy = 0); 5732 } 5733 }, "_lazyRender"); 5734 var _isRevertWorthy = /* @__PURE__ */ __name(function _isRevertWorthy2(animation) { 5735 return !!(animation._initted || animation._startAt || animation.add); 5736 }, "_isRevertWorthy"); 5737 var _lazySafeRender = /* @__PURE__ */ __name(function _lazySafeRender2(animation, time, suppressEvents, force) { 5738 _lazyTweens.length && !_reverting && _lazyRender(); 5739 animation.render(time, suppressEvents, force || !!(_reverting && time < 0 && _isRevertWorthy(animation))); 5740 _lazyTweens.length && !_reverting && _lazyRender(); 5741 }, "_lazySafeRender"); 5742 var _numericIfPossible = /* @__PURE__ */ __name(function _numericIfPossible2(value) { 5743 var n = parseFloat(value); 5744 return (n || n === 0) && (value + "").match(_delimitedValueExp).length < 2 ? n : _isString(value) ? value.trim() : value; 5745 }, "_numericIfPossible"); 5746 var _passThrough = /* @__PURE__ */ __name(function _passThrough2(p) { 5747 return p; 5748 }, "_passThrough"); 5749 var _setDefaults = /* @__PURE__ */ __name(function _setDefaults2(obj, defaults2) { 5750 for (var p in defaults2) { 5751 p in obj || (obj[p] = defaults2[p]); 5752 } 5753 return obj; 5754 }, "_setDefaults"); 5755 var _setKeyframeDefaults = /* @__PURE__ */ __name(function _setKeyframeDefaults2(excludeDuration) { 5756 return function(obj, defaults2) { 5757 for (var p in defaults2) { 5758 p in obj || p === "duration" && excludeDuration || p === "ease" || (obj[p] = defaults2[p]); 5759 } 5760 }; 5761 }, "_setKeyframeDefaults"); 5762 var _merge = /* @__PURE__ */ __name(function _merge2(base, toMerge) { 5763 for (var p in toMerge) { 5764 base[p] = toMerge[p]; 5765 } 5766 return base; 5767 }, "_merge"); 5768 var _mergeDeep = /* @__PURE__ */ __name(function _mergeDeep2(base, toMerge) { 5769 for (var p in toMerge) { 5770 p !== "__proto__" && p !== "constructor" && p !== "prototype" && (base[p] = _isObject(toMerge[p]) ? _mergeDeep2(base[p] || (base[p] = {}), toMerge[p]) : toMerge[p]); 5771 } 5772 return base; 5773 }, "_mergeDeep"); 5774 var _copyExcluding = /* @__PURE__ */ __name(function _copyExcluding2(obj, excluding) { 5775 var copy = {}, p; 5776 for (p in obj) { 5777 p in excluding || (copy[p] = obj[p]); 5778 } 5779 return copy; 5780 }, "_copyExcluding"); 5781 var _inheritDefaults = /* @__PURE__ */ __name(function _inheritDefaults2(vars) { 5782 var parent = vars.parent || _globalTimeline, func = vars.keyframes ? _setKeyframeDefaults(_isArray(vars.keyframes)) : _setDefaults; 5783 if (_isNotFalse(vars.inherit)) { 5784 while (parent) { 5785 func(vars, parent.vars.defaults); 5786 parent = parent.parent || parent._dp; 5787 } 5788 } 5789 return vars; 5790 }, "_inheritDefaults"); 5791 var _arraysMatch = /* @__PURE__ */ __name(function _arraysMatch2(a1, a2) { 5792 var i = a1.length, match = i === a2.length; 5793 while (match && i-- && a1[i] === a2[i]) { 5794 } 5795 return i < 0; 5796 }, "_arraysMatch"); 5797 var _addLinkedListItem = /* @__PURE__ */ __name(function _addLinkedListItem2(parent, child, firstProp, lastProp, sortBy) { 5798 if (firstProp === void 0) { 5799 firstProp = "_first"; 5800 } 5801 if (lastProp === void 0) { 5802 lastProp = "_last"; 5803 } 5804 var prev = parent[lastProp], t; 5805 if (sortBy) { 5806 t = child[sortBy]; 5807 while (prev && prev[sortBy] > t) { 5808 prev = prev._prev; 5809 } 5810 } 5811 if (prev) { 5812 child._next = prev._next; 5813 prev._next = child; 5814 } else { 5815 child._next = parent[firstProp]; 5816 parent[firstProp] = child; 5817 } 5818 if (child._next) { 5819 child._next._prev = child; 5820 } else { 5821 parent[lastProp] = child; 5822 } 5823 child._prev = prev; 5824 child.parent = child._dp = parent; 5825 return child; 5826 }, "_addLinkedListItem"); 5827 var _removeLinkedListItem = /* @__PURE__ */ __name(function _removeLinkedListItem2(parent, child, firstProp, lastProp) { 5828 if (firstProp === void 0) { 5829 firstProp = "_first"; 5830 } 5831 if (lastProp === void 0) { 5832 lastProp = "_last"; 5833 } 5834 var prev = child._prev, next = child._next; 5835 if (prev) { 5836 prev._next = next; 5837 } else if (parent[firstProp] === child) { 5838 parent[firstProp] = next; 5839 } 5840 if (next) { 5841 next._prev = prev; 5842 } else if (parent[lastProp] === child) { 5843 parent[lastProp] = prev; 5844 } 5845 child._next = child._prev = child.parent = null; 5846 }, "_removeLinkedListItem"); 5847 var _removeFromParent = /* @__PURE__ */ __name(function _removeFromParent2(child, onlyIfParentHasAutoRemove) { 5848 child.parent && (!onlyIfParentHasAutoRemove || child.parent.autoRemoveChildren) && child.parent.remove && child.parent.remove(child); 5849 child._act = 0; 5850 }, "_removeFromParent"); 5851 var _uncache = /* @__PURE__ */ __name(function _uncache2(animation, child) { 5852 if (animation && (!child || child._end > animation._dur || child._start < 0)) { 5853 var a = animation; 5854 while (a) { 5855 a._dirty = 1; 5856 a = a.parent; 5857 } 5858 } 5859 return animation; 5860 }, "_uncache"); 5861 var _recacheAncestors = /* @__PURE__ */ __name(function _recacheAncestors2(animation) { 5862 var parent = animation.parent; 5863 while (parent && parent.parent) { 5864 parent._dirty = 1; 5865 parent.totalDuration(); 5866 parent = parent.parent; 5867 } 5868 return animation; 5869 }, "_recacheAncestors"); 5870 var _rewindStartAt = /* @__PURE__ */ __name(function _rewindStartAt2(tween, totalTime, suppressEvents, force) { 5871 return tween._startAt && (_reverting ? tween._startAt.revert(_revertConfigNoKill) : tween.vars.immediateRender && !tween.vars.autoRevert || tween._startAt.render(totalTime, true, force)); 5872 }, "_rewindStartAt"); 5873 var _hasNoPausedAncestors = /* @__PURE__ */ __name(function _hasNoPausedAncestors2(animation) { 5874 return !animation || animation._ts && _hasNoPausedAncestors2(animation.parent); 5875 }, "_hasNoPausedAncestors"); 5876 var _elapsedCycleDuration = /* @__PURE__ */ __name(function _elapsedCycleDuration2(animation) { 5877 return animation._repeat ? _animationCycle(animation._tTime, animation = animation.duration() + animation._rDelay) * animation : 0; 5878 }, "_elapsedCycleDuration"); 5879 var _animationCycle = /* @__PURE__ */ __name(function _animationCycle2(tTime, cycleDuration) { 5880 var whole = Math.floor(tTime = _roundPrecise(tTime / cycleDuration)); 5881 return tTime && whole === tTime ? whole - 1 : whole; 5882 }, "_animationCycle"); 5883 var _parentToChildTotalTime = /* @__PURE__ */ __name(function _parentToChildTotalTime2(parentTime, child) { 5884 return (parentTime - child._start) * child._ts + (child._ts >= 0 ? 0 : child._dirty ? child.totalDuration() : child._tDur); 5885 }, "_parentToChildTotalTime"); 5886 var _setEnd = /* @__PURE__ */ __name(function _setEnd2(animation) { 5887 return animation._end = _roundPrecise(animation._start + (animation._tDur / Math.abs(animation._ts || animation._rts || _tinyNum) || 0)); 5888 }, "_setEnd"); 5889 var _alignPlayhead = /* @__PURE__ */ __name(function _alignPlayhead2(animation, totalTime) { 5890 var parent = animation._dp; 5891 if (parent && parent.smoothChildTiming && animation._ts) { 5892 animation._start = _roundPrecise(parent._time - (animation._ts > 0 ? totalTime / animation._ts : ((animation._dirty ? animation.totalDuration() : animation._tDur) - totalTime) / -animation._ts)); 5893 _setEnd(animation); 5894 parent._dirty || _uncache(parent, animation); 5895 } 5896 return animation; 5897 }, "_alignPlayhead"); 5898 var _postAddChecks = /* @__PURE__ */ __name(function _postAddChecks2(timeline2, child) { 5899 var t; 5900 if (child._time || !child._dur && child._initted || child._start < timeline2._time && (child._dur || !child.add)) { 5901 t = _parentToChildTotalTime(timeline2.rawTime(), child); 5902 if (!child._dur || _clamp(0, child.totalDuration(), t) - child._tTime > _tinyNum) { 5903 child.render(t, true); 5904 } 5905 } 5906 if (_uncache(timeline2, child)._dp && timeline2._initted && timeline2._time >= timeline2._dur && timeline2._ts) { 5907 if (timeline2._dur < timeline2.duration()) { 5908 t = timeline2; 5909 while (t._dp) { 5910 t.rawTime() >= 0 && t.totalTime(t._tTime); 5911 t = t._dp; 5912 } 5913 } 5914 timeline2._zTime = -_tinyNum; 5915 } 5916 }, "_postAddChecks"); 5917 var _addToTimeline = /* @__PURE__ */ __name(function _addToTimeline2(timeline2, child, position, skipChecks) { 5918 child.parent && _removeFromParent(child); 5919 child._start = _roundPrecise((_isNumber(position) ? position : position || timeline2 !== _globalTimeline ? _parsePosition(timeline2, position, child) : timeline2._time) + child._delay); 5920 child._end = _roundPrecise(child._start + (child.totalDuration() / Math.abs(child.timeScale()) || 0)); 5921 _addLinkedListItem(timeline2, child, "_first", "_last", timeline2._sort ? "_start" : 0); 5922 _isFromOrFromStart(child) || (timeline2._recent = child); 5923 skipChecks || _postAddChecks(timeline2, child); 5924 timeline2._ts < 0 && _alignPlayhead(timeline2, timeline2._tTime); 5925 return timeline2; 5926 }, "_addToTimeline"); 5927 var _scrollTrigger = /* @__PURE__ */ __name(function _scrollTrigger2(animation, trigger) { 5928 return (_globals.ScrollTrigger || _missingPlugin("scrollTrigger", trigger)) && _globals.ScrollTrigger.create(trigger, animation); 5929 }, "_scrollTrigger"); 5930 var _attemptInitTween = /* @__PURE__ */ __name(function _attemptInitTween2(tween, time, force, suppressEvents, tTime) { 5931 _initTween(tween, time, tTime); 5932 if (!tween._initted) { 5933 return 1; 5934 } 5935 if (!force && tween._pt && !_reverting && (tween._dur && tween.vars.lazy !== false || !tween._dur && tween.vars.lazy) && _lastRenderedFrame !== _ticker.frame) { 5936 _lazyTweens.push(tween); 5937 tween._lazy = [tTime, suppressEvents]; 5938 return 1; 5939 } 5940 }, "_attemptInitTween"); 5941 var _parentPlayheadIsBeforeStart = /* @__PURE__ */ __name(function _parentPlayheadIsBeforeStart2(_ref) { 5942 var parent = _ref.parent; 5943 return parent && parent._ts && parent._initted && !parent._lock && (parent.rawTime() < 0 || _parentPlayheadIsBeforeStart2(parent)); 5944 }, "_parentPlayheadIsBeforeStart"); 5945 var _isFromOrFromStart = /* @__PURE__ */ __name(function _isFromOrFromStart2(_ref2) { 5946 var data = _ref2.data; 5947 return data === "isFromStart" || data === "isStart"; 5948 }, "_isFromOrFromStart"); 5949 var _renderZeroDurationTween = /* @__PURE__ */ __name(function _renderZeroDurationTween2(tween, totalTime, suppressEvents, force) { 5950 var prevRatio = tween.ratio, ratio = totalTime < 0 || !totalTime && (!tween._start && _parentPlayheadIsBeforeStart(tween) && !(!tween._initted && _isFromOrFromStart(tween)) || (tween._ts < 0 || tween._dp._ts < 0) && !_isFromOrFromStart(tween)) ? 0 : 1, repeatDelay = tween._rDelay, tTime = 0, pt, iteration, prevIteration; 5951 if (repeatDelay && tween._repeat) { 5952 tTime = _clamp(0, tween._tDur, totalTime); 5953 iteration = _animationCycle(tTime, repeatDelay); 5954 tween._yoyo && iteration & 1 && (ratio = 1 - ratio); 5955 if (iteration !== _animationCycle(tween._tTime, repeatDelay)) { 5956 prevRatio = 1 - ratio; 5957 tween.vars.repeatRefresh && tween._initted && tween.invalidate(); 5958 } 5959 } 5960 if (ratio !== prevRatio || _reverting || force || tween._zTime === _tinyNum || !totalTime && tween._zTime) { 5961 if (!tween._initted && _attemptInitTween(tween, totalTime, force, suppressEvents, tTime)) { 5962 return; 5963 } 5964 prevIteration = tween._zTime; 5965 tween._zTime = totalTime || (suppressEvents ? _tinyNum : 0); 5966 suppressEvents || (suppressEvents = totalTime && !prevIteration); 5967 tween.ratio = ratio; 5968 tween._from && (ratio = 1 - ratio); 5969 tween._time = 0; 5970 tween._tTime = tTime; 5971 pt = tween._pt; 5972 while (pt) { 5973 pt.r(ratio, pt.d); 5974 pt = pt._next; 5975 } 5976 totalTime < 0 && _rewindStartAt(tween, totalTime, suppressEvents, true); 5977 tween._onUpdate && !suppressEvents && _callback(tween, "onUpdate"); 5978 tTime && tween._repeat && !suppressEvents && tween.parent && _callback(tween, "onRepeat"); 5979 if ((totalTime >= tween._tDur || totalTime < 0) && tween.ratio === ratio) { 5980 ratio && _removeFromParent(tween, 1); 5981 if (!suppressEvents && !_reverting) { 5982 _callback(tween, ratio ? "onComplete" : "onReverseComplete", true); 5983 tween._prom && tween._prom(); 5984 } 5985 } 5986 } else if (!tween._zTime) { 5987 tween._zTime = totalTime; 5988 } 5989 }, "_renderZeroDurationTween"); 5990 var _findNextPauseTween = /* @__PURE__ */ __name(function _findNextPauseTween2(animation, prevTime, time) { 5991 var child; 5992 if (time > prevTime) { 5993 child = animation._first; 5994 while (child && child._start <= time) { 5995 if (child.data === "isPause" && child._start > prevTime) { 5996 return child; 5997 } 5998 child = child._next; 5999 } 6000 } else { 6001 child = animation._last; 6002 while (child && child._start >= time) { 6003 if (child.data === "isPause" && child._start < prevTime) { 6004 return child; 6005 } 6006 child = child._prev; 6007 } 6008 } 6009 }, "_findNextPauseTween"); 6010 var _setDuration = /* @__PURE__ */ __name(function _setDuration2(animation, duration, skipUncache, leavePlayhead) { 6011 var repeat = animation._repeat, dur = _roundPrecise(duration) || 0, totalProgress = animation._tTime / animation._tDur; 6012 totalProgress && !leavePlayhead && (animation._time *= dur / animation._dur); 6013 animation._dur = dur; 6014 animation._tDur = !repeat ? dur : repeat < 0 ? 1e10 : _roundPrecise(dur * (repeat + 1) + animation._rDelay * repeat); 6015 totalProgress > 0 && !leavePlayhead && _alignPlayhead(animation, animation._tTime = animation._tDur * totalProgress); 6016 animation.parent && _setEnd(animation); 6017 skipUncache || _uncache(animation.parent, animation); 6018 return animation; 6019 }, "_setDuration"); 6020 var _onUpdateTotalDuration = /* @__PURE__ */ __name(function _onUpdateTotalDuration2(animation) { 6021 return animation instanceof Timeline ? _uncache(animation) : _setDuration(animation, animation._dur); 6022 }, "_onUpdateTotalDuration"); 6023 var _zeroPosition = { 6024 _start: 0, 6025 endTime: _emptyFunc, 6026 totalDuration: _emptyFunc 6027 }; 6028 var _parsePosition = /* @__PURE__ */ __name(function _parsePosition2(animation, position, percentAnimation) { 6029 var labels2 = animation.labels, recent = animation._recent || _zeroPosition, clippedDuration = animation.duration() >= _bigNum ? recent.endTime(false) : animation._dur, i, offset, isPercent; 6030 if (_isString(position) && (isNaN(position) || position in labels2)) { 6031 offset = position.charAt(0); 6032 isPercent = position.substr(-1) === "%"; 6033 i = position.indexOf("="); 6034 if (offset === "<" || offset === ">") { 6035 i >= 0 && (position = position.replace(/=/, "")); 6036 return (offset === "<" ? recent._start : recent.endTime(recent._repeat >= 0)) + (parseFloat(position.substr(1)) || 0) * (isPercent ? (i < 0 ? recent : percentAnimation).totalDuration() / 100 : 1); 6037 } 6038 if (i < 0) { 6039 position in labels2 || (labels2[position] = clippedDuration); 6040 return labels2[position]; 6041 } 6042 offset = parseFloat(position.charAt(i - 1) + position.substr(i + 1)); 6043 if (isPercent && percentAnimation) { 6044 offset = offset / 100 * (_isArray(percentAnimation) ? percentAnimation[0] : percentAnimation).totalDuration(); 6045 } 6046 return i > 1 ? _parsePosition2(animation, position.substr(0, i - 1), percentAnimation) + offset : clippedDuration + offset; 6047 } 6048 return position == null ? clippedDuration : +position; 6049 }, "_parsePosition"); 6050 var _createTweenType = /* @__PURE__ */ __name(function _createTweenType2(type, params, timeline2) { 6051 var isLegacy = _isNumber(params[1]), varsIndex = (isLegacy ? 2 : 1) + (type < 2 ? 0 : 1), vars = params[varsIndex], irVars, parent; 6052 isLegacy && (vars.duration = params[1]); 6053 vars.parent = timeline2; 6054 if (type) { 6055 irVars = vars; 6056 parent = timeline2; 6057 while (parent && !("immediateRender" in irVars)) { 6058 irVars = parent.vars.defaults || {}; 6059 parent = _isNotFalse(parent.vars.inherit) && parent.parent; 6060 } 6061 vars.immediateRender = _isNotFalse(irVars.immediateRender); 6062 type < 2 ? vars.runBackwards = 1 : vars.startAt = params[varsIndex - 1]; 6063 } 6064 return new Tween(params[0], vars, params[varsIndex + 1]); 6065 }, "_createTweenType"); 6066 var _conditionalReturn = /* @__PURE__ */ __name(function _conditionalReturn2(value, func) { 6067 return value || value === 0 ? func(value) : func; 6068 }, "_conditionalReturn"); 6069 var _clamp = /* @__PURE__ */ __name(function _clamp2(min, max, value) { 6070 return value < min ? min : value > max ? max : value; 6071 }, "_clamp"); 6072 var getUnit = /* @__PURE__ */ __name(function getUnit2(value, v) { 6073 return !_isString(value) || !(v = _unitExp.exec(value)) ? "" : v[1]; 6074 }, "getUnit"); 6075 var clamp = /* @__PURE__ */ __name(function clamp2(min, max, value) { 6076 return _conditionalReturn(value, function(v) { 6077 return _clamp(min, max, v); 6078 }); 6079 }, "clamp"); 6080 var _slice = [].slice; 6081 var _isArrayLike = /* @__PURE__ */ __name(function _isArrayLike2(value, nonEmpty) { 6082 return value && _isObject(value) && "length" in value && (!nonEmpty && !value.length || value.length - 1 in value && _isObject(value[0])) && !value.nodeType && value !== _win; 6083 }, "_isArrayLike"); 6084 var _flatten = /* @__PURE__ */ __name(function _flatten2(ar, leaveStrings, accumulator) { 6085 if (accumulator === void 0) { 6086 accumulator = []; 6087 } 6088 return ar.forEach(function(value) { 6089 var _accumulator; 6090 return _isString(value) && !leaveStrings || _isArrayLike(value, 1) ? (_accumulator = accumulator).push.apply(_accumulator, toArray(value)) : accumulator.push(value); 6091 }) || accumulator; 6092 }, "_flatten"); 6093 var toArray = /* @__PURE__ */ __name(function toArray2(value, scope, leaveStrings) { 6094 return _context && !scope && _context.selector ? _context.selector(value) : _isString(value) && !leaveStrings && (_coreInitted || !_wake()) ? _slice.call((scope || _doc).querySelectorAll(value), 0) : _isArray(value) ? _flatten(value, leaveStrings) : _isArrayLike(value) ? _slice.call(value, 0) : value ? [value] : []; 6095 }, "toArray"); 6096 var selector = /* @__PURE__ */ __name(function selector2(value) { 6097 value = toArray(value)[0] || _warn("Invalid scope") || {}; 6098 return function(v) { 6099 var el = value.current || value.nativeElement || value; 6100 return toArray(v, el.querySelectorAll ? el : el === value ? _warn("Invalid scope") || _doc.createElement("div") : value); 6101 }; 6102 }, "selector"); 6103 var shuffle = /* @__PURE__ */ __name(function shuffle2(a) { 6104 return a.sort(function() { 6105 return 0.5 - Math.random(); 6106 }); 6107 }, "shuffle"); 6108 var distribute = /* @__PURE__ */ __name(function distribute2(v) { 6109 if (_isFunction(v)) { 6110 return v; 6111 } 6112 var vars = _isObject(v) ? v : { 6113 each: v 6114 }, ease = _parseEase(vars.ease), from = vars.from || 0, base = parseFloat(vars.base) || 0, cache = {}, isDecimal = from > 0 && from < 1, ratios = isNaN(from) || isDecimal, axis = vars.axis, ratioX = from, ratioY = from; 6115 if (_isString(from)) { 6116 ratioX = ratioY = { 6117 center: 0.5, 6118 edges: 0.5, 6119 end: 1 6120 }[from] || 0; 6121 } else if (!isDecimal && ratios) { 6122 ratioX = from[0]; 6123 ratioY = from[1]; 6124 } 6125 return function(i, target, a) { 6126 var l = (a || vars).length, distances = cache[l], originX, originY, x, y, d, j, max, min, wrapAt; 6127 if (!distances) { 6128 wrapAt = vars.grid === "auto" ? 0 : (vars.grid || [1, _bigNum])[1]; 6129 if (!wrapAt) { 6130 max = -_bigNum; 6131 while (max < (max = a[wrapAt++].getBoundingClientRect().left) && wrapAt < l) { 6132 } 6133 wrapAt < l && wrapAt--; 6134 } 6135 distances = cache[l] = []; 6136 originX = ratios ? Math.min(wrapAt, l) * ratioX - 0.5 : from % wrapAt; 6137 originY = wrapAt === _bigNum ? 0 : ratios ? l * ratioY / wrapAt - 0.5 : from / wrapAt | 0; 6138 max = 0; 6139 min = _bigNum; 6140 for (j = 0; j < l; j++) { 6141 x = j % wrapAt - originX; 6142 y = originY - (j / wrapAt | 0); 6143 distances[j] = d = !axis ? _sqrt(x * x + y * y) : Math.abs(axis === "y" ? y : x); 6144 d > max && (max = d); 6145 d < min && (min = d); 6146 } 6147 from === "random" && shuffle(distances); 6148 distances.max = max - min; 6149 distances.min = min; 6150 distances.v = l = (parseFloat(vars.amount) || parseFloat(vars.each) * (wrapAt > l ? l - 1 : !axis ? Math.max(wrapAt, l / wrapAt) : axis === "y" ? l / wrapAt : wrapAt) || 0) * (from === "edges" ? -1 : 1); 6151 distances.b = l < 0 ? base - l : base; 6152 distances.u = getUnit(vars.amount || vars.each) || 0; 6153 ease = ease && l < 0 ? _invertEase(ease) : ease; 6154 } 6155 l = (distances[i] - distances.min) / distances.max || 0; 6156 return _roundPrecise(distances.b + (ease ? ease(l) : l) * distances.v) + distances.u; 6157 }; 6158 }, "distribute"); 6159 var _roundModifier = /* @__PURE__ */ __name(function _roundModifier2(v) { 6160 var p = Math.pow(10, ((v + "").split(".")[1] || "").length); 6161 return function(raw) { 6162 var n = _roundPrecise(Math.round(parseFloat(raw) / v) * v * p); 6163 return (n - n % 1) / p + (_isNumber(raw) ? 0 : getUnit(raw)); 6164 }; 6165 }, "_roundModifier"); 6166 var snap = /* @__PURE__ */ __name(function snap2(snapTo, value) { 6167 var isArray = _isArray(snapTo), radius, is2D; 6168 if (!isArray && _isObject(snapTo)) { 6169 radius = isArray = snapTo.radius || _bigNum; 6170 if (snapTo.values) { 6171 snapTo = toArray(snapTo.values); 6172 if (is2D = !_isNumber(snapTo[0])) { 6173 radius *= radius; 6174 } 6175 } else { 6176 snapTo = _roundModifier(snapTo.increment); 6177 } 6178 } 6179 return _conditionalReturn(value, !isArray ? _roundModifier(snapTo) : _isFunction(snapTo) ? function(raw) { 6180 is2D = snapTo(raw); 6181 return Math.abs(is2D - raw) <= radius ? is2D : raw; 6182 } : function(raw) { 6183 var x = parseFloat(is2D ? raw.x : raw), y = parseFloat(is2D ? raw.y : 0), min = _bigNum, closest = 0, i = snapTo.length, dx, dy; 6184 while (i--) { 6185 if (is2D) { 6186 dx = snapTo[i].x - x; 6187 dy = snapTo[i].y - y; 6188 dx = dx * dx + dy * dy; 6189 } else { 6190 dx = Math.abs(snapTo[i] - x); 6191 } 6192 if (dx < min) { 6193 min = dx; 6194 closest = i; 6195 } 6196 } 6197 closest = !radius || min <= radius ? snapTo[closest] : raw; 6198 return is2D || closest === raw || _isNumber(raw) ? closest : closest + getUnit(raw); 6199 }); 6200 }, "snap"); 6201 var random = /* @__PURE__ */ __name(function random2(min, max, roundingIncrement, returnFunction) { 6202 return _conditionalReturn(_isArray(min) ? !max : roundingIncrement === true ? !!(roundingIncrement = 0) : !returnFunction, function() { 6203 return _isArray(min) ? min[~~(Math.random() * min.length)] : (roundingIncrement = roundingIncrement || 1e-5) && (returnFunction = roundingIncrement < 1 ? Math.pow(10, (roundingIncrement + "").length - 2) : 1) && Math.floor(Math.round((min - roundingIncrement / 2 + Math.random() * (max - min + roundingIncrement * 0.99)) / roundingIncrement) * roundingIncrement * returnFunction) / returnFunction; 6204 }); 6205 }, "random"); 6206 var pipe = /* @__PURE__ */ __name(function pipe2() { 6207 for (var _len = arguments.length, functions = new Array(_len), _key = 0; _key < _len; _key++) { 6208 functions[_key] = arguments[_key]; 6209 } 6210 return function(value) { 6211 return functions.reduce(function(v, f) { 6212 return f(v); 6213 }, value); 6214 }; 6215 }, "pipe"); 6216 var unitize = /* @__PURE__ */ __name(function unitize2(func, unit) { 6217 return function(value) { 6218 return func(parseFloat(value)) + (unit || getUnit(value)); 6219 }; 6220 }, "unitize"); 6221 var normalize = /* @__PURE__ */ __name(function normalize2(min, max, value) { 6222 return mapRange(min, max, 0, 1, value); 6223 }, "normalize"); 6224 var _wrapArray = /* @__PURE__ */ __name(function _wrapArray2(a, wrapper, value) { 6225 return _conditionalReturn(value, function(index) { 6226 return a[~~wrapper(index)]; 6227 }); 6228 }, "_wrapArray"); 6229 var wrap = /* @__PURE__ */ __name(function wrap2(min, max, value) { 6230 var range = max - min; 6231 return _isArray(min) ? _wrapArray(min, wrap2(0, min.length), max) : _conditionalReturn(value, function(value2) { 6232 return (range + (value2 - min) % range) % range + min; 6233 }); 6234 }, "wrap"); 6235 var wrapYoyo = /* @__PURE__ */ __name(function wrapYoyo2(min, max, value) { 6236 var range = max - min, total = range * 2; 6237 return _isArray(min) ? _wrapArray(min, wrapYoyo2(0, min.length - 1), max) : _conditionalReturn(value, function(value2) { 6238 value2 = (total + (value2 - min) % total) % total || 0; 6239 return min + (value2 > range ? total - value2 : value2); 6240 }); 6241 }, "wrapYoyo"); 6242 var _replaceRandom = /* @__PURE__ */ __name(function _replaceRandom2(s) { 6243 return s.replace(_randomExp, function(match) { 6244 var arIndex = match.indexOf("[") + 1, values = match.substring(arIndex || 7, arIndex ? match.indexOf("]") : match.length - 1).split(_commaDelimExp); 6245 return random(arIndex ? values : +values[0], arIndex ? 0 : +values[1], +values[2] || 1e-5); 6246 }); 6247 }, "_replaceRandom"); 6248 var mapRange = /* @__PURE__ */ __name(function mapRange2(inMin, inMax, outMin, outMax, value) { 6249 var inRange = inMax - inMin, outRange = outMax - outMin; 6250 return _conditionalReturn(value, function(value2) { 6251 return outMin + ((value2 - inMin) / inRange * outRange || 0); 6252 }); 6253 }, "mapRange"); 6254 var interpolate = /* @__PURE__ */ __name(function interpolate2(start, end, progress, mutate) { 6255 var func = isNaN(start + end) ? 0 : function(p2) { 6256 return (1 - p2) * start + p2 * end; 6257 }; 6258 if (!func) { 6259 var isString = _isString(start), master = {}, p, i, interpolators, l, il; 6260 progress === true && (mutate = 1) && (progress = null); 6261 if (isString) { 6262 start = { 6263 p: start 6264 }; 6265 end = { 6266 p: end 6267 }; 6268 } else if (_isArray(start) && !_isArray(end)) { 6269 interpolators = []; 6270 l = start.length; 6271 il = l - 2; 6272 for (i = 1; i < l; i++) { 6273 interpolators.push(interpolate2(start[i - 1], start[i])); 6274 } 6275 l--; 6276 func = /* @__PURE__ */ __name(function func2(p2) { 6277 p2 *= l; 6278 var i2 = Math.min(il, ~~p2); 6279 return interpolators[i2](p2 - i2); 6280 }, "func"); 6281 progress = end; 6282 } else if (!mutate) { 6283 start = _merge(_isArray(start) ? [] : {}, start); 6284 } 6285 if (!interpolators) { 6286 for (p in end) { 6287 _addPropTween.call(master, start, p, "get", end[p]); 6288 } 6289 func = /* @__PURE__ */ __name(function func2(p2) { 6290 return _renderPropTweens(p2, master) || (isString ? start.p : start); 6291 }, "func"); 6292 } 6293 } 6294 return _conditionalReturn(progress, func); 6295 }, "interpolate"); 6296 var _getLabelInDirection = /* @__PURE__ */ __name(function _getLabelInDirection2(timeline2, fromTime, backward) { 6297 var labels2 = timeline2.labels, min = _bigNum, p, distance, label; 6298 for (p in labels2) { 6299 distance = labels2[p] - fromTime; 6300 if (distance < 0 === !!backward && distance && min > (distance = Math.abs(distance))) { 6301 label = p; 6302 min = distance; 6303 } 6304 } 6305 return label; 6306 }, "_getLabelInDirection"); 6307 var _callback = /* @__PURE__ */ __name(function _callback2(animation, type, executeLazyFirst) { 6308 var v = animation.vars, callback = v[type], prevContext = _context, context3 = animation._ctx, params, scope, result; 6309 if (!callback) { 6310 return; 6311 } 6312 params = v[type + "Params"]; 6313 scope = v.callbackScope || animation; 6314 executeLazyFirst && _lazyTweens.length && _lazyRender(); 6315 context3 && (_context = context3); 6316 result = params ? callback.apply(scope, params) : callback.call(scope); 6317 _context = prevContext; 6318 return result; 6319 }, "_callback"); 6320 var _interrupt = /* @__PURE__ */ __name(function _interrupt2(animation) { 6321 _removeFromParent(animation); 6322 animation.scrollTrigger && animation.scrollTrigger.kill(!!_reverting); 6323 animation.progress() < 1 && _callback(animation, "onInterrupt"); 6324 return animation; 6325 }, "_interrupt"); 6326 var _quickTween; 6327 var _registerPluginQueue = []; 6328 var _createPlugin = /* @__PURE__ */ __name(function _createPlugin2(config3) { 6329 if (!config3) return; 6330 config3 = !config3.name && config3["default"] || config3; 6331 if (_windowExists() || config3.headless) { 6332 var name = config3.name, isFunc = _isFunction(config3), Plugin = name && !isFunc && config3.init ? function() { 6333 this._props = []; 6334 } : config3, instanceDefaults = { 6335 init: _emptyFunc, 6336 render: _renderPropTweens, 6337 add: _addPropTween, 6338 kill: _killPropTweensOf, 6339 modifier: _addPluginModifier, 6340 rawVars: 0 6341 }, statics = { 6342 targetTest: 0, 6343 get: 0, 6344 getSetter: _getSetter, 6345 aliases: {}, 6346 register: 0 6347 }; 6348 _wake(); 6349 if (config3 !== Plugin) { 6350 if (_plugins[name]) { 6351 return; 6352 } 6353 _setDefaults(Plugin, _setDefaults(_copyExcluding(config3, instanceDefaults), statics)); 6354 _merge(Plugin.prototype, _merge(instanceDefaults, _copyExcluding(config3, statics))); 6355 _plugins[Plugin.prop = name] = Plugin; 6356 if (config3.targetTest) { 6357 _harnessPlugins.push(Plugin); 6358 _reservedProps[name] = 1; 6359 } 6360 name = (name === "css" ? "CSS" : name.charAt(0).toUpperCase() + name.substr(1)) + "Plugin"; 6361 } 6362 _addGlobal(name, Plugin); 6363 config3.register && config3.register(gsap, Plugin, PropTween); 6364 } else { 6365 _registerPluginQueue.push(config3); 6366 } 6367 }, "_createPlugin"); 6368 var _255 = 255; 6369 var _colorLookup = { 6370 aqua: [0, _255, _255], 6371 lime: [0, _255, 0], 6372 silver: [192, 192, 192], 6373 black: [0, 0, 0], 6374 maroon: [128, 0, 0], 6375 teal: [0, 128, 128], 6376 blue: [0, 0, _255], 6377 navy: [0, 0, 128], 6378 white: [_255, _255, _255], 6379 olive: [128, 128, 0], 6380 yellow: [_255, _255, 0], 6381 orange: [_255, 165, 0], 6382 gray: [128, 128, 128], 6383 purple: [128, 0, 128], 6384 green: [0, 128, 0], 6385 red: [_255, 0, 0], 6386 pink: [_255, 192, 203], 6387 cyan: [0, _255, _255], 6388 transparent: [_255, _255, _255, 0] 6389 }; 6390 var _hue = /* @__PURE__ */ __name(function _hue2(h, m1, m2) { 6391 h += h < 0 ? 1 : h > 1 ? -1 : 0; 6392 return (h * 6 < 1 ? m1 + (m2 - m1) * h * 6 : h < 0.5 ? m2 : h * 3 < 2 ? m1 + (m2 - m1) * (2 / 3 - h) * 6 : m1) * _255 + 0.5 | 0; 6393 }, "_hue"); 6394 var splitColor = /* @__PURE__ */ __name(function splitColor2(v, toHSL, forceAlpha) { 6395 var a = !v ? _colorLookup.black : _isNumber(v) ? [v >> 16, v >> 8 & _255, v & _255] : 0, r, g, b, h, s, l, max, min, d, wasHSL; 6396 if (!a) { 6397 if (v.substr(-1) === ",") { 6398 v = v.substr(0, v.length - 1); 6399 } 6400 if (_colorLookup[v]) { 6401 a = _colorLookup[v]; 6402 } else if (v.charAt(0) === "#") { 6403 if (v.length < 6) { 6404 r = v.charAt(1); 6405 g = v.charAt(2); 6406 b = v.charAt(3); 6407 v = "#" + r + r + g + g + b + b + (v.length === 5 ? v.charAt(4) + v.charAt(4) : ""); 6408 } 6409 if (v.length === 9) { 6410 a = parseInt(v.substr(1, 6), 16); 6411 return [a >> 16, a >> 8 & _255, a & _255, parseInt(v.substr(7), 16) / 255]; 6412 } 6413 v = parseInt(v.substr(1), 16); 6414 a = [v >> 16, v >> 8 & _255, v & _255]; 6415 } else if (v.substr(0, 3) === "hsl") { 6416 a = wasHSL = v.match(_strictNumExp); 6417 if (!toHSL) { 6418 h = +a[0] % 360 / 360; 6419 s = +a[1] / 100; 6420 l = +a[2] / 100; 6421 g = l <= 0.5 ? l * (s + 1) : l + s - l * s; 6422 r = l * 2 - g; 6423 a.length > 3 && (a[3] *= 1); 6424 a[0] = _hue(h + 1 / 3, r, g); 6425 a[1] = _hue(h, r, g); 6426 a[2] = _hue(h - 1 / 3, r, g); 6427 } else if (~v.indexOf("=")) { 6428 a = v.match(_numExp); 6429 forceAlpha && a.length < 4 && (a[3] = 1); 6430 return a; 6431 } 6432 } else { 6433 a = v.match(_strictNumExp) || _colorLookup.transparent; 6434 } 6435 a = a.map(Number); 6436 } 6437 if (toHSL && !wasHSL) { 6438 r = a[0] / _255; 6439 g = a[1] / _255; 6440 b = a[2] / _255; 6441 max = Math.max(r, g, b); 6442 min = Math.min(r, g, b); 6443 l = (max + min) / 2; 6444 if (max === min) { 6445 h = s = 0; 6446 } else { 6447 d = max - min; 6448 s = l > 0.5 ? d / (2 - max - min) : d / (max + min); 6449 h = max === r ? (g - b) / d + (g < b ? 6 : 0) : max === g ? (b - r) / d + 2 : (r - g) / d + 4; 6450 h *= 60; 6451 } 6452 a[0] = ~~(h + 0.5); 6453 a[1] = ~~(s * 100 + 0.5); 6454 a[2] = ~~(l * 100 + 0.5); 6455 } 6456 forceAlpha && a.length < 4 && (a[3] = 1); 6457 return a; 6458 }, "splitColor"); 6459 var _colorOrderData = /* @__PURE__ */ __name(function _colorOrderData2(v) { 6460 var values = [], c = [], i = -1; 6461 v.split(_colorExp).forEach(function(v2) { 6462 var a = v2.match(_numWithUnitExp) || []; 6463 values.push.apply(values, a); 6464 c.push(i += a.length + 1); 6465 }); 6466 values.c = c; 6467 return values; 6468 }, "_colorOrderData"); 6469 var _formatColors = /* @__PURE__ */ __name(function _formatColors2(s, toHSL, orderMatchData) { 6470 var result = "", colors = (s + result).match(_colorExp), type = toHSL ? "hsla(" : "rgba(", i = 0, c, shell, d, l; 6471 if (!colors) { 6472 return s; 6473 } 6474 colors = colors.map(function(color) { 6475 return (color = splitColor(color, toHSL, 1)) && type + (toHSL ? color[0] + "," + color[1] + "%," + color[2] + "%," + color[3] : color.join(",")) + ")"; 6476 }); 6477 if (orderMatchData) { 6478 d = _colorOrderData(s); 6479 c = orderMatchData.c; 6480 if (c.join(result) !== d.c.join(result)) { 6481 shell = s.replace(_colorExp, "1").split(_numWithUnitExp); 6482 l = shell.length - 1; 6483 for (; i < l; i++) { 6484 result += shell[i] + (~c.indexOf(i) ? colors.shift() || type + "0,0,0,0)" : (d.length ? d : colors.length ? colors : orderMatchData).shift()); 6485 } 6486 } 6487 } 6488 if (!shell) { 6489 shell = s.split(_colorExp); 6490 l = shell.length - 1; 6491 for (; i < l; i++) { 6492 result += shell[i] + colors[i]; 6493 } 6494 } 6495 return result + shell[l]; 6496 }, "_formatColors"); 6497 var _colorExp = (function() { 6498 var s = "(?:\\b(?:(?:rgb|rgba|hsl|hsla)\\(.+?\\))|\\B#(?:[0-9a-f]{3,4}){1,2}\\b", p; 6499 for (p in _colorLookup) { 6500 s += "|" + p + "\\b"; 6501 } 6502 return new RegExp(s + ")", "gi"); 6503 })(); 6504 var _hslExp = /hsl[a]?\(/; 6505 var _colorStringFilter = /* @__PURE__ */ __name(function _colorStringFilter2(a) { 6506 var combined = a.join(" "), toHSL; 6507 _colorExp.lastIndex = 0; 6508 if (_colorExp.test(combined)) { 6509 toHSL = _hslExp.test(combined); 6510 a[1] = _formatColors(a[1], toHSL); 6511 a[0] = _formatColors(a[0], toHSL, _colorOrderData(a[1])); 6512 return true; 6513 } 6514 }, "_colorStringFilter"); 6515 var _tickerActive; 6516 var _ticker = (function() { 6517 var _getTime3 = Date.now, _lagThreshold = 500, _adjustedLag = 33, _startTime = _getTime3(), _lastUpdate = _startTime, _gap = 1e3 / 240, _nextTime = _gap, _listeners3 = [], _id, _req, _raf, _self, _delta, _i2, _tick = /* @__PURE__ */ __name(function _tick2(v) { 6518 var elapsed = _getTime3() - _lastUpdate, manual = v === true, overlap, dispatch, time, frame; 6519 (elapsed > _lagThreshold || elapsed < 0) && (_startTime += elapsed - _adjustedLag); 6520 _lastUpdate += elapsed; 6521 time = _lastUpdate - _startTime; 6522 overlap = time - _nextTime; 6523 if (overlap > 0 || manual) { 6524 frame = ++_self.frame; 6525 _delta = time - _self.time * 1e3; 6526 _self.time = time = time / 1e3; 6527 _nextTime += overlap + (overlap >= _gap ? 4 : _gap - overlap); 6528 dispatch = 1; 6529 } 6530 manual || (_id = _req(_tick2)); 6531 if (dispatch) { 6532 for (_i2 = 0; _i2 < _listeners3.length; _i2++) { 6533 _listeners3[_i2](time, _delta, frame, v); 6534 } 6535 } 6536 }, "_tick"); 6537 _self = { 6538 time: 0, 6539 frame: 0, 6540 tick: /* @__PURE__ */ __name(function tick() { 6541 _tick(true); 6542 }, "tick"), 6543 deltaRatio: /* @__PURE__ */ __name(function deltaRatio(fps) { 6544 return _delta / (1e3 / (fps || 60)); 6545 }, "deltaRatio"), 6546 wake: /* @__PURE__ */ __name(function wake() { 6547 if (_coreReady) { 6548 if (!_coreInitted && _windowExists()) { 6549 _win = _coreInitted = window; 6550 _doc = _win.document || {}; 6551 _globals.gsap = gsap; 6552 (_win.gsapVersions || (_win.gsapVersions = [])).push(gsap.version); 6553 _install(_installScope || _win.GreenSockGlobals || !_win.gsap && _win || {}); 6554 _registerPluginQueue.forEach(_createPlugin); 6555 } 6556 _raf = typeof requestAnimationFrame !== "undefined" && requestAnimationFrame; 6557 _id && _self.sleep(); 6558 _req = _raf || function(f) { 6559 return setTimeout(f, _nextTime - _self.time * 1e3 + 1 | 0); 6560 }; 6561 _tickerActive = 1; 6562 _tick(2); 6563 } 6564 }, "wake"), 6565 sleep: /* @__PURE__ */ __name(function sleep() { 6566 (_raf ? cancelAnimationFrame : clearTimeout)(_id); 6567 _tickerActive = 0; 6568 _req = _emptyFunc; 6569 }, "sleep"), 6570 lagSmoothing: /* @__PURE__ */ __name(function lagSmoothing(threshold, adjustedLag) { 6571 _lagThreshold = threshold || Infinity; 6572 _adjustedLag = Math.min(adjustedLag || 33, _lagThreshold); 6573 }, "lagSmoothing"), 6574 fps: /* @__PURE__ */ __name(function fps(_fps) { 6575 _gap = 1e3 / (_fps || 240); 6576 _nextTime = _self.time * 1e3 + _gap; 6577 }, "fps"), 6578 add: /* @__PURE__ */ __name(function add(callback, once, prioritize) { 6579 var func = once ? function(t, d, f, v) { 6580 callback(t, d, f, v); 6581 _self.remove(func); 6582 } : callback; 6583 _self.remove(callback); 6584 _listeners3[prioritize ? "unshift" : "push"](func); 6585 _wake(); 6586 return func; 6587 }, "add"), 6588 remove: /* @__PURE__ */ __name(function remove(callback, i) { 6589 ~(i = _listeners3.indexOf(callback)) && _listeners3.splice(i, 1) && _i2 >= i && _i2--; 6590 }, "remove"), 6591 _listeners: _listeners3 6592 }; 6593 return _self; 6594 })(); 6595 var _wake = /* @__PURE__ */ __name(function _wake2() { 6596 return !_tickerActive && _ticker.wake(); 6597 }, "_wake"); 6598 var _easeMap = {}; 6599 var _customEaseExp = /^[\d.\-M][\d.\-,\s]/; 6600 var _quotesExp = /["']/g; 6601 var _parseObjectInString = /* @__PURE__ */ __name(function _parseObjectInString2(value) { 6602 var obj = {}, split = value.substr(1, value.length - 3).split(":"), key = split[0], i = 1, l = split.length, index, val, parsedVal; 6603 for (; i < l; i++) { 6604 val = split[i]; 6605 index = i !== l - 1 ? val.lastIndexOf(",") : val.length; 6606 parsedVal = val.substr(0, index); 6607 obj[key] = isNaN(parsedVal) ? parsedVal.replace(_quotesExp, "").trim() : +parsedVal; 6608 key = val.substr(index + 1).trim(); 6609 } 6610 return obj; 6611 }, "_parseObjectInString"); 6612 var _valueInParentheses = /* @__PURE__ */ __name(function _valueInParentheses2(value) { 6613 var open = value.indexOf("(") + 1, close = value.indexOf(")"), nested = value.indexOf("(", open); 6614 return value.substring(open, ~nested && nested < close ? value.indexOf(")", close + 1) : close); 6615 }, "_valueInParentheses"); 6616 var _configEaseFromString = /* @__PURE__ */ __name(function _configEaseFromString2(name) { 6617 var split = (name + "").split("("), ease = _easeMap[split[0]]; 6618 return ease && split.length > 1 && ease.config ? ease.config.apply(null, ~name.indexOf("{") ? [_parseObjectInString(split[1])] : _valueInParentheses(name).split(",").map(_numericIfPossible)) : _easeMap._CE && _customEaseExp.test(name) ? _easeMap._CE("", name) : ease; 6619 }, "_configEaseFromString"); 6620 var _invertEase = /* @__PURE__ */ __name(function _invertEase2(ease) { 6621 return function(p) { 6622 return 1 - ease(1 - p); 6623 }; 6624 }, "_invertEase"); 6625 var _propagateYoyoEase = /* @__PURE__ */ __name(function _propagateYoyoEase2(timeline2, isYoyo) { 6626 var child = timeline2._first, ease; 6627 while (child) { 6628 if (child instanceof Timeline) { 6629 _propagateYoyoEase2(child, isYoyo); 6630 } else if (child.vars.yoyoEase && (!child._yoyo || !child._repeat) && child._yoyo !== isYoyo) { 6631 if (child.timeline) { 6632 _propagateYoyoEase2(child.timeline, isYoyo); 6633 } else { 6634 ease = child._ease; 6635 child._ease = child._yEase; 6636 child._yEase = ease; 6637 child._yoyo = isYoyo; 6638 } 6639 } 6640 child = child._next; 6641 } 6642 }, "_propagateYoyoEase"); 6643 var _parseEase = /* @__PURE__ */ __name(function _parseEase2(ease, defaultEase) { 6644 return !ease ? defaultEase : (_isFunction(ease) ? ease : _easeMap[ease] || _configEaseFromString(ease)) || defaultEase; 6645 }, "_parseEase"); 6646 var _insertEase = /* @__PURE__ */ __name(function _insertEase2(names, easeIn, easeOut, easeInOut) { 6647 if (easeOut === void 0) { 6648 easeOut = /* @__PURE__ */ __name(function easeOut2(p) { 6649 return 1 - easeIn(1 - p); 6650 }, "easeOut"); 6651 } 6652 if (easeInOut === void 0) { 6653 easeInOut = /* @__PURE__ */ __name(function easeInOut2(p) { 6654 return p < 0.5 ? easeIn(p * 2) / 2 : 1 - easeIn((1 - p) * 2) / 2; 6655 }, "easeInOut"); 6656 } 6657 var ease = { 6658 easeIn, 6659 easeOut, 6660 easeInOut 6661 }, lowercaseName; 6662 _forEachName(names, function(name) { 6663 _easeMap[name] = _globals[name] = ease; 6664 _easeMap[lowercaseName = name.toLowerCase()] = easeOut; 6665 for (var p in ease) { 6666 _easeMap[lowercaseName + (p === "easeIn" ? ".in" : p === "easeOut" ? ".out" : ".inOut")] = _easeMap[name + "." + p] = ease[p]; 6667 } 6668 }); 6669 return ease; 6670 }, "_insertEase"); 6671 var _easeInOutFromOut = /* @__PURE__ */ __name(function _easeInOutFromOut2(easeOut) { 6672 return function(p) { 6673 return p < 0.5 ? (1 - easeOut(1 - p * 2)) / 2 : 0.5 + easeOut((p - 0.5) * 2) / 2; 6674 }; 6675 }, "_easeInOutFromOut"); 6676 var _configElastic = /* @__PURE__ */ __name(function _configElastic2(type, amplitude, period) { 6677 var p1 = amplitude >= 1 ? amplitude : 1, p2 = (period || (type ? 0.3 : 0.45)) / (amplitude < 1 ? amplitude : 1), p3 = p2 / _2PI * (Math.asin(1 / p1) || 0), easeOut = /* @__PURE__ */ __name(function easeOut2(p) { 6678 return p === 1 ? 1 : p1 * Math.pow(2, -10 * p) * _sin((p - p3) * p2) + 1; 6679 }, "easeOut"), ease = type === "out" ? easeOut : type === "in" ? function(p) { 6680 return 1 - easeOut(1 - p); 6681 } : _easeInOutFromOut(easeOut); 6682 p2 = _2PI / p2; 6683 ease.config = function(amplitude2, period2) { 6684 return _configElastic2(type, amplitude2, period2); 6685 }; 6686 return ease; 6687 }, "_configElastic"); 6688 var _configBack = /* @__PURE__ */ __name(function _configBack2(type, overshoot) { 6689 if (overshoot === void 0) { 6690 overshoot = 1.70158; 6691 } 6692 var easeOut = /* @__PURE__ */ __name(function easeOut2(p) { 6693 return p ? --p * p * ((overshoot + 1) * p + overshoot) + 1 : 0; 6694 }, "easeOut"), ease = type === "out" ? easeOut : type === "in" ? function(p) { 6695 return 1 - easeOut(1 - p); 6696 } : _easeInOutFromOut(easeOut); 6697 ease.config = function(overshoot2) { 6698 return _configBack2(type, overshoot2); 6699 }; 6700 return ease; 6701 }, "_configBack"); 6702 _forEachName("Linear,Quad,Cubic,Quart,Quint,Strong", function(name, i) { 6703 var power = i < 5 ? i + 1 : i; 6704 _insertEase(name + ",Power" + (power - 1), i ? function(p) { 6705 return Math.pow(p, power); 6706 } : function(p) { 6707 return p; 6708 }, function(p) { 6709 return 1 - Math.pow(1 - p, power); 6710 }, function(p) { 6711 return p < 0.5 ? Math.pow(p * 2, power) / 2 : 1 - Math.pow((1 - p) * 2, power) / 2; 6712 }); 6713 }); 6714 _easeMap.Linear.easeNone = _easeMap.none = _easeMap.Linear.easeIn; 6715 _insertEase("Elastic", _configElastic("in"), _configElastic("out"), _configElastic()); 6716 (function(n, c) { 6717 var n1 = 1 / c, n2 = 2 * n1, n3 = 2.5 * n1, easeOut = /* @__PURE__ */ __name(function easeOut2(p) { 6718 return p < n1 ? n * p * p : p < n2 ? n * Math.pow(p - 1.5 / c, 2) + 0.75 : p < n3 ? n * (p -= 2.25 / c) * p + 0.9375 : n * Math.pow(p - 2.625 / c, 2) + 0.984375; 6719 }, "easeOut"); 6720 _insertEase("Bounce", function(p) { 6721 return 1 - easeOut(1 - p); 6722 }, easeOut); 6723 })(7.5625, 2.75); 6724 _insertEase("Expo", function(p) { 6725 return Math.pow(2, 10 * (p - 1)) * p + p * p * p * p * p * p * (1 - p); 6726 }); 6727 _insertEase("Circ", function(p) { 6728 return -(_sqrt(1 - p * p) - 1); 6729 }); 6730 _insertEase("Sine", function(p) { 6731 return p === 1 ? 1 : -_cos(p * _HALF_PI) + 1; 6732 }); 6733 _insertEase("Back", _configBack("in"), _configBack("out"), _configBack()); 6734 _easeMap.SteppedEase = _easeMap.steps = _globals.SteppedEase = { 6735 config: /* @__PURE__ */ __name(function config(steps, immediateStart) { 6736 if (steps === void 0) { 6737 steps = 1; 6738 } 6739 var p1 = 1 / steps, p2 = steps + (immediateStart ? 0 : 1), p3 = immediateStart ? 1 : 0, max = 1 - _tinyNum; 6740 return function(p) { 6741 return ((p2 * _clamp(0, max, p) | 0) + p3) * p1; 6742 }; 6743 }, "config") 6744 }; 6745 _defaults.ease = _easeMap["quad.out"]; 6746 _forEachName("onComplete,onUpdate,onStart,onRepeat,onReverseComplete,onInterrupt", function(name) { 6747 return _callbackNames += name + "," + name + "Params,"; 6748 }); 6749 var GSCache = /* @__PURE__ */ __name(function GSCache2(target, harness) { 6750 this.id = _gsID++; 6751 target._gsap = this; 6752 this.target = target; 6753 this.harness = harness; 6754 this.get = harness ? harness.get : _getProperty; 6755 this.set = harness ? harness.getSetter : _getSetter; 6756 }, "GSCache"); 6757 var Animation = /* @__PURE__ */ (function() { 6758 function Animation2(vars) { 6759 this.vars = vars; 6760 this._delay = +vars.delay || 0; 6761 if (this._repeat = vars.repeat === Infinity ? -2 : vars.repeat || 0) { 6762 this._rDelay = vars.repeatDelay || 0; 6763 this._yoyo = !!vars.yoyo || !!vars.yoyoEase; 6764 } 6765 this._ts = 1; 6766 _setDuration(this, +vars.duration, 1, 1); 6767 this.data = vars.data; 6768 if (_context) { 6769 this._ctx = _context; 6770 _context.data.push(this); 6771 } 6772 _tickerActive || _ticker.wake(); 6773 } 6774 __name(Animation2, "Animation"); 6775 var _proto = Animation2.prototype; 6776 _proto.delay = /* @__PURE__ */ __name(function delay(value) { 6777 if (value || value === 0) { 6778 this.parent && this.parent.smoothChildTiming && this.startTime(this._start + value - this._delay); 6779 this._delay = value; 6780 return this; 6781 } 6782 return this._delay; 6783 }, "delay"); 6784 _proto.duration = /* @__PURE__ */ __name(function duration(value) { 6785 return arguments.length ? this.totalDuration(this._repeat > 0 ? value + (value + this._rDelay) * this._repeat : value) : this.totalDuration() && this._dur; 6786 }, "duration"); 6787 _proto.totalDuration = /* @__PURE__ */ __name(function totalDuration(value) { 6788 if (!arguments.length) { 6789 return this._tDur; 6790 } 6791 this._dirty = 0; 6792 return _setDuration(this, this._repeat < 0 ? value : (value - this._repeat * this._rDelay) / (this._repeat + 1)); 6793 }, "totalDuration"); 6794 _proto.totalTime = /* @__PURE__ */ __name(function totalTime(_totalTime, suppressEvents) { 6795 _wake(); 6796 if (!arguments.length) { 6797 return this._tTime; 6798 } 6799 var parent = this._dp; 6800 if (parent && parent.smoothChildTiming && this._ts) { 6801 _alignPlayhead(this, _totalTime); 6802 !parent._dp || parent.parent || _postAddChecks(parent, this); 6803 while (parent && parent.parent) { 6804 if (parent.parent._time !== parent._start + (parent._ts >= 0 ? parent._tTime / parent._ts : (parent.totalDuration() - parent._tTime) / -parent._ts)) { 6805 parent.totalTime(parent._tTime, true); 6806 } 6807 parent = parent.parent; 6808 } 6809 if (!this.parent && this._dp.autoRemoveChildren && (this._ts > 0 && _totalTime < this._tDur || this._ts < 0 && _totalTime > 0 || !this._tDur && !_totalTime)) { 6810 _addToTimeline(this._dp, this, this._start - this._delay); 6811 } 6812 } 6813 if (this._tTime !== _totalTime || !this._dur && !suppressEvents || this._initted && Math.abs(this._zTime) === _tinyNum || !this._initted && this._dur && _totalTime || !_totalTime && !this._initted && (this.add || this._ptLookup)) { 6814 this._ts || (this._pTime = _totalTime); 6815 _lazySafeRender(this, _totalTime, suppressEvents); 6816 } 6817 return this; 6818 }, "totalTime"); 6819 _proto.time = /* @__PURE__ */ __name(function time(value, suppressEvents) { 6820 return arguments.length ? this.totalTime(Math.min(this.totalDuration(), value + _elapsedCycleDuration(this)) % (this._dur + this._rDelay) || (value ? this._dur : 0), suppressEvents) : this._time; 6821 }, "time"); 6822 _proto.totalProgress = /* @__PURE__ */ __name(function totalProgress(value, suppressEvents) { 6823 return arguments.length ? this.totalTime(this.totalDuration() * value, suppressEvents) : this.totalDuration() ? Math.min(1, this._tTime / this._tDur) : this.rawTime() >= 0 && this._initted ? 1 : 0; 6824 }, "totalProgress"); 6825 _proto.progress = /* @__PURE__ */ __name(function progress(value, suppressEvents) { 6826 return arguments.length ? this.totalTime(this.duration() * (this._yoyo && !(this.iteration() & 1) ? 1 - value : value) + _elapsedCycleDuration(this), suppressEvents) : this.duration() ? Math.min(1, this._time / this._dur) : this.rawTime() > 0 ? 1 : 0; 6827 }, "progress"); 6828 _proto.iteration = /* @__PURE__ */ __name(function iteration(value, suppressEvents) { 6829 var cycleDuration = this.duration() + this._rDelay; 6830 return arguments.length ? this.totalTime(this._time + (value - 1) * cycleDuration, suppressEvents) : this._repeat ? _animationCycle(this._tTime, cycleDuration) + 1 : 1; 6831 }, "iteration"); 6832 _proto.timeScale = /* @__PURE__ */ __name(function timeScale(value, suppressEvents) { 6833 if (!arguments.length) { 6834 return this._rts === -_tinyNum ? 0 : this._rts; 6835 } 6836 if (this._rts === value) { 6837 return this; 6838 } 6839 var tTime = this.parent && this._ts ? _parentToChildTotalTime(this.parent._time, this) : this._tTime; 6840 this._rts = +value || 0; 6841 this._ts = this._ps || value === -_tinyNum ? 0 : this._rts; 6842 this.totalTime(_clamp(-Math.abs(this._delay), this.totalDuration(), tTime), suppressEvents !== false); 6843 _setEnd(this); 6844 return _recacheAncestors(this); 6845 }, "timeScale"); 6846 _proto.paused = /* @__PURE__ */ __name(function paused(value) { 6847 if (!arguments.length) { 6848 return this._ps; 6849 } 6850 if (this._ps !== value) { 6851 this._ps = value; 6852 if (value) { 6853 this._pTime = this._tTime || Math.max(-this._delay, this.rawTime()); 6854 this._ts = this._act = 0; 6855 } else { 6856 _wake(); 6857 this._ts = this._rts; 6858 this.totalTime(this.parent && !this.parent.smoothChildTiming ? this.rawTime() : this._tTime || this._pTime, this.progress() === 1 && Math.abs(this._zTime) !== _tinyNum && (this._tTime -= _tinyNum)); 6859 } 6860 } 6861 return this; 6862 }, "paused"); 6863 _proto.startTime = /* @__PURE__ */ __name(function startTime(value) { 6864 if (arguments.length) { 6865 this._start = _roundPrecise(value); 6866 var parent = this.parent || this._dp; 6867 parent && (parent._sort || !this.parent) && _addToTimeline(parent, this, this._start - this._delay); 6868 return this; 6869 } 6870 return this._start; 6871 }, "startTime"); 6872 _proto.endTime = /* @__PURE__ */ __name(function endTime(includeRepeats) { 6873 return this._start + (_isNotFalse(includeRepeats) ? this.totalDuration() : this.duration()) / Math.abs(this._ts || 1); 6874 }, "endTime"); 6875 _proto.rawTime = /* @__PURE__ */ __name(function rawTime(wrapRepeats) { 6876 var parent = this.parent || this._dp; 6877 return !parent ? this._tTime : wrapRepeats && (!this._ts || this._repeat && this._time && this.totalProgress() < 1) ? this._tTime % (this._dur + this._rDelay) : !this._ts ? this._tTime : _parentToChildTotalTime(parent.rawTime(wrapRepeats), this); 6878 }, "rawTime"); 6879 _proto.revert = /* @__PURE__ */ __name(function revert(config3) { 6880 if (config3 === void 0) { 6881 config3 = _revertConfig; 6882 } 6883 var prevIsReverting = _reverting; 6884 _reverting = config3; 6885 if (_isRevertWorthy(this)) { 6886 this.timeline && this.timeline.revert(config3); 6887 this.totalTime(-0.01, config3.suppressEvents); 6888 } 6889 this.data !== "nested" && config3.kill !== false && this.kill(); 6890 _reverting = prevIsReverting; 6891 return this; 6892 }, "revert"); 6893 _proto.globalTime = /* @__PURE__ */ __name(function globalTime(rawTime) { 6894 var animation = this, time = arguments.length ? rawTime : animation.rawTime(); 6895 while (animation) { 6896 time = animation._start + time / (Math.abs(animation._ts) || 1); 6897 animation = animation._dp; 6898 } 6899 return !this.parent && this._sat ? this._sat.globalTime(rawTime) : time; 6900 }, "globalTime"); 6901 _proto.repeat = /* @__PURE__ */ __name(function repeat(value) { 6902 if (arguments.length) { 6903 this._repeat = value === Infinity ? -2 : value; 6904 return _onUpdateTotalDuration(this); 6905 } 6906 return this._repeat === -2 ? Infinity : this._repeat; 6907 }, "repeat"); 6908 _proto.repeatDelay = /* @__PURE__ */ __name(function repeatDelay(value) { 6909 if (arguments.length) { 6910 var time = this._time; 6911 this._rDelay = value; 6912 _onUpdateTotalDuration(this); 6913 return time ? this.time(time) : this; 6914 } 6915 return this._rDelay; 6916 }, "repeatDelay"); 6917 _proto.yoyo = /* @__PURE__ */ __name(function yoyo(value) { 6918 if (arguments.length) { 6919 this._yoyo = value; 6920 return this; 6921 } 6922 return this._yoyo; 6923 }, "yoyo"); 6924 _proto.seek = /* @__PURE__ */ __name(function seek(position, suppressEvents) { 6925 return this.totalTime(_parsePosition(this, position), _isNotFalse(suppressEvents)); 6926 }, "seek"); 6927 _proto.restart = /* @__PURE__ */ __name(function restart(includeDelay, suppressEvents) { 6928 this.play().totalTime(includeDelay ? -this._delay : 0, _isNotFalse(suppressEvents)); 6929 this._dur || (this._zTime = -_tinyNum); 6930 return this; 6931 }, "restart"); 6932 _proto.play = /* @__PURE__ */ __name(function play(from, suppressEvents) { 6933 from != null && this.seek(from, suppressEvents); 6934 return this.reversed(false).paused(false); 6935 }, "play"); 6936 _proto.reverse = /* @__PURE__ */ __name(function reverse(from, suppressEvents) { 6937 from != null && this.seek(from || this.totalDuration(), suppressEvents); 6938 return this.reversed(true).paused(false); 6939 }, "reverse"); 6940 _proto.pause = /* @__PURE__ */ __name(function pause(atTime, suppressEvents) { 6941 atTime != null && this.seek(atTime, suppressEvents); 6942 return this.paused(true); 6943 }, "pause"); 6944 _proto.resume = /* @__PURE__ */ __name(function resume() { 6945 return this.paused(false); 6946 }, "resume"); 6947 _proto.reversed = /* @__PURE__ */ __name(function reversed(value) { 6948 if (arguments.length) { 6949 !!value !== this.reversed() && this.timeScale(-this._rts || (value ? -_tinyNum : 0)); 6950 return this; 6951 } 6952 return this._rts < 0; 6953 }, "reversed"); 6954 _proto.invalidate = /* @__PURE__ */ __name(function invalidate() { 6955 this._initted = this._act = 0; 6956 this._zTime = -_tinyNum; 6957 return this; 6958 }, "invalidate"); 6959 _proto.isActive = /* @__PURE__ */ __name(function isActive() { 6960 var parent = this.parent || this._dp, start = this._start, rawTime; 6961 return !!(!parent || this._ts && this._initted && parent.isActive() && (rawTime = parent.rawTime(true)) >= start && rawTime < this.endTime(true) - _tinyNum); 6962 }, "isActive"); 6963 _proto.eventCallback = /* @__PURE__ */ __name(function eventCallback(type, callback, params) { 6964 var vars = this.vars; 6965 if (arguments.length > 1) { 6966 if (!callback) { 6967 delete vars[type]; 6968 } else { 6969 vars[type] = callback; 6970 params && (vars[type + "Params"] = params); 6971 type === "onUpdate" && (this._onUpdate = callback); 6972 } 6973 return this; 6974 } 6975 return vars[type]; 6976 }, "eventCallback"); 6977 _proto.then = /* @__PURE__ */ __name(function then(onFulfilled) { 6978 var self2 = this, prevProm = self2._prom; 6979 return new Promise(function(resolve) { 6980 var f = _isFunction(onFulfilled) ? onFulfilled : _passThrough, _resolve = /* @__PURE__ */ __name(function _resolve2() { 6981 var _then = self2.then; 6982 self2.then = null; 6983 prevProm && prevProm(); 6984 _isFunction(f) && (f = f(self2)) && (f.then || f === self2) && (self2.then = _then); 6985 resolve(f); 6986 self2.then = _then; 6987 }, "_resolve"); 6988 if (self2._initted && self2.totalProgress() === 1 && self2._ts >= 0 || !self2._tTime && self2._ts < 0) { 6989 _resolve(); 6990 } else { 6991 self2._prom = _resolve; 6992 } 6993 }); 6994 }, "then"); 6995 _proto.kill = /* @__PURE__ */ __name(function kill() { 6996 _interrupt(this); 6997 }, "kill"); 6998 return Animation2; 6999 })(); 7000 _setDefaults(Animation.prototype, { 7001 _time: 0, 7002 _start: 0, 7003 _end: 0, 7004 _tTime: 0, 7005 _tDur: 0, 7006 _dirty: 0, 7007 _repeat: 0, 7008 _yoyo: false, 7009 parent: null, 7010 _initted: false, 7011 _rDelay: 0, 7012 _ts: 1, 7013 _dp: 0, 7014 ratio: 0, 7015 _zTime: -_tinyNum, 7016 _prom: 0, 7017 _ps: false, 7018 _rts: 1 7019 }); 7020 var Timeline = /* @__PURE__ */ (function(_Animation) { 7021 _inheritsLoose(Timeline2, _Animation); 7022 function Timeline2(vars, position) { 7023 var _this; 7024 if (vars === void 0) { 7025 vars = {}; 7026 } 7027 _this = _Animation.call(this, vars) || this; 7028 _this.labels = {}; 7029 _this.smoothChildTiming = !!vars.smoothChildTiming; 7030 _this.autoRemoveChildren = !!vars.autoRemoveChildren; 7031 _this._sort = _isNotFalse(vars.sortChildren); 7032 _globalTimeline && _addToTimeline(vars.parent || _globalTimeline, _assertThisInitialized(_this), position); 7033 vars.reversed && _this.reverse(); 7034 vars.paused && _this.paused(true); 7035 vars.scrollTrigger && _scrollTrigger(_assertThisInitialized(_this), vars.scrollTrigger); 7036 return _this; 7037 } 7038 __name(Timeline2, "Timeline"); 7039 var _proto2 = Timeline2.prototype; 7040 _proto2.to = /* @__PURE__ */ __name(function to(targets, vars, position) { 7041 _createTweenType(0, arguments, this); 7042 return this; 7043 }, "to"); 7044 _proto2.from = /* @__PURE__ */ __name(function from(targets, vars, position) { 7045 _createTweenType(1, arguments, this); 7046 return this; 7047 }, "from"); 7048 _proto2.fromTo = /* @__PURE__ */ __name(function fromTo(targets, fromVars, toVars, position) { 7049 _createTweenType(2, arguments, this); 7050 return this; 7051 }, "fromTo"); 7052 _proto2.set = /* @__PURE__ */ __name(function set2(targets, vars, position) { 7053 vars.duration = 0; 7054 vars.parent = this; 7055 _inheritDefaults(vars).repeatDelay || (vars.repeat = 0); 7056 vars.immediateRender = !!vars.immediateRender; 7057 new Tween(targets, vars, _parsePosition(this, position), 1); 7058 return this; 7059 }, "set"); 7060 _proto2.call = /* @__PURE__ */ __name(function call(callback, params, position) { 7061 return _addToTimeline(this, Tween.delayedCall(0, callback, params), position); 7062 }, "call"); 7063 _proto2.staggerTo = /* @__PURE__ */ __name(function staggerTo(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams) { 7064 vars.duration = duration; 7065 vars.stagger = vars.stagger || stagger; 7066 vars.onComplete = onCompleteAll; 7067 vars.onCompleteParams = onCompleteAllParams; 7068 vars.parent = this; 7069 new Tween(targets, vars, _parsePosition(this, position)); 7070 return this; 7071 }, "staggerTo"); 7072 _proto2.staggerFrom = /* @__PURE__ */ __name(function staggerFrom(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams) { 7073 vars.runBackwards = 1; 7074 _inheritDefaults(vars).immediateRender = _isNotFalse(vars.immediateRender); 7075 return this.staggerTo(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams); 7076 }, "staggerFrom"); 7077 _proto2.staggerFromTo = /* @__PURE__ */ __name(function staggerFromTo(targets, duration, fromVars, toVars, stagger, position, onCompleteAll, onCompleteAllParams) { 7078 toVars.startAt = fromVars; 7079 _inheritDefaults(toVars).immediateRender = _isNotFalse(toVars.immediateRender); 7080 return this.staggerTo(targets, duration, toVars, stagger, position, onCompleteAll, onCompleteAllParams); 7081 }, "staggerFromTo"); 7082 _proto2.render = /* @__PURE__ */ __name(function render3(totalTime, suppressEvents, force) { 7083 var prevTime = this._time, tDur = this._dirty ? this.totalDuration() : this._tDur, dur = this._dur, tTime = totalTime <= 0 ? 0 : _roundPrecise(totalTime), crossingStart = this._zTime < 0 !== totalTime < 0 && (this._initted || !dur), time, child, next, iteration, cycleDuration, prevPaused, pauseTween, timeScale, prevStart, prevIteration, yoyo, isYoyo; 7084 this !== _globalTimeline && tTime > tDur && totalTime >= 0 && (tTime = tDur); 7085 if (tTime !== this._tTime || force || crossingStart) { 7086 if (prevTime !== this._time && dur) { 7087 tTime += this._time - prevTime; 7088 totalTime += this._time - prevTime; 7089 } 7090 time = tTime; 7091 prevStart = this._start; 7092 timeScale = this._ts; 7093 prevPaused = !timeScale; 7094 if (crossingStart) { 7095 dur || (prevTime = this._zTime); 7096 (totalTime || !suppressEvents) && (this._zTime = totalTime); 7097 } 7098 if (this._repeat) { 7099 yoyo = this._yoyo; 7100 cycleDuration = dur + this._rDelay; 7101 if (this._repeat < -1 && totalTime < 0) { 7102 return this.totalTime(cycleDuration * 100 + totalTime, suppressEvents, force); 7103 } 7104 time = _roundPrecise(tTime % cycleDuration); 7105 if (tTime === tDur) { 7106 iteration = this._repeat; 7107 time = dur; 7108 } else { 7109 prevIteration = _roundPrecise(tTime / cycleDuration); 7110 iteration = ~~prevIteration; 7111 if (iteration && iteration === prevIteration) { 7112 time = dur; 7113 iteration--; 7114 } 7115 time > dur && (time = dur); 7116 } 7117 prevIteration = _animationCycle(this._tTime, cycleDuration); 7118 !prevTime && this._tTime && prevIteration !== iteration && this._tTime - prevIteration * cycleDuration - this._dur <= 0 && (prevIteration = iteration); 7119 if (yoyo && iteration & 1) { 7120 time = dur - time; 7121 isYoyo = 1; 7122 } 7123 if (iteration !== prevIteration && !this._lock) { 7124 var rewinding = yoyo && prevIteration & 1, doesWrap = rewinding === (yoyo && iteration & 1); 7125 iteration < prevIteration && (rewinding = !rewinding); 7126 prevTime = rewinding ? 0 : tTime % dur ? dur : tTime; 7127 this._lock = 1; 7128 this.render(prevTime || (isYoyo ? 0 : _roundPrecise(iteration * cycleDuration)), suppressEvents, !dur)._lock = 0; 7129 this._tTime = tTime; 7130 !suppressEvents && this.parent && _callback(this, "onRepeat"); 7131 if (this.vars.repeatRefresh && !isYoyo) { 7132 this.invalidate()._lock = 1; 7133 prevIteration = iteration; 7134 } 7135 if (prevTime && prevTime !== this._time || prevPaused !== !this._ts || this.vars.onRepeat && !this.parent && !this._act) { 7136 return this; 7137 } 7138 dur = this._dur; 7139 tDur = this._tDur; 7140 if (doesWrap) { 7141 this._lock = 2; 7142 prevTime = rewinding ? dur : -1e-4; 7143 this.render(prevTime, true); 7144 this.vars.repeatRefresh && !isYoyo && this.invalidate(); 7145 } 7146 this._lock = 0; 7147 if (!this._ts && !prevPaused) { 7148 return this; 7149 } 7150 _propagateYoyoEase(this, isYoyo); 7151 } 7152 } 7153 if (this._hasPause && !this._forcing && this._lock < 2) { 7154 pauseTween = _findNextPauseTween(this, _roundPrecise(prevTime), _roundPrecise(time)); 7155 if (pauseTween) { 7156 tTime -= time - (time = pauseTween._start); 7157 } 7158 } 7159 this._tTime = tTime; 7160 this._time = time; 7161 this._act = !timeScale; 7162 if (!this._initted) { 7163 this._onUpdate = this.vars.onUpdate; 7164 this._initted = 1; 7165 this._zTime = totalTime; 7166 prevTime = 0; 7167 } 7168 if (!prevTime && tTime && dur && !suppressEvents && !prevIteration) { 7169 _callback(this, "onStart"); 7170 if (this._tTime !== tTime) { 7171 return this; 7172 } 7173 } 7174 if (time >= prevTime && totalTime >= 0) { 7175 child = this._first; 7176 while (child) { 7177 next = child._next; 7178 if ((child._act || time >= child._start) && child._ts && pauseTween !== child) { 7179 if (child.parent !== this) { 7180 return this.render(totalTime, suppressEvents, force); 7181 } 7182 child.render(child._ts > 0 ? (time - child._start) * child._ts : (child._dirty ? child.totalDuration() : child._tDur) + (time - child._start) * child._ts, suppressEvents, force); 7183 if (time !== this._time || !this._ts && !prevPaused) { 7184 pauseTween = 0; 7185 next && (tTime += this._zTime = -_tinyNum); 7186 break; 7187 } 7188 } 7189 child = next; 7190 } 7191 } else { 7192 child = this._last; 7193 var adjustedTime = totalTime < 0 ? totalTime : time; 7194 while (child) { 7195 next = child._prev; 7196 if ((child._act || adjustedTime <= child._end) && child._ts && pauseTween !== child) { 7197 if (child.parent !== this) { 7198 return this.render(totalTime, suppressEvents, force); 7199 } 7200 child.render(child._ts > 0 ? (adjustedTime - child._start) * child._ts : (child._dirty ? child.totalDuration() : child._tDur) + (adjustedTime - child._start) * child._ts, suppressEvents, force || _reverting && _isRevertWorthy(child)); 7201 if (time !== this._time || !this._ts && !prevPaused) { 7202 pauseTween = 0; 7203 next && (tTime += this._zTime = adjustedTime ? -_tinyNum : _tinyNum); 7204 break; 7205 } 7206 } 7207 child = next; 7208 } 7209 } 7210 if (pauseTween && !suppressEvents) { 7211 this.pause(); 7212 pauseTween.render(time >= prevTime ? 0 : -_tinyNum)._zTime = time >= prevTime ? 1 : -1; 7213 if (this._ts) { 7214 this._start = prevStart; 7215 _setEnd(this); 7216 return this.render(totalTime, suppressEvents, force); 7217 } 7218 } 7219 this._onUpdate && !suppressEvents && _callback(this, "onUpdate", true); 7220 if (tTime === tDur && this._tTime >= this.totalDuration() || !tTime && prevTime) { 7221 if (prevStart === this._start || Math.abs(timeScale) !== Math.abs(this._ts)) { 7222 if (!this._lock) { 7223 (totalTime || !dur) && (tTime === tDur && this._ts > 0 || !tTime && this._ts < 0) && _removeFromParent(this, 1); 7224 if (!suppressEvents && !(totalTime < 0 && !prevTime) && (tTime || prevTime || !tDur)) { 7225 _callback(this, tTime === tDur && totalTime >= 0 ? "onComplete" : "onReverseComplete", true); 7226 this._prom && !(tTime < tDur && this.timeScale() > 0) && this._prom(); 7227 } 7228 } 7229 } 7230 } 7231 } 7232 return this; 7233 }, "render"); 7234 _proto2.add = /* @__PURE__ */ __name(function add(child, position) { 7235 var _this2 = this; 7236 _isNumber(position) || (position = _parsePosition(this, position, child)); 7237 if (!(child instanceof Animation)) { 7238 if (_isArray(child)) { 7239 child.forEach(function(obj) { 7240 return _this2.add(obj, position); 7241 }); 7242 return this; 7243 } 7244 if (_isString(child)) { 7245 return this.addLabel(child, position); 7246 } 7247 if (_isFunction(child)) { 7248 child = Tween.delayedCall(0, child); 7249 } else { 7250 return this; 7251 } 7252 } 7253 return this !== child ? _addToTimeline(this, child, position) : this; 7254 }, "add"); 7255 _proto2.getChildren = /* @__PURE__ */ __name(function getChildren(nested, tweens, timelines, ignoreBeforeTime) { 7256 if (nested === void 0) { 7257 nested = true; 7258 } 7259 if (tweens === void 0) { 7260 tweens = true; 7261 } 7262 if (timelines === void 0) { 7263 timelines = true; 7264 } 7265 if (ignoreBeforeTime === void 0) { 7266 ignoreBeforeTime = -_bigNum; 7267 } 7268 var a = [], child = this._first; 7269 while (child) { 7270 if (child._start >= ignoreBeforeTime) { 7271 if (child instanceof Tween) { 7272 tweens && a.push(child); 7273 } else { 7274 timelines && a.push(child); 7275 nested && a.push.apply(a, child.getChildren(true, tweens, timelines)); 7276 } 7277 } 7278 child = child._next; 7279 } 7280 return a; 7281 }, "getChildren"); 7282 _proto2.getById = /* @__PURE__ */ __name(function getById2(id) { 7283 var animations = this.getChildren(1, 1, 1), i = animations.length; 7284 while (i--) { 7285 if (animations[i].vars.id === id) { 7286 return animations[i]; 7287 } 7288 } 7289 }, "getById"); 7290 _proto2.remove = /* @__PURE__ */ __name(function remove(child) { 7291 if (_isString(child)) { 7292 return this.removeLabel(child); 7293 } 7294 if (_isFunction(child)) { 7295 return this.killTweensOf(child); 7296 } 7297 child.parent === this && _removeLinkedListItem(this, child); 7298 if (child === this._recent) { 7299 this._recent = this._last; 7300 } 7301 return _uncache(this); 7302 }, "remove"); 7303 _proto2.totalTime = /* @__PURE__ */ __name(function totalTime(_totalTime2, suppressEvents) { 7304 if (!arguments.length) { 7305 return this._tTime; 7306 } 7307 this._forcing = 1; 7308 if (!this._dp && this._ts) { 7309 this._start = _roundPrecise(_ticker.time - (this._ts > 0 ? _totalTime2 / this._ts : (this.totalDuration() - _totalTime2) / -this._ts)); 7310 } 7311 _Animation.prototype.totalTime.call(this, _totalTime2, suppressEvents); 7312 this._forcing = 0; 7313 return this; 7314 }, "totalTime"); 7315 _proto2.addLabel = /* @__PURE__ */ __name(function addLabel(label, position) { 7316 this.labels[label] = _parsePosition(this, position); 7317 return this; 7318 }, "addLabel"); 7319 _proto2.removeLabel = /* @__PURE__ */ __name(function removeLabel(label) { 7320 delete this.labels[label]; 7321 return this; 7322 }, "removeLabel"); 7323 _proto2.addPause = /* @__PURE__ */ __name(function addPause(position, callback, params) { 7324 var t = Tween.delayedCall(0, callback || _emptyFunc, params); 7325 t.data = "isPause"; 7326 this._hasPause = 1; 7327 return _addToTimeline(this, t, _parsePosition(this, position)); 7328 }, "addPause"); 7329 _proto2.removePause = /* @__PURE__ */ __name(function removePause(position) { 7330 var child = this._first; 7331 position = _parsePosition(this, position); 7332 while (child) { 7333 if (child._start === position && child.data === "isPause") { 7334 _removeFromParent(child); 7335 } 7336 child = child._next; 7337 } 7338 }, "removePause"); 7339 _proto2.killTweensOf = /* @__PURE__ */ __name(function killTweensOf(targets, props, onlyActive) { 7340 var tweens = this.getTweensOf(targets, onlyActive), i = tweens.length; 7341 while (i--) { 7342 _overwritingTween !== tweens[i] && tweens[i].kill(targets, props); 7343 } 7344 return this; 7345 }, "killTweensOf"); 7346 _proto2.getTweensOf = /* @__PURE__ */ __name(function getTweensOf2(targets, onlyActive) { 7347 var a = [], parsedTargets = toArray(targets), child = this._first, isGlobalTime = _isNumber(onlyActive), children; 7348 while (child) { 7349 if (child instanceof Tween) { 7350 if (_arrayContainsAny(child._targets, parsedTargets) && (isGlobalTime ? (!_overwritingTween || child._initted && child._ts) && child.globalTime(0) <= onlyActive && child.globalTime(child.totalDuration()) > onlyActive : !onlyActive || child.isActive())) { 7351 a.push(child); 7352 } 7353 } else if ((children = child.getTweensOf(parsedTargets, onlyActive)).length) { 7354 a.push.apply(a, children); 7355 } 7356 child = child._next; 7357 } 7358 return a; 7359 }, "getTweensOf"); 7360 _proto2.tweenTo = /* @__PURE__ */ __name(function tweenTo(position, vars) { 7361 vars = vars || {}; 7362 var tl = this, endTime = _parsePosition(tl, position), _vars = vars, startAt = _vars.startAt, _onStart = _vars.onStart, onStartParams = _vars.onStartParams, immediateRender = _vars.immediateRender, initted, tween = Tween.to(tl, _setDefaults({ 7363 ease: vars.ease || "none", 7364 lazy: false, 7365 immediateRender: false, 7366 time: endTime, 7367 overwrite: "auto", 7368 duration: vars.duration || Math.abs((endTime - (startAt && "time" in startAt ? startAt.time : tl._time)) / tl.timeScale()) || _tinyNum, 7369 onStart: /* @__PURE__ */ __name(function onStart() { 7370 tl.pause(); 7371 if (!initted) { 7372 var duration = vars.duration || Math.abs((endTime - (startAt && "time" in startAt ? startAt.time : tl._time)) / tl.timeScale()); 7373 tween._dur !== duration && _setDuration(tween, duration, 0, 1).render(tween._time, true, true); 7374 initted = 1; 7375 } 7376 _onStart && _onStart.apply(tween, onStartParams || []); 7377 }, "onStart") 7378 }, vars)); 7379 return immediateRender ? tween.render(0) : tween; 7380 }, "tweenTo"); 7381 _proto2.tweenFromTo = /* @__PURE__ */ __name(function tweenFromTo(fromPosition, toPosition, vars) { 7382 return this.tweenTo(toPosition, _setDefaults({ 7383 startAt: { 7384 time: _parsePosition(this, fromPosition) 7385 } 7386 }, vars)); 7387 }, "tweenFromTo"); 7388 _proto2.recent = /* @__PURE__ */ __name(function recent() { 7389 return this._recent; 7390 }, "recent"); 7391 _proto2.nextLabel = /* @__PURE__ */ __name(function nextLabel(afterTime) { 7392 if (afterTime === void 0) { 7393 afterTime = this._time; 7394 } 7395 return _getLabelInDirection(this, _parsePosition(this, afterTime)); 7396 }, "nextLabel"); 7397 _proto2.previousLabel = /* @__PURE__ */ __name(function previousLabel(beforeTime) { 7398 if (beforeTime === void 0) { 7399 beforeTime = this._time; 7400 } 7401 return _getLabelInDirection(this, _parsePosition(this, beforeTime), 1); 7402 }, "previousLabel"); 7403 _proto2.currentLabel = /* @__PURE__ */ __name(function currentLabel(value) { 7404 return arguments.length ? this.seek(value, true) : this.previousLabel(this._time + _tinyNum); 7405 }, "currentLabel"); 7406 _proto2.shiftChildren = /* @__PURE__ */ __name(function shiftChildren(amount, adjustLabels, ignoreBeforeTime) { 7407 if (ignoreBeforeTime === void 0) { 7408 ignoreBeforeTime = 0; 7409 } 7410 var child = this._first, labels2 = this.labels, p; 7411 amount = _roundPrecise(amount); 7412 while (child) { 7413 if (child._start >= ignoreBeforeTime) { 7414 child._start += amount; 7415 child._end += amount; 7416 } 7417 child = child._next; 7418 } 7419 if (adjustLabels) { 7420 for (p in labels2) { 7421 if (labels2[p] >= ignoreBeforeTime) { 7422 labels2[p] += amount; 7423 } 7424 } 7425 } 7426 return _uncache(this); 7427 }, "shiftChildren"); 7428 _proto2.invalidate = /* @__PURE__ */ __name(function invalidate(soft) { 7429 var child = this._first; 7430 this._lock = 0; 7431 while (child) { 7432 child.invalidate(soft); 7433 child = child._next; 7434 } 7435 return _Animation.prototype.invalidate.call(this, soft); 7436 }, "invalidate"); 7437 _proto2.clear = /* @__PURE__ */ __name(function clear(includeLabels) { 7438 if (includeLabels === void 0) { 7439 includeLabels = true; 7440 } 7441 var child = this._first, next; 7442 while (child) { 7443 next = child._next; 7444 this.remove(child); 7445 child = next; 7446 } 7447 this._dp && (this._time = this._tTime = this._pTime = 0); 7448 includeLabels && (this.labels = {}); 7449 return _uncache(this); 7450 }, "clear"); 7451 _proto2.totalDuration = /* @__PURE__ */ __name(function totalDuration(value) { 7452 var max = 0, self2 = this, child = self2._last, prevStart = _bigNum, prev, start, parent; 7453 if (arguments.length) { 7454 return self2.timeScale((self2._repeat < 0 ? self2.duration() : self2.totalDuration()) / (self2.reversed() ? -value : value)); 7455 } 7456 if (self2._dirty) { 7457 parent = self2.parent; 7458 while (child) { 7459 prev = child._prev; 7460 child._dirty && child.totalDuration(); 7461 start = child._start; 7462 if (start > prevStart && self2._sort && child._ts && !self2._lock) { 7463 self2._lock = 1; 7464 _addToTimeline(self2, child, start - child._delay, 1)._lock = 0; 7465 } else { 7466 prevStart = start; 7467 } 7468 if (start < 0 && child._ts) { 7469 max -= start; 7470 if (!parent && !self2._dp || parent && parent.smoothChildTiming) { 7471 self2._start += _roundPrecise(start / self2._ts); 7472 self2._time -= start; 7473 self2._tTime -= start; 7474 } 7475 self2.shiftChildren(-start, false, -Infinity); 7476 prevStart = 0; 7477 } 7478 child._end > max && child._ts && (max = child._end); 7479 child = prev; 7480 } 7481 _setDuration(self2, self2 === _globalTimeline && self2._time > max ? self2._time : max, 1, 1); 7482 self2._dirty = 0; 7483 } 7484 return self2._tDur; 7485 }, "totalDuration"); 7486 Timeline2.updateRoot = /* @__PURE__ */ __name(function updateRoot(time) { 7487 if (_globalTimeline._ts) { 7488 _lazySafeRender(_globalTimeline, _parentToChildTotalTime(time, _globalTimeline)); 7489 _lastRenderedFrame = _ticker.frame; 7490 } 7491 if (_ticker.frame >= _nextGCFrame) { 7492 _nextGCFrame += _config.autoSleep || 120; 7493 var child = _globalTimeline._first; 7494 if (!child || !child._ts) { 7495 if (_config.autoSleep && _ticker._listeners.length < 2) { 7496 while (child && !child._ts) { 7497 child = child._next; 7498 } 7499 child || _ticker.sleep(); 7500 } 7501 } 7502 } 7503 }, "updateRoot"); 7504 return Timeline2; 7505 })(Animation); 7506 _setDefaults(Timeline.prototype, { 7507 _lock: 0, 7508 _hasPause: 0, 7509 _forcing: 0 7510 }); 7511 var _addComplexStringPropTween = /* @__PURE__ */ __name(function _addComplexStringPropTween2(target, prop, start, end, setter, stringFilter, funcParam) { 7512 var pt = new PropTween(this._pt, target, prop, 0, 1, _renderComplexString, null, setter), index = 0, matchIndex = 0, result, startNums, color, endNum, chunk, startNum, hasRandom, a; 7513 pt.b = start; 7514 pt.e = end; 7515 start += ""; 7516 end += ""; 7517 if (hasRandom = ~end.indexOf("random(")) { 7518 end = _replaceRandom(end); 7519 } 7520 if (stringFilter) { 7521 a = [start, end]; 7522 stringFilter(a, target, prop); 7523 start = a[0]; 7524 end = a[1]; 7525 } 7526 startNums = start.match(_complexStringNumExp) || []; 7527 while (result = _complexStringNumExp.exec(end)) { 7528 endNum = result[0]; 7529 chunk = end.substring(index, result.index); 7530 if (color) { 7531 color = (color + 1) % 5; 7532 } else if (chunk.substr(-5) === "rgba(") { 7533 color = 1; 7534 } 7535 if (endNum !== startNums[matchIndex++]) { 7536 startNum = parseFloat(startNums[matchIndex - 1]) || 0; 7537 pt._pt = { 7538 _next: pt._pt, 7539 p: chunk || matchIndex === 1 ? chunk : ",", 7540 //note: SVG spec allows omission of comma/space when a negative sign is wedged between two numbers, like 2.5-5.3 instead of 2.5,-5.3 but when tweening, the negative value may switch to positive, so we insert the comma just in case. 7541 s: startNum, 7542 c: endNum.charAt(1) === "=" ? _parseRelative(startNum, endNum) - startNum : parseFloat(endNum) - startNum, 7543 m: color && color < 4 ? Math.round : 0 7544 }; 7545 index = _complexStringNumExp.lastIndex; 7546 } 7547 } 7548 pt.c = index < end.length ? end.substring(index, end.length) : ""; 7549 pt.fp = funcParam; 7550 if (_relExp.test(end) || hasRandom) { 7551 pt.e = 0; 7552 } 7553 this._pt = pt; 7554 return pt; 7555 }, "_addComplexStringPropTween"); 7556 var _addPropTween = /* @__PURE__ */ __name(function _addPropTween2(target, prop, start, end, index, targets, modifier, stringFilter, funcParam, optional) { 7557 _isFunction(end) && (end = end(index || 0, target, targets)); 7558 var currentValue = target[prop], parsedStart = start !== "get" ? start : !_isFunction(currentValue) ? currentValue : funcParam ? target[prop.indexOf("set") || !_isFunction(target["get" + prop.substr(3)]) ? prop : "get" + prop.substr(3)](funcParam) : target[prop](), setter = !_isFunction(currentValue) ? _setterPlain : funcParam ? _setterFuncWithParam : _setterFunc, pt; 7559 if (_isString(end)) { 7560 if (~end.indexOf("random(")) { 7561 end = _replaceRandom(end); 7562 } 7563 if (end.charAt(1) === "=") { 7564 pt = _parseRelative(parsedStart, end) + (getUnit(parsedStart) || 0); 7565 if (pt || pt === 0) { 7566 end = pt; 7567 } 7568 } 7569 } 7570 if (!optional || parsedStart !== end || _forceAllPropTweens) { 7571 if (!isNaN(parsedStart * end) && end !== "") { 7572 pt = new PropTween(this._pt, target, prop, +parsedStart || 0, end - (parsedStart || 0), typeof currentValue === "boolean" ? _renderBoolean : _renderPlain, 0, setter); 7573 funcParam && (pt.fp = funcParam); 7574 modifier && pt.modifier(modifier, this, target); 7575 return this._pt = pt; 7576 } 7577 !currentValue && !(prop in target) && _missingPlugin(prop, end); 7578 return _addComplexStringPropTween.call(this, target, prop, parsedStart, end, setter, stringFilter || _config.stringFilter, funcParam); 7579 } 7580 }, "_addPropTween"); 7581 var _processVars = /* @__PURE__ */ __name(function _processVars2(vars, index, target, targets, tween) { 7582 _isFunction(vars) && (vars = _parseFuncOrString(vars, tween, index, target, targets)); 7583 if (!_isObject(vars) || vars.style && vars.nodeType || _isArray(vars) || _isTypedArray(vars)) { 7584 return _isString(vars) ? _parseFuncOrString(vars, tween, index, target, targets) : vars; 7585 } 7586 var copy = {}, p; 7587 for (p in vars) { 7588 copy[p] = _parseFuncOrString(vars[p], tween, index, target, targets); 7589 } 7590 return copy; 7591 }, "_processVars"); 7592 var _checkPlugin = /* @__PURE__ */ __name(function _checkPlugin2(property, vars, tween, index, target, targets) { 7593 var plugin, pt, ptLookup, i; 7594 if (_plugins[property] && (plugin = new _plugins[property]()).init(target, plugin.rawVars ? vars[property] : _processVars(vars[property], index, target, targets, tween), tween, index, targets) !== false) { 7595 tween._pt = pt = new PropTween(tween._pt, target, property, 0, 1, plugin.render, plugin, 0, plugin.priority); 7596 if (tween !== _quickTween) { 7597 ptLookup = tween._ptLookup[tween._targets.indexOf(target)]; 7598 i = plugin._props.length; 7599 while (i--) { 7600 ptLookup[plugin._props[i]] = pt; 7601 } 7602 } 7603 } 7604 return plugin; 7605 }, "_checkPlugin"); 7606 var _overwritingTween; 7607 var _forceAllPropTweens; 7608 var _initTween = /* @__PURE__ */ __name(function _initTween2(tween, time, tTime) { 7609 var vars = tween.vars, ease = vars.ease, startAt = vars.startAt, immediateRender = vars.immediateRender, lazy = vars.lazy, onUpdate = vars.onUpdate, runBackwards = vars.runBackwards, yoyoEase = vars.yoyoEase, keyframes = vars.keyframes, autoRevert = vars.autoRevert, dur = tween._dur, prevStartAt = tween._startAt, targets = tween._targets, parent = tween.parent, fullTargets = parent && parent.data === "nested" ? parent.vars.targets : targets, autoOverwrite = tween._overwrite === "auto" && !_suppressOverwrites, tl = tween.timeline, cleanVars, i, p, pt, target, hasPriority, gsData, harness, plugin, ptLookup, index, harnessVars, overwritten; 7610 tl && (!keyframes || !ease) && (ease = "none"); 7611 tween._ease = _parseEase(ease, _defaults.ease); 7612 tween._yEase = yoyoEase ? _invertEase(_parseEase(yoyoEase === true ? ease : yoyoEase, _defaults.ease)) : 0; 7613 if (yoyoEase && tween._yoyo && !tween._repeat) { 7614 yoyoEase = tween._yEase; 7615 tween._yEase = tween._ease; 7616 tween._ease = yoyoEase; 7617 } 7618 tween._from = !tl && !!vars.runBackwards; 7619 if (!tl || keyframes && !vars.stagger) { 7620 harness = targets[0] ? _getCache(targets[0]).harness : 0; 7621 harnessVars = harness && vars[harness.prop]; 7622 cleanVars = _copyExcluding(vars, _reservedProps); 7623 if (prevStartAt) { 7624 prevStartAt._zTime < 0 && prevStartAt.progress(1); 7625 time < 0 && runBackwards && immediateRender && !autoRevert ? prevStartAt.render(-1, true) : prevStartAt.revert(runBackwards && dur ? _revertConfigNoKill : _startAtRevertConfig); 7626 prevStartAt._lazy = 0; 7627 } 7628 if (startAt) { 7629 _removeFromParent(tween._startAt = Tween.set(targets, _setDefaults({ 7630 data: "isStart", 7631 overwrite: false, 7632 parent, 7633 immediateRender: true, 7634 lazy: !prevStartAt && _isNotFalse(lazy), 7635 startAt: null, 7636 delay: 0, 7637 onUpdate: onUpdate && function() { 7638 return _callback(tween, "onUpdate"); 7639 }, 7640 stagger: 0 7641 }, startAt))); 7642 tween._startAt._dp = 0; 7643 tween._startAt._sat = tween; 7644 time < 0 && (_reverting || !immediateRender && !autoRevert) && tween._startAt.revert(_revertConfigNoKill); 7645 if (immediateRender) { 7646 if (dur && time <= 0 && tTime <= 0) { 7647 time && (tween._zTime = time); 7648 return; 7649 } 7650 } 7651 } else if (runBackwards && dur) { 7652 if (!prevStartAt) { 7653 time && (immediateRender = false); 7654 p = _setDefaults({ 7655 overwrite: false, 7656 data: "isFromStart", 7657 //we tag the tween with as "isFromStart" so that if [inside a plugin] we need to only do something at the very END of a tween, we have a way of identifying this tween as merely the one that's setting the beginning values for a "from()" tween. For example, clearProps in CSSPlugin should only get applied at the very END of a tween and without this tag, from(...{height:100, clearProps:"height", delay:1}) would wipe the height at the beginning of the tween and after 1 second, it'd kick back in. 7658 lazy: immediateRender && !prevStartAt && _isNotFalse(lazy), 7659 immediateRender, 7660 //zero-duration tweens render immediately by default, but if we're not specifically instructed to render this tween immediately, we should skip this and merely _init() to record the starting values (rendering them immediately would push them to completion which is wasteful in that case - we'd have to render(-1) immediately after) 7661 stagger: 0, 7662 parent 7663 //ensures that nested tweens that had a stagger are handled properly, like gsap.from(".class", {y: gsap.utils.wrap([-100,100]), stagger: 0.5}) 7664 }, cleanVars); 7665 harnessVars && (p[harness.prop] = harnessVars); 7666 _removeFromParent(tween._startAt = Tween.set(targets, p)); 7667 tween._startAt._dp = 0; 7668 tween._startAt._sat = tween; 7669 time < 0 && (_reverting ? tween._startAt.revert(_revertConfigNoKill) : tween._startAt.render(-1, true)); 7670 tween._zTime = time; 7671 if (!immediateRender) { 7672 _initTween2(tween._startAt, _tinyNum, _tinyNum); 7673 } else if (!time) { 7674 return; 7675 } 7676 } 7677 } 7678 tween._pt = tween._ptCache = 0; 7679 lazy = dur && _isNotFalse(lazy) || lazy && !dur; 7680 for (i = 0; i < targets.length; i++) { 7681 target = targets[i]; 7682 gsData = target._gsap || _harness(targets)[i]._gsap; 7683 tween._ptLookup[i] = ptLookup = {}; 7684 _lazyLookup[gsData.id] && _lazyTweens.length && _lazyRender(); 7685 index = fullTargets === targets ? i : fullTargets.indexOf(target); 7686 if (harness && (plugin = new harness()).init(target, harnessVars || cleanVars, tween, index, fullTargets) !== false) { 7687 tween._pt = pt = new PropTween(tween._pt, target, plugin.name, 0, 1, plugin.render, plugin, 0, plugin.priority); 7688 plugin._props.forEach(function(name) { 7689 ptLookup[name] = pt; 7690 }); 7691 plugin.priority && (hasPriority = 1); 7692 } 7693 if (!harness || harnessVars) { 7694 for (p in cleanVars) { 7695 if (_plugins[p] && (plugin = _checkPlugin(p, cleanVars, tween, index, target, fullTargets))) { 7696 plugin.priority && (hasPriority = 1); 7697 } else { 7698 ptLookup[p] = pt = _addPropTween.call(tween, target, p, "get", cleanVars[p], index, fullTargets, 0, vars.stringFilter); 7699 } 7700 } 7701 } 7702 tween._op && tween._op[i] && tween.kill(target, tween._op[i]); 7703 if (autoOverwrite && tween._pt) { 7704 _overwritingTween = tween; 7705 _globalTimeline.killTweensOf(target, ptLookup, tween.globalTime(time)); 7706 overwritten = !tween.parent; 7707 _overwritingTween = 0; 7708 } 7709 tween._pt && lazy && (_lazyLookup[gsData.id] = 1); 7710 } 7711 hasPriority && _sortPropTweensByPriority(tween); 7712 tween._onInit && tween._onInit(tween); 7713 } 7714 tween._onUpdate = onUpdate; 7715 tween._initted = (!tween._op || tween._pt) && !overwritten; 7716 keyframes && time <= 0 && tl.render(_bigNum, true, true); 7717 }, "_initTween"); 7718 var _updatePropTweens = /* @__PURE__ */ __name(function _updatePropTweens2(tween, property, value, start, startIsRelative, ratio, time, skipRecursion) { 7719 var ptCache = (tween._pt && tween._ptCache || (tween._ptCache = {}))[property], pt, rootPT, lookup, i; 7720 if (!ptCache) { 7721 ptCache = tween._ptCache[property] = []; 7722 lookup = tween._ptLookup; 7723 i = tween._targets.length; 7724 while (i--) { 7725 pt = lookup[i][property]; 7726 if (pt && pt.d && pt.d._pt) { 7727 pt = pt.d._pt; 7728 while (pt && pt.p !== property && pt.fp !== property) { 7729 pt = pt._next; 7730 } 7731 } 7732 if (!pt) { 7733 _forceAllPropTweens = 1; 7734 tween.vars[property] = "+=0"; 7735 _initTween(tween, time); 7736 _forceAllPropTweens = 0; 7737 return skipRecursion ? _warn(property + " not eligible for reset") : 1; 7738 } 7739 ptCache.push(pt); 7740 } 7741 } 7742 i = ptCache.length; 7743 while (i--) { 7744 rootPT = ptCache[i]; 7745 pt = rootPT._pt || rootPT; 7746 pt.s = (start || start === 0) && !startIsRelative ? start : pt.s + (start || 0) + ratio * pt.c; 7747 pt.c = value - pt.s; 7748 rootPT.e && (rootPT.e = _round(value) + getUnit(rootPT.e)); 7749 rootPT.b && (rootPT.b = pt.s + getUnit(rootPT.b)); 7750 } 7751 }, "_updatePropTweens"); 7752 var _addAliasesToVars = /* @__PURE__ */ __name(function _addAliasesToVars2(targets, vars) { 7753 var harness = targets[0] ? _getCache(targets[0]).harness : 0, propertyAliases = harness && harness.aliases, copy, p, i, aliases; 7754 if (!propertyAliases) { 7755 return vars; 7756 } 7757 copy = _merge({}, vars); 7758 for (p in propertyAliases) { 7759 if (p in copy) { 7760 aliases = propertyAliases[p].split(","); 7761 i = aliases.length; 7762 while (i--) { 7763 copy[aliases[i]] = copy[p]; 7764 } 7765 } 7766 } 7767 return copy; 7768 }, "_addAliasesToVars"); 7769 var _parseKeyframe = /* @__PURE__ */ __name(function _parseKeyframe2(prop, obj, allProps, easeEach) { 7770 var ease = obj.ease || easeEach || "power1.inOut", p, a; 7771 if (_isArray(obj)) { 7772 a = allProps[prop] || (allProps[prop] = []); 7773 obj.forEach(function(value, i) { 7774 return a.push({ 7775 t: i / (obj.length - 1) * 100, 7776 v: value, 7777 e: ease 7778 }); 7779 }); 7780 } else { 7781 for (p in obj) { 7782 a = allProps[p] || (allProps[p] = []); 7783 p === "ease" || a.push({ 7784 t: parseFloat(prop), 7785 v: obj[p], 7786 e: ease 7787 }); 7788 } 7789 } 7790 }, "_parseKeyframe"); 7791 var _parseFuncOrString = /* @__PURE__ */ __name(function _parseFuncOrString2(value, tween, i, target, targets) { 7792 return _isFunction(value) ? value.call(tween, i, target, targets) : _isString(value) && ~value.indexOf("random(") ? _replaceRandom(value) : value; 7793 }, "_parseFuncOrString"); 7794 var _staggerTweenProps = _callbackNames + "repeat,repeatDelay,yoyo,repeatRefresh,yoyoEase,autoRevert"; 7795 var _staggerPropsToSkip = {}; 7796 _forEachName(_staggerTweenProps + ",id,stagger,delay,duration,paused,scrollTrigger", function(name) { 7797 return _staggerPropsToSkip[name] = 1; 7798 }); 7799 var Tween = /* @__PURE__ */ (function(_Animation2) { 7800 _inheritsLoose(Tween2, _Animation2); 7801 function Tween2(targets, vars, position, skipInherit) { 7802 var _this3; 7803 if (typeof vars === "number") { 7804 position.duration = vars; 7805 vars = position; 7806 position = null; 7807 } 7808 _this3 = _Animation2.call(this, skipInherit ? vars : _inheritDefaults(vars)) || this; 7809 var _this3$vars = _this3.vars, duration = _this3$vars.duration, delay = _this3$vars.delay, immediateRender = _this3$vars.immediateRender, stagger = _this3$vars.stagger, overwrite = _this3$vars.overwrite, keyframes = _this3$vars.keyframes, defaults2 = _this3$vars.defaults, scrollTrigger = _this3$vars.scrollTrigger, yoyoEase = _this3$vars.yoyoEase, parent = vars.parent || _globalTimeline, parsedTargets = (_isArray(targets) || _isTypedArray(targets) ? _isNumber(targets[0]) : "length" in vars) ? [targets] : toArray(targets), tl, i, copy, l, p, curTarget, staggerFunc, staggerVarsToMerge; 7810 _this3._targets = parsedTargets.length ? _harness(parsedTargets) : _warn("GSAP target " + targets + " not found. https://gsap.com", !_config.nullTargetWarn) || []; 7811 _this3._ptLookup = []; 7812 _this3._overwrite = overwrite; 7813 if (keyframes || stagger || _isFuncOrString(duration) || _isFuncOrString(delay)) { 7814 vars = _this3.vars; 7815 tl = _this3.timeline = new Timeline({ 7816 data: "nested", 7817 defaults: defaults2 || {}, 7818 targets: parent && parent.data === "nested" ? parent.vars.targets : parsedTargets 7819 }); 7820 tl.kill(); 7821 tl.parent = tl._dp = _assertThisInitialized(_this3); 7822 tl._start = 0; 7823 if (stagger || _isFuncOrString(duration) || _isFuncOrString(delay)) { 7824 l = parsedTargets.length; 7825 staggerFunc = stagger && distribute(stagger); 7826 if (_isObject(stagger)) { 7827 for (p in stagger) { 7828 if (~_staggerTweenProps.indexOf(p)) { 7829 staggerVarsToMerge || (staggerVarsToMerge = {}); 7830 staggerVarsToMerge[p] = stagger[p]; 7831 } 7832 } 7833 } 7834 for (i = 0; i < l; i++) { 7835 copy = _copyExcluding(vars, _staggerPropsToSkip); 7836 copy.stagger = 0; 7837 yoyoEase && (copy.yoyoEase = yoyoEase); 7838 staggerVarsToMerge && _merge(copy, staggerVarsToMerge); 7839 curTarget = parsedTargets[i]; 7840 copy.duration = +_parseFuncOrString(duration, _assertThisInitialized(_this3), i, curTarget, parsedTargets); 7841 copy.delay = (+_parseFuncOrString(delay, _assertThisInitialized(_this3), i, curTarget, parsedTargets) || 0) - _this3._delay; 7842 if (!stagger && l === 1 && copy.delay) { 7843 _this3._delay = delay = copy.delay; 7844 _this3._start += delay; 7845 copy.delay = 0; 7846 } 7847 tl.to(curTarget, copy, staggerFunc ? staggerFunc(i, curTarget, parsedTargets) : 0); 7848 tl._ease = _easeMap.none; 7849 } 7850 tl.duration() ? duration = delay = 0 : _this3.timeline = 0; 7851 } else if (keyframes) { 7852 _inheritDefaults(_setDefaults(tl.vars.defaults, { 7853 ease: "none" 7854 })); 7855 tl._ease = _parseEase(keyframes.ease || vars.ease || "none"); 7856 var time = 0, a, kf, v; 7857 if (_isArray(keyframes)) { 7858 keyframes.forEach(function(frame) { 7859 return tl.to(parsedTargets, frame, ">"); 7860 }); 7861 tl.duration(); 7862 } else { 7863 copy = {}; 7864 for (p in keyframes) { 7865 p === "ease" || p === "easeEach" || _parseKeyframe(p, keyframes[p], copy, keyframes.easeEach); 7866 } 7867 for (p in copy) { 7868 a = copy[p].sort(function(a2, b) { 7869 return a2.t - b.t; 7870 }); 7871 time = 0; 7872 for (i = 0; i < a.length; i++) { 7873 kf = a[i]; 7874 v = { 7875 ease: kf.e, 7876 duration: (kf.t - (i ? a[i - 1].t : 0)) / 100 * duration 7877 }; 7878 v[p] = kf.v; 7879 tl.to(parsedTargets, v, time); 7880 time += v.duration; 7881 } 7882 } 7883 tl.duration() < duration && tl.to({}, { 7884 duration: duration - tl.duration() 7885 }); 7886 } 7887 } 7888 duration || _this3.duration(duration = tl.duration()); 7889 } else { 7890 _this3.timeline = 0; 7891 } 7892 if (overwrite === true && !_suppressOverwrites) { 7893 _overwritingTween = _assertThisInitialized(_this3); 7894 _globalTimeline.killTweensOf(parsedTargets); 7895 _overwritingTween = 0; 7896 } 7897 _addToTimeline(parent, _assertThisInitialized(_this3), position); 7898 vars.reversed && _this3.reverse(); 7899 vars.paused && _this3.paused(true); 7900 if (immediateRender || !duration && !keyframes && _this3._start === _roundPrecise(parent._time) && _isNotFalse(immediateRender) && _hasNoPausedAncestors(_assertThisInitialized(_this3)) && parent.data !== "nested") { 7901 _this3._tTime = -_tinyNum; 7902 _this3.render(Math.max(0, -delay) || 0); 7903 } 7904 scrollTrigger && _scrollTrigger(_assertThisInitialized(_this3), scrollTrigger); 7905 return _this3; 7906 } 7907 __name(Tween2, "Tween"); 7908 var _proto3 = Tween2.prototype; 7909 _proto3.render = /* @__PURE__ */ __name(function render3(totalTime, suppressEvents, force) { 7910 var prevTime = this._time, tDur = this._tDur, dur = this._dur, isNegative = totalTime < 0, tTime = totalTime > tDur - _tinyNum && !isNegative ? tDur : totalTime < _tinyNum ? 0 : totalTime, time, pt, iteration, cycleDuration, prevIteration, isYoyo, ratio, timeline2, yoyoEase; 7911 if (!dur) { 7912 _renderZeroDurationTween(this, totalTime, suppressEvents, force); 7913 } else if (tTime !== this._tTime || !totalTime || force || !this._initted && this._tTime || this._startAt && this._zTime < 0 !== isNegative || this._lazy) { 7914 time = tTime; 7915 timeline2 = this.timeline; 7916 if (this._repeat) { 7917 cycleDuration = dur + this._rDelay; 7918 if (this._repeat < -1 && isNegative) { 7919 return this.totalTime(cycleDuration * 100 + totalTime, suppressEvents, force); 7920 } 7921 time = _roundPrecise(tTime % cycleDuration); 7922 if (tTime === tDur) { 7923 iteration = this._repeat; 7924 time = dur; 7925 } else { 7926 prevIteration = _roundPrecise(tTime / cycleDuration); 7927 iteration = ~~prevIteration; 7928 if (iteration && iteration === prevIteration) { 7929 time = dur; 7930 iteration--; 7931 } else if (time > dur) { 7932 time = dur; 7933 } 7934 } 7935 isYoyo = this._yoyo && iteration & 1; 7936 if (isYoyo) { 7937 yoyoEase = this._yEase; 7938 time = dur - time; 7939 } 7940 prevIteration = _animationCycle(this._tTime, cycleDuration); 7941 if (time === prevTime && !force && this._initted && iteration === prevIteration) { 7942 this._tTime = tTime; 7943 return this; 7944 } 7945 if (iteration !== prevIteration) { 7946 timeline2 && this._yEase && _propagateYoyoEase(timeline2, isYoyo); 7947 if (this.vars.repeatRefresh && !isYoyo && !this._lock && time !== cycleDuration && this._initted) { 7948 this._lock = force = 1; 7949 this.render(_roundPrecise(cycleDuration * iteration), true).invalidate()._lock = 0; 7950 } 7951 } 7952 } 7953 if (!this._initted) { 7954 if (_attemptInitTween(this, isNegative ? totalTime : time, force, suppressEvents, tTime)) { 7955 this._tTime = 0; 7956 return this; 7957 } 7958 if (prevTime !== this._time && !(force && this.vars.repeatRefresh && iteration !== prevIteration)) { 7959 return this; 7960 } 7961 if (dur !== this._dur) { 7962 return this.render(totalTime, suppressEvents, force); 7963 } 7964 } 7965 this._tTime = tTime; 7966 this._time = time; 7967 if (!this._act && this._ts) { 7968 this._act = 1; 7969 this._lazy = 0; 7970 } 7971 this.ratio = ratio = (yoyoEase || this._ease)(time / dur); 7972 if (this._from) { 7973 this.ratio = ratio = 1 - ratio; 7974 } 7975 if (!prevTime && tTime && !suppressEvents && !prevIteration) { 7976 _callback(this, "onStart"); 7977 if (this._tTime !== tTime) { 7978 return this; 7979 } 7980 } 7981 pt = this._pt; 7982 while (pt) { 7983 pt.r(ratio, pt.d); 7984 pt = pt._next; 7985 } 7986 timeline2 && timeline2.render(totalTime < 0 ? totalTime : timeline2._dur * timeline2._ease(time / this._dur), suppressEvents, force) || this._startAt && (this._zTime = totalTime); 7987 if (this._onUpdate && !suppressEvents) { 7988 isNegative && _rewindStartAt(this, totalTime, suppressEvents, force); 7989 _callback(this, "onUpdate"); 7990 } 7991 this._repeat && iteration !== prevIteration && this.vars.onRepeat && !suppressEvents && this.parent && _callback(this, "onRepeat"); 7992 if ((tTime === this._tDur || !tTime) && this._tTime === tTime) { 7993 isNegative && !this._onUpdate && _rewindStartAt(this, totalTime, true, true); 7994 (totalTime || !dur) && (tTime === this._tDur && this._ts > 0 || !tTime && this._ts < 0) && _removeFromParent(this, 1); 7995 if (!suppressEvents && !(isNegative && !prevTime) && (tTime || prevTime || isYoyo)) { 7996 _callback(this, tTime === tDur ? "onComplete" : "onReverseComplete", true); 7997 this._prom && !(tTime < tDur && this.timeScale() > 0) && this._prom(); 7998 } 7999 } 8000 } 8001 return this; 8002 }, "render"); 8003 _proto3.targets = /* @__PURE__ */ __name(function targets() { 8004 return this._targets; 8005 }, "targets"); 8006 _proto3.invalidate = /* @__PURE__ */ __name(function invalidate(soft) { 8007 (!soft || !this.vars.runBackwards) && (this._startAt = 0); 8008 this._pt = this._op = this._onUpdate = this._lazy = this.ratio = 0; 8009 this._ptLookup = []; 8010 this.timeline && this.timeline.invalidate(soft); 8011 return _Animation2.prototype.invalidate.call(this, soft); 8012 }, "invalidate"); 8013 _proto3.resetTo = /* @__PURE__ */ __name(function resetTo(property, value, start, startIsRelative, skipRecursion) { 8014 _tickerActive || _ticker.wake(); 8015 this._ts || this.play(); 8016 var time = Math.min(this._dur, (this._dp._time - this._start) * this._ts), ratio; 8017 this._initted || _initTween(this, time); 8018 ratio = this._ease(time / this._dur); 8019 if (_updatePropTweens(this, property, value, start, startIsRelative, ratio, time, skipRecursion)) { 8020 return this.resetTo(property, value, start, startIsRelative, 1); 8021 } 8022 _alignPlayhead(this, 0); 8023 this.parent || _addLinkedListItem(this._dp, this, "_first", "_last", this._dp._sort ? "_start" : 0); 8024 return this.render(0); 8025 }, "resetTo"); 8026 _proto3.kill = /* @__PURE__ */ __name(function kill(targets, vars) { 8027 if (vars === void 0) { 8028 vars = "all"; 8029 } 8030 if (!targets && (!vars || vars === "all")) { 8031 this._lazy = this._pt = 0; 8032 this.parent ? _interrupt(this) : this.scrollTrigger && this.scrollTrigger.kill(!!_reverting); 8033 return this; 8034 } 8035 if (this.timeline) { 8036 var tDur = this.timeline.totalDuration(); 8037 this.timeline.killTweensOf(targets, vars, _overwritingTween && _overwritingTween.vars.overwrite !== true)._first || _interrupt(this); 8038 this.parent && tDur !== this.timeline.totalDuration() && _setDuration(this, this._dur * this.timeline._tDur / tDur, 0, 1); 8039 return this; 8040 } 8041 var parsedTargets = this._targets, killingTargets = targets ? toArray(targets) : parsedTargets, propTweenLookup = this._ptLookup, firstPT = this._pt, overwrittenProps, curLookup, curOverwriteProps, props, p, pt, i; 8042 if ((!vars || vars === "all") && _arraysMatch(parsedTargets, killingTargets)) { 8043 vars === "all" && (this._pt = 0); 8044 return _interrupt(this); 8045 } 8046 overwrittenProps = this._op = this._op || []; 8047 if (vars !== "all") { 8048 if (_isString(vars)) { 8049 p = {}; 8050 _forEachName(vars, function(name) { 8051 return p[name] = 1; 8052 }); 8053 vars = p; 8054 } 8055 vars = _addAliasesToVars(parsedTargets, vars); 8056 } 8057 i = parsedTargets.length; 8058 while (i--) { 8059 if (~killingTargets.indexOf(parsedTargets[i])) { 8060 curLookup = propTweenLookup[i]; 8061 if (vars === "all") { 8062 overwrittenProps[i] = vars; 8063 props = curLookup; 8064 curOverwriteProps = {}; 8065 } else { 8066 curOverwriteProps = overwrittenProps[i] = overwrittenProps[i] || {}; 8067 props = vars; 8068 } 8069 for (p in props) { 8070 pt = curLookup && curLookup[p]; 8071 if (pt) { 8072 if (!("kill" in pt.d) || pt.d.kill(p) === true) { 8073 _removeLinkedListItem(this, pt, "_pt"); 8074 } 8075 delete curLookup[p]; 8076 } 8077 if (curOverwriteProps !== "all") { 8078 curOverwriteProps[p] = 1; 8079 } 8080 } 8081 } 8082 } 8083 this._initted && !this._pt && firstPT && _interrupt(this); 8084 return this; 8085 }, "kill"); 8086 Tween2.to = /* @__PURE__ */ __name(function to(targets, vars) { 8087 return new Tween2(targets, vars, arguments[2]); 8088 }, "to"); 8089 Tween2.from = /* @__PURE__ */ __name(function from(targets, vars) { 8090 return _createTweenType(1, arguments); 8091 }, "from"); 8092 Tween2.delayedCall = /* @__PURE__ */ __name(function delayedCall(delay, callback, params, scope) { 8093 return new Tween2(callback, 0, { 8094 immediateRender: false, 8095 lazy: false, 8096 overwrite: false, 8097 delay, 8098 onComplete: callback, 8099 onReverseComplete: callback, 8100 onCompleteParams: params, 8101 onReverseCompleteParams: params, 8102 callbackScope: scope 8103 }); 8104 }, "delayedCall"); 8105 Tween2.fromTo = /* @__PURE__ */ __name(function fromTo(targets, fromVars, toVars) { 8106 return _createTweenType(2, arguments); 8107 }, "fromTo"); 8108 Tween2.set = /* @__PURE__ */ __name(function set2(targets, vars) { 8109 vars.duration = 0; 8110 vars.repeatDelay || (vars.repeat = 0); 8111 return new Tween2(targets, vars); 8112 }, "set"); 8113 Tween2.killTweensOf = /* @__PURE__ */ __name(function killTweensOf(targets, props, onlyActive) { 8114 return _globalTimeline.killTweensOf(targets, props, onlyActive); 8115 }, "killTweensOf"); 8116 return Tween2; 8117 })(Animation); 8118 _setDefaults(Tween.prototype, { 8119 _targets: [], 8120 _lazy: 0, 8121 _startAt: 0, 8122 _op: 0, 8123 _onInit: 0 8124 }); 8125 _forEachName("staggerTo,staggerFrom,staggerFromTo", function(name) { 8126 Tween[name] = function() { 8127 var tl = new Timeline(), params = _slice.call(arguments, 0); 8128 params.splice(name === "staggerFromTo" ? 5 : 4, 0, 0); 8129 return tl[name].apply(tl, params); 8130 }; 8131 }); 8132 var _setterPlain = /* @__PURE__ */ __name(function _setterPlain2(target, property, value) { 8133 return target[property] = value; 8134 }, "_setterPlain"); 8135 var _setterFunc = /* @__PURE__ */ __name(function _setterFunc2(target, property, value) { 8136 return target[property](value); 8137 }, "_setterFunc"); 8138 var _setterFuncWithParam = /* @__PURE__ */ __name(function _setterFuncWithParam2(target, property, value, data) { 8139 return target[property](data.fp, value); 8140 }, "_setterFuncWithParam"); 8141 var _setterAttribute = /* @__PURE__ */ __name(function _setterAttribute2(target, property, value) { 8142 return target.setAttribute(property, value); 8143 }, "_setterAttribute"); 8144 var _getSetter = /* @__PURE__ */ __name(function _getSetter2(target, property) { 8145 return _isFunction(target[property]) ? _setterFunc : _isUndefined(target[property]) && target.setAttribute ? _setterAttribute : _setterPlain; 8146 }, "_getSetter"); 8147 var _renderPlain = /* @__PURE__ */ __name(function _renderPlain2(ratio, data) { 8148 return data.set(data.t, data.p, Math.round((data.s + data.c * ratio) * 1e6) / 1e6, data); 8149 }, "_renderPlain"); 8150 var _renderBoolean = /* @__PURE__ */ __name(function _renderBoolean2(ratio, data) { 8151 return data.set(data.t, data.p, !!(data.s + data.c * ratio), data); 8152 }, "_renderBoolean"); 8153 var _renderComplexString = /* @__PURE__ */ __name(function _renderComplexString2(ratio, data) { 8154 var pt = data._pt, s = ""; 8155 if (!ratio && data.b) { 8156 s = data.b; 8157 } else if (ratio === 1 && data.e) { 8158 s = data.e; 8159 } else { 8160 while (pt) { 8161 s = pt.p + (pt.m ? pt.m(pt.s + pt.c * ratio) : Math.round((pt.s + pt.c * ratio) * 1e4) / 1e4) + s; 8162 pt = pt._next; 8163 } 8164 s += data.c; 8165 } 8166 data.set(data.t, data.p, s, data); 8167 }, "_renderComplexString"); 8168 var _renderPropTweens = /* @__PURE__ */ __name(function _renderPropTweens2(ratio, data) { 8169 var pt = data._pt; 8170 while (pt) { 8171 pt.r(ratio, pt.d); 8172 pt = pt._next; 8173 } 8174 }, "_renderPropTweens"); 8175 var _addPluginModifier = /* @__PURE__ */ __name(function _addPluginModifier2(modifier, tween, target, property) { 8176 var pt = this._pt, next; 8177 while (pt) { 8178 next = pt._next; 8179 pt.p === property && pt.modifier(modifier, tween, target); 8180 pt = next; 8181 } 8182 }, "_addPluginModifier"); 8183 var _killPropTweensOf = /* @__PURE__ */ __name(function _killPropTweensOf2(property) { 8184 var pt = this._pt, hasNonDependentRemaining, next; 8185 while (pt) { 8186 next = pt._next; 8187 if (pt.p === property && !pt.op || pt.op === property) { 8188 _removeLinkedListItem(this, pt, "_pt"); 8189 } else if (!pt.dep) { 8190 hasNonDependentRemaining = 1; 8191 } 8192 pt = next; 8193 } 8194 return !hasNonDependentRemaining; 8195 }, "_killPropTweensOf"); 8196 var _setterWithModifier = /* @__PURE__ */ __name(function _setterWithModifier2(target, property, value, data) { 8197 data.mSet(target, property, data.m.call(data.tween, value, data.mt), data); 8198 }, "_setterWithModifier"); 8199 var _sortPropTweensByPriority = /* @__PURE__ */ __name(function _sortPropTweensByPriority2(parent) { 8200 var pt = parent._pt, next, pt2, first, last; 8201 while (pt) { 8202 next = pt._next; 8203 pt2 = first; 8204 while (pt2 && pt2.pr > pt.pr) { 8205 pt2 = pt2._next; 8206 } 8207 if (pt._prev = pt2 ? pt2._prev : last) { 8208 pt._prev._next = pt; 8209 } else { 8210 first = pt; 8211 } 8212 if (pt._next = pt2) { 8213 pt2._prev = pt; 8214 } else { 8215 last = pt; 8216 } 8217 pt = next; 8218 } 8219 parent._pt = first; 8220 }, "_sortPropTweensByPriority"); 8221 var PropTween = /* @__PURE__ */ (function() { 8222 function PropTween2(next, target, prop, start, change, renderer, data, setter, priority) { 8223 this.t = target; 8224 this.s = start; 8225 this.c = change; 8226 this.p = prop; 8227 this.r = renderer || _renderPlain; 8228 this.d = data || this; 8229 this.set = setter || _setterPlain; 8230 this.pr = priority || 0; 8231 this._next = next; 8232 if (next) { 8233 next._prev = this; 8234 } 8235 } 8236 __name(PropTween2, "PropTween"); 8237 var _proto4 = PropTween2.prototype; 8238 _proto4.modifier = /* @__PURE__ */ __name(function modifier(func, tween, target) { 8239 this.mSet = this.mSet || this.set; 8240 this.set = _setterWithModifier; 8241 this.m = func; 8242 this.mt = target; 8243 this.tween = tween; 8244 }, "modifier"); 8245 return PropTween2; 8246 })(); 8247 _forEachName(_callbackNames + "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(name) { 8248 return _reservedProps[name] = 1; 8249 }); 8250 _globals.TweenMax = _globals.TweenLite = Tween; 8251 _globals.TimelineLite = _globals.TimelineMax = Timeline; 8252 _globalTimeline = new Timeline({ 8253 sortChildren: false, 8254 defaults: _defaults, 8255 autoRemoveChildren: true, 8256 id: "root", 8257 smoothChildTiming: true 8258 }); 8259 _config.stringFilter = _colorStringFilter; 8260 var _media = []; 8261 var _listeners = {}; 8262 var _emptyArray = []; 8263 var _lastMediaTime = 0; 8264 var _contextID = 0; 8265 var _dispatch = /* @__PURE__ */ __name(function _dispatch2(type) { 8266 return (_listeners[type] || _emptyArray).map(function(f) { 8267 return f(); 8268 }); 8269 }, "_dispatch"); 8270 var _onMediaChange = /* @__PURE__ */ __name(function _onMediaChange2() { 8271 var time = Date.now(), matches = []; 8272 if (time - _lastMediaTime > 2) { 8273 _dispatch("matchMediaInit"); 8274 _media.forEach(function(c) { 8275 var queries = c.queries, conditions = c.conditions, match, p, anyMatch, toggled; 8276 for (p in queries) { 8277 match = _win.matchMedia(queries[p]).matches; 8278 match && (anyMatch = 1); 8279 if (match !== conditions[p]) { 8280 conditions[p] = match; 8281 toggled = 1; 8282 } 8283 } 8284 if (toggled) { 8285 c.revert(); 8286 anyMatch && matches.push(c); 8287 } 8288 }); 8289 _dispatch("matchMediaRevert"); 8290 matches.forEach(function(c) { 8291 return c.onMatch(c, function(func) { 8292 return c.add(null, func); 8293 }); 8294 }); 8295 _lastMediaTime = time; 8296 _dispatch("matchMedia"); 8297 } 8298 }, "_onMediaChange"); 8299 var Context = /* @__PURE__ */ (function() { 8300 function Context2(func, scope) { 8301 this.selector = scope && selector(scope); 8302 this.data = []; 8303 this._r = []; 8304 this.isReverted = false; 8305 this.id = _contextID++; 8306 func && this.add(func); 8307 } 8308 __name(Context2, "Context"); 8309 var _proto5 = Context2.prototype; 8310 _proto5.add = /* @__PURE__ */ __name(function add(name, func, scope) { 8311 if (_isFunction(name)) { 8312 scope = func; 8313 func = name; 8314 name = _isFunction; 8315 } 8316 var self2 = this, f = /* @__PURE__ */ __name(function f2() { 8317 var prev = _context, prevSelector = self2.selector, result; 8318 prev && prev !== self2 && prev.data.push(self2); 8319 scope && (self2.selector = selector(scope)); 8320 _context = self2; 8321 result = func.apply(self2, arguments); 8322 _isFunction(result) && self2._r.push(result); 8323 _context = prev; 8324 self2.selector = prevSelector; 8325 self2.isReverted = false; 8326 return result; 8327 }, "f"); 8328 self2.last = f; 8329 return name === _isFunction ? f(self2, function(func2) { 8330 return self2.add(null, func2); 8331 }) : name ? self2[name] = f : f; 8332 }, "add"); 8333 _proto5.ignore = /* @__PURE__ */ __name(function ignore(func) { 8334 var prev = _context; 8335 _context = null; 8336 func(this); 8337 _context = prev; 8338 }, "ignore"); 8339 _proto5.getTweens = /* @__PURE__ */ __name(function getTweens() { 8340 var a = []; 8341 this.data.forEach(function(e) { 8342 return e instanceof Context2 ? a.push.apply(a, e.getTweens()) : e instanceof Tween && !(e.parent && e.parent.data === "nested") && a.push(e); 8343 }); 8344 return a; 8345 }, "getTweens"); 8346 _proto5.clear = /* @__PURE__ */ __name(function clear() { 8347 this._r.length = this.data.length = 0; 8348 }, "clear"); 8349 _proto5.kill = /* @__PURE__ */ __name(function kill(revert, matchMedia2) { 8350 var _this4 = this; 8351 if (revert) { 8352 (function() { 8353 var tweens = _this4.getTweens(), i2 = _this4.data.length, t; 8354 while (i2--) { 8355 t = _this4.data[i2]; 8356 if (t.data === "isFlip") { 8357 t.revert(); 8358 t.getChildren(true, true, false).forEach(function(tween) { 8359 return tweens.splice(tweens.indexOf(tween), 1); 8360 }); 8361 } 8362 } 8363 tweens.map(function(t2) { 8364 return { 8365 g: t2._dur || t2._delay || t2._sat && !t2._sat.vars.immediateRender ? t2.globalTime(0) : -Infinity, 8366 t: t2 8367 }; 8368 }).sort(function(a, b) { 8369 return b.g - a.g || -Infinity; 8370 }).forEach(function(o) { 8371 return o.t.revert(revert); 8372 }); 8373 i2 = _this4.data.length; 8374 while (i2--) { 8375 t = _this4.data[i2]; 8376 if (t instanceof Timeline) { 8377 if (t.data !== "nested") { 8378 t.scrollTrigger && t.scrollTrigger.revert(); 8379 t.kill(); 8380 } 8381 } else { 8382 !(t instanceof Tween) && t.revert && t.revert(revert); 8383 } 8384 } 8385 _this4._r.forEach(function(f) { 8386 return f(revert, _this4); 8387 }); 8388 _this4.isReverted = true; 8389 })(); 8390 } else { 8391 this.data.forEach(function(e) { 8392 return e.kill && e.kill(); 8393 }); 8394 } 8395 this.clear(); 8396 if (matchMedia2) { 8397 var i = _media.length; 8398 while (i--) { 8399 _media[i].id === this.id && _media.splice(i, 1); 8400 } 8401 } 8402 }, "kill"); 8403 _proto5.revert = /* @__PURE__ */ __name(function revert(config3) { 8404 this.kill(config3 || {}); 8405 }, "revert"); 8406 return Context2; 8407 })(); 8408 var MatchMedia = /* @__PURE__ */ (function() { 8409 function MatchMedia2(scope) { 8410 this.contexts = []; 8411 this.scope = scope; 8412 _context && _context.data.push(this); 8413 } 8414 __name(MatchMedia2, "MatchMedia"); 8415 var _proto6 = MatchMedia2.prototype; 8416 _proto6.add = /* @__PURE__ */ __name(function add(conditions, func, scope) { 8417 _isObject(conditions) || (conditions = { 8418 matches: conditions 8419 }); 8420 var context3 = new Context(0, scope || this.scope), cond = context3.conditions = {}, mq, p, active; 8421 _context && !context3.selector && (context3.selector = _context.selector); 8422 this.contexts.push(context3); 8423 func = context3.add("onMatch", func); 8424 context3.queries = conditions; 8425 for (p in conditions) { 8426 if (p === "all") { 8427 active = 1; 8428 } else { 8429 mq = _win.matchMedia(conditions[p]); 8430 if (mq) { 8431 _media.indexOf(context3) < 0 && _media.push(context3); 8432 (cond[p] = mq.matches) && (active = 1); 8433 mq.addListener ? mq.addListener(_onMediaChange) : mq.addEventListener("change", _onMediaChange); 8434 } 8435 } 8436 } 8437 active && func(context3, function(f) { 8438 return context3.add(null, f); 8439 }); 8440 return this; 8441 }, "add"); 8442 _proto6.revert = /* @__PURE__ */ __name(function revert(config3) { 8443 this.kill(config3 || {}); 8444 }, "revert"); 8445 _proto6.kill = /* @__PURE__ */ __name(function kill(revert) { 8446 this.contexts.forEach(function(c) { 8447 return c.kill(revert, true); 8448 }); 8449 }, "kill"); 8450 return MatchMedia2; 8451 })(); 8452 var _gsap = { 8453 registerPlugin: /* @__PURE__ */ __name(function registerPlugin() { 8454 for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { 8455 args[_key2] = arguments[_key2]; 8456 } 8457 args.forEach(function(config3) { 8458 return _createPlugin(config3); 8459 }); 8460 }, "registerPlugin"), 8461 timeline: /* @__PURE__ */ __name(function timeline(vars) { 8462 return new Timeline(vars); 8463 }, "timeline"), 8464 getTweensOf: /* @__PURE__ */ __name(function getTweensOf(targets, onlyActive) { 8465 return _globalTimeline.getTweensOf(targets, onlyActive); 8466 }, "getTweensOf"), 8467 getProperty: /* @__PURE__ */ __name(function getProperty(target, property, unit, uncache) { 8468 _isString(target) && (target = toArray(target)[0]); 8469 var getter = _getCache(target || {}).get, format = unit ? _passThrough : _numericIfPossible; 8470 unit === "native" && (unit = ""); 8471 return !target ? target : !property ? function(property2, unit2, uncache2) { 8472 return format((_plugins[property2] && _plugins[property2].get || getter)(target, property2, unit2, uncache2)); 8473 } : format((_plugins[property] && _plugins[property].get || getter)(target, property, unit, uncache)); 8474 }, "getProperty"), 8475 quickSetter: /* @__PURE__ */ __name(function quickSetter(target, property, unit) { 8476 target = toArray(target); 8477 if (target.length > 1) { 8478 var setters = target.map(function(t) { 8479 return gsap.quickSetter(t, property, unit); 8480 }), l = setters.length; 8481 return function(value) { 8482 var i = l; 8483 while (i--) { 8484 setters[i](value); 8485 } 8486 }; 8487 } 8488 target = target[0] || {}; 8489 var Plugin = _plugins[property], cache = _getCache(target), p = cache.harness && (cache.harness.aliases || {})[property] || property, setter = Plugin ? function(value) { 8490 var p2 = new Plugin(); 8491 _quickTween._pt = 0; 8492 p2.init(target, unit ? value + unit : value, _quickTween, 0, [target]); 8493 p2.render(1, p2); 8494 _quickTween._pt && _renderPropTweens(1, _quickTween); 8495 } : cache.set(target, p); 8496 return Plugin ? setter : function(value) { 8497 return setter(target, p, unit ? value + unit : value, cache, 1); 8498 }; 8499 }, "quickSetter"), 8500 quickTo: /* @__PURE__ */ __name(function quickTo(target, property, vars) { 8501 var _setDefaults22; 8502 var tween = gsap.to(target, _setDefaults((_setDefaults22 = {}, _setDefaults22[property] = "+=0.1", _setDefaults22.paused = true, _setDefaults22.stagger = 0, _setDefaults22), vars || {})), func = /* @__PURE__ */ __name(function func2(value, start, startIsRelative) { 8503 return tween.resetTo(property, value, start, startIsRelative); 8504 }, "func"); 8505 func.tween = tween; 8506 return func; 8507 }, "quickTo"), 8508 isTweening: /* @__PURE__ */ __name(function isTweening(targets) { 8509 return _globalTimeline.getTweensOf(targets, true).length > 0; 8510 }, "isTweening"), 8511 defaults: /* @__PURE__ */ __name(function defaults(value) { 8512 value && value.ease && (value.ease = _parseEase(value.ease, _defaults.ease)); 8513 return _mergeDeep(_defaults, value || {}); 8514 }, "defaults"), 8515 config: /* @__PURE__ */ __name(function config2(value) { 8516 return _mergeDeep(_config, value || {}); 8517 }, "config"), 8518 registerEffect: /* @__PURE__ */ __name(function registerEffect(_ref3) { 8519 var name = _ref3.name, effect = _ref3.effect, plugins = _ref3.plugins, defaults2 = _ref3.defaults, extendTimeline = _ref3.extendTimeline; 8520 (plugins || "").split(",").forEach(function(pluginName) { 8521 return pluginName && !_plugins[pluginName] && !_globals[pluginName] && _warn(name + " effect requires " + pluginName + " plugin."); 8522 }); 8523 _effects[name] = function(targets, vars, tl) { 8524 return effect(toArray(targets), _setDefaults(vars || {}, defaults2), tl); 8525 }; 8526 if (extendTimeline) { 8527 Timeline.prototype[name] = function(targets, vars, position) { 8528 return this.add(_effects[name](targets, _isObject(vars) ? vars : (position = vars) && {}, this), position); 8529 }; 8530 } 8531 }, "registerEffect"), 8532 registerEase: /* @__PURE__ */ __name(function registerEase(name, ease) { 8533 _easeMap[name] = _parseEase(ease); 8534 }, "registerEase"), 8535 parseEase: /* @__PURE__ */ __name(function parseEase(ease, defaultEase) { 8536 return arguments.length ? _parseEase(ease, defaultEase) : _easeMap; 8537 }, "parseEase"), 8538 getById: /* @__PURE__ */ __name(function getById(id) { 8539 return _globalTimeline.getById(id); 8540 }, "getById"), 8541 exportRoot: /* @__PURE__ */ __name(function exportRoot(vars, includeDelayedCalls) { 8542 if (vars === void 0) { 8543 vars = {}; 8544 } 8545 var tl = new Timeline(vars), child, next; 8546 tl.smoothChildTiming = _isNotFalse(vars.smoothChildTiming); 8547 _globalTimeline.remove(tl); 8548 tl._dp = 0; 8549 tl._time = tl._tTime = _globalTimeline._time; 8550 child = _globalTimeline._first; 8551 while (child) { 8552 next = child._next; 8553 if (includeDelayedCalls || !(!child._dur && child instanceof Tween && child.vars.onComplete === child._targets[0])) { 8554 _addToTimeline(tl, child, child._start - child._delay); 8555 } 8556 child = next; 8557 } 8558 _addToTimeline(_globalTimeline, tl, 0); 8559 return tl; 8560 }, "exportRoot"), 8561 context: /* @__PURE__ */ __name(function context(func, scope) { 8562 return func ? new Context(func, scope) : _context; 8563 }, "context"), 8564 matchMedia: /* @__PURE__ */ __name(function matchMedia(scope) { 8565 return new MatchMedia(scope); 8566 }, "matchMedia"), 8567 matchMediaRefresh: /* @__PURE__ */ __name(function matchMediaRefresh() { 8568 return _media.forEach(function(c) { 8569 var cond = c.conditions, found, p; 8570 for (p in cond) { 8571 if (cond[p]) { 8572 cond[p] = false; 8573 found = 1; 8574 } 8575 } 8576 found && c.revert(); 8577 }) || _onMediaChange(); 8578 }, "matchMediaRefresh"), 8579 addEventListener: /* @__PURE__ */ __name(function addEventListener(type, callback) { 8580 var a = _listeners[type] || (_listeners[type] = []); 8581 ~a.indexOf(callback) || a.push(callback); 8582 }, "addEventListener"), 8583 removeEventListener: /* @__PURE__ */ __name(function removeEventListener(type, callback) { 8584 var a = _listeners[type], i = a && a.indexOf(callback); 8585 i >= 0 && a.splice(i, 1); 8586 }, "removeEventListener"), 8587 utils: { 8588 wrap, 8589 wrapYoyo, 8590 distribute, 8591 random, 8592 snap, 8593 normalize, 8594 getUnit, 8595 clamp, 8596 splitColor, 8597 toArray, 8598 selector, 8599 mapRange, 8600 pipe, 8601 unitize, 8602 interpolate, 8603 shuffle 8604 }, 8605 install: _install, 8606 effects: _effects, 8607 ticker: _ticker, 8608 updateRoot: Timeline.updateRoot, 8609 plugins: _plugins, 8610 globalTimeline: _globalTimeline, 8611 core: { 8612 PropTween, 8613 globals: _addGlobal, 8614 Tween, 8615 Timeline, 8616 Animation, 8617 getCache: _getCache, 8618 _removeLinkedListItem, 8619 reverting: /* @__PURE__ */ __name(function reverting() { 8620 return _reverting; 8621 }, "reverting"), 8622 context: /* @__PURE__ */ __name(function context2(toAdd) { 8623 if (toAdd && _context) { 8624 _context.data.push(toAdd); 8625 toAdd._ctx = _context; 8626 } 8627 return _context; 8628 }, "context"), 8629 suppressOverwrites: /* @__PURE__ */ __name(function suppressOverwrites(value) { 8630 return _suppressOverwrites = value; 8631 }, "suppressOverwrites") 8632 } 8633 }; 8634 _forEachName("to,from,fromTo,delayedCall,set,killTweensOf", function(name) { 8635 return _gsap[name] = Tween[name]; 8636 }); 8637 _ticker.add(Timeline.updateRoot); 8638 _quickTween = _gsap.to({}, { 8639 duration: 0 8640 }); 8641 var _getPluginPropTween = /* @__PURE__ */ __name(function _getPluginPropTween2(plugin, prop) { 8642 var pt = plugin._pt; 8643 while (pt && pt.p !== prop && pt.op !== prop && pt.fp !== prop) { 8644 pt = pt._next; 8645 } 8646 return pt; 8647 }, "_getPluginPropTween"); 8648 var _addModifiers = /* @__PURE__ */ __name(function _addModifiers2(tween, modifiers) { 8649 var targets = tween._targets, p, i, pt; 8650 for (p in modifiers) { 8651 i = targets.length; 8652 while (i--) { 8653 pt = tween._ptLookup[i][p]; 8654 if (pt && (pt = pt.d)) { 8655 if (pt._pt) { 8656 pt = _getPluginPropTween(pt, p); 8657 } 8658 pt && pt.modifier && pt.modifier(modifiers[p], tween, targets[i], p); 8659 } 8660 } 8661 } 8662 }, "_addModifiers"); 8663 var _buildModifierPlugin = /* @__PURE__ */ __name(function _buildModifierPlugin2(name, modifier) { 8664 return { 8665 name, 8666 headless: 1, 8667 rawVars: 1, 8668 //don't pre-process function-based values or "random()" strings. 8669 init: /* @__PURE__ */ __name(function init5(target, vars, tween) { 8670 tween._onInit = function(tween2) { 8671 var temp, p; 8672 if (_isString(vars)) { 8673 temp = {}; 8674 _forEachName(vars, function(name2) { 8675 return temp[name2] = 1; 8676 }); 8677 vars = temp; 8678 } 8679 if (modifier) { 8680 temp = {}; 8681 for (p in vars) { 8682 temp[p] = modifier(vars[p]); 8683 } 8684 vars = temp; 8685 } 8686 _addModifiers(tween2, vars); 8687 }; 8688 }, "init") 8689 }; 8690 }, "_buildModifierPlugin"); 8691 var gsap = _gsap.registerPlugin({ 8692 name: "attr", 8693 init: /* @__PURE__ */ __name(function init2(target, vars, tween, index, targets) { 8694 var p, pt, v; 8695 this.tween = tween; 8696 for (p in vars) { 8697 v = target.getAttribute(p) || ""; 8698 pt = this.add(target, "setAttribute", (v || 0) + "", vars[p], index, targets, 0, 0, p); 8699 pt.op = p; 8700 pt.b = v; 8701 this._props.push(p); 8702 } 8703 }, "init"), 8704 render: /* @__PURE__ */ __name(function render(ratio, data) { 8705 var pt = data._pt; 8706 while (pt) { 8707 _reverting ? pt.set(pt.t, pt.p, pt.b, pt) : pt.r(ratio, pt.d); 8708 pt = pt._next; 8709 } 8710 }, "render") 8711 }, { 8712 name: "endArray", 8713 headless: 1, 8714 init: /* @__PURE__ */ __name(function init3(target, value) { 8715 var i = value.length; 8716 while (i--) { 8717 this.add(target, i, target[i] || 0, value[i], 0, 0, 0, 0, 0, 1); 8718 } 8719 }, "init") 8720 }, _buildModifierPlugin("roundProps", _roundModifier), _buildModifierPlugin("modifiers"), _buildModifierPlugin("snap", snap)) || _gsap; 8721 Tween.version = Timeline.version = gsap.version = "3.14.2"; 8722 _coreReady = 1; 8723 _windowExists() && _wake(); 8724 var Power0 = _easeMap.Power0; 8725 var Power1 = _easeMap.Power1; 8726 var Power2 = _easeMap.Power2; 8727 var Power3 = _easeMap.Power3; 8728 var Power4 = _easeMap.Power4; 8729 var Linear = _easeMap.Linear; 8730 var Quad = _easeMap.Quad; 8731 var Cubic = _easeMap.Cubic; 8732 var Quart = _easeMap.Quart; 8733 var Quint = _easeMap.Quint; 8734 var Strong = _easeMap.Strong; 8735 var Elastic = _easeMap.Elastic; 8736 var Back = _easeMap.Back; 8737 var SteppedEase = _easeMap.SteppedEase; 8738 var Bounce = _easeMap.Bounce; 8739 var Sine = _easeMap.Sine; 8740 var Expo = _easeMap.Expo; 8741 var Circ = _easeMap.Circ; 8742 8743
vendor: 53,466 bytes, lines 8743-9860
8743// node_modules/gsap/CSSPlugin.js 8744 var _win2; 8745 var _doc2; 8746 var _docElement; 8747 var _pluginInitted; 8748 var _tempDiv; 8749 var _tempDivStyler; 8750 var _recentSetterPlugin; 8751 var _reverting2; 8752 var _windowExists3 = /* @__PURE__ */ __name(function _windowExists4() { 8753 return typeof window !== "undefined"; 8754 }, "_windowExists"); 8755 var _transformProps = {}; 8756 var _RAD2DEG = 180 / Math.PI; 8757 var _DEG2RAD = Math.PI / 180; 8758 var _atan2 = Math.atan2; 8759 var _bigNum2 = 1e8; 8760 var _capsExp = /([A-Z])/g; 8761 var _horizontalExp = /(left|right|width|margin|padding|x)/i; 8762 var _complexExp = /[\s,\(]\S/; 8763 var _propertyAliases = { 8764 autoAlpha: "opacity,visibility", 8765 scale: "scaleX,scaleY", 8766 alpha: "opacity" 8767 }; 8768 var _renderCSSProp = /* @__PURE__ */ __name(function _renderCSSProp2(ratio, data) { 8769 return data.set(data.t, data.p, Math.round((data.s + data.c * ratio) * 1e4) / 1e4 + data.u, data); 8770 }, "_renderCSSProp"); 8771 var _renderPropWithEnd = /* @__PURE__ */ __name(function _renderPropWithEnd2(ratio, data) { 8772 return data.set(data.t, data.p, ratio === 1 ? data.e : Math.round((data.s + data.c * ratio) * 1e4) / 1e4 + data.u, data); 8773 }, "_renderPropWithEnd"); 8774 var _renderCSSPropWithBeginning = /* @__PURE__ */ __name(function _renderCSSPropWithBeginning2(ratio, data) { 8775 return data.set(data.t, data.p, ratio ? Math.round((data.s + data.c * ratio) * 1e4) / 1e4 + data.u : data.b, data); 8776 }, "_renderCSSPropWithBeginning"); 8777 var _renderCSSPropWithBeginningAndEnd = /* @__PURE__ */ __name(function _renderCSSPropWithBeginningAndEnd2(ratio, data) { 8778 return data.set(data.t, data.p, ratio === 1 ? data.e : ratio ? Math.round((data.s + data.c * ratio) * 1e4) / 1e4 + data.u : data.b, data); 8779 }, "_renderCSSPropWithBeginningAndEnd"); 8780 var _renderRoundedCSSProp = /* @__PURE__ */ __name(function _renderRoundedCSSProp2(ratio, data) { 8781 var value = data.s + data.c * ratio; 8782 data.set(data.t, data.p, ~~(value + (value < 0 ? -0.5 : 0.5)) + data.u, data); 8783 }, "_renderRoundedCSSProp"); 8784 var _renderNonTweeningValue = /* @__PURE__ */ __name(function _renderNonTweeningValue2(ratio, data) { 8785 return data.set(data.t, data.p, ratio ? data.e : data.b, data); 8786 }, "_renderNonTweeningValue"); 8787 var _renderNonTweeningValueOnlyAtEnd = /* @__PURE__ */ __name(function _renderNonTweeningValueOnlyAtEnd2(ratio, data) { 8788 return data.set(data.t, data.p, ratio !== 1 ? data.b : data.e, data); 8789 }, "_renderNonTweeningValueOnlyAtEnd"); 8790 var _setterCSSStyle = /* @__PURE__ */ __name(function _setterCSSStyle2(target, property, value) { 8791 return target.style[property] = value; 8792 }, "_setterCSSStyle"); 8793 var _setterCSSProp = /* @__PURE__ */ __name(function _setterCSSProp2(target, property, value) { 8794 return target.style.setProperty(property, value); 8795 }, "_setterCSSProp"); 8796 var _setterTransform = /* @__PURE__ */ __name(function _setterTransform2(target, property, value) { 8797 return target._gsap[property] = value; 8798 }, "_setterTransform"); 8799 var _setterScale = /* @__PURE__ */ __name(function _setterScale2(target, property, value) { 8800 return target._gsap.scaleX = target._gsap.scaleY = value; 8801 }, "_setterScale"); 8802 var _setterScaleWithRender = /* @__PURE__ */ __name(function _setterScaleWithRender2(target, property, value, data, ratio) { 8803 var cache = target._gsap; 8804 cache.scaleX = cache.scaleY = value; 8805 cache.renderTransform(ratio, cache); 8806 }, "_setterScaleWithRender"); 8807 var _setterTransformWithRender = /* @__PURE__ */ __name(function _setterTransformWithRender2(target, property, value, data, ratio) { 8808 var cache = target._gsap; 8809 cache[property] = value; 8810 cache.renderTransform(ratio, cache); 8811 }, "_setterTransformWithRender"); 8812 var _transformProp = "transform"; 8813 var _transformOriginProp = _transformProp + "Origin"; 8814 var _saveStyle = /* @__PURE__ */ __name(function _saveStyle2(property, isNotCSS) { 8815 var _this = this; 8816 var target = this.target, style = target.style, cache = target._gsap; 8817 if (property in _transformProps && style) { 8818 this.tfm = this.tfm || {}; 8819 if (property !== "transform") { 8820 property = _propertyAliases[property] || property; 8821 ~property.indexOf(",") ? property.split(",").forEach(function(a) { 8822 return _this.tfm[a] = _get(target, a); 8823 }) : this.tfm[property] = cache.x ? cache[property] : _get(target, property); 8824 property === _transformOriginProp && (this.tfm.zOrigin = cache.zOrigin); 8825 } else { 8826 return _propertyAliases.transform.split(",").forEach(function(p) { 8827 return _saveStyle2.call(_this, p, isNotCSS); 8828 }); 8829 } 8830 if (this.props.indexOf(_transformProp) >= 0) { 8831 return; 8832 } 8833 if (cache.svg) { 8834 this.svgo = target.getAttribute("data-svg-origin"); 8835 this.props.push(_transformOriginProp, isNotCSS, ""); 8836 } 8837 property = _transformProp; 8838 } 8839 (style || isNotCSS) && this.props.push(property, isNotCSS, style[property]); 8840 }, "_saveStyle"); 8841 var _removeIndependentTransforms = /* @__PURE__ */ __name(function _removeIndependentTransforms2(style) { 8842 if (style.translate) { 8843 style.removeProperty("translate"); 8844 style.removeProperty("scale"); 8845 style.removeProperty("rotate"); 8846 } 8847 }, "_removeIndependentTransforms"); 8848 var _revertStyle = /* @__PURE__ */ __name(function _revertStyle2() { 8849 var props = this.props, target = this.target, style = target.style, cache = target._gsap, i, p; 8850 for (i = 0; i < props.length; i += 3) { 8851 if (!props[i + 1]) { 8852 props[i + 2] ? style[props[i]] = props[i + 2] : style.removeProperty(props[i].substr(0, 2) === "--" ? props[i] : props[i].replace(_capsExp, "-$1").toLowerCase()); 8853 } else if (props[i + 1] === 2) { 8854 target[props[i]](props[i + 2]); 8855 } else { 8856 target[props[i]] = props[i + 2]; 8857 } 8858 } 8859 if (this.tfm) { 8860 for (p in this.tfm) { 8861 cache[p] = this.tfm[p]; 8862 } 8863 if (cache.svg) { 8864 cache.renderTransform(); 8865 target.setAttribute("data-svg-origin", this.svgo || ""); 8866 } 8867 i = _reverting2(); 8868 if ((!i || !i.isStart) && !style[_transformProp]) { 8869 _removeIndependentTransforms(style); 8870 if (cache.zOrigin && style[_transformOriginProp]) { 8871 style[_transformOriginProp] += " " + cache.zOrigin + "px"; 8872 cache.zOrigin = 0; 8873 cache.renderTransform(); 8874 } 8875 cache.uncache = 1; 8876 } 8877 } 8878 }, "_revertStyle"); 8879 var _getStyleSaver = /* @__PURE__ */ __name(function _getStyleSaver2(target, properties) { 8880 var saver = { 8881 target, 8882 props: [], 8883 revert: _revertStyle, 8884 save: _saveStyle 8885 }; 8886 target._gsap || gsap.core.getCache(target); 8887 properties && target.style && target.nodeType && properties.split(",").forEach(function(p) { 8888 return saver.save(p); 8889 }); 8890 return saver; 8891 }, "_getStyleSaver"); 8892 var _supports3D; 8893 var _createElement = /* @__PURE__ */ __name(function _createElement2(type, ns) { 8894 var e = _doc2.createElementNS ? _doc2.createElementNS((ns || "http://www.w3.org/1999/xhtml").replace(/^https/, "http"), type) : _doc2.createElement(type); 8895 return e && e.style ? e : _doc2.createElement(type); 8896 }, "_createElement"); 8897 var _getComputedProperty = /* @__PURE__ */ __name(function _getComputedProperty2(target, property, skipPrefixFallback) { 8898 var cs = getComputedStyle(target); 8899 return cs[property] || cs.getPropertyValue(property.replace(_capsExp, "-$1").toLowerCase()) || cs.getPropertyValue(property) || !skipPrefixFallback && _getComputedProperty2(target, _checkPropPrefix(property) || property, 1) || ""; 8900 }, "_getComputedProperty"); 8901 var _prefixes = "O,Moz,ms,Ms,Webkit".split(","); 8902 var _checkPropPrefix = /* @__PURE__ */ __name(function _checkPropPrefix2(property, element, preferPrefix) { 8903 var e = element || _tempDiv, s = e.style, i = 5; 8904 if (property in s && !preferPrefix) { 8905 return property; 8906 } 8907 property = property.charAt(0).toUpperCase() + property.substr(1); 8908 while (i-- && !(_prefixes[i] + property in s)) { 8909 } 8910 return i < 0 ? null : (i === 3 ? "ms" : i >= 0 ? _prefixes[i] : "") + property; 8911 }, "_checkPropPrefix"); 8912 var _initCore = /* @__PURE__ */ __name(function _initCore2() { 8913 if (_windowExists3() && window.document) { 8914 _win2 = window; 8915 _doc2 = _win2.document; 8916 _docElement = _doc2.documentElement; 8917 _tempDiv = _createElement("div") || { 8918 style: {} 8919 }; 8920 _tempDivStyler = _createElement("div"); 8921 _transformProp = _checkPropPrefix(_transformProp); 8922 _transformOriginProp = _transformProp + "Origin"; 8923 _tempDiv.style.cssText = "border-width:0;line-height:0;position:absolute;padding:0"; 8924 _supports3D = !!_checkPropPrefix("perspective"); 8925 _reverting2 = gsap.core.reverting; 8926 _pluginInitted = 1; 8927 } 8928 }, "_initCore"); 8929 var _getReparentedCloneBBox = /* @__PURE__ */ __name(function _getReparentedCloneBBox2(target) { 8930 var owner = target.ownerSVGElement, svg = _createElement("svg", owner && owner.getAttribute("xmlns") || "http://www.w3.org/2000/svg"), clone = target.cloneNode(true), bbox; 8931 clone.style.display = "block"; 8932 svg.appendChild(clone); 8933 _docElement.appendChild(svg); 8934 try { 8935 bbox = clone.getBBox(); 8936 } catch (e) { 8937 } 8938 svg.removeChild(clone); 8939 _docElement.removeChild(svg); 8940 return bbox; 8941 }, "_getReparentedCloneBBox"); 8942 var _getAttributeFallbacks = /* @__PURE__ */ __name(function _getAttributeFallbacks2(target, attributesArray) { 8943 var i = attributesArray.length; 8944 while (i--) { 8945 if (target.hasAttribute(attributesArray[i])) { 8946 return target.getAttribute(attributesArray[i]); 8947 } 8948 } 8949 }, "_getAttributeFallbacks"); 8950 var _getBBox = /* @__PURE__ */ __name(function _getBBox2(target) { 8951 var bounds, cloned; 8952 try { 8953 bounds = target.getBBox(); 8954 } catch (error) { 8955 bounds = _getReparentedCloneBBox(target); 8956 cloned = 1; 8957 } 8958 bounds && (bounds.width || bounds.height) || cloned || (bounds = _getReparentedCloneBBox(target)); 8959 return bounds && !bounds.width && !bounds.x && !bounds.y ? { 8960 x: +_getAttributeFallbacks(target, ["x", "cx", "x1"]) || 0, 8961 y: +_getAttributeFallbacks(target, ["y", "cy", "y1"]) || 0, 8962 width: 0, 8963 height: 0 8964 } : bounds; 8965 }, "_getBBox"); 8966 var _isSVG = /* @__PURE__ */ __name(function _isSVG2(e) { 8967 return !!(e.getCTM && (!e.parentNode || e.ownerSVGElement) && _getBBox(e)); 8968 }, "_isSVG"); 8969 var _removeProperty = /* @__PURE__ */ __name(function _removeProperty2(target, property) { 8970 if (property) { 8971 var style = target.style, first2Chars; 8972 if (property in _transformProps && property !== _transformOriginProp) { 8973 property = _transformProp; 8974 } 8975 if (style.removeProperty) { 8976 first2Chars = property.substr(0, 2); 8977 if (first2Chars === "ms" || property.substr(0, 6) === "webkit") { 8978 property = "-" + property; 8979 } 8980 style.removeProperty(first2Chars === "--" ? property : property.replace(_capsExp, "-$1").toLowerCase()); 8981 } else { 8982 style.removeAttribute(property); 8983 } 8984 } 8985 }, "_removeProperty"); 8986 var _addNonTweeningPT = /* @__PURE__ */ __name(function _addNonTweeningPT2(plugin, target, property, beginning, end, onlySetAtEnd) { 8987 var pt = new PropTween(plugin._pt, target, property, 0, 1, onlySetAtEnd ? _renderNonTweeningValueOnlyAtEnd : _renderNonTweeningValue); 8988 plugin._pt = pt; 8989 pt.b = beginning; 8990 pt.e = end; 8991 plugin._props.push(property); 8992 return pt; 8993 }, "_addNonTweeningPT"); 8994 var _nonConvertibleUnits = { 8995 deg: 1, 8996 rad: 1, 8997 turn: 1 8998 }; 8999 var _nonStandardLayouts = { 9000 grid: 1, 9001 flex: 1 9002 }; 9003 var _convertToUnit = /* @__PURE__ */ __name(function _convertToUnit2(target, property, value, unit) { 9004 var curValue = parseFloat(value) || 0, curUnit = (value + "").trim().substr((curValue + "").length) || "px", style = _tempDiv.style, horizontal = _horizontalExp.test(property), isRootSVG = target.tagName.toLowerCase() === "svg", measureProperty = (isRootSVG ? "client" : "offset") + (horizontal ? "Width" : "Height"), amount = 100, toPixels = unit === "px", toPercent = unit === "%", px, parent, cache, isSVG; 9005 if (unit === curUnit || !curValue || _nonConvertibleUnits[unit] || _nonConvertibleUnits[curUnit]) { 9006 return curValue; 9007 } 9008 curUnit !== "px" && !toPixels && (curValue = _convertToUnit2(target, property, value, "px")); 9009 isSVG = target.getCTM && _isSVG(target); 9010 if ((toPercent || curUnit === "%") && (_transformProps[property] || ~property.indexOf("adius"))) { 9011 px = isSVG ? target.getBBox()[horizontal ? "width" : "height"] : target[measureProperty]; 9012 return _round(toPercent ? curValue / px * amount : curValue / 100 * px); 9013 } 9014 style[horizontal ? "width" : "height"] = amount + (toPixels ? curUnit : unit); 9015 parent = unit !== "rem" && ~property.indexOf("adius") || unit === "em" && target.appendChild && !isRootSVG ? target : target.parentNode; 9016 if (isSVG) { 9017 parent = (target.ownerSVGElement || {}).parentNode; 9018 } 9019 if (!parent || parent === _doc2 || !parent.appendChild) { 9020 parent = _doc2.body; 9021 } 9022 cache = parent._gsap; 9023 if (cache && toPercent && cache.width && horizontal && cache.time === _ticker.time && !cache.uncache) { 9024 return _round(curValue / cache.width * amount); 9025 } else { 9026 if (toPercent && (property === "height" || property === "width")) { 9027 var v = target.style[property]; 9028 target.style[property] = amount + unit; 9029 px = target[measureProperty]; 9030 v ? target.style[property] = v : _removeProperty(target, property); 9031 } else { 9032 (toPercent || curUnit === "%") && !_nonStandardLayouts[_getComputedProperty(parent, "display")] && (style.position = _getComputedProperty(target, "position")); 9033 parent === target && (style.position = "static"); 9034 parent.appendChild(_tempDiv); 9035 px = _tempDiv[measureProperty]; 9036 parent.removeChild(_tempDiv); 9037 style.position = "absolute"; 9038 } 9039 if (horizontal && toPercent) { 9040 cache = _getCache(parent); 9041 cache.time = _ticker.time; 9042 cache.width = parent[measureProperty]; 9043 } 9044 } 9045 return _round(toPixels ? px * curValue / amount : px && curValue ? amount / px * curValue : 0); 9046 }, "_convertToUnit"); 9047 var _get = /* @__PURE__ */ __name(function _get2(target, property, unit, uncache) { 9048 var value; 9049 _pluginInitted || _initCore(); 9050 if (property in _propertyAliases && property !== "transform") { 9051 property = _propertyAliases[property]; 9052 if (~property.indexOf(",")) { 9053 property = property.split(",")[0]; 9054 } 9055 } 9056 if (_transformProps[property] && property !== "transform") { 9057 value = _parseTransform(target, uncache); 9058 value = property !== "transformOrigin" ? value[property] : value.svg ? value.origin : _firstTwoOnly(_getComputedProperty(target, _transformOriginProp)) + " " + value.zOrigin + "px"; 9059 } else { 9060 value = target.style[property]; 9061 if (!value || value === "auto" || uncache || ~(value + "").indexOf("calc(")) { 9062 value = _specialProps[property] && _specialProps[property](target, property, unit) || _getComputedProperty(target, property) || _getProperty(target, property) || (property === "opacity" ? 1 : 0); 9063 } 9064 } 9065 return unit && !~(value + "").trim().indexOf(" ") ? _convertToUnit(target, property, value, unit) + unit : value; 9066 }, "_get"); 9067 var _tweenComplexCSSString = /* @__PURE__ */ __name(function _tweenComplexCSSString2(target, prop, start, end) { 9068 if (!start || start === "none") { 9069 var p = _checkPropPrefix(prop, target, 1), s = p && _getComputedProperty(target, p, 1); 9070 if (s && s !== start) { 9071 prop = p; 9072 start = s; 9073 } else if (prop === "borderColor") { 9074 start = _getComputedProperty(target, "borderTopColor"); 9075 } 9076 } 9077 var pt = new PropTween(this._pt, target.style, prop, 0, 1, _renderComplexString), index = 0, matchIndex = 0, a, result, startValues, startNum, color, startValue, endValue, endNum, chunk, endUnit, startUnit, endValues; 9078 pt.b = start; 9079 pt.e = end; 9080 start += ""; 9081 end += ""; 9082 if (end.substring(0, 6) === "var(--") { 9083 end = _getComputedProperty(target, end.substring(4, end.indexOf(")"))); 9084 } 9085 if (end === "auto") { 9086 startValue = target.style[prop]; 9087 target.style[prop] = end; 9088 end = _getComputedProperty(target, prop) || end; 9089 startValue ? target.style[prop] = startValue : _removeProperty(target, prop); 9090 } 9091 a = [start, end]; 9092 _colorStringFilter(a); 9093 start = a[0]; 9094 end = a[1]; 9095 startValues = start.match(_numWithUnitExp) || []; 9096 endValues = end.match(_numWithUnitExp) || []; 9097 if (endValues.length) { 9098 while (result = _numWithUnitExp.exec(end)) { 9099 endValue = result[0]; 9100 chunk = end.substring(index, result.index); 9101 if (color) { 9102 color = (color + 1) % 5; 9103 } else if (chunk.substr(-5) === "rgba(" || chunk.substr(-5) === "hsla(") { 9104 color = 1; 9105 } 9106 if (endValue !== (startValue = startValues[matchIndex++] || "")) { 9107 startNum = parseFloat(startValue) || 0; 9108 startUnit = startValue.substr((startNum + "").length); 9109 endValue.charAt(1) === "=" && (endValue = _parseRelative(startNum, endValue) + startUnit); 9110 endNum = parseFloat(endValue); 9111 endUnit = endValue.substr((endNum + "").length); 9112 index = _numWithUnitExp.lastIndex - endUnit.length; 9113 if (!endUnit) { 9114 endUnit = endUnit || _config.units[prop] || startUnit; 9115 if (index === end.length) { 9116 end += endUnit; 9117 pt.e += endUnit; 9118 } 9119 } 9120 if (startUnit !== endUnit) { 9121 startNum = _convertToUnit(target, prop, startValue, endUnit) || 0; 9122 } 9123 pt._pt = { 9124 _next: pt._pt, 9125 p: chunk || matchIndex === 1 ? chunk : ",", 9126 //note: SVG spec allows omission of comma/space when a negative sign is wedged between two numbers, like 2.5-5.3 instead of 2.5,-5.3 but when tweening, the negative value may switch to positive, so we insert the comma just in case. 9127 s: startNum, 9128 c: endNum - startNum, 9129 m: color && color < 4 || prop === "zIndex" ? Math.round : 0 9130 }; 9131 } 9132 } 9133 pt.c = index < end.length ? end.substring(index, end.length) : ""; 9134 } else { 9135 pt.r = prop === "display" && end === "none" ? _renderNonTweeningValueOnlyAtEnd : _renderNonTweeningValue; 9136 } 9137 _relExp.test(end) && (pt.e = 0); 9138 this._pt = pt; 9139 return pt; 9140 }, "_tweenComplexCSSString"); 9141 var _keywordToPercent = { 9142 top: "0%", 9143 bottom: "100%", 9144 left: "0%", 9145 right: "100%", 9146 center: "50%" 9147 }; 9148 var _convertKeywordsToPercentages = /* @__PURE__ */ __name(function _convertKeywordsToPercentages2(value) { 9149 var split = value.split(" "), x = split[0], y = split[1] || "50%"; 9150 if (x === "top" || x === "bottom" || y === "left" || y === "right") { 9151 value = x; 9152 x = y; 9153 y = value; 9154 } 9155 split[0] = _keywordToPercent[x] || x; 9156 split[1] = _keywordToPercent[y] || y; 9157 return split.join(" "); 9158 }, "_convertKeywordsToPercentages"); 9159 var _renderClearProps = /* @__PURE__ */ __name(function _renderClearProps2(ratio, data) { 9160 if (data.tween && data.tween._time === data.tween._dur) { 9161 var target = data.t, style = target.style, props = data.u, cache = target._gsap, prop, clearTransforms, i; 9162 if (props === "all" || props === true) { 9163 style.cssText = ""; 9164 clearTransforms = 1; 9165 } else { 9166 props = props.split(","); 9167 i = props.length; 9168 while (--i > -1) { 9169 prop = props[i]; 9170 if (_transformProps[prop]) { 9171 clearTransforms = 1; 9172 prop = prop === "transformOrigin" ? _transformOriginProp : _transformProp; 9173 } 9174 _removeProperty(target, prop); 9175 } 9176 } 9177 if (clearTransforms) { 9178 _removeProperty(target, _transformProp); 9179 if (cache) { 9180 cache.svg && target.removeAttribute("transform"); 9181 style.scale = style.rotate = style.translate = "none"; 9182 _parseTransform(target, 1); 9183 cache.uncache = 1; 9184 _removeIndependentTransforms(style); 9185 } 9186 } 9187 } 9188 }, "_renderClearProps"); 9189 var _specialProps = { 9190 clearProps: /* @__PURE__ */ __name(function clearProps(plugin, target, property, endValue, tween) { 9191 if (tween.data !== "isFromStart") { 9192 var pt = plugin._pt = new PropTween(plugin._pt, target, property, 0, 0, _renderClearProps); 9193 pt.u = endValue; 9194 pt.pr = -10; 9195 pt.tween = tween; 9196 plugin._props.push(property); 9197 return 1; 9198 } 9199 }, "clearProps") 9200 /* className feature (about 0.4kb gzipped). 9201 , className(plugin, target, property, endValue, tween) { 9202 let _renderClassName = (ratio, data) => { 9203 data.css.render(ratio, data.css); 9204 if (!ratio || ratio === 1) { 9205 let inline = data.rmv, 9206 target = data.t, 9207 p; 9208 target.setAttribute("class", ratio ? data.e : data.b); 9209 for (p in inline) { 9210 _removeProperty(target, p); 9211 } 9212 } 9213 }, 9214 _getAllStyles = (target) => { 9215 let styles = {}, 9216 computed = getComputedStyle(target), 9217 p; 9218 for (p in computed) { 9219 if (isNaN(p) && p !== "cssText" && p !== "length") { 9220 styles[p] = computed[p]; 9221 } 9222 } 9223 _setDefaults(styles, _parseTransform(target, 1)); 9224 return styles; 9225 }, 9226 startClassList = target.getAttribute("class"), 9227 style = target.style, 9228 cssText = style.cssText, 9229 cache = target._gsap, 9230 classPT = cache.classPT, 9231 inlineToRemoveAtEnd = {}, 9232 data = {t:target, plugin:plugin, rmv:inlineToRemoveAtEnd, b:startClassList, e:(endValue.charAt(1) !== "=") ? endValue : startClassList.replace(new RegExp("(?:\\s|^)" + endValue.substr(2) + "(?![\\w-])"), "") + ((endValue.charAt(0) === "+") ? " " + endValue.substr(2) : "")}, 9233 changingVars = {}, 9234 startVars = _getAllStyles(target), 9235 transformRelated = /(transform|perspective)/i, 9236 endVars, p; 9237 if (classPT) { 9238 classPT.r(1, classPT.d); 9239 _removeLinkedListItem(classPT.d.plugin, classPT, "_pt"); 9240 } 9241 target.setAttribute("class", data.e); 9242 endVars = _getAllStyles(target, true); 9243 target.setAttribute("class", startClassList); 9244 for (p in endVars) { 9245 if (endVars[p] !== startVars[p] && !transformRelated.test(p)) { 9246 changingVars[p] = endVars[p]; 9247 if (!style[p] && style[p] !== "0") { 9248 inlineToRemoveAtEnd[p] = 1; 9249 } 9250 } 9251 } 9252 cache.classPT = plugin._pt = new PropTween(plugin._pt, target, "className", 0, 0, _renderClassName, data, 0, -11); 9253 if (style.cssText !== cssText) { //only apply if things change. Otherwise, in cases like a background-image that's pulled dynamically, it could cause a refresh. See https://gsap.com/forums/topic/20368-possible-gsap-bug-switching-classnames-in-chrome/. 9254 style.cssText = cssText; //we recorded cssText before we swapped classes and ran _getAllStyles() because in cases when a className tween is overwritten, we remove all the related tweening properties from that class change (otherwise class-specific stuff can't override properties we've directly set on the target's style object due to specificity). 9255 } 9256 _parseTransform(target, true); //to clear the caching of transforms 9257 data.css = new gsap.plugins.css(); 9258 data.css.init(target, changingVars, tween); 9259 plugin._props.push(...data.css._props); 9260 return 1; 9261 } 9262 */ 9263 }; 9264 var _identity2DMatrix = [1, 0, 0, 1, 0, 0]; 9265 var _rotationalProperties = {}; 9266 var _isNullTransform = /* @__PURE__ */ __name(function _isNullTransform2(value) { 9267 return value === "matrix(1, 0, 0, 1, 0, 0)" || value === "none" || !value; 9268 }, "_isNullTransform"); 9269 var _getComputedTransformMatrixAsArray = /* @__PURE__ */ __name(function _getComputedTransformMatrixAsArray2(target) { 9270 var matrixString = _getComputedProperty(target, _transformProp); 9271 return _isNullTransform(matrixString) ? _identity2DMatrix : matrixString.substr(7).match(_numExp).map(_round); 9272 }, "_getComputedTransformMatrixAsArray"); 9273 var _getMatrix = /* @__PURE__ */ __name(function _getMatrix2(target, force2D) { 9274 var cache = target._gsap || _getCache(target), style = target.style, matrix = _getComputedTransformMatrixAsArray(target), parent, nextSibling, temp, addedToDOM; 9275 if (cache.svg && target.getAttribute("transform")) { 9276 temp = target.transform.baseVal.consolidate().matrix; 9277 matrix = [temp.a, temp.b, temp.c, temp.d, temp.e, temp.f]; 9278 return matrix.join(",") === "1,0,0,1,0,0" ? _identity2DMatrix : matrix; 9279 } else if (matrix === _identity2DMatrix && !target.offsetParent && target !== _docElement && !cache.svg) { 9280 temp = style.display; 9281 style.display = "block"; 9282 parent = target.parentNode; 9283 if (!parent || !target.offsetParent && !target.getBoundingClientRect().width) { 9284 addedToDOM = 1; 9285 nextSibling = target.nextElementSibling; 9286 _docElement.appendChild(target); 9287 } 9288 matrix = _getComputedTransformMatrixAsArray(target); 9289 temp ? style.display = temp : _removeProperty(target, "display"); 9290 if (addedToDOM) { 9291 nextSibling ? parent.insertBefore(target, nextSibling) : parent ? parent.appendChild(target) : _docElement.removeChild(target); 9292 } 9293 } 9294 return force2D && matrix.length > 6 ? [matrix[0], matrix[1], matrix[4], matrix[5], matrix[12], matrix[13]] : matrix; 9295 }, "_getMatrix"); 9296 var _applySVGOrigin = /* @__PURE__ */ __name(function _applySVGOrigin2(target, origin, originIsAbsolute, smooth, matrixArray, pluginToAddPropTweensTo) { 9297 var cache = target._gsap, matrix = matrixArray || _getMatrix(target, true), xOriginOld = cache.xOrigin || 0, yOriginOld = cache.yOrigin || 0, xOffsetOld = cache.xOffset || 0, yOffsetOld = cache.yOffset || 0, a = matrix[0], b = matrix[1], c = matrix[2], d = matrix[3], tx = matrix[4], ty = matrix[5], originSplit = origin.split(" "), xOrigin = parseFloat(originSplit[0]) || 0, yOrigin = parseFloat(originSplit[1]) || 0, bounds, determinant, x, y; 9298 if (!originIsAbsolute) { 9299 bounds = _getBBox(target); 9300 xOrigin = bounds.x + (~originSplit[0].indexOf("%") ? xOrigin / 100 * bounds.width : xOrigin); 9301 yOrigin = bounds.y + (~(originSplit[1] || originSplit[0]).indexOf("%") ? yOrigin / 100 * bounds.height : yOrigin); 9302 } else if (matrix !== _identity2DMatrix && (determinant = a * d - b * c)) { 9303 x = xOrigin * (d / determinant) + yOrigin * (-c / determinant) + (c * ty - d * tx) / determinant; 9304 y = xOrigin * (-b / determinant) + yOrigin * (a / determinant) - (a * ty - b * tx) / determinant; 9305 xOrigin = x; 9306 yOrigin = y; 9307 } 9308 if (smooth || smooth !== false && cache.smooth) { 9309 tx = xOrigin - xOriginOld; 9310 ty = yOrigin - yOriginOld; 9311 cache.xOffset = xOffsetOld + (tx * a + ty * c) - tx; 9312 cache.yOffset = yOffsetOld + (tx * b + ty * d) - ty; 9313 } else { 9314 cache.xOffset = cache.yOffset = 0; 9315 } 9316 cache.xOrigin = xOrigin; 9317 cache.yOrigin = yOrigin; 9318 cache.smooth = !!smooth; 9319 cache.origin = origin; 9320 cache.originIsAbsolute = !!originIsAbsolute; 9321 target.style[_transformOriginProp] = "0px 0px"; 9322 if (pluginToAddPropTweensTo) { 9323 _addNonTweeningPT(pluginToAddPropTweensTo, cache, "xOrigin", xOriginOld, xOrigin); 9324 _addNonTweeningPT(pluginToAddPropTweensTo, cache, "yOrigin", yOriginOld, yOrigin); 9325 _addNonTweeningPT(pluginToAddPropTweensTo, cache, "xOffset", xOffsetOld, cache.xOffset); 9326 _addNonTweeningPT(pluginToAddPropTweensTo, cache, "yOffset", yOffsetOld, cache.yOffset); 9327 } 9328 target.setAttribute("data-svg-origin", xOrigin + " " + yOrigin); 9329 }, "_applySVGOrigin"); 9330 var _parseTransform = /* @__PURE__ */ __name(function _parseTransform2(target, uncache) { 9331 var cache = target._gsap || new GSCache(target); 9332 if ("x" in cache && !uncache && !cache.uncache) { 9333 return cache; 9334 } 9335 var style = target.style, invertedScaleX = cache.scaleX < 0, px = "px", deg = "deg", cs = getComputedStyle(target), origin = _getComputedProperty(target, _transformOriginProp) || "0", x, y, z, scaleX, scaleY, rotation, rotationX, rotationY, skewX, skewY, perspective, xOrigin, yOrigin, matrix, angle, cos, sin, a, b, c, d, a12, a22, t1, t2, t3, a13, a23, a33, a42, a43, a32; 9336 x = y = z = rotation = rotationX = rotationY = skewX = skewY = perspective = 0; 9337 scaleX = scaleY = 1; 9338 cache.svg = !!(target.getCTM && _isSVG(target)); 9339 if (cs.translate) { 9340 if (cs.translate !== "none" || cs.scale !== "none" || cs.rotate !== "none") { 9341 style[_transformProp] = (cs.translate !== "none" ? "translate3d(" + (cs.translate + " 0 0").split(" ").slice(0, 3).join(", ") + ") " : "") + (cs.rotate !== "none" ? "rotate(" + cs.rotate + ") " : "") + (cs.scale !== "none" ? "scale(" + cs.scale.split(" ").join(",") + ") " : "") + (cs[_transformProp] !== "none" ? cs[_transformProp] : ""); 9342 } 9343 style.scale = style.rotate = style.translate = "none"; 9344 } 9345 matrix = _getMatrix(target, cache.svg); 9346 if (cache.svg) { 9347 if (cache.uncache) { 9348 t2 = target.getBBox(); 9349 origin = cache.xOrigin - t2.x + "px " + (cache.yOrigin - t2.y) + "px"; 9350 t1 = ""; 9351 } else { 9352 t1 = !uncache && target.getAttribute("data-svg-origin"); 9353 } 9354 _applySVGOrigin(target, t1 || origin, !!t1 || cache.originIsAbsolute, cache.smooth !== false, matrix); 9355 } 9356 xOrigin = cache.xOrigin || 0; 9357 yOrigin = cache.yOrigin || 0; 9358 if (matrix !== _identity2DMatrix) { 9359 a = matrix[0]; 9360 b = matrix[1]; 9361 c = matrix[2]; 9362 d = matrix[3]; 9363 x = a12 = matrix[4]; 9364 y = a22 = matrix[5]; 9365 if (matrix.length === 6) { 9366 scaleX = Math.sqrt(a * a + b * b); 9367 scaleY = Math.sqrt(d * d + c * c); 9368 rotation = a || b ? _atan2(b, a) * _RAD2DEG : 0; 9369 skewX = c || d ? _atan2(c, d) * _RAD2DEG + rotation : 0; 9370 skewX && (scaleY *= Math.abs(Math.cos(skewX * _DEG2RAD))); 9371 if (cache.svg) { 9372 x -= xOrigin - (xOrigin * a + yOrigin * c); 9373 y -= yOrigin - (xOrigin * b + yOrigin * d); 9374 } 9375 } else { 9376 a32 = matrix[6]; 9377 a42 = matrix[7]; 9378 a13 = matrix[8]; 9379 a23 = matrix[9]; 9380 a33 = matrix[10]; 9381 a43 = matrix[11]; 9382 x = matrix[12]; 9383 y = matrix[13]; 9384 z = matrix[14]; 9385 angle = _atan2(a32, a33); 9386 rotationX = angle * _RAD2DEG; 9387 if (angle) { 9388 cos = Math.cos(-angle); 9389 sin = Math.sin(-angle); 9390 t1 = a12 * cos + a13 * sin; 9391 t2 = a22 * cos + a23 * sin; 9392 t3 = a32 * cos + a33 * sin; 9393 a13 = a12 * -sin + a13 * cos; 9394 a23 = a22 * -sin + a23 * cos; 9395 a33 = a32 * -sin + a33 * cos; 9396 a43 = a42 * -sin + a43 * cos; 9397 a12 = t1; 9398 a22 = t2; 9399 a32 = t3; 9400 } 9401 angle = _atan2(-c, a33); 9402 rotationY = angle * _RAD2DEG; 9403 if (angle) { 9404 cos = Math.cos(-angle); 9405 sin = Math.sin(-angle); 9406 t1 = a * cos - a13 * sin; 9407 t2 = b * cos - a23 * sin; 9408 t3 = c * cos - a33 * sin; 9409 a43 = d * sin + a43 * cos; 9410 a = t1; 9411 b = t2; 9412 c = t3; 9413 } 9414 angle = _atan2(b, a); 9415 rotation = angle * _RAD2DEG; 9416 if (angle) { 9417 cos = Math.cos(angle); 9418 sin = Math.sin(angle); 9419 t1 = a * cos + b * sin; 9420 t2 = a12 * cos + a22 * sin; 9421 b = b * cos - a * sin; 9422 a22 = a22 * cos - a12 * sin; 9423 a = t1; 9424 a12 = t2; 9425 } 9426 if (rotationX && Math.abs(rotationX) + Math.abs(rotation) > 359.9) { 9427 rotationX = rotation = 0; 9428 rotationY = 180 - rotationY; 9429 } 9430 scaleX = _round(Math.sqrt(a * a + b * b + c * c)); 9431 scaleY = _round(Math.sqrt(a22 * a22 + a32 * a32)); 9432 angle = _atan2(a12, a22); 9433 skewX = Math.abs(angle) > 2e-4 ? angle * _RAD2DEG : 0; 9434 perspective = a43 ? 1 / (a43 < 0 ? -a43 : a43) : 0; 9435 } 9436 if (cache.svg) { 9437 t1 = target.getAttribute("transform"); 9438 cache.forceCSS = target.setAttribute("transform", "") || !_isNullTransform(_getComputedProperty(target, _transformProp)); 9439 t1 && target.setAttribute("transform", t1); 9440 } 9441 } 9442 if (Math.abs(skewX) > 90 && Math.abs(skewX) < 270) { 9443 if (invertedScaleX) { 9444 scaleX *= -1; 9445 skewX += rotation <= 0 ? 180 : -180; 9446 rotation += rotation <= 0 ? 180 : -180; 9447 } else { 9448 scaleY *= -1; 9449 skewX += skewX <= 0 ? 180 : -180; 9450 } 9451 } 9452 uncache = uncache || cache.uncache; 9453 cache.x = x - ((cache.xPercent = x && (!uncache && cache.xPercent || (Math.round(target.offsetWidth / 2) === Math.round(-x) ? -50 : 0))) ? target.offsetWidth * cache.xPercent / 100 : 0) + px; 9454 cache.y = y - ((cache.yPercent = y && (!uncache && cache.yPercent || (Math.round(target.offsetHeight / 2) === Math.round(-y) ? -50 : 0))) ? target.offsetHeight * cache.yPercent / 100 : 0) + px; 9455 cache.z = z + px; 9456 cache.scaleX = _round(scaleX); 9457 cache.scaleY = _round(scaleY); 9458 cache.rotation = _round(rotation) + deg; 9459 cache.rotationX = _round(rotationX) + deg; 9460 cache.rotationY = _round(rotationY) + deg; 9461 cache.skewX = skewX + deg; 9462 cache.skewY = skewY + deg; 9463 cache.transformPerspective = perspective + px; 9464 if (cache.zOrigin = parseFloat(origin.split(" ")[2]) || !uncache && cache.zOrigin || 0) { 9465 style[_transformOriginProp] = _firstTwoOnly(origin); 9466 } 9467 cache.xOffset = cache.yOffset = 0; 9468 cache.force3D = _config.force3D; 9469 cache.renderTransform = cache.svg ? _renderSVGTransforms : _supports3D ? _renderCSSTransforms : _renderNon3DTransforms; 9470 cache.uncache = 0; 9471 return cache; 9472 }, "_parseTransform"); 9473 var _firstTwoOnly = /* @__PURE__ */ __name(function _firstTwoOnly2(value) { 9474 return (value = value.split(" "))[0] + " " + value[1]; 9475 }, "_firstTwoOnly"); 9476 var _addPxTranslate = /* @__PURE__ */ __name(function _addPxTranslate2(target, start, value) { 9477 var unit = getUnit(start); 9478 return _round(parseFloat(start) + parseFloat(_convertToUnit(target, "x", value + "px", unit))) + unit; 9479 }, "_addPxTranslate"); 9480 var _renderNon3DTransforms = /* @__PURE__ */ __name(function _renderNon3DTransforms2(ratio, cache) { 9481 cache.z = "0px"; 9482 cache.rotationY = cache.rotationX = "0deg"; 9483 cache.force3D = 0; 9484 _renderCSSTransforms(ratio, cache); 9485 }, "_renderNon3DTransforms"); 9486 var _zeroDeg = "0deg"; 9487 var _zeroPx = "0px"; 9488 var _endParenthesis = ") "; 9489 var _renderCSSTransforms = /* @__PURE__ */ __name(function _renderCSSTransforms2(ratio, cache) { 9490 var _ref = cache || this, xPercent = _ref.xPercent, yPercent = _ref.yPercent, x = _ref.x, y = _ref.y, z = _ref.z, rotation = _ref.rotation, rotationY = _ref.rotationY, rotationX = _ref.rotationX, skewX = _ref.skewX, skewY = _ref.skewY, scaleX = _ref.scaleX, scaleY = _ref.scaleY, transformPerspective = _ref.transformPerspective, force3D = _ref.force3D, target = _ref.target, zOrigin = _ref.zOrigin, transforms = "", use3D = force3D === "auto" && ratio && ratio !== 1 || force3D === true; 9491 if (zOrigin && (rotationX !== _zeroDeg || rotationY !== _zeroDeg)) { 9492 var angle = parseFloat(rotationY) * _DEG2RAD, a13 = Math.sin(angle), a33 = Math.cos(angle), cos; 9493 angle = parseFloat(rotationX) * _DEG2RAD; 9494 cos = Math.cos(angle); 9495 x = _addPxTranslate(target, x, a13 * cos * -zOrigin); 9496 y = _addPxTranslate(target, y, -Math.sin(angle) * -zOrigin); 9497 z = _addPxTranslate(target, z, a33 * cos * -zOrigin + zOrigin); 9498 } 9499 if (transformPerspective !== _zeroPx) { 9500 transforms += "perspective(" + transformPerspective + _endParenthesis; 9501 } 9502 if (xPercent || yPercent) { 9503 transforms += "translate(" + xPercent + "%, " + yPercent + "%) "; 9504 } 9505 if (use3D || x !== _zeroPx || y !== _zeroPx || z !== _zeroPx) { 9506 transforms += z !== _zeroPx || use3D ? "translate3d(" + x + ", " + y + ", " + z + ") " : "translate(" + x + ", " + y + _endParenthesis; 9507 } 9508 if (rotation !== _zeroDeg) { 9509 transforms += "rotate(" + rotation + _endParenthesis; 9510 } 9511 if (rotationY !== _zeroDeg) { 9512 transforms += "rotateY(" + rotationY + _endParenthesis; 9513 } 9514 if (rotationX !== _zeroDeg) { 9515 transforms += "rotateX(" + rotationX + _endParenthesis; 9516 } 9517 if (skewX !== _zeroDeg || skewY !== _zeroDeg) { 9518 transforms += "skew(" + skewX + ", " + skewY + _endParenthesis; 9519 } 9520 if (scaleX !== 1 || scaleY !== 1) { 9521 transforms += "scale(" + scaleX + ", " + scaleY + _endParenthesis; 9522 } 9523 target.style[_transformProp] = transforms || "translate(0, 0)"; 9524 }, "_renderCSSTransforms"); 9525 var _renderSVGTransforms = /* @__PURE__ */ __name(function _renderSVGTransforms2(ratio, cache) { 9526 var _ref2 = cache || this, xPercent = _ref2.xPercent, yPercent = _ref2.yPercent, x = _ref2.x, y = _ref2.y, rotation = _ref2.rotation, skewX = _ref2.skewX, skewY = _ref2.skewY, scaleX = _ref2.scaleX, scaleY = _ref2.scaleY, target = _ref2.target, xOrigin = _ref2.xOrigin, yOrigin = _ref2.yOrigin, xOffset = _ref2.xOffset, yOffset = _ref2.yOffset, forceCSS = _ref2.forceCSS, tx = parseFloat(x), ty = parseFloat(y), a11, a21, a12, a22, temp; 9527 rotation = parseFloat(rotation); 9528 skewX = parseFloat(skewX); 9529 skewY = parseFloat(skewY); 9530 if (skewY) { 9531 skewY = parseFloat(skewY); 9532 skewX += skewY; 9533 rotation += skewY; 9534 } 9535 if (rotation || skewX) { 9536 rotation *= _DEG2RAD; 9537 skewX *= _DEG2RAD; 9538 a11 = Math.cos(rotation) * scaleX; 9539 a21 = Math.sin(rotation) * scaleX; 9540 a12 = Math.sin(rotation - skewX) * -scaleY; 9541 a22 = Math.cos(rotation - skewX) * scaleY; 9542 if (skewX) { 9543 skewY *= _DEG2RAD; 9544 temp = Math.tan(skewX - skewY); 9545 temp = Math.sqrt(1 + temp * temp); 9546 a12 *= temp; 9547 a22 *= temp; 9548 if (skewY) { 9549 temp = Math.tan(skewY); 9550 temp = Math.sqrt(1 + temp * temp); 9551 a11 *= temp; 9552 a21 *= temp; 9553 } 9554 } 9555 a11 = _round(a11); 9556 a21 = _round(a21); 9557 a12 = _round(a12); 9558 a22 = _round(a22); 9559 } else { 9560 a11 = scaleX; 9561 a22 = scaleY; 9562 a21 = a12 = 0; 9563 } 9564 if (tx && !~(x + "").indexOf("px") || ty && !~(y + "").indexOf("px")) { 9565 tx = _convertToUnit(target, "x", x, "px"); 9566 ty = _convertToUnit(target, "y", y, "px"); 9567 } 9568 if (xOrigin || yOrigin || xOffset || yOffset) { 9569 tx = _round(tx + xOrigin - (xOrigin * a11 + yOrigin * a12) + xOffset); 9570 ty = _round(ty + yOrigin - (xOrigin * a21 + yOrigin * a22) + yOffset); 9571 } 9572 if (xPercent || yPercent) { 9573 temp = target.getBBox(); 9574 tx = _round(tx + xPercent / 100 * temp.width); 9575 ty = _round(ty + yPercent / 100 * temp.height); 9576 } 9577 temp = "matrix(" + a11 + "," + a21 + "," + a12 + "," + a22 + "," + tx + "," + ty + ")"; 9578 target.setAttribute("transform", temp); 9579 forceCSS && (target.style[_transformProp] = temp); 9580 }, "_renderSVGTransforms"); 9581 var _addRotationalPropTween = /* @__PURE__ */ __name(function _addRotationalPropTween2(plugin, target, property, startNum, endValue) { 9582 var cap = 360, isString = _isString(endValue), endNum = parseFloat(endValue) * (isString && ~endValue.indexOf("rad") ? _RAD2DEG : 1), change = endNum - startNum, finalValue = startNum + change + "deg", direction, pt; 9583 if (isString) { 9584 direction = endValue.split("_")[1]; 9585 if (direction === "short") { 9586 change %= cap; 9587 if (change !== change % (cap / 2)) { 9588 change += change < 0 ? cap : -cap; 9589 } 9590 } 9591 if (direction === "cw" && change < 0) { 9592 change = (change + cap * _bigNum2) % cap - ~~(change / cap) * cap; 9593 } else if (direction === "ccw" && change > 0) { 9594 change = (change - cap * _bigNum2) % cap - ~~(change / cap) * cap; 9595 } 9596 } 9597 plugin._pt = pt = new PropTween(plugin._pt, target, property, startNum, change, _renderPropWithEnd); 9598 pt.e = finalValue; 9599 pt.u = "deg"; 9600 plugin._props.push(property); 9601 return pt; 9602 }, "_addRotationalPropTween"); 9603 var _assign = /* @__PURE__ */ __name(function _assign2(target, source) { 9604 for (var p in source) { 9605 target[p] = source[p]; 9606 } 9607 return target; 9608 }, "_assign"); 9609 var _addRawTransformPTs = /* @__PURE__ */ __name(function _addRawTransformPTs2(plugin, transforms, target) { 9610 var startCache = _assign({}, target._gsap), exclude = "perspective,force3D,transformOrigin,svgOrigin", style = target.style, endCache, p, startValue, endValue, startNum, endNum, startUnit, endUnit; 9611 if (startCache.svg) { 9612 startValue = target.getAttribute("transform"); 9613 target.setAttribute("transform", ""); 9614 style[_transformProp] = transforms; 9615 endCache = _parseTransform(target, 1); 9616 _removeProperty(target, _transformProp); 9617 target.setAttribute("transform", startValue); 9618 } else { 9619 startValue = getComputedStyle(target)[_transformProp]; 9620 style[_transformProp] = transforms; 9621 endCache = _parseTransform(target, 1); 9622 style[_transformProp] = startValue; 9623 } 9624 for (p in _transformProps) { 9625 startValue = startCache[p]; 9626 endValue = endCache[p]; 9627 if (startValue !== endValue && exclude.indexOf(p) < 0) { 9628 startUnit = getUnit(startValue); 9629 endUnit = getUnit(endValue); 9630 startNum = startUnit !== endUnit ? _convertToUnit(target, p, startValue, endUnit) : parseFloat(startValue); 9631 endNum = parseFloat(endValue); 9632 plugin._pt = new PropTween(plugin._pt, endCache, p, startNum, endNum - startNum, _renderCSSProp); 9633 plugin._pt.u = endUnit || 0; 9634 plugin._props.push(p); 9635 } 9636 } 9637 _assign(endCache, startCache); 9638 }, "_addRawTransformPTs"); 9639 _forEachName("padding,margin,Width,Radius", function(name, index) { 9640 var t = "Top", r = "Right", b = "Bottom", l = "Left", props = (index < 3 ? [t, r, b, l] : [t + l, t + r, b + r, b + l]).map(function(side) { 9641 return index < 2 ? name + side : "border" + side + name; 9642 }); 9643 _specialProps[index > 1 ? "border" + name : name] = function(plugin, target, property, endValue, tween) { 9644 var a, vars; 9645 if (arguments.length < 4) { 9646 a = props.map(function(prop) { 9647 return _get(plugin, prop, property); 9648 }); 9649 vars = a.join(" "); 9650 return vars.split(a[0]).length === 5 ? a[0] : vars; 9651 } 9652 a = (endValue + "").split(" "); 9653 vars = {}; 9654 props.forEach(function(prop, i) { 9655 return vars[prop] = a[i] = a[i] || a[(i - 1) / 2 | 0]; 9656 }); 9657 plugin.init(target, vars, tween); 9658 }; 9659 }); 9660 var CSSPlugin = { 9661 name: "css", 9662 register: _initCore, 9663 targetTest: /* @__PURE__ */ __name(function targetTest(target) { 9664 return target.style && target.nodeType; 9665 }, "targetTest"), 9666 init: /* @__PURE__ */ __name(function init4(target, vars, tween, index, targets) { 9667 var props = this._props, style = target.style, startAt = tween.vars.startAt, startValue, endValue, endNum, startNum, type, specialProp, p, startUnit, endUnit, relative, isTransformRelated, transformPropTween, cache, smooth, hasPriority, inlineProps, finalTransformValue; 9668 _pluginInitted || _initCore(); 9669 this.styles = this.styles || _getStyleSaver(target); 9670 inlineProps = this.styles.props; 9671 this.tween = tween; 9672 for (p in vars) { 9673 if (p === "autoRound") { 9674 continue; 9675 } 9676 endValue = vars[p]; 9677 if (_plugins[p] && _checkPlugin(p, vars, tween, index, target, targets)) { 9678 continue; 9679 } 9680 type = typeof endValue; 9681 specialProp = _specialProps[p]; 9682 if (type === "function") { 9683 endValue = endValue.call(tween, index, target, targets); 9684 type = typeof endValue; 9685 } 9686 if (type === "string" && ~endValue.indexOf("random(")) { 9687 endValue = _replaceRandom(endValue); 9688 } 9689 if (specialProp) { 9690 specialProp(this, target, p, endValue, tween) && (hasPriority = 1); 9691 } else if (p.substr(0, 2) === "--") { 9692 startValue = (getComputedStyle(target).getPropertyValue(p) + "").trim(); 9693 endValue += ""; 9694 _colorExp.lastIndex = 0; 9695 if (!_colorExp.test(startValue)) { 9696 startUnit = getUnit(startValue); 9697 endUnit = getUnit(endValue); 9698 endUnit ? startUnit !== endUnit && (startValue = _convertToUnit(target, p, startValue, endUnit) + endUnit) : startUnit && (endValue += startUnit); 9699 } 9700 this.add(style, "setProperty", startValue, endValue, index, targets, 0, 0, p); 9701 props.push(p); 9702 inlineProps.push(p, 0, style[p]); 9703 } else if (type !== "undefined") { 9704 if (startAt && p in startAt) { 9705 startValue = typeof startAt[p] === "function" ? startAt[p].call(tween, index, target, targets) : startAt[p]; 9706 _isString(startValue) && ~startValue.indexOf("random(") && (startValue = _replaceRandom(startValue)); 9707 getUnit(startValue + "") || startValue === "auto" || (startValue += _config.units[p] || getUnit(_get(target, p)) || ""); 9708 (startValue + "").charAt(1) === "=" && (startValue = _get(target, p)); 9709 } else { 9710 startValue = _get(target, p); 9711 } 9712 startNum = parseFloat(startValue); 9713 relative = type === "string" && endValue.charAt(1) === "=" && endValue.substr(0, 2); 9714 relative && (endValue = endValue.substr(2)); 9715 endNum = parseFloat(endValue); 9716 if (p in _propertyAliases) { 9717 if (p === "autoAlpha") { 9718 if (startNum === 1 && _get(target, "visibility") === "hidden" && endNum) { 9719 startNum = 0; 9720 } 9721 inlineProps.push("visibility", 0, style.visibility); 9722 _addNonTweeningPT(this, style, "visibility", startNum ? "inherit" : "hidden", endNum ? "inherit" : "hidden", !endNum); 9723 } 9724 if (p !== "scale" && p !== "transform") { 9725 p = _propertyAliases[p]; 9726 ~p.indexOf(",") && (p = p.split(",")[0]); 9727 } 9728 } 9729 isTransformRelated = p in _transformProps; 9730 if (isTransformRelated) { 9731 this.styles.save(p); 9732 finalTransformValue = endValue; 9733 if (type === "string" && endValue.substring(0, 6) === "var(--") { 9734 endValue = _getComputedProperty(target, endValue.substring(4, endValue.indexOf(")"))); 9735 if (endValue.substring(0, 5) === "calc(") { 9736 var origPerspective = target.style.perspective; 9737 target.style.perspective = endValue; 9738 endValue = _getComputedProperty(target, "perspective"); 9739 origPerspective ? target.style.perspective = origPerspective : _removeProperty(target, "perspective"); 9740 } 9741 endNum = parseFloat(endValue); 9742 } 9743 if (!transformPropTween) { 9744 cache = target._gsap; 9745 cache.renderTransform && !vars.parseTransform || _parseTransform(target, vars.parseTransform); 9746 smooth = vars.smoothOrigin !== false && cache.smooth; 9747 transformPropTween = this._pt = new PropTween(this._pt, style, _transformProp, 0, 1, cache.renderTransform, cache, 0, -1); 9748 transformPropTween.dep = 1; 9749 } 9750 if (p === "scale") { 9751 this._pt = new PropTween(this._pt, cache, "scaleY", cache.scaleY, (relative ? _parseRelative(cache.scaleY, relative + endNum) : endNum) - cache.scaleY || 0, _renderCSSProp); 9752 this._pt.u = 0; 9753 props.push("scaleY", p); 9754 p += "X"; 9755 } else if (p === "transformOrigin") { 9756 inlineProps.push(_transformOriginProp, 0, style[_transformOriginProp]); 9757 endValue = _convertKeywordsToPercentages(endValue); 9758 if (cache.svg) { 9759 _applySVGOrigin(target, endValue, 0, smooth, 0, this); 9760 } else { 9761 endUnit = parseFloat(endValue.split(" ")[2]) || 0; 9762 endUnit !== cache.zOrigin && _addNonTweeningPT(this, cache, "zOrigin", cache.zOrigin, endUnit); 9763 _addNonTweeningPT(this, style, p, _firstTwoOnly(startValue), _firstTwoOnly(endValue)); 9764 } 9765 continue; 9766 } else if (p === "svgOrigin") { 9767 _applySVGOrigin(target, endValue, 1, smooth, 0, this); 9768 continue; 9769 } else if (p in _rotationalProperties) { 9770 _addRotationalPropTween(this, cache, p, startNum, relative ? _parseRelative(startNum, relative + endValue) : endValue); 9771 continue; 9772 } else if (p === "smoothOrigin") { 9773 _addNonTweeningPT(this, cache, "smooth", cache.smooth, endValue); 9774 continue; 9775 } else if (p === "force3D") { 9776 cache[p] = endValue; 9777 continue; 9778 } else if (p === "transform") { 9779 _addRawTransformPTs(this, endValue, target); 9780 continue; 9781 } 9782 } else if (!(p in style)) { 9783 p = _checkPropPrefix(p) || p; 9784 } 9785 if (isTransformRelated || (endNum || endNum === 0) && (startNum || startNum === 0) && !_complexExp.test(endValue) && p in style) { 9786 startUnit = (startValue + "").substr((startNum + "").length); 9787 endNum || (endNum = 0); 9788 endUnit = getUnit(endValue) || (p in _config.units ? _config.units[p] : startUnit); 9789 startUnit !== endUnit && (startNum = _convertToUnit(target, p, startValue, endUnit)); 9790 this._pt = new PropTween(this._pt, isTransformRelated ? cache : style, p, startNum, (relative ? _parseRelative(startNum, relative + endNum) : endNum) - startNum, !isTransformRelated && (endUnit === "px" || p === "zIndex") && vars.autoRound !== false ? _renderRoundedCSSProp : _renderCSSProp); 9791 this._pt.u = endUnit || 0; 9792 if (isTransformRelated && finalTransformValue !== endValue) { 9793 this._pt.b = startValue; 9794 this._pt.e = finalTransformValue; 9795 this._pt.r = _renderCSSPropWithBeginningAndEnd; 9796 } else if (startUnit !== endUnit && endUnit !== "%") { 9797 this._pt.b = startValue; 9798 this._pt.r = _renderCSSPropWithBeginning; 9799 } 9800 } else if (!(p in style)) { 9801 if (p in target) { 9802 this.add(target, p, startValue || target[p], relative ? relative + endValue : endValue, index, targets); 9803 } else if (p !== "parseTransform") { 9804 _missingPlugin(p, endValue); 9805 continue; 9806 } 9807 } else { 9808 _tweenComplexCSSString.call(this, target, p, startValue, relative ? relative + endValue : endValue); 9809 } 9810 isTransformRelated || (p in style ? inlineProps.push(p, 0, style[p]) : typeof target[p] === "function" ? inlineProps.push(p, 2, target[p]()) : inlineProps.push(p, 1, startValue || target[p])); 9811 props.push(p); 9812 } 9813 } 9814 hasPriority && _sortPropTweensByPriority(this); 9815 }, "init"), 9816 render: /* @__PURE__ */ __name(function render2(ratio, data) { 9817 if (data.tween._time || !_reverting2()) { 9818 var pt = data._pt; 9819 while (pt) { 9820 pt.r(ratio, pt.d); 9821 pt = pt._next; 9822 } 9823 } else { 9824 data.styles.revert(); 9825 } 9826 }, "render"), 9827 get: _get, 9828 aliases: _propertyAliases, 9829 getSetter: /* @__PURE__ */ __name(function getSetter(target, property, plugin) { 9830 var p = _propertyAliases[property]; 9831 p && p.indexOf(",") < 0 && (property = p); 9832 return property in _transformProps && property !== _transformOriginProp && (target._gsap.x || _get(target, "x")) ? plugin && _recentSetterPlugin === plugin ? property === "scale" ? _setterScale : _setterTransform : (_recentSetterPlugin = plugin || {}) && (property === "scale" ? _setterScaleWithRender : _setterTransformWithRender) : target.style && !_isUndefined(target.style[property]) ? _setterCSSStyle : ~property.indexOf("-") ? _setterCSSProp : _getSetter(target, property); 9833 }, "getSetter"), 9834 core: { 9835 _removeProperty, 9836 _getMatrix 9837 } 9838 }; 9839 gsap.utils.checkPrefix = _checkPropPrefix; 9840 gsap.core.getStyleSaver = _getStyleSaver; 9841 (function(positionAndScale, rotation, others, aliases) { 9842 var all = _forEachName(positionAndScale + "," + rotation + "," + others, function(name) { 9843 _transformProps[name] = 1; 9844 }); 9845 _forEachName(rotation, function(name) { 9846 _config.units[name] = "deg"; 9847 _rotationalProperties[name] = 1; 9848 }); 9849 _propertyAliases[all[13]] = positionAndScale + "," + rotation; 9850 _forEachName(aliases, function(name) { 9851 var split = name.split(":"); 9852 _propertyAliases[split[1]] = all[split[0]]; 9853 }); 9854 })("x,y,z,scale,scaleX,scaleY,xPercent,yPercent", "rotation,rotationX,rotationY,skewX,skewY", "transform,transformOrigin,svgOrigin,force3D,smoothOrigin,transformPerspective", "0:translateX,1:translateY,2:translateZ,8:rotate,8:rotationZ,8:rotateZ,9:rotateX,10:rotateY"); 9855 _forEachName("x,y,z,top,right,bottom,left,width,height,fontSize,padding,margin,perspective", function(name) { 9856 _config.units[name] = "px"; 9857 }); 9858 gsap.registerPlugin(CSSPlugin); 9859 9860
vendor: 141 bytes, lines 9860-9864
9860// node_modules/gsap/index.js 9861 var gsapWithCSS = gsap.registerPlugin(CSSPlugin) || gsap; 9862 var TweenMaxWithCSS = gsapWithCSS.core.Tween; 9863 9864
vendor: 23,656 bytes, lines 9864-10350
9864// node_modules/gsap/Observer.js 9865 function _defineProperties(target, props) { 9866 for (var i = 0; i < props.length; i++) { 9867 var descriptor = props[i]; 9868 descriptor.enumerable = descriptor.enumerable || false; 9869 descriptor.configurable = true; 9870 if ("value" in descriptor) descriptor.writable = true; 9871 Object.defineProperty(target, descriptor.key, descriptor); 9872 } 9873 } 9874 __name(_defineProperties, "_defineProperties"); 9875 function _createClass(Constructor, protoProps, staticProps) { 9876 if (protoProps) _defineProperties(Constructor.prototype, protoProps); 9877 if (staticProps) _defineProperties(Constructor, staticProps); 9878 return Constructor; 9879 } 9880 __name(_createClass, "_createClass"); 9881 var gsap2; 9882 var _coreInitted2; 9883 var _clamp3; 9884 var _win3; 9885 var _doc3; 9886 var _docEl; 9887 var _body; 9888 var _isTouch; 9889 var _pointerType; 9890 var ScrollTrigger; 9891 var _root; 9892 var _normalizer; 9893 var _eventTypes; 9894 var _context2; 9895 var _getGSAP = /* @__PURE__ */ __name(function _getGSAP2() { 9896 return gsap2 || typeof window !== "undefined" && (gsap2 = window.gsap) && gsap2.registerPlugin && gsap2; 9897 }, "_getGSAP"); 9898 var _startup = 1; 9899 var _observers = []; 9900 var _scrollers = []; 9901 var _proxies = []; 9902 var _getTime = Date.now; 9903 var _bridge = /* @__PURE__ */ __name(function _bridge2(name, value) { 9904 return value; 9905 }, "_bridge"); 9906 var _integrate = /* @__PURE__ */ __name(function _integrate2() { 9907 var core = ScrollTrigger.core, data = core.bridge || {}, scrollers = core._scrollers, proxies = core._proxies; 9908 scrollers.push.apply(scrollers, _scrollers); 9909 proxies.push.apply(proxies, _proxies); 9910 _scrollers = scrollers; 9911 _proxies = proxies; 9912 _bridge = /* @__PURE__ */ __name(function _bridge3(name, value) { 9913 return data[name](value); 9914 }, "_bridge"); 9915 }, "_integrate"); 9916 var _getProxyProp = /* @__PURE__ */ __name(function _getProxyProp2(element, property) { 9917 return ~_proxies.indexOf(element) && _proxies[_proxies.indexOf(element) + 1][property]; 9918 }, "_getProxyProp"); 9919 var _isViewport = /* @__PURE__ */ __name(function _isViewport2(el) { 9920 return !!~_root.indexOf(el); 9921 }, "_isViewport"); 9922 var _addListener = /* @__PURE__ */ __name(function _addListener2(element, type, func, passive, capture) { 9923 return element.addEventListener(type, func, { 9924 passive: passive !== false, 9925 capture: !!capture 9926 }); 9927 }, "_addListener"); 9928 var _removeListener = /* @__PURE__ */ __name(function _removeListener2(element, type, func, capture) { 9929 return element.removeEventListener(type, func, !!capture); 9930 }, "_removeListener"); 9931 var _scrollLeft = "scrollLeft"; 9932 var _scrollTop = "scrollTop"; 9933 var _onScroll = /* @__PURE__ */ __name(function _onScroll2() { 9934 return _normalizer && _normalizer.isPressed || _scrollers.cache++; 9935 }, "_onScroll"); 9936 var _scrollCacheFunc = /* @__PURE__ */ __name(function _scrollCacheFunc2(f, doNotCache) { 9937 var cachingFunc = /* @__PURE__ */ __name(function cachingFunc2(value) { 9938 if (value || value === 0) { 9939 _startup && (_win3.history.scrollRestoration = "manual"); 9940 var isNormalizing = _normalizer && _normalizer.isPressed; 9941 value = cachingFunc2.v = Math.round(value) || (_normalizer && _normalizer.iOS ? 1 : 0); 9942 f(value); 9943 cachingFunc2.cacheID = _scrollers.cache; 9944 isNormalizing && _bridge("ss", value); 9945 } else if (doNotCache || _scrollers.cache !== cachingFunc2.cacheID || _bridge("ref")) { 9946 cachingFunc2.cacheID = _scrollers.cache; 9947 cachingFunc2.v = f(); 9948 } 9949 return cachingFunc2.v + cachingFunc2.offset; 9950 }, "cachingFunc"); 9951 cachingFunc.offset = 0; 9952 return f && cachingFunc; 9953 }, "_scrollCacheFunc"); 9954 var _horizontal = { 9955 s: _scrollLeft, 9956 p: "left", 9957 p2: "Left", 9958 os: "right", 9959 os2: "Right", 9960 d: "width", 9961 d2: "Width", 9962 a: "x", 9963 sc: _scrollCacheFunc(function(value) { 9964 return arguments.length ? _win3.scrollTo(value, _vertical.sc()) : _win3.pageXOffset || _doc3[_scrollLeft] || _docEl[_scrollLeft] || _body[_scrollLeft] || 0; 9965 }) 9966 }; 9967 var _vertical = { 9968 s: _scrollTop, 9969 p: "top", 9970 p2: "Top", 9971 os: "bottom", 9972 os2: "Bottom", 9973 d: "height", 9974 d2: "Height", 9975 a: "y", 9976 op: _horizontal, 9977 sc: _scrollCacheFunc(function(value) { 9978 return arguments.length ? _win3.scrollTo(_horizontal.sc(), value) : _win3.pageYOffset || _doc3[_scrollTop] || _docEl[_scrollTop] || _body[_scrollTop] || 0; 9979 }) 9980 }; 9981 var _getTarget = /* @__PURE__ */ __name(function _getTarget2(t, self2) { 9982 return (self2 && self2._ctx && self2._ctx.selector || gsap2.utils.toArray)(t)[0] || (typeof t === "string" && gsap2.config().nullTargetWarn !== false ? console.warn("Element not found:", t) : null); 9983 }, "_getTarget"); 9984 var _isWithin = /* @__PURE__ */ __name(function _isWithin2(element, list) { 9985 var i = list.length; 9986 while (i--) { 9987 if (list[i] === element || list[i].contains(element)) { 9988 return true; 9989 } 9990 } 9991 return false; 9992 }, "_isWithin"); 9993 var _getScrollFunc = /* @__PURE__ */ __name(function _getScrollFunc2(element, _ref) { 9994 var s = _ref.s, sc = _ref.sc; 9995 _isViewport(element) && (element = _doc3.scrollingElement || _docEl); 9996 var i = _scrollers.indexOf(element), offset = sc === _vertical.sc ? 1 : 2; 9997 !~i && (i = _scrollers.push(element) - 1); 9998 _scrollers[i + offset] || _addListener(element, "scroll", _onScroll); 9999 var prev = _scrollers[i + offset], func = prev || (_scrollers[i + offset] = _scrollCacheFunc(_getProxyProp(element, s), true) || (_isViewport(element) ? sc : _scrollCacheFunc(function(value) { 10000 return arguments.length ? element[s] = value : element[s]; 10001 }))); 10002 func.target = element; 10003 prev || (func.smooth = gsap2.getProperty(element, "scrollBehavior") === "smooth"); 10004 return func; 10005 }, "_getScrollFunc"); 10006 var _getVelocityProp = /* @__PURE__ */ __name(function _getVelocityProp2(value, minTimeRefresh, useDelta) { 10007 var v1 = value, v2 = value, t1 = _getTime(), t2 = t1, min = minTimeRefresh || 50, dropToZeroTime = Math.max(500, min * 3), update2 = /* @__PURE__ */ __name(function update3(value2, force) { 10008 var t = _getTime(); 10009 if (force || t - t1 > min) { 10010 v2 = v1; 10011 v1 = value2; 10012 t2 = t1; 10013 t1 = t; 10014 } else if (useDelta) { 10015 v1 += value2; 10016 } else { 10017 v1 = v2 + (value2 - v2) / (t - t2) * (t1 - t2); 10018 } 10019 }, "update"), reset2 = /* @__PURE__ */ __name(function reset3() { 10020 v2 = v1 = useDelta ? 0 : v1; 10021 t2 = t1 = 0; 10022 }, "reset"), getVelocity = /* @__PURE__ */ __name(function getVelocity2(latestValue) { 10023 var tOld = t2, vOld = v2, t = _getTime(); 10024 (latestValue || latestValue === 0) && latestValue !== v1 && update2(latestValue); 10025 return t1 === t2 || t - t2 > dropToZeroTime ? 0 : (v1 + (useDelta ? vOld : -vOld)) / ((useDelta ? t : t1) - tOld) * 1e3; 10026 }, "getVelocity"); 10027 return { 10028 update: update2, 10029 reset: reset2, 10030 getVelocity 10031 }; 10032 }, "_getVelocityProp"); 10033 var _getEvent = /* @__PURE__ */ __name(function _getEvent2(e, preventDefault) { 10034 preventDefault && !e._gsapAllow && e.preventDefault(); 10035 return e.changedTouches ? e.changedTouches[0] : e; 10036 }, "_getEvent"); 10037 var _getAbsoluteMax = /* @__PURE__ */ __name(function _getAbsoluteMax2(a) { 10038 var max = Math.max.apply(Math, a), min = Math.min.apply(Math, a); 10039 return Math.abs(max) >= Math.abs(min) ? max : min; 10040 }, "_getAbsoluteMax"); 10041 var _setScrollTrigger = /* @__PURE__ */ __name(function _setScrollTrigger2() { 10042 ScrollTrigger = gsap2.core.globals().ScrollTrigger; 10043 ScrollTrigger && ScrollTrigger.core && _integrate(); 10044 }, "_setScrollTrigger"); 10045 var _initCore3 = /* @__PURE__ */ __name(function _initCore4(core) { 10046 gsap2 = core || _getGSAP(); 10047 if (!_coreInitted2 && gsap2 && typeof document !== "undefined" && document.body) { 10048 _win3 = window; 10049 _doc3 = document; 10050 _docEl = _doc3.documentElement; 10051 _body = _doc3.body; 10052 _root = [_win3, _doc3, _docEl, _body]; 10053 _clamp3 = gsap2.utils.clamp; 10054 _context2 = gsap2.core.context || function() { 10055 }; 10056 _pointerType = "onpointerenter" in _body ? "pointer" : "mouse"; 10057 _isTouch = Observer.isTouch = _win3.matchMedia && _win3.matchMedia("(hover: none), (pointer: coarse)").matches ? 1 : "ontouchstart" in _win3 || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0 ? 2 : 0; 10058 _eventTypes = Observer.eventTypes = ("ontouchstart" in _docEl ? "touchstart,touchmove,touchcancel,touchend" : !("onpointerdown" in _docEl) ? "mousedown,mousemove,mouseup,mouseup" : "pointerdown,pointermove,pointercancel,pointerup").split(","); 10059 setTimeout(function() { 10060 return _startup = 0; 10061 }, 500); 10062 _setScrollTrigger(); 10063 _coreInitted2 = 1; 10064 } 10065 return _coreInitted2; 10066 }, "_initCore"); 10067 _horizontal.op = _vertical; 10068 _scrollers.cache = 0; 10069 var Observer = /* @__PURE__ */ (function() { 10070 function Observer2(vars) { 10071 this.init(vars); 10072 } 10073 __name(Observer2, "Observer"); 10074 var _proto = Observer2.prototype; 10075 _proto.init = /* @__PURE__ */ __name(function init5(vars) { 10076 _coreInitted2 || _initCore3(gsap2) || console.warn("Please gsap.registerPlugin(Observer)"); 10077 ScrollTrigger || _setScrollTrigger(); 10078 var tolerance = vars.tolerance, dragMinimum = vars.dragMinimum, type = vars.type, target = vars.target, lineHeight = vars.lineHeight, debounce = vars.debounce, preventDefault = vars.preventDefault, onStop = vars.onStop, onStopDelay = vars.onStopDelay, ignore = vars.ignore, wheelSpeed = vars.wheelSpeed, event = vars.event, onDragStart = vars.onDragStart, onDragEnd = vars.onDragEnd, onDrag = vars.onDrag, onPress = vars.onPress, onRelease = vars.onRelease, onRight = vars.onRight, onLeft = vars.onLeft, onUp = vars.onUp, onDown = vars.onDown, onChangeX = vars.onChangeX, onChangeY = vars.onChangeY, onChange = vars.onChange, onToggleX = vars.onToggleX, onToggleY = vars.onToggleY, onHover = vars.onHover, onHoverEnd = vars.onHoverEnd, onMove = vars.onMove, ignoreCheck = vars.ignoreCheck, isNormalizer = vars.isNormalizer, onGestureStart = vars.onGestureStart, onGestureEnd = vars.onGestureEnd, onWheel = vars.onWheel, onEnable = vars.onEnable, onDisable = vars.onDisable, onClick = vars.onClick, scrollSpeed = vars.scrollSpeed, capture = vars.capture, allowClicks = vars.allowClicks, lockAxis = vars.lockAxis, onLockAxis = vars.onLockAxis; 10079 this.target = target = _getTarget(target) || _docEl; 10080 this.vars = vars; 10081 ignore && (ignore = gsap2.utils.toArray(ignore)); 10082 tolerance = tolerance || 1e-9; 10083 dragMinimum = dragMinimum || 0; 10084 wheelSpeed = wheelSpeed || 1; 10085 scrollSpeed = scrollSpeed || 1; 10086 type = type || "wheel,touch,pointer"; 10087 debounce = debounce !== false; 10088 lineHeight || (lineHeight = parseFloat(_win3.getComputedStyle(_body).lineHeight) || 22); 10089 var id, onStopDelayedCall, dragged, moved, wheeled, locked, axis, self2 = this, prevDeltaX = 0, prevDeltaY = 0, passive = vars.passive || !preventDefault && vars.passive !== false, scrollFuncX = _getScrollFunc(target, _horizontal), scrollFuncY = _getScrollFunc(target, _vertical), scrollX = scrollFuncX(), scrollY = scrollFuncY(), limitToTouch = ~type.indexOf("touch") && !~type.indexOf("pointer") && _eventTypes[0] === "pointerdown", isViewport = _isViewport(target), ownerDoc = target.ownerDocument || _doc3, deltaX = [0, 0, 0], deltaY = [0, 0, 0], onClickTime = 0, clickCapture = /* @__PURE__ */ __name(function clickCapture2() { 10090 return onClickTime = _getTime(); 10091 }, "clickCapture"), _ignoreCheck = /* @__PURE__ */ __name(function _ignoreCheck2(e, isPointerOrTouch) { 10092 return (self2.event = e) && ignore && _isWithin(e.target, ignore) || isPointerOrTouch && limitToTouch && e.pointerType !== "touch" || ignoreCheck && ignoreCheck(e, isPointerOrTouch); 10093 }, "_ignoreCheck"), onStopFunc = /* @__PURE__ */ __name(function onStopFunc2() { 10094 self2._vx.reset(); 10095 self2._vy.reset(); 10096 onStopDelayedCall.pause(); 10097 onStop && onStop(self2); 10098 }, "onStopFunc"), update2 = /* @__PURE__ */ __name(function update3() { 10099 var dx = self2.deltaX = _getAbsoluteMax(deltaX), dy = self2.deltaY = _getAbsoluteMax(deltaY), changedX = Math.abs(dx) >= tolerance, changedY = Math.abs(dy) >= tolerance; 10100 onChange && (changedX || changedY) && onChange(self2, dx, dy, deltaX, deltaY); 10101 if (changedX) { 10102 onRight && self2.deltaX > 0 && onRight(self2); 10103 onLeft && self2.deltaX < 0 && onLeft(self2); 10104 onChangeX && onChangeX(self2); 10105 onToggleX && self2.deltaX < 0 !== prevDeltaX < 0 && onToggleX(self2); 10106 prevDeltaX = self2.deltaX; 10107 deltaX[0] = deltaX[1] = deltaX[2] = 0; 10108 } 10109 if (changedY) { 10110 onDown && self2.deltaY > 0 && onDown(self2); 10111 onUp && self2.deltaY < 0 && onUp(self2); 10112 onChangeY && onChangeY(self2); 10113 onToggleY && self2.deltaY < 0 !== prevDeltaY < 0 && onToggleY(self2); 10114 prevDeltaY = self2.deltaY; 10115 deltaY[0] = deltaY[1] = deltaY[2] = 0; 10116 } 10117 if (moved || dragged) { 10118 onMove && onMove(self2); 10119 if (dragged) { 10120 onDragStart && dragged === 1 && onDragStart(self2); 10121 onDrag && onDrag(self2); 10122 dragged = 0; 10123 } 10124 moved = false; 10125 } 10126 locked && !(locked = false) && onLockAxis && onLockAxis(self2); 10127 if (wheeled) { 10128 onWheel(self2); 10129 wheeled = false; 10130 } 10131 id = 0; 10132 }, "update"), onDelta = /* @__PURE__ */ __name(function onDelta2(x, y, index) { 10133 deltaX[index] += x; 10134 deltaY[index] += y; 10135 self2._vx.update(x); 10136 self2._vy.update(y); 10137 debounce ? id || (id = requestAnimationFrame(update2)) : update2(); 10138 }, "onDelta"), onTouchOrPointerDelta = /* @__PURE__ */ __name(function onTouchOrPointerDelta2(x, y) { 10139 if (lockAxis && !axis) { 10140 self2.axis = axis = Math.abs(x) > Math.abs(y) ? "x" : "y"; 10141 locked = true; 10142 } 10143 if (axis !== "y") { 10144 deltaX[2] += x; 10145 self2._vx.update(x, true); 10146 } 10147 if (axis !== "x") { 10148 deltaY[2] += y; 10149 self2._vy.update(y, true); 10150 } 10151 debounce ? id || (id = requestAnimationFrame(update2)) : update2(); 10152 }, "onTouchOrPointerDelta"), _onDrag = /* @__PURE__ */ __name(function _onDrag2(e) { 10153 if (_ignoreCheck(e, 1)) { 10154 return; 10155 } 10156 e = _getEvent(e, preventDefault); 10157 var x = e.clientX, y = e.clientY, dx = x - self2.x, dy = y - self2.y, isDragging = self2.isDragging; 10158 self2.x = x; 10159 self2.y = y; 10160 if (isDragging || (dx || dy) && (Math.abs(self2.startX - x) >= dragMinimum || Math.abs(self2.startY - y) >= dragMinimum)) { 10161 dragged || (dragged = isDragging ? 2 : 1); 10162 isDragging || (self2.isDragging = true); 10163 onTouchOrPointerDelta(dx, dy); 10164 } 10165 }, "_onDrag"), _onPress = self2.onPress = function(e) { 10166 if (_ignoreCheck(e, 1) || e && e.button) { 10167 return; 10168 } 10169 self2.axis = axis = null; 10170 onStopDelayedCall.pause(); 10171 self2.isPressed = true; 10172 e = _getEvent(e); 10173 prevDeltaX = prevDeltaY = 0; 10174 self2.startX = self2.x = e.clientX; 10175 self2.startY = self2.y = e.clientY; 10176 self2._vx.reset(); 10177 self2._vy.reset(); 10178 _addListener(isNormalizer ? target : ownerDoc, _eventTypes[1], _onDrag, passive, true); 10179 self2.deltaX = self2.deltaY = 0; 10180 onPress && onPress(self2); 10181 }, _onRelease = self2.onRelease = function(e) { 10182 if (_ignoreCheck(e, 1)) { 10183 return; 10184 } 10185 _removeListener(isNormalizer ? target : ownerDoc, _eventTypes[1], _onDrag, true); 10186 var isTrackingDrag = !isNaN(self2.y - self2.startY), wasDragging = self2.isDragging, isDragNotClick = wasDragging && (Math.abs(self2.x - self2.startX) > 3 || Math.abs(self2.y - self2.startY) > 3), eventData = _getEvent(e); 10187 if (!isDragNotClick && isTrackingDrag) { 10188 self2._vx.reset(); 10189 self2._vy.reset(); 10190 if (preventDefault && allowClicks) { 10191 gsap2.delayedCall(0.08, function() { 10192 if (_getTime() - onClickTime > 300 && !e.defaultPrevented) { 10193 if (e.target.click) { 10194 e.target.click(); 10195 } else if (ownerDoc.createEvent) { 10196 var syntheticEvent = ownerDoc.createEvent("MouseEvents"); 10197 syntheticEvent.initMouseEvent("click", true, true, _win3, 1, eventData.screenX, eventData.screenY, eventData.clientX, eventData.clientY, false, false, false, false, 0, null); 10198 e.target.dispatchEvent(syntheticEvent); 10199 } 10200 } 10201 }); 10202 } 10203 } 10204 self2.isDragging = self2.isGesturing = self2.isPressed = false; 10205 onStop && wasDragging && !isNormalizer && onStopDelayedCall.restart(true); 10206 dragged && update2(); 10207 onDragEnd && wasDragging && onDragEnd(self2); 10208 onRelease && onRelease(self2, isDragNotClick); 10209 }, _onGestureStart = /* @__PURE__ */ __name(function _onGestureStart2(e) { 10210 return e.touches && e.touches.length > 1 && (self2.isGesturing = true) && onGestureStart(e, self2.isDragging); 10211 }, "_onGestureStart"), _onGestureEnd = /* @__PURE__ */ __name(function _onGestureEnd2() { 10212 return (self2.isGesturing = false) || onGestureEnd(self2); 10213 }, "_onGestureEnd"), onScroll = /* @__PURE__ */ __name(function onScroll2(e) { 10214 if (_ignoreCheck(e)) { 10215 return; 10216 } 10217 var x = scrollFuncX(), y = scrollFuncY(); 10218 onDelta((x - scrollX) * scrollSpeed, (y - scrollY) * scrollSpeed, 1); 10219 scrollX = x; 10220 scrollY = y; 10221 onStop && onStopDelayedCall.restart(true); 10222 }, "onScroll"), _onWheel = /* @__PURE__ */ __name(function _onWheel2(e) { 10223 if (_ignoreCheck(e)) { 10224 return; 10225 } 10226 e = _getEvent(e, preventDefault); 10227 onWheel && (wheeled = true); 10228 var multiplier = (e.deltaMode === 1 ? lineHeight : e.deltaMode === 2 ? _win3.innerHeight : 1) * wheelSpeed; 10229 onDelta(e.deltaX * multiplier, e.deltaY * multiplier, 0); 10230 onStop && !isNormalizer && onStopDelayedCall.restart(true); 10231 }, "_onWheel"), _onMove = /* @__PURE__ */ __name(function _onMove2(e) { 10232 if (_ignoreCheck(e)) { 10233 return; 10234 } 10235 var x = e.clientX, y = e.clientY, dx = x - self2.x, dy = y - self2.y; 10236 self2.x = x; 10237 self2.y = y; 10238 moved = true; 10239 onStop && onStopDelayedCall.restart(true); 10240 (dx || dy) && onTouchOrPointerDelta(dx, dy); 10241 }, "_onMove"), _onHover = /* @__PURE__ */ __name(function _onHover2(e) { 10242 self2.event = e; 10243 onHover(self2); 10244 }, "_onHover"), _onHoverEnd = /* @__PURE__ */ __name(function _onHoverEnd2(e) { 10245 self2.event = e; 10246 onHoverEnd(self2); 10247 }, "_onHoverEnd"), _onClick = /* @__PURE__ */ __name(function _onClick2(e) { 10248 return _ignoreCheck(e) || _getEvent(e, preventDefault) && onClick(self2); 10249 }, "_onClick"); 10250 onStopDelayedCall = self2._dc = gsap2.delayedCall(onStopDelay || 0.25, onStopFunc).pause(); 10251 self2.deltaX = self2.deltaY = 0; 10252 self2._vx = _getVelocityProp(0, 50, true); 10253 self2._vy = _getVelocityProp(0, 50, true); 10254 self2.scrollX = scrollFuncX; 10255 self2.scrollY = scrollFuncY; 10256 self2.isDragging = self2.isGesturing = self2.isPressed = false; 10257 _context2(this); 10258 self2.enable = function(e) { 10259 if (!self2.isEnabled) { 10260 _addListener(isViewport ? ownerDoc : target, "scroll", _onScroll); 10261 type.indexOf("scroll") >= 0 && _addListener(isViewport ? ownerDoc : target, "scroll", onScroll, passive, capture); 10262 type.indexOf("wheel") >= 0 && _addListener(target, "wheel", _onWheel, passive, capture); 10263 if (type.indexOf("touch") >= 0 && _isTouch || type.indexOf("pointer") >= 0) { 10264 _addListener(target, _eventTypes[0], _onPress, passive, capture); 10265 _addListener(ownerDoc, _eventTypes[2], _onRelease); 10266 _addListener(ownerDoc, _eventTypes[3], _onRelease); 10267 allowClicks && _addListener(target, "click", clickCapture, true, true); 10268 onClick && _addListener(target, "click", _onClick); 10269 onGestureStart && _addListener(ownerDoc, "gesturestart", _onGestureStart); 10270 onGestureEnd && _addListener(ownerDoc, "gestureend", _onGestureEnd); 10271 onHover && _addListener(target, _pointerType + "enter", _onHover); 10272 onHoverEnd && _addListener(target, _pointerType + "leave", _onHoverEnd); 10273 onMove && _addListener(target, _pointerType + "move", _onMove); 10274 } 10275 self2.isEnabled = true; 10276 self2.isDragging = self2.isGesturing = self2.isPressed = moved = dragged = false; 10277 self2._vx.reset(); 10278 self2._vy.reset(); 10279 scrollX = scrollFuncX(); 10280 scrollY = scrollFuncY(); 10281 e && e.type && _onPress(e); 10282 onEnable && onEnable(self2); 10283 } 10284 return self2; 10285 }; 10286 self2.disable = function() { 10287 if (self2.isEnabled) { 10288 _observers.filter(function(o) { 10289 return o !== self2 && _isViewport(o.target); 10290 }).length || _removeListener(isViewport ? ownerDoc : target, "scroll", _onScroll); 10291 if (self2.isPressed) { 10292 self2._vx.reset(); 10293 self2._vy.reset(); 10294 _removeListener(isNormalizer ? target : ownerDoc, _eventTypes[1], _onDrag, true); 10295 } 10296 _removeListener(isViewport ? ownerDoc : target, "scroll", onScroll, capture); 10297 _removeListener(target, "wheel", _onWheel, capture); 10298 _removeListener(target, _eventTypes[0], _onPress, capture); 10299 _removeListener(ownerDoc, _eventTypes[2], _onRelease); 10300 _removeListener(ownerDoc, _eventTypes[3], _onRelease); 10301 _removeListener(target, "click", clickCapture, true); 10302 _removeListener(target, "click", _onClick); 10303 _removeListener(ownerDoc, "gesturestart", _onGestureStart); 10304 _removeListener(ownerDoc, "gestureend", _onGestureEnd); 10305 _removeListener(target, _pointerType + "enter", _onHover); 10306 _removeListener(target, _pointerType + "leave", _onHoverEnd); 10307 _removeListener(target, _pointerType + "move", _onMove); 10308 self2.isEnabled = self2.isPressed = self2.isDragging = false; 10309 onDisable && onDisable(self2); 10310 } 10311 }; 10312 self2.kill = self2.revert = function() { 10313 self2.disable(); 10314 var i = _observers.indexOf(self2); 10315 i >= 0 && _observers.splice(i, 1); 10316 _normalizer === self2 && (_normalizer = 0); 10317 }; 10318 _observers.push(self2); 10319 isNormalizer && _isViewport(target) && (_normalizer = self2); 10320 self2.enable(event); 10321 }, "init"); 10322 _createClass(Observer2, [{ 10323 key: "velocityX", 10324 get: /* @__PURE__ */ __name(function get() { 10325 return this._vx.getVelocity(); 10326 }, "get") 10327 }, { 10328 key: "velocityY", 10329 get: /* @__PURE__ */ __name(function get() { 10330 return this._vy.getVelocity(); 10331 }, "get") 10332 }]); 10333 return Observer2; 10334 })(); 10335 Observer.version = "3.14.2"; 10336 Observer.create = function(vars) { 10337 return new Observer(vars); 10338 }; 10339 Observer.register = _initCore3; 10340 Observer.getAll = function() { 10341 return _observers.slice(); 10342 }; 10343 Observer.getById = function(id) { 10344 return _observers.filter(function(o) { 10345 return o.vars.id === id; 10346 })[0]; 10347 }; 10348 _getGSAP() && gsap2.registerPlugin(Observer); 10349 10350
vendor: 92,286 bytes, lines 10350-12254
10350// node_modules/gsap/ScrollTrigger.js 10351 var gsap3; 10352 var _coreInitted3; 10353 var _win4; 10354 var _doc4; 10355 var _docEl2; 10356 var _body2; 10357 var _root2; 10358 var _resizeDelay; 10359 var _toArray; 10360 var _clamp4; 10361 var _time2; 10362 var _syncInterval; 10363 var _refreshing; 10364 var _pointerIsDown; 10365 var _transformProp2; 10366 var _i; 10367 var _prevWidth; 10368 var _prevHeight; 10369 var _autoRefresh; 10370 var _sort; 10371 var _suppressOverwrites2; 10372 var _ignoreResize; 10373 var _normalizer2; 10374 var _ignoreMobileResize; 10375 var _baseScreenHeight; 10376 var _baseScreenWidth; 10377 var _fixIOSBug; 10378 var _context3; 10379 var _scrollRestoration; 10380 var _div100vh; 10381 var _100vh; 10382 var _isReverted; 10383 var _clampingMax; 10384 var _limitCallbacks; 10385 var _startup2 = 1; 10386 var _getTime2 = Date.now; 10387 var _time1 = _getTime2(); 10388 var _lastScrollTime = 0; 10389 var _enabled = 0; 10390 var _parseClamp = /* @__PURE__ */ __name(function _parseClamp2(value, type, self2) { 10391 var clamp3 = _isString3(value) && (value.substr(0, 6) === "clamp(" || value.indexOf("max") > -1); 10392 self2["_" + type + "Clamp"] = clamp3; 10393 return clamp3 ? value.substr(6, value.length - 7) : value; 10394 }, "_parseClamp"); 10395 var _keepClamp = /* @__PURE__ */ __name(function _keepClamp2(value, clamp3) { 10396 return clamp3 && (!_isString3(value) || value.substr(0, 6) !== "clamp(") ? "clamp(" + value + ")" : value; 10397 }, "_keepClamp"); 10398 var _rafBugFix = /* @__PURE__ */ __name(function _rafBugFix2() { 10399 return _enabled && requestAnimationFrame(_rafBugFix2); 10400 }, "_rafBugFix"); 10401 var _pointerDownHandler = /* @__PURE__ */ __name(function _pointerDownHandler2() { 10402 return _pointerIsDown = 1; 10403 }, "_pointerDownHandler"); 10404 var _pointerUpHandler = /* @__PURE__ */ __name(function _pointerUpHandler2() { 10405 return _pointerIsDown = 0; 10406 }, "_pointerUpHandler"); 10407 var _passThrough3 = /* @__PURE__ */ __name(function _passThrough4(v) { 10408 return v; 10409 }, "_passThrough"); 10410 var _round3 = /* @__PURE__ */ __name(function _round4(value) { 10411 return Math.round(value * 1e5) / 1e5 || 0; 10412 }, "_round"); 10413 var _windowExists5 = /* @__PURE__ */ __name(function _windowExists6() { 10414 return typeof window !== "undefined"; 10415 }, "_windowExists"); 10416 var _getGSAP3 = /* @__PURE__ */ __name(function _getGSAP4() { 10417 return gsap3 || _windowExists5() && (gsap3 = window.gsap) && gsap3.registerPlugin && gsap3; 10418 }, "_getGSAP"); 10419 var _isViewport3 = /* @__PURE__ */ __name(function _isViewport4(e) { 10420 return !!~_root2.indexOf(e); 10421 }, "_isViewport"); 10422 var _getViewportDimension = /* @__PURE__ */ __name(function _getViewportDimension2(dimensionProperty) { 10423 return (dimensionProperty === "Height" ? _100vh : _win4["inner" + dimensionProperty]) || _docEl2["client" + dimensionProperty] || _body2["client" + dimensionProperty]; 10424 }, "_getViewportDimension"); 10425 var _getBoundsFunc = /* @__PURE__ */ __name(function _getBoundsFunc2(element) { 10426 return _getProxyProp(element, "getBoundingClientRect") || (_isViewport3(element) ? function() { 10427 _winOffsets.width = _win4.innerWidth; 10428 _winOffsets.height = _100vh; 10429 return _winOffsets; 10430 } : function() { 10431 return _getBounds(element); 10432 }); 10433 }, "_getBoundsFunc"); 10434 var _getSizeFunc = /* @__PURE__ */ __name(function _getSizeFunc2(scroller, isViewport, _ref) { 10435 var d = _ref.d, d2 = _ref.d2, a = _ref.a; 10436 return (a = _getProxyProp(scroller, "getBoundingClientRect")) ? function() { 10437 return a()[d]; 10438 } : function() { 10439 return (isViewport ? _getViewportDimension(d2) : scroller["client" + d2]) || 0; 10440 }; 10441 }, "_getSizeFunc"); 10442 var _getOffsetsFunc = /* @__PURE__ */ __name(function _getOffsetsFunc2(element, isViewport) { 10443 return !isViewport || ~_proxies.indexOf(element) ? _getBoundsFunc(element) : function() { 10444 return _winOffsets; 10445 }; 10446 }, "_getOffsetsFunc"); 10447 var _maxScroll = /* @__PURE__ */ __name(function _maxScroll2(element, _ref2) { 10448 var s = _ref2.s, d2 = _ref2.d2, d = _ref2.d, a = _ref2.a; 10449 return Math.max(0, (s = "scroll" + d2) && (a = _getProxyProp(element, s)) ? a() - _getBoundsFunc(element)()[d] : _isViewport3(element) ? (_docEl2[s] || _body2[s]) - _getViewportDimension(d2) : element[s] - element["offset" + d2]); 10450 }, "_maxScroll"); 10451 var _iterateAutoRefresh = /* @__PURE__ */ __name(function _iterateAutoRefresh2(func, events) { 10452 for (var i = 0; i < _autoRefresh.length; i += 3) { 10453 (!events || ~events.indexOf(_autoRefresh[i + 1])) && func(_autoRefresh[i], _autoRefresh[i + 1], _autoRefresh[i + 2]); 10454 } 10455 }, "_iterateAutoRefresh"); 10456 var _isString3 = /* @__PURE__ */ __name(function _isString4(value) { 10457 return typeof value === "string"; 10458 }, "_isString"); 10459 var _isFunction3 = /* @__PURE__ */ __name(function _isFunction4(value) { 10460 return typeof value === "function"; 10461 }, "_isFunction"); 10462 var _isNumber3 = /* @__PURE__ */ __name(function _isNumber4(value) { 10463 return typeof value === "number"; 10464 }, "_isNumber"); 10465 var _isObject3 = /* @__PURE__ */ __name(function _isObject4(value) { 10466 return typeof value === "object"; 10467 }, "_isObject"); 10468 var _endAnimation = /* @__PURE__ */ __name(function _endAnimation2(animation, reversed, pause) { 10469 return animation && animation.progress(reversed ? 0 : 1) && pause && animation.pause(); 10470 }, "_endAnimation"); 10471 var _callback3 = /* @__PURE__ */ __name(function _callback4(self2, func) { 10472 if (self2.enabled) { 10473 var result = self2._ctx ? self2._ctx.add(function() { 10474 return func(self2); 10475 }) : func(self2); 10476 result && result.totalTime && (self2.callbackAnimation = result); 10477 } 10478 }, "_callback"); 10479 var _abs = Math.abs; 10480 var _left = "left"; 10481 var _top = "top"; 10482 var _right = "right"; 10483 var _bottom = "bottom"; 10484 var _width = "width"; 10485 var _height = "height"; 10486 var _Right = "Right"; 10487 var _Left = "Left"; 10488 var _Top = "Top"; 10489 var _Bottom = "Bottom"; 10490 var _padding = "padding"; 10491 var _margin = "margin"; 10492 var _Width = "Width"; 10493 var _Height = "Height"; 10494 var _px = "px"; 10495 var _getComputedStyle = /* @__PURE__ */ __name(function _getComputedStyle2(element) { 10496 return _win4.getComputedStyle(element); 10497 }, "_getComputedStyle"); 10498 var _makePositionable = /* @__PURE__ */ __name(function _makePositionable2(element) { 10499 var position = _getComputedStyle(element).position; 10500 element.style.position = position === "absolute" || position === "fixed" ? position : "relative"; 10501 }, "_makePositionable"); 10502 var _setDefaults3 = /* @__PURE__ */ __name(function _setDefaults4(obj, defaults2) { 10503 for (var p in defaults2) { 10504 p in obj || (obj[p] = defaults2[p]); 10505 } 10506 return obj; 10507 }, "_setDefaults"); 10508 var _getBounds = /* @__PURE__ */ __name(function _getBounds2(element, withoutTransforms) { 10509 var tween = withoutTransforms && _getComputedStyle(element)[_transformProp2] !== "matrix(1, 0, 0, 1, 0, 0)" && gsap3.to(element, { 10510 x: 0, 10511 y: 0, 10512 xPercent: 0, 10513 yPercent: 0, 10514 rotation: 0, 10515 rotationX: 0, 10516 rotationY: 0, 10517 scale: 1, 10518 skewX: 0, 10519 skewY: 0 10520 }).progress(1), bounds = element.getBoundingClientRect(); 10521 tween && tween.progress(0).kill(); 10522 return bounds; 10523 }, "_getBounds"); 10524 var _getSize = /* @__PURE__ */ __name(function _getSize2(element, _ref3) { 10525 var d2 = _ref3.d2; 10526 return element["offset" + d2] || element["client" + d2] || 0; 10527 }, "_getSize"); 10528 var _getLabelRatioArray = /* @__PURE__ */ __name(function _getLabelRatioArray2(timeline2) { 10529 var a = [], labels2 = timeline2.labels, duration = timeline2.duration(), p; 10530 for (p in labels2) { 10531 a.push(labels2[p] / duration); 10532 } 10533 return a; 10534 }, "_getLabelRatioArray"); 10535 var _getClosestLabel = /* @__PURE__ */ __name(function _getClosestLabel2(animation) { 10536 return function(value) { 10537 return gsap3.utils.snap(_getLabelRatioArray(animation), value); 10538 }; 10539 }, "_getClosestLabel"); 10540 var _snapDirectional = /* @__PURE__ */ __name(function _snapDirectional2(snapIncrementOrArray) { 10541 var snap3 = gsap3.utils.snap(snapIncrementOrArray), a = Array.isArray(snapIncrementOrArray) && snapIncrementOrArray.slice(0).sort(function(a2, b) { 10542 return a2 - b; 10543 }); 10544 return a ? function(value, direction, threshold) { 10545 if (threshold === void 0) { 10546 threshold = 1e-3; 10547 } 10548 var i; 10549 if (!direction) { 10550 return snap3(value); 10551 } 10552 if (direction > 0) { 10553 value -= threshold; 10554 for (i = 0; i < a.length; i++) { 10555 if (a[i] >= value) { 10556 return a[i]; 10557 } 10558 } 10559 return a[i - 1]; 10560 } else { 10561 i = a.length; 10562 value += threshold; 10563 while (i--) { 10564 if (a[i] <= value) { 10565 return a[i]; 10566 } 10567 } 10568 } 10569 return a[0]; 10570 } : function(value, direction, threshold) { 10571 if (threshold === void 0) { 10572 threshold = 1e-3; 10573 } 10574 var snapped = snap3(value); 10575 return !direction || Math.abs(snapped - value) < threshold || snapped - value < 0 === direction < 0 ? snapped : snap3(direction < 0 ? value - snapIncrementOrArray : value + snapIncrementOrArray); 10576 }; 10577 }, "_snapDirectional"); 10578 var _getLabelAtDirection = /* @__PURE__ */ __name(function _getLabelAtDirection2(timeline2) { 10579 return function(value, st) { 10580 return _snapDirectional(_getLabelRatioArray(timeline2))(value, st.direction); 10581 }; 10582 }, "_getLabelAtDirection"); 10583 var _multiListener = /* @__PURE__ */ __name(function _multiListener2(func, element, types, callback) { 10584 return types.split(",").forEach(function(type) { 10585 return func(element, type, callback); 10586 }); 10587 }, "_multiListener"); 10588 var _addListener3 = /* @__PURE__ */ __name(function _addListener4(element, type, func, nonPassive, capture) { 10589 return element.addEventListener(type, func, { 10590 passive: !nonPassive, 10591 capture: !!capture 10592 }); 10593 }, "_addListener"); 10594 var _removeListener3 = /* @__PURE__ */ __name(function _removeListener4(element, type, func, capture) { 10595 return element.removeEventListener(type, func, !!capture); 10596 }, "_removeListener"); 10597 var _wheelListener = /* @__PURE__ */ __name(function _wheelListener2(func, el, scrollFunc) { 10598 scrollFunc = scrollFunc && scrollFunc.wheelHandler; 10599 if (scrollFunc) { 10600 func(el, "wheel", scrollFunc); 10601 func(el, "touchmove", scrollFunc); 10602 } 10603 }, "_wheelListener"); 10604 var _markerDefaults = { 10605 startColor: "green", 10606 endColor: "red", 10607 indent: 0, 10608 fontSize: "16px", 10609 fontWeight: "normal" 10610 }; 10611 var _defaults2 = { 10612 toggleActions: "play", 10613 anticipatePin: 0 10614 }; 10615 var _keywords = { 10616 top: 0, 10617 left: 0, 10618 center: 0.5, 10619 bottom: 1, 10620 right: 1 10621 }; 10622 var _offsetToPx = /* @__PURE__ */ __name(function _offsetToPx2(value, size) { 10623 if (_isString3(value)) { 10624 var eqIndex = value.indexOf("="), relative = ~eqIndex ? +(value.charAt(eqIndex - 1) + 1) * parseFloat(value.substr(eqIndex + 1)) : 0; 10625 if (~eqIndex) { 10626 value.indexOf("%") > eqIndex && (relative *= size / 100); 10627 value = value.substr(0, eqIndex - 1); 10628 } 10629 value = relative + (value in _keywords ? _keywords[value] * size : ~value.indexOf("%") ? parseFloat(value) * size / 100 : parseFloat(value) || 0); 10630 } 10631 return value; 10632 }, "_offsetToPx"); 10633 var _createMarker = /* @__PURE__ */ __name(function _createMarker2(type, name, container, direction, _ref4, offset, matchWidthEl, containerAnimation) { 10634 var startColor = _ref4.startColor, endColor = _ref4.endColor, fontSize = _ref4.fontSize, indent = _ref4.indent, fontWeight = _ref4.fontWeight; 10635 var e = _doc4.createElement("div"), useFixedPosition = _isViewport3(container) || _getProxyProp(container, "pinType") === "fixed", isScroller = type.indexOf("scroller") !== -1, parent = useFixedPosition ? _body2 : container, isStart = type.indexOf("start") !== -1, color = isStart ? startColor : endColor, css = "border-color:" + color + ";font-size:" + fontSize + ";color:" + color + ";font-weight:" + fontWeight + ";pointer-events:none;white-space:nowrap;font-family:sans-serif,Arial;z-index:1000;padding:4px 8px;border-width:0;border-style:solid;"; 10636 css += "position:" + ((isScroller || containerAnimation) && useFixedPosition ? "fixed;" : "absolute;"); 10637 (isScroller || containerAnimation || !useFixedPosition) && (css += (direction === _vertical ? _right : _bottom) + ":" + (offset + parseFloat(indent)) + "px;"); 10638 matchWidthEl && (css += "box-sizing:border-box;text-align:left;width:" + matchWidthEl.offsetWidth + "px;"); 10639 e._isStart = isStart; 10640 e.setAttribute("class", "gsap-marker-" + type + (name ? " marker-" + name : "")); 10641 e.style.cssText = css; 10642 e.innerText = name || name === 0 ? type + "-" + name : type; 10643 parent.children[0] ? parent.insertBefore(e, parent.children[0]) : parent.appendChild(e); 10644 e._offset = e["offset" + direction.op.d2]; 10645 _positionMarker(e, 0, direction, isStart); 10646 return e; 10647 }, "_createMarker"); 10648 var _positionMarker = /* @__PURE__ */ __name(function _positionMarker2(marker, start, direction, flipped) { 10649 var vars = { 10650 display: "block" 10651 }, side = direction[flipped ? "os2" : "p2"], oppositeSide = direction[flipped ? "p2" : "os2"]; 10652 marker._isFlipped = flipped; 10653 vars[direction.a + "Percent"] = flipped ? -100 : 0; 10654 vars[direction.a] = flipped ? "1px" : 0; 10655 vars["border" + side + _Width] = 1; 10656 vars["border" + oppositeSide + _Width] = 0; 10657 vars[direction.p] = start + "px"; 10658 gsap3.set(marker, vars); 10659 }, "_positionMarker"); 10660 var _triggers = []; 10661 var _ids = {}; 10662 var _rafID; 10663 var _sync = /* @__PURE__ */ __name(function _sync2() { 10664 return _getTime2() - _lastScrollTime > 34 && (_rafID || (_rafID = requestAnimationFrame(_updateAll))); 10665 }, "_sync"); 10666 var _onScroll3 = /* @__PURE__ */ __name(function _onScroll4() { 10667 if (!_normalizer2 || !_normalizer2.isPressed || _normalizer2.startX > _body2.clientWidth) { 10668 _scrollers.cache++; 10669 if (_normalizer2) { 10670 _rafID || (_rafID = requestAnimationFrame(_updateAll)); 10671 } else { 10672 _updateAll(); 10673 } 10674 _lastScrollTime || _dispatch3("scrollStart"); 10675 _lastScrollTime = _getTime2(); 10676 } 10677 }, "_onScroll"); 10678 var _setBaseDimensions = /* @__PURE__ */ __name(function _setBaseDimensions2() { 10679 _baseScreenWidth = _win4.innerWidth; 10680 _baseScreenHeight = _win4.innerHeight; 10681 }, "_setBaseDimensions"); 10682 var _onResize = /* @__PURE__ */ __name(function _onResize2(force) { 10683 _scrollers.cache++; 10684 (force === true || !_refreshing && !_ignoreResize && !_doc4.fullscreenElement && !_doc4.webkitFullscreenElement && (!_ignoreMobileResize || _baseScreenWidth !== _win4.innerWidth || Math.abs(_win4.innerHeight - _baseScreenHeight) > _win4.innerHeight * 0.25)) && _resizeDelay.restart(true); 10685 }, "_onResize"); 10686 var _listeners2 = {}; 10687 var _emptyArray2 = []; 10688 var _softRefresh = /* @__PURE__ */ __name(function _softRefresh2() { 10689 return _removeListener3(ScrollTrigger2, "scrollEnd", _softRefresh2) || _refreshAll(true); 10690 }, "_softRefresh"); 10691 var _dispatch3 = /* @__PURE__ */ __name(function _dispatch4(type) { 10692 return _listeners2[type] && _listeners2[type].map(function(f) { 10693 return f(); 10694 }) || _emptyArray2; 10695 }, "_dispatch"); 10696 var _savedStyles = []; 10697 var _revertRecorded = /* @__PURE__ */ __name(function _revertRecorded2(media) { 10698 for (var i = 0; i < _savedStyles.length; i += 5) { 10699 if (!media || _savedStyles[i + 4] && _savedStyles[i + 4].query === media) { 10700 _savedStyles[i].style.cssText = _savedStyles[i + 1]; 10701 _savedStyles[i].getBBox && _savedStyles[i].setAttribute("transform", _savedStyles[i + 2] || ""); 10702 _savedStyles[i + 3].uncache = 1; 10703 } 10704 } 10705 }, "_revertRecorded"); 10706 var _recordScrollPositions = /* @__PURE__ */ __name(function _recordScrollPositions2() { 10707 return _scrollers.forEach(function(obj) { 10708 return _isFunction3(obj) && ++obj.cacheID && (obj.rec = obj()); 10709 }); 10710 }, "_recordScrollPositions"); 10711 var _revertAll = /* @__PURE__ */ __name(function _revertAll2(kill, media) { 10712 var trigger; 10713 for (_i = 0; _i < _triggers.length; _i++) { 10714 trigger = _triggers[_i]; 10715 if (trigger && (!media || trigger._ctx === media)) { 10716 if (kill) { 10717 trigger.kill(1); 10718 } else { 10719 trigger.revert(true, true); 10720 } 10721 } 10722 } 10723 _isReverted = true; 10724 media && _revertRecorded(media); 10725 media || _dispatch3("revert"); 10726 }, "_revertAll"); 10727 var _clearScrollMemory = /* @__PURE__ */ __name(function _clearScrollMemory2(scrollRestoration, force) { 10728 _scrollers.cache++; 10729 (force || !_refreshingAll) && _scrollers.forEach(function(obj) { 10730 return _isFunction3(obj) && obj.cacheID++ && (obj.rec = 0); 10731 }); 10732 _isString3(scrollRestoration) && (_win4.history.scrollRestoration = _scrollRestoration = scrollRestoration); 10733 }, "_clearScrollMemory"); 10734 var _refreshingAll; 10735 var _refreshID = 0; 10736 var _queueRefreshID; 10737 var _queueRefreshAll = /* @__PURE__ */ __name(function _queueRefreshAll2() { 10738 if (_queueRefreshID !== _refreshID) { 10739 var id = _queueRefreshID = _refreshID; 10740 requestAnimationFrame(function() { 10741 return id === _refreshID && _refreshAll(true); 10742 }); 10743 } 10744 }, "_queueRefreshAll"); 10745 var _refresh100vh = /* @__PURE__ */ __name(function _refresh100vh2() { 10746 _body2.appendChild(_div100vh); 10747 _100vh = !_normalizer2 && _div100vh.offsetHeight || _win4.innerHeight; 10748 _body2.removeChild(_div100vh); 10749 }, "_refresh100vh"); 10750 var _hideAllMarkers = /* @__PURE__ */ __name(function _hideAllMarkers2(hide2) { 10751 return _toArray(".gsap-marker-start, .gsap-marker-end, .gsap-marker-scroller-start, .gsap-marker-scroller-end").forEach(function(el) { 10752 return el.style.display = hide2 ? "none" : "block"; 10753 }); 10754 }, "_hideAllMarkers"); 10755 var _refreshAll = /* @__PURE__ */ __name(function _refreshAll2(force, skipRevert) { 10756 _docEl2 = _doc4.documentElement; 10757 _body2 = _doc4.body; 10758 _root2 = [_win4, _doc4, _docEl2, _body2]; 10759 if (_lastScrollTime && !force && !_isReverted) { 10760 _addListener3(ScrollTrigger2, "scrollEnd", _softRefresh); 10761 return; 10762 } 10763 _refresh100vh(); 10764 _refreshingAll = ScrollTrigger2.isRefreshing = true; 10765 _isReverted || _recordScrollPositions(); 10766 var refreshInits = _dispatch3("refreshInit"); 10767 _sort && ScrollTrigger2.sort(); 10768 skipRevert || _revertAll(); 10769 _scrollers.forEach(function(obj) { 10770 if (_isFunction3(obj)) { 10771 obj.smooth && (obj.target.style.scrollBehavior = "auto"); 10772 obj(0); 10773 } 10774 }); 10775 _triggers.slice(0).forEach(function(t) { 10776 return t.refresh(); 10777 }); 10778 _isReverted = false; 10779 _triggers.forEach(function(t) { 10780 if (t._subPinOffset && t.pin) { 10781 var prop = t.vars.horizontal ? "offsetWidth" : "offsetHeight", original = t.pin[prop]; 10782 t.revert(true, 1); 10783 t.adjustPinSpacing(t.pin[prop] - original); 10784 t.refresh(); 10785 } 10786 }); 10787 _clampingMax = 1; 10788 _hideAllMarkers(true); 10789 _triggers.forEach(function(t) { 10790 var max = _maxScroll(t.scroller, t._dir), endClamp = t.vars.end === "max" || t._endClamp && t.end > max, startClamp = t._startClamp && t.start >= max; 10791 (endClamp || startClamp) && t.setPositions(startClamp ? max - 1 : t.start, endClamp ? Math.max(startClamp ? max : t.start + 1, max) : t.end, true); 10792 }); 10793 _hideAllMarkers(false); 10794 _clampingMax = 0; 10795 refreshInits.forEach(function(result) { 10796 return result && result.render && result.render(-1); 10797 }); 10798 _scrollers.forEach(function(obj) { 10799 if (_isFunction3(obj)) { 10800 obj.smooth && requestAnimationFrame(function() { 10801 return obj.target.style.scrollBehavior = "smooth"; 10802 }); 10803 obj.rec && obj(obj.rec); 10804 } 10805 }); 10806 _clearScrollMemory(_scrollRestoration, 1); 10807 _resizeDelay.pause(); 10808 _refreshID++; 10809 _refreshingAll = 2; 10810 _updateAll(2); 10811 _triggers.forEach(function(t) { 10812 return _isFunction3(t.vars.onRefresh) && t.vars.onRefresh(t); 10813 }); 10814 _refreshingAll = ScrollTrigger2.isRefreshing = false; 10815 _dispatch3("refresh"); 10816 }, "_refreshAll"); 10817 var _lastScroll = 0; 10818 var _direction = 1; 10819 var _primary; 10820 var _updateAll = /* @__PURE__ */ __name(function _updateAll2(force) { 10821 if (force === 2 || !_refreshingAll && !_isReverted) { 10822 ScrollTrigger2.isUpdating = true; 10823 _primary && _primary.update(0); 10824 var l = _triggers.length, time = _getTime2(), recordVelocity = time - _time1 >= 50, scroll = l && _triggers[0].scroll(); 10825 _direction = _lastScroll > scroll ? -1 : 1; 10826 _refreshingAll || (_lastScroll = scroll); 10827 if (recordVelocity) { 10828 if (_lastScrollTime && !_pointerIsDown && time - _lastScrollTime > 200) { 10829 _lastScrollTime = 0; 10830 _dispatch3("scrollEnd"); 10831 } 10832 _time2 = _time1; 10833 _time1 = time; 10834 } 10835 if (_direction < 0) { 10836 _i = l; 10837 while (_i-- > 0) { 10838 _triggers[_i] && _triggers[_i].update(0, recordVelocity); 10839 } 10840 _direction = 1; 10841 } else { 10842 for (_i = 0; _i < l; _i++) { 10843 _triggers[_i] && _triggers[_i].update(0, recordVelocity); 10844 } 10845 } 10846 ScrollTrigger2.isUpdating = false; 10847 } 10848 _rafID = 0; 10849 }, "_updateAll"); 10850 var _propNamesToCopy = [_left, _top, _bottom, _right, _margin + _Bottom, _margin + _Right, _margin + _Top, _margin + _Left, "display", "flexShrink", "float", "zIndex", "gridColumnStart", "gridColumnEnd", "gridRowStart", "gridRowEnd", "gridArea", "justifySelf", "alignSelf", "placeSelf", "order"]; 10851 var _stateProps = _propNamesToCopy.concat([_width, _height, "boxSizing", "max" + _Width, "max" + _Height, "position", _margin, _padding, _padding + _Top, _padding + _Right, _padding + _Bottom, _padding + _Left]); 10852 var _swapPinOut = /* @__PURE__ */ __name(function _swapPinOut2(pin, spacer, state2) { 10853 _setState(state2); 10854 var cache = pin._gsap; 10855 if (cache.spacerIsNative) { 10856 _setState(cache.spacerState); 10857 } else if (pin._gsap.swappedIn) { 10858 var parent = spacer.parentNode; 10859 if (parent) { 10860 parent.insertBefore(pin, spacer); 10861 parent.removeChild(spacer); 10862 } 10863 } 10864 pin._gsap.swappedIn = false; 10865 }, "_swapPinOut"); 10866 var _swapPinIn = /* @__PURE__ */ __name(function _swapPinIn2(pin, spacer, cs, spacerState) { 10867 if (!pin._gsap.swappedIn) { 10868 var i = _propNamesToCopy.length, spacerStyle = spacer.style, pinStyle = pin.style, p; 10869 while (i--) { 10870 p = _propNamesToCopy[i]; 10871 spacerStyle[p] = cs[p]; 10872 } 10873 spacerStyle.position = cs.position === "absolute" ? "absolute" : "relative"; 10874 cs.display === "inline" && (spacerStyle.display = "inline-block"); 10875 pinStyle[_bottom] = pinStyle[_right] = "auto"; 10876 spacerStyle.flexBasis = cs.flexBasis || "auto"; 10877 spacerStyle.overflow = "visible"; 10878 spacerStyle.boxSizing = "border-box"; 10879 spacerStyle[_width] = _getSize(pin, _horizontal) + _px; 10880 spacerStyle[_height] = _getSize(pin, _vertical) + _px; 10881 spacerStyle[_padding] = pinStyle[_margin] = pinStyle[_top] = pinStyle[_left] = "0"; 10882 _setState(spacerState); 10883 pinStyle[_width] = pinStyle["max" + _Width] = cs[_width]; 10884 pinStyle[_height] = pinStyle["max" + _Height] = cs[_height]; 10885 pinStyle[_padding] = cs[_padding]; 10886 if (pin.parentNode !== spacer) { 10887 pin.parentNode.insertBefore(spacer, pin); 10888 spacer.appendChild(pin); 10889 } 10890 pin._gsap.swappedIn = true; 10891 } 10892 }, "_swapPinIn"); 10893 var _capsExp2 = /([A-Z])/g; 10894 var _setState = /* @__PURE__ */ __name(function _setState2(state2) { 10895 if (state2) { 10896 var style = state2.t.style, l = state2.length, i = 0, p, value; 10897 (state2.t._gsap || gsap3.core.getCache(state2.t)).uncache = 1; 10898 for (; i < l; i += 2) { 10899 value = state2[i + 1]; 10900 p = state2[i]; 10901 if (value) { 10902 style[p] = value; 10903 } else if (style[p]) { 10904 style.removeProperty(p.replace(_capsExp2, "-$1").toLowerCase()); 10905 } 10906 } 10907 } 10908 }, "_setState"); 10909 var _getState = /* @__PURE__ */ __name(function _getState2(element) { 10910 var l = _stateProps.length, style = element.style, state2 = [], i = 0; 10911 for (; i < l; i++) { 10912 state2.push(_stateProps[i], style[_stateProps[i]]); 10913 } 10914 state2.t = element; 10915 return state2; 10916 }, "_getState"); 10917 var _copyState = /* @__PURE__ */ __name(function _copyState2(state2, override, omitOffsets) { 10918 var result = [], l = state2.length, i = omitOffsets ? 8 : 0, p; 10919 for (; i < l; i += 2) { 10920 p = state2[i]; 10921 result.push(p, p in override ? override[p] : state2[i + 1]); 10922 } 10923 result.t = state2.t; 10924 return result; 10925 }, "_copyState"); 10926 var _winOffsets = { 10927 left: 0, 10928 top: 0 10929 }; 10930 var _parsePosition3 = /* @__PURE__ */ __name(function _parsePosition4(value, trigger, scrollerSize, direction, scroll, marker, markerScroller, self2, scrollerBounds, borderWidth, useFixedPosition, scrollerMax, containerAnimation, clampZeroProp) { 10931 _isFunction3(value) && (value = value(self2)); 10932 if (_isString3(value) && value.substr(0, 3) === "max") { 10933 value = scrollerMax + (value.charAt(4) === "=" ? _offsetToPx("0" + value.substr(3), scrollerSize) : 0); 10934 } 10935 var time = containerAnimation ? containerAnimation.time() : 0, p1, p2, element; 10936 containerAnimation && containerAnimation.seek(0); 10937 isNaN(value) || (value = +value); 10938 if (!_isNumber3(value)) { 10939 _isFunction3(trigger) && (trigger = trigger(self2)); 10940 var offsets = (value || "0").split(" "), bounds, localOffset, globalOffset, display; 10941 element = _getTarget(trigger, self2) || _body2; 10942 bounds = _getBounds(element) || {}; 10943 if ((!bounds || !bounds.left && !bounds.top) && _getComputedStyle(element).display === "none") { 10944 display = element.style.display; 10945 element.style.display = "block"; 10946 bounds = _getBounds(element); 10947 display ? element.style.display = display : element.style.removeProperty("display"); 10948 } 10949 localOffset = _offsetToPx(offsets[0], bounds[direction.d]); 10950 globalOffset = _offsetToPx(offsets[1] || "0", scrollerSize); 10951 value = bounds[direction.p] - scrollerBounds[direction.p] - borderWidth + localOffset + scroll - globalOffset; 10952 markerScroller && _positionMarker(markerScroller, globalOffset, direction, scrollerSize - globalOffset < 20 || markerScroller._isStart && globalOffset > 20); 10953 scrollerSize -= scrollerSize - globalOffset; 10954 } else { 10955 containerAnimation && (value = gsap3.utils.mapRange(containerAnimation.scrollTrigger.start, containerAnimation.scrollTrigger.end, 0, scrollerMax, value)); 10956 markerScroller && _positionMarker(markerScroller, scrollerSize, direction, true); 10957 } 10958 if (clampZeroProp) { 10959 self2[clampZeroProp] = value || -1e-3; 10960 value < 0 && (value = 0); 10961 } 10962 if (marker) { 10963 var position = value + scrollerSize, isStart = marker._isStart; 10964 p1 = "scroll" + direction.d2; 10965 _positionMarker(marker, position, direction, isStart && position > 20 || !isStart && (useFixedPosition ? Math.max(_body2[p1], _docEl2[p1]) : marker.parentNode[p1]) <= position + 1); 10966 if (useFixedPosition) { 10967 scrollerBounds = _getBounds(markerScroller); 10968 useFixedPosition && (marker.style[direction.op.p] = scrollerBounds[direction.op.p] - direction.op.m - marker._offset + _px); 10969 } 10970 } 10971 if (containerAnimation && element) { 10972 p1 = _getBounds(element); 10973 containerAnimation.seek(scrollerMax); 10974 p2 = _getBounds(element); 10975 containerAnimation._caScrollDist = p1[direction.p] - p2[direction.p]; 10976 value = value / containerAnimation._caScrollDist * scrollerMax; 10977 } 10978 containerAnimation && containerAnimation.seek(time); 10979 return containerAnimation ? value : Math.round(value); 10980 }, "_parsePosition"); 10981 var _prefixExp = /(webkit|moz|length|cssText|inset)/i; 10982 var _reparent = /* @__PURE__ */ __name(function _reparent2(element, parent, top, left) { 10983 if (element.parentNode !== parent) { 10984 var style = element.style, p, cs; 10985 if (parent === _body2) { 10986 element._stOrig = style.cssText; 10987 cs = _getComputedStyle(element); 10988 for (p in cs) { 10989 if (!+p && !_prefixExp.test(p) && cs[p] && typeof style[p] === "string" && p !== "0") { 10990 style[p] = cs[p]; 10991 } 10992 } 10993 style.top = top; 10994 style.left = left; 10995 } else { 10996 style.cssText = element._stOrig; 10997 } 10998 gsap3.core.getCache(element).uncache = 1; 10999 parent.appendChild(element); 11000 } 11001 }, "_reparent"); 11002 var _interruptionTracker = /* @__PURE__ */ __name(function _interruptionTracker2(getValueFunc, initialValue, onInterrupt) { 11003 var last1 = initialValue, last2 = last1; 11004 return function(value) { 11005 var current = Math.round(getValueFunc()); 11006 if (current !== last1 && current !== last2 && Math.abs(current - last1) > 3 && Math.abs(current - last2) > 3) { 11007 value = current; 11008 onInterrupt && onInterrupt(); 11009 } 11010 last2 = last1; 11011 last1 = Math.round(value); 11012 return last1; 11013 }; 11014 }, "_interruptionTracker"); 11015 var _shiftMarker = /* @__PURE__ */ __name(function _shiftMarker2(marker, direction, value) { 11016 var vars = {}; 11017 vars[direction.p] = "+=" + value; 11018 gsap3.set(marker, vars); 11019 }, "_shiftMarker"); 11020 var _getTweenCreator = /* @__PURE__ */ __name(function _getTweenCreator2(scroller, direction) { 11021 var getScroll = _getScrollFunc(scroller, direction), prop = "_scroll" + direction.p2, getTween = /* @__PURE__ */ __name(function getTween2(scrollTo, vars, initialValue, change1, change2) { 11022 var tween = getTween2.tween, onComplete = vars.onComplete, modifiers = {}; 11023 initialValue = initialValue || getScroll(); 11024 var checkForInterruption = _interruptionTracker(getScroll, initialValue, function() { 11025 tween.kill(); 11026 getTween2.tween = 0; 11027 }); 11028 change2 = change1 && change2 || 0; 11029 change1 = change1 || scrollTo - initialValue; 11030 tween && tween.kill(); 11031 vars[prop] = scrollTo; 11032 vars.inherit = false; 11033 vars.modifiers = modifiers; 11034 modifiers[prop] = function() { 11035 return checkForInterruption(initialValue + change1 * tween.ratio + change2 * tween.ratio * tween.ratio); 11036 }; 11037 vars.onUpdate = function() { 11038 _scrollers.cache++; 11039 getTween2.tween && _updateAll(); 11040 }; 11041 vars.onComplete = function() { 11042 getTween2.tween = 0; 11043 onComplete && onComplete.call(tween); 11044 }; 11045 tween = getTween2.tween = gsap3.to(scroller, vars); 11046 return tween; 11047 }, "getTween"); 11048 scroller[prop] = getScroll; 11049 getScroll.wheelHandler = function() { 11050 return getTween.tween && getTween.tween.kill() && (getTween.tween = 0); 11051 }; 11052 _addListener3(scroller, "wheel", getScroll.wheelHandler); 11053 ScrollTrigger2.isTouch && _addListener3(scroller, "touchmove", getScroll.wheelHandler); 11054 return getTween; 11055 }, "_getTweenCreator"); 11056 var ScrollTrigger2 = /* @__PURE__ */ (function() { 11057 function ScrollTrigger3(vars, animation) { 11058 _coreInitted3 || ScrollTrigger3.register(gsap3) || console.warn("Please gsap.registerPlugin(ScrollTrigger)"); 11059 _context3(this); 11060 this.init(vars, animation); 11061 } 11062 __name(ScrollTrigger3, "ScrollTrigger"); 11063 var _proto = ScrollTrigger3.prototype; 11064 _proto.init = /* @__PURE__ */ __name(function init5(vars, animation) { 11065 this.progress = this.start = 0; 11066 this.vars && this.kill(true, true); 11067 if (!_enabled) { 11068 this.update = this.refresh = this.kill = _passThrough3; 11069 return; 11070 } 11071 vars = _setDefaults3(_isString3(vars) || _isNumber3(vars) || vars.nodeType ? { 11072 trigger: vars 11073 } : vars, _defaults2); 11074 var _vars = vars, onUpdate = _vars.onUpdate, toggleClass = _vars.toggleClass, id = _vars.id, onToggle = _vars.onToggle, onRefresh = _vars.onRefresh, scrub = _vars.scrub, trigger = _vars.trigger, pin = _vars.pin, pinSpacing = _vars.pinSpacing, invalidateOnRefresh = _vars.invalidateOnRefresh, anticipatePin = _vars.anticipatePin, onScrubComplete = _vars.onScrubComplete, onSnapComplete = _vars.onSnapComplete, once = _vars.once, snap3 = _vars.snap, pinReparent = _vars.pinReparent, pinSpacer = _vars.pinSpacer, containerAnimation = _vars.containerAnimation, fastScrollEnd = _vars.fastScrollEnd, preventOverlaps = _vars.preventOverlaps, direction = vars.horizontal || vars.containerAnimation && vars.horizontal !== false ? _horizontal : _vertical, isToggle = !scrub && scrub !== 0, scroller = _getTarget(vars.scroller || _win4), scrollerCache = gsap3.core.getCache(scroller), isViewport = _isViewport3(scroller), useFixedPosition = ("pinType" in vars ? vars.pinType : _getProxyProp(scroller, "pinType") || isViewport && "fixed") === "fixed", callbacks = [vars.onEnter, vars.onLeave, vars.onEnterBack, vars.onLeaveBack], toggleActions = isToggle && vars.toggleActions.split(" "), markers = "markers" in vars ? vars.markers : _defaults2.markers, borderWidth = isViewport ? 0 : parseFloat(_getComputedStyle(scroller)["border" + direction.p2 + _Width]) || 0, self2 = this, onRefreshInit = vars.onRefreshInit && function() { 11075 return vars.onRefreshInit(self2); 11076 }, getScrollerSize = _getSizeFunc(scroller, isViewport, direction), getScrollerOffsets = _getOffsetsFunc(scroller, isViewport), lastSnap = 0, lastRefresh = 0, prevProgress = 0, scrollFunc = _getScrollFunc(scroller, direction), tweenTo, pinCache, snapFunc, scroll1, scroll2, start, end, markerStart, markerEnd, markerStartTrigger, markerEndTrigger, markerVars, executingOnRefresh, change, pinOriginalState, pinActiveState, pinState, spacer, offset, pinGetter, pinSetter, pinStart, pinChange, spacingStart, spacerState, markerStartSetter, pinMoves, markerEndSetter, cs, snap1, snap22, scrubTween, scrubSmooth, snapDurClamp, snapDelayedCall, prevScroll, prevAnimProgress, caMarkerSetter, customRevertReturn; 11077 self2._startClamp = self2._endClamp = false; 11078 self2._dir = direction; 11079 anticipatePin *= 45; 11080 self2.scroller = scroller; 11081 self2.scroll = containerAnimation ? containerAnimation.time.bind(containerAnimation) : scrollFunc; 11082 scroll1 = scrollFunc(); 11083 self2.vars = vars; 11084 animation = animation || vars.animation; 11085 if ("refreshPriority" in vars) { 11086 _sort = 1; 11087 vars.refreshPriority === -9999 && (_primary = self2); 11088 } 11089 scrollerCache.tweenScroll = scrollerCache.tweenScroll || { 11090 top: _getTweenCreator(scroller, _vertical), 11091 left: _getTweenCreator(scroller, _horizontal) 11092 }; 11093 self2.tweenTo = tweenTo = scrollerCache.tweenScroll[direction.p]; 11094 self2.scrubDuration = function(value) { 11095 scrubSmooth = _isNumber3(value) && value; 11096 if (!scrubSmooth) { 11097 scrubTween && scrubTween.progress(1).kill(); 11098 scrubTween = 0; 11099 } else { 11100 scrubTween ? scrubTween.duration(value) : scrubTween = gsap3.to(animation, { 11101 ease: "expo", 11102 totalProgress: "+=0", 11103 inherit: false, 11104 duration: scrubSmooth, 11105 paused: true, 11106 onComplete: /* @__PURE__ */ __name(function onComplete() { 11107 return onScrubComplete && onScrubComplete(self2); 11108 }, "onComplete") 11109 }); 11110 } 11111 }; 11112 if (animation) { 11113 animation.vars.lazy = false; 11114 animation._initted && !self2.isReverted || animation.vars.immediateRender !== false && vars.immediateRender !== false && animation.duration() && animation.render(0, true, true); 11115 self2.animation = animation.pause(); 11116 animation.scrollTrigger = self2; 11117 self2.scrubDuration(scrub); 11118 snap1 = 0; 11119 id || (id = animation.vars.id); 11120 } 11121 if (snap3) { 11122 if (!_isObject3(snap3) || snap3.push) { 11123 snap3 = { 11124 snapTo: snap3 11125 }; 11126 } 11127 "scrollBehavior" in _body2.style && gsap3.set(isViewport ? [_body2, _docEl2] : scroller, { 11128 scrollBehavior: "auto" 11129 }); 11130 _scrollers.forEach(function(o) { 11131 return _isFunction3(o) && o.target === (isViewport ? _doc4.scrollingElement || _docEl2 : scroller) && (o.smooth = false); 11132 }); 11133 snapFunc = _isFunction3(snap3.snapTo) ? snap3.snapTo : snap3.snapTo === "labels" ? _getClosestLabel(animation) : snap3.snapTo === "labelsDirectional" ? _getLabelAtDirection(animation) : snap3.directional !== false ? function(value, st) { 11134 return _snapDirectional(snap3.snapTo)(value, _getTime2() - lastRefresh < 500 ? 0 : st.direction); 11135 } : gsap3.utils.snap(snap3.snapTo); 11136 snapDurClamp = snap3.duration || { 11137 min: 0.1, 11138 max: 2 11139 }; 11140 snapDurClamp = _isObject3(snapDurClamp) ? _clamp4(snapDurClamp.min, snapDurClamp.max) : _clamp4(snapDurClamp, snapDurClamp); 11141 snapDelayedCall = gsap3.delayedCall(snap3.delay || scrubSmooth / 2 || 0.1, function() { 11142 var scroll = scrollFunc(), refreshedRecently = _getTime2() - lastRefresh < 500, tween = tweenTo.tween; 11143 if ((refreshedRecently || Math.abs(self2.getVelocity()) < 10) && !tween && !_pointerIsDown && lastSnap !== scroll) { 11144 var progress = (scroll - start) / change, totalProgress = animation && !isToggle ? animation.totalProgress() : progress, velocity = refreshedRecently ? 0 : (totalProgress - snap22) / (_getTime2() - _time2) * 1e3 || 0, change1 = gsap3.utils.clamp(-progress, 1 - progress, _abs(velocity / 2) * velocity / 0.185), naturalEnd = progress + (snap3.inertia === false ? 0 : change1), endValue, endScroll, _snap = snap3, onStart = _snap.onStart, _onInterrupt = _snap.onInterrupt, _onComplete = _snap.onComplete; 11145 endValue = snapFunc(naturalEnd, self2); 11146 _isNumber3(endValue) || (endValue = naturalEnd); 11147 endScroll = Math.max(0, Math.round(start + endValue * change)); 11148 if (scroll <= end && scroll >= start && endScroll !== scroll) { 11149 if (tween && !tween._initted && tween.data <= _abs(endScroll - scroll)) { 11150 return; 11151 } 11152 if (snap3.inertia === false) { 11153 change1 = endValue - progress; 11154 } 11155 tweenTo(endScroll, { 11156 duration: snapDurClamp(_abs(Math.max(_abs(naturalEnd - totalProgress), _abs(endValue - totalProgress)) * 0.185 / velocity / 0.05 || 0)), 11157 ease: snap3.ease || "power3", 11158 data: _abs(endScroll - scroll), 11159 // record the distance so that if another snap tween occurs (conflict) we can prioritize the closest snap. 11160 onInterrupt: /* @__PURE__ */ __name(function onInterrupt() { 11161 return snapDelayedCall.restart(true) && _onInterrupt && _onInterrupt(self2); 11162 }, "onInterrupt"), 11163 onComplete: /* @__PURE__ */ __name(function onComplete() { 11164 self2.update(); 11165 lastSnap = scrollFunc(); 11166 if (animation && !isToggle) { 11167 scrubTween ? scrubTween.resetTo("totalProgress", endValue, animation._tTime / animation._tDur) : animation.progress(endValue); 11168 } 11169 snap1 = snap22 = animation && !isToggle ? animation.totalProgress() : self2.progress; 11170 onSnapComplete && onSnapComplete(self2); 11171 _onComplete && _onComplete(self2); 11172 }, "onComplete") 11173 }, scroll, change1 * change, endScroll - scroll - change1 * change); 11174 onStart && onStart(self2, tweenTo.tween); 11175 } 11176 } else if (self2.isActive && lastSnap !== scroll) { 11177 snapDelayedCall.restart(true); 11178 } 11179 }).pause(); 11180 } 11181 id && (_ids[id] = self2); 11182 trigger = self2.trigger = _getTarget(trigger || pin !== true && pin); 11183 customRevertReturn = trigger && trigger._gsap && trigger._gsap.stRevert; 11184 customRevertReturn && (customRevertReturn = customRevertReturn(self2)); 11185 pin = pin === true ? trigger : _getTarget(pin); 11186 _isString3(toggleClass) && (toggleClass = { 11187 targets: trigger, 11188 className: toggleClass 11189 }); 11190 if (pin) { 11191 pinSpacing === false || pinSpacing === _margin || (pinSpacing = !pinSpacing && pin.parentNode && pin.parentNode.style && _getComputedStyle(pin.parentNode).display === "flex" ? false : _padding); 11192 self2.pin = pin; 11193 pinCache = gsap3.core.getCache(pin); 11194 if (!pinCache.spacer) { 11195 if (pinSpacer) { 11196 pinSpacer = _getTarget(pinSpacer); 11197 pinSpacer && !pinSpacer.nodeType && (pinSpacer = pinSpacer.current || pinSpacer.nativeElement); 11198 pinCache.spacerIsNative = !!pinSpacer; 11199 pinSpacer && (pinCache.spacerState = _getState(pinSpacer)); 11200 } 11201 pinCache.spacer = spacer = pinSpacer || _doc4.createElement("div"); 11202 spacer.classList.add("pin-spacer"); 11203 id && spacer.classList.add("pin-spacer-" + id); 11204 pinCache.pinState = pinOriginalState = _getState(pin); 11205 } else { 11206 pinOriginalState = pinCache.pinState; 11207 } 11208 vars.force3D !== false && gsap3.set(pin, { 11209 force3D: true 11210 }); 11211 self2.spacer = spacer = pinCache.spacer; 11212 cs = _getComputedStyle(pin); 11213 spacingStart = cs[pinSpacing + direction.os2]; 11214 pinGetter = gsap3.getProperty(pin); 11215 pinSetter = gsap3.quickSetter(pin, direction.a, _px); 11216 _swapPinIn(pin, spacer, cs); 11217 pinState = _getState(pin); 11218 } 11219 if (markers) { 11220 markerVars = _isObject3(markers) ? _setDefaults3(markers, _markerDefaults) : _markerDefaults; 11221 markerStartTrigger = _createMarker("scroller-start", id, scroller, direction, markerVars, 0); 11222 markerEndTrigger = _createMarker("scroller-end", id, scroller, direction, markerVars, 0, markerStartTrigger); 11223 offset = markerStartTrigger["offset" + direction.op.d2]; 11224 var content = _getTarget(_getProxyProp(scroller, "content") || scroller); 11225 markerStart = this.markerStart = _createMarker("start", id, content, direction, markerVars, offset, 0, containerAnimation); 11226 markerEnd = this.markerEnd = _createMarker("end", id, content, direction, markerVars, offset, 0, containerAnimation); 11227 containerAnimation && (caMarkerSetter = gsap3.quickSetter([markerStart, markerEnd], direction.a, _px)); 11228 if (!useFixedPosition && !(_proxies.length && _getProxyProp(scroller, "fixedMarkers") === true)) { 11229 _makePositionable(isViewport ? _body2 : scroller); 11230 gsap3.set([markerStartTrigger, markerEndTrigger], { 11231 force3D: true 11232 }); 11233 markerStartSetter = gsap3.quickSetter(markerStartTrigger, direction.a, _px); 11234 markerEndSetter = gsap3.quickSetter(markerEndTrigger, direction.a, _px); 11235 } 11236 } 11237 if (containerAnimation) { 11238 var oldOnUpdate = containerAnimation.vars.onUpdate, oldParams = containerAnimation.vars.onUpdateParams; 11239 containerAnimation.eventCallback("onUpdate", function() { 11240 self2.update(0, 0, 1); 11241 oldOnUpdate && oldOnUpdate.apply(containerAnimation, oldParams || []); 11242 }); 11243 } 11244 self2.previous = function() { 11245 return _triggers[_triggers.indexOf(self2) - 1]; 11246 }; 11247 self2.next = function() { 11248 return _triggers[_triggers.indexOf(self2) + 1]; 11249 }; 11250 self2.revert = function(revert, temp) { 11251 if (!temp) { 11252 return self2.kill(true); 11253 } 11254 var r = revert !== false || !self2.enabled, prevRefreshing = _refreshing; 11255 if (r !== self2.isReverted) { 11256 if (r) { 11257 prevScroll = Math.max(scrollFunc(), self2.scroll.rec || 0); 11258 prevProgress = self2.progress; 11259 prevAnimProgress = animation && animation.progress(); 11260 } 11261 markerStart && [markerStart, markerEnd, markerStartTrigger, markerEndTrigger].forEach(function(m) { 11262 return m.style.display = r ? "none" : "block"; 11263 }); 11264 if (r) { 11265 _refreshing = self2; 11266 self2.update(r); 11267 } 11268 if (pin && (!pinReparent || !self2.isActive)) { 11269 if (r) { 11270 _swapPinOut(pin, spacer, pinOriginalState); 11271 } else { 11272 _swapPinIn(pin, spacer, _getComputedStyle(pin), spacerState); 11273 } 11274 } 11275 r || self2.update(r); 11276 _refreshing = prevRefreshing; 11277 self2.isReverted = r; 11278 } 11279 }; 11280 self2.refresh = function(soft, force, position, pinOffset) { 11281 if ((_refreshing || !self2.enabled) && !force) { 11282 return; 11283 } 11284 if (pin && soft && _lastScrollTime) { 11285 _addListener3(ScrollTrigger3, "scrollEnd", _softRefresh); 11286 return; 11287 } 11288 !_refreshingAll && onRefreshInit && onRefreshInit(self2); 11289 _refreshing = self2; 11290 if (tweenTo.tween && !position) { 11291 tweenTo.tween.kill(); 11292 tweenTo.tween = 0; 11293 } 11294 scrubTween && scrubTween.pause(); 11295 if (invalidateOnRefresh && animation) { 11296 animation.revert({ 11297 kill: false 11298 }).invalidate(); 11299 animation.getChildren ? animation.getChildren(true, true, false).forEach(function(t) { 11300 return t.vars.immediateRender && t.render(0, true, true); 11301 }) : animation.vars.immediateRender && animation.render(0, true, true); 11302 } 11303 self2.isReverted || self2.revert(true, true); 11304 self2._subPinOffset = false; 11305 var size = getScrollerSize(), scrollerBounds = getScrollerOffsets(), max = containerAnimation ? containerAnimation.duration() : _maxScroll(scroller, direction), isFirstRefresh = change <= 0.01 || !change, offset2 = 0, otherPinOffset = pinOffset || 0, parsedEnd = _isObject3(position) ? position.end : vars.end, parsedEndTrigger = vars.endTrigger || trigger, parsedStart = _isObject3(position) ? position.start : vars.start || (vars.start === 0 || !trigger ? 0 : pin ? "0 0" : "0 100%"), pinnedContainer = self2.pinnedContainer = vars.pinnedContainer && _getTarget(vars.pinnedContainer, self2), triggerIndex = trigger && Math.max(0, _triggers.indexOf(self2)) || 0, i = triggerIndex, cs2, bounds, scroll, isVertical, override, curTrigger, curPin, oppositeScroll, initted, revertedPins, forcedOverflow, markerStartOffset, markerEndOffset; 11306 if (markers && _isObject3(position)) { 11307 markerStartOffset = gsap3.getProperty(markerStartTrigger, direction.p); 11308 markerEndOffset = gsap3.getProperty(markerEndTrigger, direction.p); 11309 } 11310 while (i-- > 0) { 11311 curTrigger = _triggers[i]; 11312 curTrigger.end || curTrigger.refresh(0, 1) || (_refreshing = self2); 11313 curPin = curTrigger.pin; 11314 if (curPin && (curPin === trigger || curPin === pin || curPin === pinnedContainer) && !curTrigger.isReverted) { 11315 revertedPins || (revertedPins = []); 11316 revertedPins.unshift(curTrigger); 11317 curTrigger.revert(true, true); 11318 } 11319 if (curTrigger !== _triggers[i]) { 11320 triggerIndex--; 11321 i--; 11322 } 11323 } 11324 _isFunction3(parsedStart) && (parsedStart = parsedStart(self2)); 11325 parsedStart = _parseClamp(parsedStart, "start", self2); 11326 start = _parsePosition3(parsedStart, trigger, size, direction, scrollFunc(), markerStart, markerStartTrigger, self2, scrollerBounds, borderWidth, useFixedPosition, max, containerAnimation, self2._startClamp && "_startClamp") || (pin ? -1e-3 : 0); 11327 _isFunction3(parsedEnd) && (parsedEnd = parsedEnd(self2)); 11328 if (_isString3(parsedEnd) && !parsedEnd.indexOf("+=")) { 11329 if (~parsedEnd.indexOf(" ")) { 11330 parsedEnd = (_isString3(parsedStart) ? parsedStart.split(" ")[0] : "") + parsedEnd; 11331 } else { 11332 offset2 = _offsetToPx(parsedEnd.substr(2), size); 11333 parsedEnd = _isString3(parsedStart) ? parsedStart : (containerAnimation ? gsap3.utils.mapRange(0, containerAnimation.duration(), containerAnimation.scrollTrigger.start, containerAnimation.scrollTrigger.end, start) : start) + offset2; 11334 parsedEndTrigger = trigger; 11335 } 11336 } 11337 parsedEnd = _parseClamp(parsedEnd, "end", self2); 11338 end = Math.max(start, _parsePosition3(parsedEnd || (parsedEndTrigger ? "100% 0" : max), parsedEndTrigger, size, direction, scrollFunc() + offset2, markerEnd, markerEndTrigger, self2, scrollerBounds, borderWidth, useFixedPosition, max, containerAnimation, self2._endClamp && "_endClamp")) || -1e-3; 11339 offset2 = 0; 11340 i = triggerIndex; 11341 while (i--) { 11342 curTrigger = _triggers[i] || {}; 11343 curPin = curTrigger.pin; 11344 if (curPin && curTrigger.start - curTrigger._pinPush <= start && !containerAnimation && curTrigger.end > 0) { 11345 cs2 = curTrigger.end - (self2._startClamp ? Math.max(0, curTrigger.start) : curTrigger.start); 11346 if ((curPin === trigger && curTrigger.start - curTrigger._pinPush < start || curPin === pinnedContainer) && isNaN(parsedStart)) { 11347 offset2 += cs2 * (1 - curTrigger.progress); 11348 } 11349 curPin === pin && (otherPinOffset += cs2); 11350 } 11351 } 11352 start += offset2; 11353 end += offset2; 11354 self2._startClamp && (self2._startClamp += offset2); 11355 if (self2._endClamp && !_refreshingAll) { 11356 self2._endClamp = end || -1e-3; 11357 end = Math.min(end, _maxScroll(scroller, direction)); 11358 } 11359 change = end - start || (start -= 0.01) && 1e-3; 11360 if (isFirstRefresh) { 11361 prevProgress = gsap3.utils.clamp(0, 1, gsap3.utils.normalize(start, end, prevScroll)); 11362 } 11363 self2._pinPush = otherPinOffset; 11364 if (markerStart && offset2) { 11365 cs2 = {}; 11366 cs2[direction.a] = "+=" + offset2; 11367 pinnedContainer && (cs2[direction.p] = "-=" + scrollFunc()); 11368 gsap3.set([markerStart, markerEnd], cs2); 11369 } 11370 if (pin && !(_clampingMax && self2.end >= _maxScroll(scroller, direction))) { 11371 cs2 = _getComputedStyle(pin); 11372 isVertical = direction === _vertical; 11373 scroll = scrollFunc(); 11374 pinStart = parseFloat(pinGetter(direction.a)) + otherPinOffset; 11375 if (!max && end > 1) { 11376 forcedOverflow = (isViewport ? _doc4.scrollingElement || _docEl2 : scroller).style; 11377 forcedOverflow = { 11378 style: forcedOverflow, 11379 value: forcedOverflow["overflow" + direction.a.toUpperCase()] 11380 }; 11381 if (isViewport && _getComputedStyle(_body2)["overflow" + direction.a.toUpperCase()] !== "scroll") { 11382 forcedOverflow.style["overflow" + direction.a.toUpperCase()] = "scroll"; 11383 } 11384 } 11385 _swapPinIn(pin, spacer, cs2); 11386 pinState = _getState(pin); 11387 bounds = _getBounds(pin, true); 11388 oppositeScroll = useFixedPosition && _getScrollFunc(scroller, isVertical ? _horizontal : _vertical)(); 11389 if (pinSpacing) { 11390 spacerState = [pinSpacing + direction.os2, change + otherPinOffset + _px]; 11391 spacerState.t = spacer; 11392 i = pinSpacing === _padding ? _getSize(pin, direction) + change + otherPinOffset : 0; 11393 if (i) { 11394 spacerState.push(direction.d, i + _px); 11395 spacer.style.flexBasis !== "auto" && (spacer.style.flexBasis = i + _px); 11396 } 11397 _setState(spacerState); 11398 if (pinnedContainer) { 11399 _triggers.forEach(function(t) { 11400 if (t.pin === pinnedContainer && t.vars.pinSpacing !== false) { 11401 t._subPinOffset = true; 11402 } 11403 }); 11404 } 11405 useFixedPosition && scrollFunc(prevScroll); 11406 } else { 11407 i = _getSize(pin, direction); 11408 i && spacer.style.flexBasis !== "auto" && (spacer.style.flexBasis = i + _px); 11409 } 11410 if (useFixedPosition) { 11411 override = { 11412 top: bounds.top + (isVertical ? scroll - start : oppositeScroll) + _px, 11413 left: bounds.left + (isVertical ? oppositeScroll : scroll - start) + _px, 11414 boxSizing: "border-box", 11415 position: "fixed" 11416 }; 11417 override[_width] = override["max" + _Width] = Math.ceil(bounds.width) + _px; 11418 override[_height] = override["max" + _Height] = Math.ceil(bounds.height) + _px; 11419 override[_margin] = override[_margin + _Top] = override[_margin + _Right] = override[_margin + _Bottom] = override[_margin + _Left] = "0"; 11420 override[_padding] = cs2[_padding]; 11421 override[_padding + _Top] = cs2[_padding + _Top]; 11422 override[_padding + _Right] = cs2[_padding + _Right]; 11423 override[_padding + _Bottom] = cs2[_padding + _Bottom]; 11424 override[_padding + _Left] = cs2[_padding + _Left]; 11425 pinActiveState = _copyState(pinOriginalState, override, pinReparent); 11426 _refreshingAll && scrollFunc(0); 11427 } 11428 if (animation) { 11429 initted = animation._initted; 11430 _suppressOverwrites2(1); 11431 animation.render(animation.duration(), true, true); 11432 pinChange = pinGetter(direction.a) - pinStart + change + otherPinOffset; 11433 pinMoves = Math.abs(change - pinChange) > 1; 11434 useFixedPosition && pinMoves && pinActiveState.splice(pinActiveState.length - 2, 2); 11435 animation.render(0, true, true); 11436 initted || animation.invalidate(true); 11437 animation.parent || animation.totalTime(animation.totalTime()); 11438 _suppressOverwrites2(0); 11439 } else { 11440 pinChange = change; 11441 } 11442 forcedOverflow && (forcedOverflow.value ? forcedOverflow.style["overflow" + direction.a.toUpperCase()] = forcedOverflow.value : forcedOverflow.style.removeProperty("overflow-" + direction.a)); 11443 } else if (trigger && scrollFunc() && !containerAnimation) { 11444 bounds = trigger.parentNode; 11445 while (bounds && bounds !== _body2) { 11446 if (bounds._pinOffset) { 11447 start -= bounds._pinOffset; 11448 end -= bounds._pinOffset; 11449 } 11450 bounds = bounds.parentNode; 11451 } 11452 } 11453 revertedPins && revertedPins.forEach(function(t) { 11454 return t.revert(false, true); 11455 }); 11456 self2.start = start; 11457 self2.end = end; 11458 scroll1 = scroll2 = _refreshingAll ? prevScroll : scrollFunc(); 11459 if (!containerAnimation && !_refreshingAll) { 11460 scroll1 < prevScroll && scrollFunc(prevScroll); 11461 self2.scroll.rec = 0; 11462 } 11463 self2.revert(false, true); 11464 lastRefresh = _getTime2(); 11465 if (snapDelayedCall) { 11466 lastSnap = -1; 11467 snapDelayedCall.restart(true); 11468 } 11469 _refreshing = 0; 11470 animation && isToggle && (animation._initted || prevAnimProgress) && animation.progress() !== prevAnimProgress && animation.progress(prevAnimProgress || 0, true).render(animation.time(), true, true); 11471 if (isFirstRefresh || prevProgress !== self2.progress || containerAnimation || invalidateOnRefresh || animation && !animation._initted) { 11472 animation && !isToggle && (animation._initted || prevProgress || animation.vars.immediateRender !== false) && animation.totalProgress(containerAnimation && start < -1e-3 && !prevProgress ? gsap3.utils.normalize(start, end, 0) : prevProgress, true); 11473 self2.progress = isFirstRefresh || (scroll1 - start) / change === prevProgress ? 0 : prevProgress; 11474 } 11475 pin && pinSpacing && (spacer._pinOffset = Math.round(self2.progress * pinChange)); 11476 scrubTween && scrubTween.invalidate(); 11477 if (!isNaN(markerStartOffset)) { 11478 markerStartOffset -= gsap3.getProperty(markerStartTrigger, direction.p); 11479 markerEndOffset -= gsap3.getProperty(markerEndTrigger, direction.p); 11480 _shiftMarker(markerStartTrigger, direction, markerStartOffset); 11481 _shiftMarker(markerStart, direction, markerStartOffset - (pinOffset || 0)); 11482 _shiftMarker(markerEndTrigger, direction, markerEndOffset); 11483 _shiftMarker(markerEnd, direction, markerEndOffset - (pinOffset || 0)); 11484 } 11485 isFirstRefresh && !_refreshingAll && self2.update(); 11486 if (onRefresh && !_refreshingAll && !executingOnRefresh) { 11487 executingOnRefresh = true; 11488 onRefresh(self2); 11489 executingOnRefresh = false; 11490 } 11491 }; 11492 self2.getVelocity = function() { 11493 return (scrollFunc() - scroll2) / (_getTime2() - _time2) * 1e3 || 0; 11494 }; 11495 self2.endAnimation = function() { 11496 _endAnimation(self2.callbackAnimation); 11497 if (animation) { 11498 scrubTween ? scrubTween.progress(1) : !animation.paused() ? _endAnimation(animation, animation.reversed()) : isToggle || _endAnimation(animation, self2.direction < 0, 1); 11499 } 11500 }; 11501 self2.labelToScroll = function(label) { 11502 return animation && animation.labels && (start || self2.refresh() || start) + animation.labels[label] / animation.duration() * change || 0; 11503 }; 11504 self2.getTrailing = function(name) { 11505 var i = _triggers.indexOf(self2), a = self2.direction > 0 ? _triggers.slice(0, i).reverse() : _triggers.slice(i + 1); 11506 return (_isString3(name) ? a.filter(function(t) { 11507 return t.vars.preventOverlaps === name; 11508 }) : a).filter(function(t) { 11509 return self2.direction > 0 ? t.end <= start : t.start >= end; 11510 }); 11511 }; 11512 self2.update = function(reset2, recordVelocity, forceFake) { 11513 if (containerAnimation && !forceFake && !reset2) { 11514 return; 11515 } 11516 var scroll = _refreshingAll === true ? prevScroll : self2.scroll(), p = reset2 ? 0 : (scroll - start) / change, clipped = p < 0 ? 0 : p > 1 ? 1 : p || 0, prevProgress2 = self2.progress, isActive, wasActive, toggleState, action, stateChanged, toggled, isAtMax, isTakingAction; 11517 if (recordVelocity) { 11518 scroll2 = scroll1; 11519 scroll1 = containerAnimation ? scrollFunc() : scroll; 11520 if (snap3) { 11521 snap22 = snap1; 11522 snap1 = animation && !isToggle ? animation.totalProgress() : clipped; 11523 } 11524 } 11525 if (anticipatePin && pin && !_refreshing && !_startup2 && _lastScrollTime) { 11526 if (!clipped && start < scroll + (scroll - scroll2) / (_getTime2() - _time2) * anticipatePin) { 11527 clipped = 1e-4; 11528 } else if (clipped === 1 && end > scroll + (scroll - scroll2) / (_getTime2() - _time2) * anticipatePin) { 11529 clipped = 0.9999; 11530 } 11531 } 11532 if (clipped !== prevProgress2 && self2.enabled) { 11533 isActive = self2.isActive = !!clipped && clipped < 1; 11534 wasActive = !!prevProgress2 && prevProgress2 < 1; 11535 toggled = isActive !== wasActive; 11536 stateChanged = toggled || !!clipped !== !!prevProgress2; 11537 self2.direction = clipped > prevProgress2 ? 1 : -1; 11538 self2.progress = clipped; 11539 if (stateChanged && !_refreshing) { 11540 toggleState = clipped && !prevProgress2 ? 0 : clipped === 1 ? 1 : prevProgress2 === 1 ? 2 : 3; 11541 if (isToggle) { 11542 action = !toggled && toggleActions[toggleState + 1] !== "none" && toggleActions[toggleState + 1] || toggleActions[toggleState]; 11543 isTakingAction = animation && (action === "complete" || action === "reset" || action in animation); 11544 } 11545 } 11546 preventOverlaps && (toggled || isTakingAction) && (isTakingAction || scrub || !animation) && (_isFunction3(preventOverlaps) ? preventOverlaps(self2) : self2.getTrailing(preventOverlaps).forEach(function(t) { 11547 return t.endAnimation(); 11548 })); 11549 if (!isToggle) { 11550 if (scrubTween && !_refreshing && !_startup2) { 11551 scrubTween._dp._time - scrubTween._start !== scrubTween._time && scrubTween.render(scrubTween._dp._time - scrubTween._start); 11552 if (scrubTween.resetTo) { 11553 scrubTween.resetTo("totalProgress", clipped, animation._tTime / animation._tDur); 11554 } else { 11555 scrubTween.vars.totalProgress = clipped; 11556 scrubTween.invalidate().restart(); 11557 } 11558 } else if (animation) { 11559 animation.totalProgress(clipped, !!(_refreshing && (lastRefresh || reset2))); 11560 } 11561 } 11562 if (pin) { 11563 reset2 && pinSpacing && (spacer.style[pinSpacing + direction.os2] = spacingStart); 11564 if (!useFixedPosition) { 11565 pinSetter(_round3(pinStart + pinChange * clipped)); 11566 } else if (stateChanged) { 11567 isAtMax = !reset2 && clipped > prevProgress2 && end + 1 > scroll && scroll + 1 >= _maxScroll(scroller, direction); 11568 if (pinReparent) { 11569 if (!reset2 && (isActive || isAtMax)) { 11570 var bounds = _getBounds(pin, true), _offset = scroll - start; 11571 _reparent(pin, _body2, bounds.top + (direction === _vertical ? _offset : 0) + _px, bounds.left + (direction === _vertical ? 0 : _offset) + _px); 11572 } else { 11573 _reparent(pin, spacer); 11574 } 11575 } 11576 _setState(isActive || isAtMax ? pinActiveState : pinState); 11577 pinMoves && clipped < 1 && isActive || pinSetter(pinStart + (clipped === 1 && !isAtMax ? pinChange : 0)); 11578 } 11579 } 11580 snap3 && !tweenTo.tween && !_refreshing && !_startup2 && snapDelayedCall.restart(true); 11581 toggleClass && (toggled || once && clipped && (clipped < 1 || !_limitCallbacks)) && _toArray(toggleClass.targets).forEach(function(el) { 11582 return el.classList[isActive || once ? "add" : "remove"](toggleClass.className); 11583 }); 11584 onUpdate && !isToggle && !reset2 && onUpdate(self2); 11585 if (stateChanged && !_refreshing) { 11586 if (isToggle) { 11587 if (isTakingAction) { 11588 if (action === "complete") { 11589 animation.pause().totalProgress(1); 11590 } else if (action === "reset") { 11591 animation.restart(true).pause(); 11592 } else if (action === "restart") { 11593 animation.restart(true); 11594 } else { 11595 animation[action](); 11596 } 11597 } 11598 onUpdate && onUpdate(self2); 11599 } 11600 if (toggled || !_limitCallbacks) { 11601 onToggle && toggled && _callback3(self2, onToggle); 11602 callbacks[toggleState] && _callback3(self2, callbacks[toggleState]); 11603 once && (clipped === 1 ? self2.kill(false, 1) : callbacks[toggleState] = 0); 11604 if (!toggled) { 11605 toggleState = clipped === 1 ? 1 : 3; 11606 callbacks[toggleState] && _callback3(self2, callbacks[toggleState]); 11607 } 11608 } 11609 if (fastScrollEnd && !isActive && Math.abs(self2.getVelocity()) > (_isNumber3(fastScrollEnd) ? fastScrollEnd : 2500)) { 11610 _endAnimation(self2.callbackAnimation); 11611 scrubTween ? scrubTween.progress(1) : _endAnimation(animation, action === "reverse" ? 1 : !clipped, 1); 11612 } 11613 } else if (isToggle && onUpdate && !_refreshing) { 11614 onUpdate(self2); 11615 } 11616 } 11617 if (markerEndSetter) { 11618 var n = containerAnimation ? scroll / containerAnimation.duration() * (containerAnimation._caScrollDist || 0) : scroll; 11619 markerStartSetter(n + (markerStartTrigger._isFlipped ? 1 : 0)); 11620 markerEndSetter(n); 11621 } 11622 caMarkerSetter && caMarkerSetter(-scroll / containerAnimation.duration() * (containerAnimation._caScrollDist || 0)); 11623 }; 11624 self2.enable = function(reset2, refresh) { 11625 if (!self2.enabled) { 11626 self2.enabled = true; 11627 _addListener3(scroller, "resize", _onResize); 11628 isViewport || _addListener3(scroller, "scroll", _onScroll3); 11629 onRefreshInit && _addListener3(ScrollTrigger3, "refreshInit", onRefreshInit); 11630 if (reset2 !== false) { 11631 self2.progress = prevProgress = 0; 11632 scroll1 = scroll2 = lastSnap = scrollFunc(); 11633 } 11634 refresh !== false && self2.refresh(); 11635 } 11636 }; 11637 self2.getTween = function(snap4) { 11638 return snap4 && tweenTo ? tweenTo.tween : scrubTween; 11639 }; 11640 self2.setPositions = function(newStart, newEnd, keepClamp, pinOffset) { 11641 if (containerAnimation) { 11642 var st = containerAnimation.scrollTrigger, duration = containerAnimation.duration(), _change = st.end - st.start; 11643 newStart = st.start + _change * newStart / duration; 11644 newEnd = st.start + _change * newEnd / duration; 11645 } 11646 self2.refresh(false, false, { 11647 start: _keepClamp(newStart, keepClamp && !!self2._startClamp), 11648 end: _keepClamp(newEnd, keepClamp && !!self2._endClamp) 11649 }, pinOffset); 11650 self2.update(); 11651 }; 11652 self2.adjustPinSpacing = function(amount) { 11653 if (spacerState && amount) { 11654 var i = spacerState.indexOf(direction.d) + 1; 11655 spacerState[i] = parseFloat(spacerState[i]) + amount + _px; 11656 spacerState[1] = parseFloat(spacerState[1]) + amount + _px; 11657 _setState(spacerState); 11658 } 11659 }; 11660 self2.disable = function(reset2, allowAnimation) { 11661 reset2 !== false && self2.revert(true, true); 11662 if (self2.enabled) { 11663 self2.enabled = self2.isActive = false; 11664 allowAnimation || scrubTween && scrubTween.pause(); 11665 prevScroll = 0; 11666 pinCache && (pinCache.uncache = 1); 11667 onRefreshInit && _removeListener3(ScrollTrigger3, "refreshInit", onRefreshInit); 11668 if (snapDelayedCall) { 11669 snapDelayedCall.pause(); 11670 tweenTo.tween && tweenTo.tween.kill() && (tweenTo.tween = 0); 11671 } 11672 if (!isViewport) { 11673 var i = _triggers.length; 11674 while (i--) { 11675 if (_triggers[i].scroller === scroller && _triggers[i] !== self2) { 11676 return; 11677 } 11678 } 11679 _removeListener3(scroller, "resize", _onResize); 11680 isViewport || _removeListener3(scroller, "scroll", _onScroll3); 11681 } 11682 } 11683 }; 11684 self2.kill = function(revert, allowAnimation) { 11685 self2.disable(revert, allowAnimation); 11686 scrubTween && !allowAnimation && scrubTween.kill(); 11687 id && delete _ids[id]; 11688 var i = _triggers.indexOf(self2); 11689 i >= 0 && _triggers.splice(i, 1); 11690 i === _i && _direction > 0 && _i--; 11691 i = 0; 11692 _triggers.forEach(function(t) { 11693 return t.scroller === self2.scroller && (i = 1); 11694 }); 11695 i || _refreshingAll || (self2.scroll.rec = 0); 11696 if (animation) { 11697 animation.scrollTrigger = null; 11698 revert && animation.revert({ 11699 kill: false 11700 }); 11701 allowAnimation || animation.kill(); 11702 } 11703 markerStart && [markerStart, markerEnd, markerStartTrigger, markerEndTrigger].forEach(function(m) { 11704 return m.parentNode && m.parentNode.removeChild(m); 11705 }); 11706 _primary === self2 && (_primary = 0); 11707 if (pin) { 11708 pinCache && (pinCache.uncache = 1); 11709 i = 0; 11710 _triggers.forEach(function(t) { 11711 return t.pin === pin && i++; 11712 }); 11713 i || (pinCache.spacer = 0); 11714 } 11715 vars.onKill && vars.onKill(self2); 11716 }; 11717 _triggers.push(self2); 11718 self2.enable(false, false); 11719 customRevertReturn && customRevertReturn(self2); 11720 if (animation && animation.add && !change) { 11721 var updateFunc = self2.update; 11722 self2.update = function() { 11723 self2.update = updateFunc; 11724 _scrollers.cache++; 11725 start || end || self2.refresh(); 11726 }; 11727 gsap3.delayedCall(0.01, self2.update); 11728 change = 0.01; 11729 start = end = 0; 11730 } else { 11731 self2.refresh(); 11732 } 11733 pin && _queueRefreshAll(); 11734 }, "init"); 11735 ScrollTrigger3.register = /* @__PURE__ */ __name(function register(core) { 11736 if (!_coreInitted3) { 11737 gsap3 = core || _getGSAP3(); 11738 _windowExists5() && window.document && ScrollTrigger3.enable(); 11739 _coreInitted3 = _enabled; 11740 } 11741 return _coreInitted3; 11742 }, "register"); 11743 ScrollTrigger3.defaults = /* @__PURE__ */ __name(function defaults2(config3) { 11744 if (config3) { 11745 for (var p in config3) { 11746 _defaults2[p] = config3[p]; 11747 } 11748 } 11749 return _defaults2; 11750 }, "defaults"); 11751 ScrollTrigger3.disable = /* @__PURE__ */ __name(function disable(reset2, kill) { 11752 _enabled = 0; 11753 _triggers.forEach(function(trigger) { 11754 return trigger[kill ? "kill" : "disable"](reset2); 11755 }); 11756 _removeListener3(_win4, "wheel", _onScroll3); 11757 _removeListener3(_doc4, "scroll", _onScroll3); 11758 clearInterval(_syncInterval); 11759 _removeListener3(_doc4, "touchcancel", _passThrough3); 11760 _removeListener3(_body2, "touchstart", _passThrough3); 11761 _multiListener(_removeListener3, _doc4, "pointerdown,touchstart,mousedown", _pointerDownHandler); 11762 _multiListener(_removeListener3, _doc4, "pointerup,touchend,mouseup", _pointerUpHandler); 11763 _resizeDelay.kill(); 11764 _iterateAutoRefresh(_removeListener3); 11765 for (var i = 0; i < _scrollers.length; i += 3) { 11766 _wheelListener(_removeListener3, _scrollers[i], _scrollers[i + 1]); 11767 _wheelListener(_removeListener3, _scrollers[i], _scrollers[i + 2]); 11768 } 11769 }, "disable"); 11770 ScrollTrigger3.enable = /* @__PURE__ */ __name(function enable() { 11771 _win4 = window; 11772 _doc4 = document; 11773 _docEl2 = _doc4.documentElement; 11774 _body2 = _doc4.body; 11775 if (gsap3) { 11776 _toArray = gsap3.utils.toArray; 11777 _clamp4 = gsap3.utils.clamp; 11778 _context3 = gsap3.core.context || _passThrough3; 11779 _suppressOverwrites2 = gsap3.core.suppressOverwrites || _passThrough3; 11780 _scrollRestoration = _win4.history.scrollRestoration || "auto"; 11781 _lastScroll = _win4.pageYOffset || 0; 11782 gsap3.core.globals("ScrollTrigger", ScrollTrigger3); 11783 if (_body2) { 11784 _enabled = 1; 11785 _div100vh = document.createElement("div"); 11786 _div100vh.style.height = "100vh"; 11787 _div100vh.style.position = "absolute"; 11788 _refresh100vh(); 11789 _rafBugFix(); 11790 Observer.register(gsap3); 11791 ScrollTrigger3.isTouch = Observer.isTouch; 11792 _fixIOSBug = Observer.isTouch && /(iPad|iPhone|iPod|Mac)/g.test(navigator.userAgent); 11793 _ignoreMobileResize = Observer.isTouch === 1; 11794 _addListener3(_win4, "wheel", _onScroll3); 11795 _root2 = [_win4, _doc4, _docEl2, _body2]; 11796 if (gsap3.matchMedia) { 11797 ScrollTrigger3.matchMedia = function(vars) { 11798 var mm = gsap3.matchMedia(), p; 11799 for (p in vars) { 11800 mm.add(p, vars[p]); 11801 } 11802 return mm; 11803 }; 11804 gsap3.addEventListener("matchMediaInit", function() { 11805 _recordScrollPositions(); 11806 _revertAll(); 11807 }); 11808 gsap3.addEventListener("matchMediaRevert", function() { 11809 return _revertRecorded(); 11810 }); 11811 gsap3.addEventListener("matchMedia", function() { 11812 _refreshAll(0, 1); 11813 _dispatch3("matchMedia"); 11814 }); 11815 gsap3.matchMedia().add("(orientation: portrait)", function() { 11816 _setBaseDimensions(); 11817 return _setBaseDimensions; 11818 }); 11819 } else { 11820 console.warn("Requires GSAP 3.11.0 or later"); 11821 } 11822 _setBaseDimensions(); 11823 _addListener3(_doc4, "scroll", _onScroll3); 11824 var bodyHasStyle = _body2.hasAttribute("style"), bodyStyle = _body2.style, border = bodyStyle.borderTopStyle, AnimationProto = gsap3.core.Animation.prototype, bounds, i; 11825 AnimationProto.revert || Object.defineProperty(AnimationProto, "revert", { 11826 value: /* @__PURE__ */ __name(function value() { 11827 return this.time(-0.01, true); 11828 }, "value") 11829 }); 11830 bodyStyle.borderTopStyle = "solid"; 11831 bounds = _getBounds(_body2); 11832 _vertical.m = Math.round(bounds.top + _vertical.sc()) || 0; 11833 _horizontal.m = Math.round(bounds.left + _horizontal.sc()) || 0; 11834 border ? bodyStyle.borderTopStyle = border : bodyStyle.removeProperty("border-top-style"); 11835 if (!bodyHasStyle) { 11836 _body2.setAttribute("style", ""); 11837 _body2.removeAttribute("style"); 11838 } 11839 _syncInterval = setInterval(_sync, 250); 11840 gsap3.delayedCall(0.5, function() { 11841 return _startup2 = 0; 11842 }); 11843 _addListener3(_doc4, "touchcancel", _passThrough3); 11844 _addListener3(_body2, "touchstart", _passThrough3); 11845 _multiListener(_addListener3, _doc4, "pointerdown,touchstart,mousedown", _pointerDownHandler); 11846 _multiListener(_addListener3, _doc4, "pointerup,touchend,mouseup", _pointerUpHandler); 11847 _transformProp2 = gsap3.utils.checkPrefix("transform"); 11848 _stateProps.push(_transformProp2); 11849 _coreInitted3 = _getTime2(); 11850 _resizeDelay = gsap3.delayedCall(0.2, _refreshAll).pause(); 11851 _autoRefresh = [_doc4, "visibilitychange", function() { 11852 var w = _win4.innerWidth, h = _win4.innerHeight; 11853 if (_doc4.hidden) { 11854 _prevWidth = w; 11855 _prevHeight = h; 11856 } else if (_prevWidth !== w || _prevHeight !== h) { 11857 _onResize(); 11858 } 11859 }, _doc4, "DOMContentLoaded", _refreshAll, _win4, "load", _refreshAll, _win4, "resize", _onResize]; 11860 _iterateAutoRefresh(_addListener3); 11861 _triggers.forEach(function(trigger) { 11862 return trigger.enable(0, 1); 11863 }); 11864 for (i = 0; i < _scrollers.length; i += 3) { 11865 _wheelListener(_removeListener3, _scrollers[i], _scrollers[i + 1]); 11866 _wheelListener(_removeListener3, _scrollers[i], _scrollers[i + 2]); 11867 } 11868 } 11869 } 11870 }, "enable"); 11871 ScrollTrigger3.config = /* @__PURE__ */ __name(function config3(vars) { 11872 "limitCallbacks" in vars && (_limitCallbacks = !!vars.limitCallbacks); 11873 var ms = vars.syncInterval; 11874 ms && clearInterval(_syncInterval) || (_syncInterval = ms) && setInterval(_sync, ms); 11875 "ignoreMobileResize" in vars && (_ignoreMobileResize = ScrollTrigger3.isTouch === 1 && vars.ignoreMobileResize); 11876 if ("autoRefreshEvents" in vars) { 11877 _iterateAutoRefresh(_removeListener3) || _iterateAutoRefresh(_addListener3, vars.autoRefreshEvents || "none"); 11878 _ignoreResize = (vars.autoRefreshEvents + "").indexOf("resize") === -1; 11879 } 11880 }, "config"); 11881 ScrollTrigger3.scrollerProxy = /* @__PURE__ */ __name(function scrollerProxy(target, vars) { 11882 var t = _getTarget(target), i = _scrollers.indexOf(t), isViewport = _isViewport3(t); 11883 if (~i) { 11884 _scrollers.splice(i, isViewport ? 6 : 2); 11885 } 11886 if (vars) { 11887 isViewport ? _proxies.unshift(_win4, vars, _body2, vars, _docEl2, vars) : _proxies.unshift(t, vars); 11888 } 11889 }, "scrollerProxy"); 11890 ScrollTrigger3.clearMatchMedia = /* @__PURE__ */ __name(function clearMatchMedia(query) { 11891 _triggers.forEach(function(t) { 11892 return t._ctx && t._ctx.query === query && t._ctx.kill(true, true); 11893 }); 11894 }, "clearMatchMedia"); 11895 ScrollTrigger3.isInViewport = /* @__PURE__ */ __name(function isInViewport(element, ratio, horizontal) { 11896 var bounds = (_isString3(element) ? _getTarget(element) : element).getBoundingClientRect(), offset = bounds[horizontal ? _width : _height] * ratio || 0; 11897 return horizontal ? bounds.right - offset > 0 && bounds.left + offset < _win4.innerWidth : bounds.bottom - offset > 0 && bounds.top + offset < _win4.innerHeight; 11898 }, "isInViewport"); 11899 ScrollTrigger3.positionInViewport = /* @__PURE__ */ __name(function positionInViewport(element, referencePoint, horizontal) { 11900 _isString3(element) && (element = _getTarget(element)); 11901 var bounds = element.getBoundingClientRect(), size = bounds[horizontal ? _width : _height], offset = referencePoint == null ? size / 2 : referencePoint in _keywords ? _keywords[referencePoint] * size : ~referencePoint.indexOf("%") ? parseFloat(referencePoint) * size / 100 : parseFloat(referencePoint) || 0; 11902 return horizontal ? (bounds.left + offset) / _win4.innerWidth : (bounds.top + offset) / _win4.innerHeight; 11903 }, "positionInViewport"); 11904 ScrollTrigger3.killAll = /* @__PURE__ */ __name(function killAll(allowListeners) { 11905 _triggers.slice(0).forEach(function(t) { 11906 return t.vars.id !== "ScrollSmoother" && t.kill(); 11907 }); 11908 if (allowListeners !== true) { 11909 var listeners = _listeners2.killAll || []; 11910 _listeners2 = {}; 11911 listeners.forEach(function(f) { 11912 return f(); 11913 }); 11914 } 11915 }, "killAll"); 11916 return ScrollTrigger3; 11917 })(); 11918 ScrollTrigger2.version = "3.14.2"; 11919 ScrollTrigger2.saveStyles = function(targets) { 11920 return targets ? _toArray(targets).forEach(function(target) { 11921 if (target && target.style) { 11922 var i = _savedStyles.indexOf(target); 11923 i >= 0 && _savedStyles.splice(i, 5); 11924 _savedStyles.push(target, target.style.cssText, target.getBBox && target.getAttribute("transform"), gsap3.core.getCache(target), _context3()); 11925 } 11926 }) : _savedStyles; 11927 }; 11928 ScrollTrigger2.revert = function(soft, media) { 11929 return _revertAll(!soft, media); 11930 }; 11931 ScrollTrigger2.create = function(vars, animation) { 11932 return new ScrollTrigger2(vars, animation); 11933 }; 11934 ScrollTrigger2.refresh = function(safe) { 11935 return safe ? _onResize(true) : (_coreInitted3 || ScrollTrigger2.register()) && _refreshAll(true); 11936 }; 11937 ScrollTrigger2.update = function(force) { 11938 return ++_scrollers.cache && _updateAll(force === true ? 2 : 0); 11939 }; 11940 ScrollTrigger2.clearScrollMemory = _clearScrollMemory; 11941 ScrollTrigger2.maxScroll = function(element, horizontal) { 11942 return _maxScroll(element, horizontal ? _horizontal : _vertical); 11943 }; 11944 ScrollTrigger2.getScrollFunc = function(element, horizontal) { 11945 return _getScrollFunc(_getTarget(element), horizontal ? _horizontal : _vertical); 11946 }; 11947 ScrollTrigger2.getById = function(id) { 11948 return _ids[id]; 11949 }; 11950 ScrollTrigger2.getAll = function() { 11951 return _triggers.filter(function(t) { 11952 return t.vars.id !== "ScrollSmoother"; 11953 }); 11954 }; 11955 ScrollTrigger2.isScrolling = function() { 11956 return !!_lastScrollTime; 11957 }; 11958 ScrollTrigger2.snapDirectional = _snapDirectional; 11959 ScrollTrigger2.addEventListener = function(type, callback) { 11960 var a = _listeners2[type] || (_listeners2[type] = []); 11961 ~a.indexOf(callback) || a.push(callback); 11962 }; 11963 ScrollTrigger2.removeEventListener = function(type, callback) { 11964 var a = _listeners2[type], i = a && a.indexOf(callback); 11965 i >= 0 && a.splice(i, 1); 11966 }; 11967 ScrollTrigger2.batch = function(targets, vars) { 11968 var result = [], varsCopy = {}, interval = vars.interval || 0.016, batchMax = vars.batchMax || 1e9, proxyCallback = /* @__PURE__ */ __name(function proxyCallback2(type, callback) { 11969 var elements = [], triggers = [], delay = gsap3.delayedCall(interval, function() { 11970 callback(elements, triggers); 11971 elements = []; 11972 triggers = []; 11973 }).pause(); 11974 return function(self2) { 11975 elements.length || delay.restart(true); 11976 elements.push(self2.trigger); 11977 triggers.push(self2); 11978 batchMax <= elements.length && delay.progress(1); 11979 }; 11980 }, "proxyCallback"), p; 11981 for (p in vars) { 11982 varsCopy[p] = p.substr(0, 2) === "on" && _isFunction3(vars[p]) && p !== "onRefreshInit" ? proxyCallback(p, vars[p]) : vars[p]; 11983 } 11984 if (_isFunction3(batchMax)) { 11985 batchMax = batchMax(); 11986 _addListener3(ScrollTrigger2, "refresh", function() { 11987 return batchMax = vars.batchMax(); 11988 }); 11989 } 11990 _toArray(targets).forEach(function(target) { 11991 var config3 = {}; 11992 for (p in varsCopy) { 11993 config3[p] = varsCopy[p]; 11994 } 11995 config3.trigger = target; 11996 result.push(ScrollTrigger2.create(config3)); 11997 }); 11998 return result; 11999 }; 12000 var _clampScrollAndGetDurationMultiplier = /* @__PURE__ */ __name(function _clampScrollAndGetDurationMultiplier2(scrollFunc, current, end, max) { 12001 current > max ? scrollFunc(max) : current < 0 && scrollFunc(0); 12002 return end > max ? (max - current) / (end - current) : end < 0 ? current / (current - end) : 1; 12003 }, "_clampScrollAndGetDurationMultiplier"); 12004 var _allowNativePanning = /* @__PURE__ */ __name(function _allowNativePanning2(target, direction) { 12005 if (direction === true) { 12006 target.style.removeProperty("touch-action"); 12007 } else { 12008 target.style.touchAction = direction === true ? "auto" : direction ? "pan-" + direction + (Observer.isTouch ? " pinch-zoom" : "") : "none"; 12009 } 12010 target === _docEl2 && _allowNativePanning2(_body2, direction); 12011 }, "_allowNativePanning"); 12012 var _overflow = { 12013 auto: 1, 12014 scroll: 1 12015 }; 12016 var _nestedScroll = /* @__PURE__ */ __name(function _nestedScroll2(_ref5) { 12017 var event = _ref5.event, target = _ref5.target, axis = _ref5.axis; 12018 var node = (event.changedTouches ? event.changedTouches[0] : event).target, cache = node._gsap || gsap3.core.getCache(node), time = _getTime2(), cs; 12019 if (!cache._isScrollT || time - cache._isScrollT > 2e3) { 12020 while (node && node !== _body2 && (node.scrollHeight <= node.clientHeight && node.scrollWidth <= node.clientWidth || !(_overflow[(cs = _getComputedStyle(node)).overflowY] || _overflow[cs.overflowX]))) { 12021 node = node.parentNode; 12022 } 12023 cache._isScroll = node && node !== target && !_isViewport3(node) && (_overflow[(cs = _getComputedStyle(node)).overflowY] || _overflow[cs.overflowX]); 12024 cache._isScrollT = time; 12025 } 12026 if (cache._isScroll || axis === "x") { 12027 event.stopPropagation(); 12028 event._gsapAllow = true; 12029 } 12030 }, "_nestedScroll"); 12031 var _inputObserver = /* @__PURE__ */ __name(function _inputObserver2(target, type, inputs, nested) { 12032 return Observer.create({ 12033 target, 12034 capture: true, 12035 debounce: false, 12036 lockAxis: true, 12037 type, 12038 onWheel: nested = nested && _nestedScroll, 12039 onPress: nested, 12040 onDrag: nested, 12041 onScroll: nested, 12042 onEnable: /* @__PURE__ */ __name(function onEnable() { 12043 return inputs && _addListener3(_doc4, Observer.eventTypes[0], _captureInputs, false, true); 12044 }, "onEnable"), 12045 onDisable: /* @__PURE__ */ __name(function onDisable() { 12046 return _removeListener3(_doc4, Observer.eventTypes[0], _captureInputs, true); 12047 }, "onDisable") 12048 }); 12049 }, "_inputObserver"); 12050 var _inputExp = /(input|label|select|textarea)/i; 12051 var _inputIsFocused; 12052 var _captureInputs = /* @__PURE__ */ __name(function _captureInputs2(e) { 12053 var isInput = _inputExp.test(e.target.tagName); 12054 if (isInput || _inputIsFocused) { 12055 e._gsapAllow = true; 12056 _inputIsFocused = isInput; 12057 } 12058 }, "_captureInputs"); 12059 var _getScrollNormalizer = /* @__PURE__ */ __name(function _getScrollNormalizer2(vars) { 12060 _isObject3(vars) || (vars = {}); 12061 vars.preventDefault = vars.isNormalizer = vars.allowClicks = true; 12062 vars.type || (vars.type = "wheel,touch"); 12063 vars.debounce = !!vars.debounce; 12064 vars.id = vars.id || "normalizer"; 12065 var _vars2 = vars, normalizeScrollX = _vars2.normalizeScrollX, momentum = _vars2.momentum, allowNestedScroll = _vars2.allowNestedScroll, onRelease = _vars2.onRelease, self2, maxY, target = _getTarget(vars.target) || _docEl2, smoother = gsap3.core.globals().ScrollSmoother, smootherInstance = smoother && smoother.get(), content = _fixIOSBug && (vars.content && _getTarget(vars.content) || smootherInstance && vars.content !== false && !smootherInstance.smooth() && smootherInstance.content()), scrollFuncY = _getScrollFunc(target, _vertical), scrollFuncX = _getScrollFunc(target, _horizontal), scale = 1, initialScale = (Observer.isTouch && _win4.visualViewport ? _win4.visualViewport.scale * _win4.visualViewport.width : _win4.outerWidth) / _win4.innerWidth, wheelRefresh = 0, resolveMomentumDuration = _isFunction3(momentum) ? function() { 12066 return momentum(self2); 12067 } : function() { 12068 return momentum || 2.8; 12069 }, lastRefreshID, skipTouchMove, inputObserver = _inputObserver(target, vars.type, true, allowNestedScroll), resumeTouchMove = /* @__PURE__ */ __name(function resumeTouchMove2() { 12070 return skipTouchMove = false; 12071 }, "resumeTouchMove"), scrollClampX = _passThrough3, scrollClampY = _passThrough3, updateClamps = /* @__PURE__ */ __name(function updateClamps2() { 12072 maxY = _maxScroll(target, _vertical); 12073 scrollClampY = _clamp4(_fixIOSBug ? 1 : 0, maxY); 12074 normalizeScrollX && (scrollClampX = _clamp4(0, _maxScroll(target, _horizontal))); 12075 lastRefreshID = _refreshID; 12076 }, "updateClamps"), removeContentOffset = /* @__PURE__ */ __name(function removeContentOffset2() { 12077 content._gsap.y = _round3(parseFloat(content._gsap.y) + scrollFuncY.offset) + "px"; 12078 content.style.transform = "matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, " + parseFloat(content._gsap.y) + ", 0, 1)"; 12079 scrollFuncY.offset = scrollFuncY.cacheID = 0; 12080 }, "removeContentOffset"), ignoreDrag = /* @__PURE__ */ __name(function ignoreDrag2() { 12081 if (skipTouchMove) { 12082 requestAnimationFrame(resumeTouchMove); 12083 var offset = _round3(self2.deltaY / 2), scroll = scrollClampY(scrollFuncY.v - offset); 12084 if (content && scroll !== scrollFuncY.v + scrollFuncY.offset) { 12085 scrollFuncY.offset = scroll - scrollFuncY.v; 12086 var y = _round3((parseFloat(content && content._gsap.y) || 0) - scrollFuncY.offset); 12087 content.style.transform = "matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, " + y + ", 0, 1)"; 12088 content._gsap.y = y + "px"; 12089 scrollFuncY.cacheID = _scrollers.cache; 12090 _updateAll(); 12091 } 12092 return true; 12093 } 12094 scrollFuncY.offset && removeContentOffset(); 12095 skipTouchMove = true; 12096 }, "ignoreDrag"), tween, startScrollX, startScrollY, onStopDelayedCall, onResize = /* @__PURE__ */ __name(function onResize2() { 12097 updateClamps(); 12098 if (tween.isActive() && tween.vars.scrollY > maxY) { 12099 scrollFuncY() > maxY ? tween.progress(1) && scrollFuncY(maxY) : tween.resetTo("scrollY", maxY); 12100 } 12101 }, "onResize"); 12102 content && gsap3.set(content, { 12103 y: "+=0" 12104 }); 12105 vars.ignoreCheck = function(e) { 12106 return _fixIOSBug && e.type === "touchmove" && ignoreDrag(e) || scale > 1.05 && e.type !== "touchstart" || self2.isGesturing || e.touches && e.touches.length > 1; 12107 }; 12108 vars.onPress = function() { 12109 skipTouchMove = false; 12110 var prevScale = scale; 12111 scale = _round3((_win4.visualViewport && _win4.visualViewport.scale || 1) / initialScale); 12112 tween.pause(); 12113 prevScale !== scale && _allowNativePanning(target, scale > 1.01 ? true : normalizeScrollX ? false : "x"); 12114 startScrollX = scrollFuncX(); 12115 startScrollY = scrollFuncY(); 12116 updateClamps(); 12117 lastRefreshID = _refreshID; 12118 }; 12119 vars.onRelease = vars.onGestureStart = function(self3, wasDragging) { 12120 scrollFuncY.offset && removeContentOffset(); 12121 if (!wasDragging) { 12122 onStopDelayedCall.restart(true); 12123 } else { 12124 _scrollers.cache++; 12125 var dur = resolveMomentumDuration(), currentScroll, endScroll; 12126 if (normalizeScrollX) { 12127 currentScroll = scrollFuncX(); 12128 endScroll = currentScroll + dur * 0.05 * -self3.velocityX / 0.227; 12129 dur *= _clampScrollAndGetDurationMultiplier(scrollFuncX, currentScroll, endScroll, _maxScroll(target, _horizontal)); 12130 tween.vars.scrollX = scrollClampX(endScroll); 12131 } 12132 currentScroll = scrollFuncY(); 12133 endScroll = currentScroll + dur * 0.05 * -self3.velocityY / 0.227; 12134 dur *= _clampScrollAndGetDurationMultiplier(scrollFuncY, currentScroll, endScroll, _maxScroll(target, _vertical)); 12135 tween.vars.scrollY = scrollClampY(endScroll); 12136 tween.invalidate().duration(dur).play(0.01); 12137 if (_fixIOSBug && tween.vars.scrollY >= maxY || currentScroll >= maxY - 1) { 12138 gsap3.to({}, { 12139 onUpdate: onResize, 12140 duration: dur 12141 }); 12142 } 12143 } 12144 onRelease && onRelease(self3); 12145 }; 12146 vars.onWheel = function() { 12147 tween._ts && tween.pause(); 12148 if (_getTime2() - wheelRefresh > 1e3) { 12149 lastRefreshID = 0; 12150 wheelRefresh = _getTime2(); 12151 } 12152 }; 12153 vars.onChange = function(self3, dx, dy, xArray, yArray) { 12154 _refreshID !== lastRefreshID && updateClamps(); 12155 dx && normalizeScrollX && scrollFuncX(scrollClampX(xArray[2] === dx ? startScrollX + (self3.startX - self3.x) : scrollFuncX() + dx - xArray[1])); 12156 if (dy) { 12157 scrollFuncY.offset && removeContentOffset(); 12158 var isTouch = yArray[2] === dy, y = isTouch ? startScrollY + self3.startY - self3.y : scrollFuncY() + dy - yArray[1], yClamped = scrollClampY(y); 12159 isTouch && y !== yClamped && (startScrollY += yClamped - y); 12160 scrollFuncY(yClamped); 12161 } 12162 (dy || dx) && _updateAll(); 12163 }; 12164 vars.onEnable = function() { 12165 _allowNativePanning(target, normalizeScrollX ? false : "x"); 12166 ScrollTrigger2.addEventListener("refresh", onResize); 12167 _addListener3(_win4, "resize", onResize); 12168 if (scrollFuncY.smooth) { 12169 scrollFuncY.target.style.scrollBehavior = "auto"; 12170 scrollFuncY.smooth = scrollFuncX.smooth = false; 12171 } 12172 inputObserver.enable(); 12173 }; 12174 vars.onDisable = function() { 12175 _allowNativePanning(target, true); 12176 _removeListener3(_win4, "resize", onResize); 12177 ScrollTrigger2.removeEventListener("refresh", onResize); 12178 inputObserver.kill(); 12179 }; 12180 vars.lockAxis = vars.lockAxis !== false; 12181 self2 = new Observer(vars); 12182 self2.iOS = _fixIOSBug; 12183 _fixIOSBug && !scrollFuncY() && scrollFuncY(1); 12184 _fixIOSBug && gsap3.ticker.add(_passThrough3); 12185 onStopDelayedCall = self2._dc; 12186 tween = gsap3.to(self2, { 12187 ease: "power4", 12188 paused: true, 12189 inherit: false, 12190 scrollX: normalizeScrollX ? "+=0.1" : "+=0", 12191 scrollY: "+=0.1", 12192 modifiers: { 12193 scrollY: _interruptionTracker(scrollFuncY, scrollFuncY(), function() { 12194 return tween.pause(); 12195 }) 12196 }, 12197 onUpdate: _updateAll, 12198 onComplete: onStopDelayedCall.vars.onComplete 12199 }); 12200 return self2; 12201 }, "_getScrollNormalizer"); 12202 ScrollTrigger2.sort = function(func) { 12203 if (_isFunction3(func)) { 12204 return _triggers.sort(func); 12205 } 12206 var scroll = _win4.pageYOffset || 0; 12207 ScrollTrigger2.getAll().forEach(function(t) { 12208 return t._sortY = t.trigger ? scroll + t.trigger.getBoundingClientRect().top : t.start + _win4.innerHeight; 12209 }); 12210 return _triggers.sort(func || function(a, b) { 12211 return (a.vars.refreshPriority || 0) * -1e6 + (a.vars.containerAnimation ? 1e6 : a._sortY) - ((b.vars.containerAnimation ? 1e6 : b._sortY) + (b.vars.refreshPriority || 0) * -1e6); 12212 }); 12213 }; 12214 ScrollTrigger2.observe = function(vars) { 12215 return new Observer(vars); 12216 }; 12217 ScrollTrigger2.normalizeScroll = function(vars) { 12218 if (typeof vars === "undefined") { 12219 return _normalizer2; 12220 } 12221 if (vars === true && _normalizer2) { 12222 return _normalizer2.enable(); 12223 } 12224 if (vars === false) { 12225 _normalizer2 && _normalizer2.kill(); 12226 _normalizer2 = vars; 12227 return; 12228 } 12229 var normalizer = vars instanceof Observer ? vars : _getScrollNormalizer(vars); 12230 _normalizer2 && _normalizer2.target === normalizer.target && _normalizer2.kill(); 12231 _isViewport3(normalizer.target) && (_normalizer2 = normalizer); 12232 return normalizer; 12233 }; 12234 ScrollTrigger2.core = { 12235 // smaller file size way to leverage in ScrollSmoother and Observer 12236 _getVelocityProp, 12237 _inputObserver, 12238 _scrollers, 12239 _proxies, 12240 bridge: { 12241 // when normalizeScroll sets the scroll position (ss = setScroll) 12242 ss: /* @__PURE__ */ __name(function ss() { 12243 _lastScrollTime || _dispatch3("scrollStart"); 12244 _lastScrollTime = _getTime2(); 12245 }, "ss"), 12246 // a way to get the _refreshing value in Observer 12247 ref: /* @__PURE__ */ __name(function ref() { 12248 return _refreshing; 12249 }, "ref") 12250 } 12251 }; 12252 _getGSAP3() && gsap3.registerPlugin(ScrollTrigger2); 12253 12254
12254// imbus/javascript/libs/ImbusTooltips.js 12255 var _ImbusTooltips = class _ImbusTooltips { 12256 constructor({ selector: selector3 = ".js_tooltip" } = {}) { 12257 this.selector = selector3; 12258 this.tooltip = null; 12259 this.lastTrigger = null; 12260 this.hideTimeout = null; 12261 this.handleMouseOver = this.showTooltip.bind(this); 12262 this.handleMouseOut = this.hideTooltip.bind(this); 12263 this.handleMouseMove = this.moveTooltip.bind(this); 12264 this.handleFocus = this.showTooltip.bind(this); 12265 this.handleBlur = this.hideTooltip.bind(this); 12266 this.handleTouchStart = this.handleTouchStart.bind(this); 12267 this.handleDocumentTouch = this.handleDocumentTouch.bind(this); 12268 this.init(); 12269 } 12270 init() { 12271 document.querySelectorAll(this.selector).forEach((el) => { 12272 el.addEventListener("mouseover", this.handleMouseOver); 12273 el.addEventListener("mouseout", this.handleMouseOut); 12274 el.addEventListener("mousemove", this.handleMouseMove); 12275 el.addEventListener("focus", this.handleFocus); 12276 el.addEventListener("blur", this.handleBlur); 12277 el.addEventListener("touchstart", this.handleTouchStart, { 12278 passive: true 12279 }); 12280 if (el.getAttribute("title")) { 12281 el.setAttribute("data-tooltip-title", el.getAttribute("title")); 12282 el.removeAttribute("title"); 12283 } 12284 if (!el.hasAttribute("tabindex") && !el.tabIndex && !["A", "BUTTON", "INPUT", "SELECT", "TEXTAREA"].includes( 12285 el.tagName 12286 )) { 12287 el.setAttribute("tabindex", "0"); 12288 } 12289 }); 12290 } 12291 showTooltip(e) { 12292 const el = e.currentTarget; 12293 if (this.tooltip && this.lastTrigger === el) return; 12294 const title = el.getAttribute("data-tooltip-title"); 12295 if (!title) return; 12296 this.hideTooltip(); 12297 this.tooltip = document.createElement("div"); 12298 this.tooltip.className = "tooltip-holder"; 12299 this.tooltip.setAttribute("role", "tooltip"); 12300 this.tooltip.textContent = title; 12301 const arrow = document.createElement("div"); 12302 arrow.className = "tooltip-holder-arrow"; 12303 arrow.innerHTML = `<svg width="14" height="7"><polygon points="0,0 7,7 14,0" /></svg>`; 12304 this.tooltip.appendChild(arrow); 12305 document.body.appendChild(this.tooltip); 12306 const tooltipId = "imbus-tooltip-" + Math.random().toString(36).slice(2, 10); 12307 this.tooltip.id = tooltipId; 12308 el.setAttribute("aria-describedby", tooltipId); 12309 this.positionTooltip(el); 12310 this.lastTrigger = el; 12311 } 12312 moveTooltip(e) { 12313 } 12314 positionTooltip(el) { 12315 const rect = el.getBoundingClientRect(); 12316 const tooltip = this.tooltip; 12317 tooltip.style.visibility = "hidden"; 12318 tooltip.style.left = "0px"; 12319 tooltip.style.top = "0px"; 12320 tooltip.style.transform = "none"; 12321 requestAnimationFrame(() => { 12322 const ttRect = tooltip.getBoundingClientRect(); 12323 let left = rect.left + rect.width / 2 - ttRect.width / 2 + window.scrollX; 12324 let top = rect.top - ttRect.height - 10 + window.scrollY; 12325 left = Math.max( 12326 4, 12327 Math.min( 12328 left, 12329 window.scrollX + window.innerWidth - ttRect.width - 4 12330 ) 12331 ); 12332 if (top < window.scrollY) { 12333 top = rect.bottom + 14 + window.scrollY; 12334 const arrow = tooltip.querySelector(".tooltip-holder-arrow"); 12335 if (arrow) { 12336 arrow.classList.add("tooltip-holder-arrow--top"); 12337 } 12338 } 12339 tooltip.style.left = `${left}px`; 12340 tooltip.style.top = `${top}px`; 12341 tooltip.style.visibility = "visible"; 12342 tooltip.style.transform = "none"; 12343 tooltip.classList.add("fadeInDown"); 12344 }); 12345 } 12346 hideTooltip() { 12347 if (this.tooltip) { 12348 if (this.lastTrigger) { 12349 this.lastTrigger.removeAttribute("aria-describedby"); 12350 } 12351 this.tooltip.remove(); 12352 this.tooltip = null; 12353 this.lastTrigger = null; 12354 } 12355 if (this.hideTimeout) { 12356 clearTimeout(this.hideTimeout); 12357 this.hideTimeout = null; 12358 } 12359 document.removeEventListener("touchstart", this.handleDocumentTouch); 12360 } 12361 handleTouchStart(e) { 12362 e.preventDefault(); 12363 this.showTooltip({ currentTarget: e.currentTarget }); 12364 setTimeout(() => { 12365 document.addEventListener("touchstart", this.handleDocumentTouch, { 12366 once: true 12367 }); 12368 }, 0); 12369 this.hideTimeout = setTimeout(() => this.hideTooltip(), 2e3); 12370 } 12371 handleDocumentTouch(e) { 12372 if (this.lastTrigger && !this.lastTrigger.contains(e.target)) { 12373 this.hideTooltip(); 12374 } 12375 } 12376 destroy() { 12377 document.querySelectorAll(this.selector).forEach((el) => { 12378 el.removeEventListener("mouseover", this.handleMouseOver); 12379 el.removeEventListener("mouseout", this.handleMouseOut); 12380 el.removeEventListener("mousemove", this.handleMouseMove); 12381 el.removeEventListener("focus", this.handleFocus); 12382 el.removeEventListener("blur", this.handleBlur); 12383 el.removeEventListener("touchstart", this.handleTouchStart, { 12384 passive: true 12385 }); 12386 if (el.getAttribute("data-tooltip-title")) { 12387 el.setAttribute("title", el.getAttribute("data-tooltip-title")); 12388 el.removeAttribute("data-tooltip-title"); 12389 } 12390 el.removeAttribute("aria-describedby"); 12391 if (el.getAttribute("tabindex") === "0") { 12392 el.removeAttribute("tabindex"); 12393 } 12394 }); 12395 this.hideTooltip(); 12396 } 12397 }; 12398 __name(_ImbusTooltips, "ImbusTooltips"); 12399 var ImbusTooltips = _ImbusTooltips; 12400 var ImbusTooltips_default = ImbusTooltips; 12401 12402
12402// imbus/javascript/global/imbus.config.js 12403 var baseConfig = { 12404 // settings 12405 breakpoint: 599, 12406 animationSpeed: 500, 12407 // element and plugin settings 12408 header: { 12409 element: "body header.main", 12410 elementsHideOnPin: "#nav-account", 12411 headroomOptions: { 12412 offset: 50, 12413 tolerance: { 12414 up: 5, 12415 down: 0 12416 }, 12417 classes: { 12418 pinned: "js_header_big", 12419 unpinned: "js_header_small", 12420 top: "js_header_top", 12421 notTop: "js_header_small-nonTop", 12422 initial: "js_header_big-init" 12423 } 12424 } 12425 }, 12426 tabs: { 12427 elementIdentifier: ".tabs--simple" 12428 }, 12429 icons: { 12430 elementIdentifier: ".icon-animated" 12431 }, 12432 table: { 12433 context: "#content", 12434 elementIdentifier: ".composeableForMobile" 12435 }, 12436 navigation: { 12437 context: "header.main", 12438 elementIdentifier: "nav > ul > li.sub" 12439 }, 12440 forms: { 12441 context: ".form_field--floating-label", 12442 emptyClass: "form_field-NOVALUE" 12443 }, 12444 toggler: { 12445 elementIdentifier: "[data-toggle]", 12446 defaultState: "js_toggler_default", 12447 toggledState: "js_toggler_toggled", 12448 defaultIcon: "default", 12449 defaultCloseIcon: "close", 12450 slide: { 12451 defaultState: "animated fadeOutUp", 12452 toggledState: "animated fadeInDown" 12453 }, 12454 tease: { 12455 defaultState: "animated teaseContent", 12456 toggledState: "animated showContent" 12457 }, 12458 zoom: { 12459 defaultState: "animated fadeOutZoom", 12460 toggledState: "animated fadeInZoom" 12461 }, 12462 slideLeft: { 12463 defaultState: "animated fadeOutLeft", 12464 toggledState: "animated fadeInRight" 12465 }, 12466 hashPrefix: "i_" 12467 }, 12468 tooltips: { 12469 baseElement: ".tooltip", 12470 animation: "fade", 12471 delay: 0, 12472 maxWidth: 300, 12473 speed: 100, 12474 touchDevices: true 12475 }, 12476 datepicker: { 12477 inputMode: true, 12478 positionToInput: ["bottom", "left"], 12479 locale: i18next.language, 12480 enableWeekNumbers: true, 12481 dateMin: /* @__PURE__ */ new Date(), 12482 selectedWeekends: [], 12483 displayDatesOutside: false, 12484 styles: { 12485 arrowPrev: "arrow arrow-left", 12486 arrowNext: "arrow arrow-right" 12487 }, 12488 onChangeToInput(self2) {
12489 if (!self2.context.inputElement) return; 12490 if (self2.context.selectedDates[0]) { 12491 self2.context.inputElement.value = new Date(self2.context.selectedDates[0]).toLocaleDateString("de-DE", { 12492 day: "2-digit", 12493 month: "2-digit", 12494 year: "numeric" 12495 }); 12496 self2.hide(); 12497 } else { 12498 self2.context.inputElement.value = ""; 12499 } 12500 }, 12501 labels: { 12502 application: i18next.t("datepicker:application"), 12503 navigation: i18next.t("datepicker:navigation"), 12504 arrowNext: { 12505 month: i18next.t("datepicker:arrowNext_month"), 12506 year: i18next.t("datepicker:arrowNext_year") 12507 }, 12508 arrowPrev: { 12509 month: i18next.t("datepicker:arrowPrev_month"), 12510 year: i18next.t("datepicker:arrowPrev_year") 12511 }, 12512 month: i18next.t("datepicker:month"), 12513 months: i18next.t("datepicker:months"), 12514 year: i18next.t("datepicker:year"), 12515 years: i18next.t("datepicker:years"), 12516 week: i18next.t("datepicker:week"), 12517 weekNumber: i18next.t("datepicker:weekNumber"), 12518 dates: i18next.t("datepicker:dates") 12519 } 12520 }, 12521 // datepicker: { 12522 // firstDay: 1, 12523 // format: 'DD.MM.YYYY', 12524 // outputFormat: 'DD.MM.YYYY', 12525 // minDate: new Date(), 12526 // showWeekNumber: true, 12527 // i18n: { 12528 // previousMonth: i18next.t('datepicker:previousMonth'), 12529 // nextMonth: i18next.t('datepicker:nextMonth'), 12530 // months: [ 12531 // i18next.t('datepicker:month_jan'), 12532 // i18next.t('datepicker:month_feb'), 12533 // i18next.t('datepicker:month_mar'), 12534 // i18next.t('datepicker:month_apr'), 12535 // i18next.t('datepicker:month_may'), 12536 // i18next.t('datepicker:month_jun'), 12537 // i18next.t('datepicker:month_jul'), 12538 // i18next.t('datepicker:month_aug'), 12539 // i18next.t('datepicker:month_sep'), 12540 // i18next.t('datepicker:month_oct'), 12541 // i18next.t('datepicker:month_nov'), 12542 // i18next.t('datepicker:month_dec') 12543 // ], 12544 // weekdays: [ 12545 // i18next.t('datepicker:workday_sunday'), 12546 // i18next.t('datepicker:workday_monday'), 12547 // i18next.t('datepicker:workday_tuesday'), 12548 // i18next.t('datepicker:workday_wednesday'), 12549 // i18next.t('datepicker:workday_thursday'), 12550 // i18next.t('datepicker:workday_friday'), 12551 // i18next.t('datepicker:workday_saturday') 12552 // ], 12553 // weekdaysShort: [ 12554 // i18next.t('datepicker:workday_su'), 12555 // i18next.t('datepicker:workday_mo'), 12556 // i18next.t('datepicker:workday_tu'), 12557 // i18next.t('datepicker:workday_we'), 12558 // i18next.t('datepicker:workday_th'), 12559 // i18next.t('datepicker:workday_fr'), 12560 // i18next.t('datepicker:workday_sa') 12561 // ] 12562 // } 12563 // }, 12564 sticky: { 12565 item: ".scroll-fixed", 12566 container: "#content", 12567 stickClass: "scroll-fixed-active", 12568 endStickClass: "scroll-fixed-end", 12569 offset: 150 12570 }, 12571 slider: { 12572 banner: { 12573 slidesToShow: 1, 12574 slidesToScroll: 1, 12575 autoplay: true, 12576 autoplaySpeed: 1e4, 12577 dots: false, 12578 arrows: false, 12579 fade: true 12580 }, 12581 contentautoscroll: { 12582 slidesToShow: 3, 12583 slidesToScroll: 1, 12584 autoplay: true, 12585 autoplaySpeed: 5e3, 12586 dots: false, 12587 draggable: false, 12588 arrows: true, 12589 infinite: false, 12590 responsive: [ 12591 { 12592 breakpoint: 1e3, 12593 settings: { 12594 slidesToShow: 2, 12595 slidesToScroll: 2 12596 } 12597 }, 12598 { 12599 breakpoint: 600, 12600 settings: { 12601 slidesToShow: 1, 12602 slidesToScroll: 1 12603 } 12604 } 12605 ] 12606 }, 12607 content: { 12608 slidesToShow: 3, 12609 slidesToScroll: 1, 12610 autoplay: false, 12611 dots: false, 12612 draggable: false, 12613 arrows: true, 12614 infinite: false, 12615 responsive: [ 12616 { 12617 breakpoint: 1e3, 12618 settings: { 12619 slidesToShow: 2, 12620 slidesToScroll: 2 12621 } 12622 }, 12623 { 12624 breakpoint: 600, 12625 settings: { 12626 slidesToShow: 1, 12627 slidesToScroll: 1 12628 } 12629 } 12630 ] 12631 }, 12632 locations: { 12633 slidesToShow: 3, 12634 slidesToScroll: 1, 12635 autoplay: false, 12636 dots: false, 12637 draggable: false, 12638 arrows: true, 12639 responsive: [ 12640 { 12641 breakpoint: 1e3, 12642 settings: { 12643 slidesToShow: 2, 12644 slidesToScroll: 2 12645 } 12646 }, 12647 { 12648 breakpoint: 600, 12649 settings: { 12650 slidesToShow: 1, 12651 slidesToScroll: 1 12652 } 12653 } 12654 ] 12655 }, 12656 buttons: { 12657 default: { 12658 nextArrow: '<button type="button" aria-label="' + i18next.t("slider:next") + '" class="slick-next button button-outline"><span class="icon icon-medium icon-arrow-right" aria-hidden="true"></span></button>', 12659 prevArrow: '<button type="button" aria-label="' + i18next.t("slider:previous") + '" class="slick-prev button button-outline"><span class="icon icon-medium icon-arrow-left" aria-hidden="true"></span></button>' 12660 }, 12661 contrast: { 12662 nextArrow: '<button type="button" aria-label="' + i18next.t("slider:next") + '" class="slick-next button button-white button-outline"><span class="icon icon-medium color-white icon-arrow-right" aria-hidden="true"></span></button>', 12663 prevArrow: '<button type="button" aria-label="' + i18next.t("slider:previous") + '" class="slick-prev button button-white button-outline"><span class="icon icon-medium color-white icon-arrow-left" aria-hidden="true"></span></button>' 12664 } 12665 } 12666 }, 12667 search: { 12668 sectionIdentifier: "#tx-indexedsearch-sec", 12669 resultCountIdentifier: ".tx-indexedsearch-resultCount", 12670 inSectionIdentifier: ".tx-indexedsearch-inSection", 12671 searchForTargetIdentifier: "" 12672 }, 12673 akademie: { 12674 emptyFilterHash: "cd28ed179a7365ce2151ad899c7932e640fe381e", 12675 languagePresets: { 12676 de: "1", 12677 ca: "9", 12678 local: "9", 12679 cn: "3" 12680 }, 12681 locationPresets: { 12682 de: "", 12683 ca: "" 12684 }, 12685 dates: { 12686 sortingValueMap: { 12687 startDate_ASC: { 12688 "val": "startDate_ASC", 12689 "txt": i18next.t("akademieFilter:sorting_date", { sorting: "$t(akademieFilter:sorting_ascending)" }) 12690 }, 12691 startDate_DESC: { 12692 "val": "startDate_DESC", 12693 "txt": i18next.t("akademieFilter:sorting_date", { sorting: "$t(akademieFilter:sorting_descending)" }) 12694 }, 12695 title_ASC: { 12696 "val": "title_ASC", 12697 "txt": i18next.t("akademieFilter:sorting_title", { sorting: "$t(akademieFilter:sorting_AtoZ)" }) 12698 }, 12699 title_DESC: { 12700 "val": "title_DESC", 12701 "txt": i18next.t("akademieFilter:sorting_title", { sorting: "$t(akademieFilter:sorting_ZtoA)" }) 12702 }, 12703 location_ASC: { 12704 "val": "location_ASC", 12705 "txt": i18next.t("akademieFilter:sorting_location", { sorting: "$t(akademieFilter:sorting_AtoZ)" }) 12706 }, 12707 location_DESC: { 12708 "val": "location_DESC", 12709 "txt": i18next.t("akademieFilter:sorting_location", { sorting: "$t(akademieFilter:sorting_ZtoA)" }) 12710 }, 12711 price_ASC: { 12712 "val": "price_ASC", 12713 "txt": i18next.t("akademieFilter:sorting_price", { sorting: "$t(akademieFilter:sorting_ascending)" }) 12714 }, 12715 price_DESC: { 12716 "val": "price_DESC", 12717 "txt": i18next.t("akademieFilter:sorting_price", { sorting: "$t(akademieFilter:sorting_descending)" }) 12718 } 12719 } 12720 }, 12721 trainings: { 12722 sortingValueMap: { 12723 title_ASC: { 12724 "val": "title_ASC", 12725 "txt": i18next.t("akademieFilter:sorting_title", { sorting: "$t(akademieFilter:sorting_AtoZ)" }) 12726 }, 12727 title_DESC: { 12728 "val": "title_DESC", 12729 "txt": i18next.t("akademieFilter:sorting_title", { sorting: "$t(akademieFilter:sorting_ZtoA)" }) 12730 } 12731 } 12732 } 12733 } 12734 }; 12735 var imbus_config_default = baseConfig; 12736 12737
12737// imbus/javascript/imbus.main.js 12738 var imbus = imbus || {}; 12739 imbus.ui = imbus.ui || {}; 12740 imbus.cache = imbus.cache || {}; 12741 imbus.helper = imbus.helper || {}; 12742 imbus.events = imbus.events || {}; 12743 imbus.dom_init = function() { 12744 imbus.ui.parallax.init(); 12745 imbus.ui.hashHandler.init(); 12746 imbus.ui.scrollTop.init(); 12747 document.addEventListener("dp--cookie-init", function() { 12748 const cookiepopup = document.querySelector(".cc-window"); 12749 cookiepopup.querySelectorAll('a[tabindex="2"]').forEach((link) => { 12750 link.setAttribute("tabindex", "0"); 12751 }); 12752 cookiepopup.querySelector(".cc-compliance")?.appendChild( 12753 cookiepopup.querySelector(".cc-compliance .cc-allow-all") 12754 ); 12755 cookiepopup.querySelector(".cc-body .contrast-button")?.addEventListener("click", imbus.ui.contrast.buttonClick); 12756 document.addEventListener("focusin", (e) => { 12757 if (!document.body.classList.contains("dp--cookie-consent") || cookiepopup.contains(e.target)) 12758 return; 12759 document.querySelector(".cc-window a, .cc-windows button").focus(); 12760 }); 12761 }); 12762 }; 12763 imbus.init = function() { 12764 imbus.ui.navigation.init(); 12765 imbus.ui.contrast.init(); 12766 imbus.ui.slider.init(); 12767 imbus.ui.pdfgenerator.init(); 12768 imbus.ui.search.init(); 12769 imbus.ui.translations.init(); 12770 imbus.ui.toggler.init(); 12771 imbus.ui.header.init(); 12772 imbus.ui.tooltips.init(); 12773 imbus.ui.forms.init(); 12774 imbus.ui.datepicker.init(); 12775 imbus.ui.simpletabs.init(); 12776 imbus.ui.tabs.init(); 12777 imbus.ui.table.init(); 12778 imbus.ui.lightbox.init(); 12779 }; 12780 imbus.ui.header = (function() { 12781 var element = document.querySelector(imbus_config_default.header.element), _init = /* @__PURE__ */ __name(function() { 12782 var headroom = new import_headroom.default( 12783 element, 12784 imbus_config_default.header.headroomOptions 12785 ); 12786 headroom.init(); 12787 }, "_init"); 12788 return { 12789 init: _init 12790 }; 12791 })(); 12792 imbus.ui.translations = /* @__PURE__ */ (function() { 12793 var _init = /* @__PURE__ */ __name(function() { 12794 var buttons = document.querySelectorAll( 12795 ".downloads-list .collapsible-content .button.button-icononly.right" 12796 ); 12797 if (buttons != null && buttons.length > 0) { 12798 buttons.forEach((button) => { 12799 button.setAttribute( 12800 "data-aria-open", 12801 i18next.t("downloads:label_aria_open") 12802 ); 12803 button.setAttribute( 12804 "data-aria-closed", 12805 i18next.t("downloads:label_aria_closed") 12806 ); 12807 }); 12808 } 12809 }, "_init"); 12810 return { 12811 init: _init 12812 }; 12813 })(); 12814 imbus.ui.parallax = /* @__PURE__ */ (function() { 12815 var _initGsap = /* @__PURE__ */ __name(function(animation) { 12816 gsapWithCSS.registerPlugin(ScrollTrigger2); 12817 animation.forEach((element, i) => { 12818 if (element.classList.contains("banner-image")) { 12819 gsapWithCSS.to(element, { 12820 y: 400, 12821 ease: "none", 12822 scrollTrigger: { 12823 trigger: element, 12824 start: "top", 12825 end: "bottom", 12826 scrub: 0 12827 } 12828 }); 12829 } else { 12830 gsapWithCSS.to(element, { 12831 y: 400, 12832 ease: "none", 12833 scrollTrigger: { 12834 trigger: element.parentElement, 12835 start: "top bottom", 12836 end: "bottom top", 12837 scrub: 0 12838 } 12839 }); 12840 } 12841 }); 12842 const resizeObserver = new ResizeObserver( 12843 (entries) => ScrollTrigger2.refresh(true) 12844 ); 12845 resizeObserver.observe(document.body); 12846 setTimeout(() => { 12847 ScrollTrigger2.refresh(true); 12848 }, 2e3); 12849 }, "_initGsap"); 12850 var _init = /* @__PURE__ */ __name(function() { 12851 const hash = window.location.hash; 12852 let animation = gsapWithCSS.utils.toArray(".js-parallax-element"); 12853 if (animation.length > 0) { 12854 const target = hash ? document.querySelector(hash) : null; 12855 if (target) { 12856 requestAnimationFrame(() => { 12857 document.documentElement.style.scrollBehavior = "auto"; 12858 target.scrollIntoView(); 12859 document.documentElement.style.scrollBehavior = ""; 12860 _initGsap(animation); 12861 }); 12862 } else { 12863 _initGsap(animation); 12864 } 12865 } 12866 }, "_init"); 12867 return { 12868 init: _init 12869 }; 12870 })(); 12871 imbus.ui.tooltips = /* @__PURE__ */ (function() { 12872 var _init = /* @__PURE__ */ __name(function(config3) { 12873 const tooltips = new ImbusTooltips_default(); 12874 }, "_init"); 12875 return { 12876 init: _init 12877 }; 12878 })(); 12879 imbus.ui.datepicker = /* @__PURE__ */ (function() { 12880 var _init = /* @__PURE__ */ __name(function(config3) { 12881 var datepickerConfig = Object.assign(imbus_config_default.datepicker, config3); 12882 var elements = document.getElementsByClassName( 12883 "powermail_fieldwrap_type_date" 12884 ); 12885 const options = Object.assign(datepickerConfig, {}); 12886 Array.prototype.forEach.call(elements, (element, i) => { 12887 const calendar = new Calendar(element.getElementsByTagName("input")[0], options); 12888 element.getElementsByTagName("input")[0].addEventListener("keydown", (e) => { 12889 if (e.key === "Tab") { 12890 calendar.hide(); 12891 } 12892 });
12893 calendar.init(); 12894 }); 12895 }, "_init"); 12896 return { 12897 init: _init 12898 }; 12899 })(); 12900 imbus.ui.forms = /* @__PURE__ */ (function() { 12901 const _init = /* @__PURE__ */ __name(function() { 12902 document.querySelectorAll("form.form--ajax").forEach((form) => { 12903 const submitButtons = form.querySelectorAll(".button.action-ajax"); 12904 submitButtons.forEach((button) => { 12905 button.addEventListener("click", function(e) { 12906 e.preventDefault(); 12907 _submitFormPdf(form); 12908 }); 12909 }); 12910 form.addEventListener("submit", function(e) { 12911 e.preventDefault(); 12912 _submitFormPdf(form); 12913 }); 12914 }); 12915 const selects = document.querySelectorAll( 12916 `${imbus_config_default.forms.context} select` 12917 ); 12918 selects.forEach((select) => { 12919 _checkLabelState(select); 12920 select.addEventListener("change", function() { 12921 _checkLabelState(select); 12922 }); 12923 }); 12924 }, "_init"); 12925 const _checkLabelState = /* @__PURE__ */ __name(function(select) { 12926 if (select.value === "") { 12927 select.classList.remove(imbus_config_default.forms.emptyClass); 12928 } else { 12929 select.classList.add(imbus_config_default.forms.emptyClass); 12930 } 12931 }, "_checkLabelState"); 12932 const _submitFormPdf = /* @__PURE__ */ __name(async function(form) { 12933 const formType = form.dataset.ajaxtype; 12934 const formData = new FormData(form); 12935 const ajaxBtn = form.querySelector(".button.action-ajax"); 12936 const setLoading = /* @__PURE__ */ __name((isLoading) => { 12937 if (ajaxBtn) { 12938 if (isLoading) { 12939 ajaxBtn.classList.add("button-ajaxloader-active"); 12940 } else { 12941 ajaxBtn.classList.remove("button-ajaxloader-active"); 12942 } 12943 } 12944 }, "setLoading"); 12945 try { 12946 setLoading(true); 12947 let response, data; 12948 switch (formType) { 12949 case "pdf": 12950 response = await fetch(i18next.t("akademie:ajaxUrlPdf"), { 12951 method: "POST", 12952 body: formData, 12953 cache: "no-cache" 12954 }); 12955 if (!response.ok) { 12956 throw new Error(`Response status: ${response.status}`); 12957 } 12958 data = await response.json(); 12959 const basePath = i18next.t("akademie:downloadUrlPdf"); 12960 const finalPath = basePath + data.filename; 12961 const sizes = ["Bytes", "KB", "MB", "GB", "TB"]; 12962 const i = Math.min( 12963 Math.floor(Math.log(data.filesize) / Math.log(1024)), 12964 sizes.length - 1 12965 ); 12966 const readableFilesize = (data.filesize / Math.pow(1024, i)).toFixed() + sizes[i]; 12967 const downloadBtn = form.querySelector(".button.action-download"); 12968 if (downloadBtn) { 12969 const sizeEl = downloadBtn.querySelector(".action-download__size"); 12970 if (sizeEl) sizeEl.textContent = `(${readableFilesize})`; 12971 downloadBtn.setAttribute("href", finalPath); 12972 downloadBtn.style.display = "inline-block"; 12973 } 12974 if (ajaxBtn) ajaxBtn.style.display = "none"; 12975 break; 12976 case "poll": 12977 const urlParams = new URLSearchParams(window.location.search); 12978 if (urlParams.has("tx_powermail_pi1[hash]")) { 12979 const hashInput = form.querySelector('input[name*="[hash]"]'); 12980 if (hashInput) { 12981 hashInput.value = urlParams.get( 12982 "tx_powermail_pi1[hash]" 12983 ); 12984 } 12985 } 12986 response = await fetch(i18next.t("newsletter:ajaxUrl"), { 12987 method: "POST", 12988 body: formData, 12989 cache: "no-cache" 12990 }); 12991 if (!response.ok) { 12992 throw new Error(`Response status: ${response.status}`); 12993 } 12994 data = await response.text(); 12995 const frame = form.closest(".frame"); 12996 if (frame && frame.parentNode) { 12997 frame.parentNode.innerHTML = data; 12998 } 12999 break; 13000 } 13001 } catch (error) { 13002 switch (formType) { 13003 case "pdf": 13004 (0, import_toastify_js.default)({ 13005 text: i18next.t("akademie:ajaxLoadError"), 13006 duration: 3e3, 13007 close: true, 13008 gravity: "bottom", 13009 position: "right", 13010 stopOnFocus: true 13011 }).showToast(); 13012 break; 13013 case "poll": 13014 (0, import_toastify_js.default)({ 13015 text: i18next.t("newsletter:ajaxLoadError"), 13016 duration: 3e3, 13017 close: true, 13018 gravity: "bottom", 13019 position: "right", 13020 stopOnFocus: true 13021 }).showToast(); 13022 break; 13023 } 13024 } finally {
13025 setLoading(false); 13026 } 13027 }, "_submitFormPdf"); 13028 return { 13029 init: _init 13030 }; 13031 })(); 13032 imbus.ui.hashHandler = (function() { 13033 var hashPrefix = imbus_config_default.toggler.hashPrefix; 13034 var _init = /* @__PURE__ */ __name(function() { 13035 _readHash(); 13036 }, "_init"); 13037 var _readHash = /* @__PURE__ */ __name(function() { 13038 var currentHash = window.location.hash; 13039 currentHash = currentHash.replace(hashPrefix, ""); 13040 currentHash = currentHash.split("&")[0]; 13041 if (currentHash && document.querySelector(currentHash) && document.querySelector(currentHash).closest("#content")) { 13042 document.addEventListener("collapsibleLoaded", function() { 13043 var targetElement = document.querySelector(currentHash); 13044 var triggerElement = targetElement.querySelector("[data-toggle]"); 13045 var toggleOthersSelector = triggerElement?.getAttribute("data-toggleothers"); 13046 var eConf = triggerElement ? imbus.ui.toggler.initEConf(triggerElement) : null; 13047 if (toggleOthersSelector) { 13048 var toggleOthers = document.querySelector(toggleOthersSelector); 13049 if (toggleOthers) { 13050 toggleOthers.querySelectorAll("[data-toggle]").forEach(function(triggerElementLocal) { 13051 var eConf2 = imbus.ui.toggler.initEConf(triggerElementLocal); 13052 var target2 = document.querySelector( 13053 eConf2.targetElement 13054 ); 13055 imbus.ui.toggler.defaultState( 13056 target2, 13057 triggerElementLocal, 13058 eConf2, 13059 true 13060 ); 13061 }); 13062 } 13063 if (triggerElement) { 13064 var target = document.querySelector( 13065 eConf.targetElement 13066 ); 13067 imbus.ui.toggler.toggledState( 13068 target, 13069 triggerElement, 13070 eConf, 13071 true 13072 ); 13073 } 13074 if (eConf.syncother) { 13075 document.querySelectorAll(eConf.syncother).forEach(function(otherTriggerElement) { 13076 var othereConf = imbus.ui.toggler.initEConf( 13077 otherTriggerElement 13078 ); 13079 var otherTarget = document.querySelector( 13080 othereConf.targetElement 13081 ); 13082 imbus.ui.toggler.toggledState( 13083 otherTarget, 13084 otherTriggerElement, 13085 othereConf, 13086 true 13087 ); 13088 }); 13089 } 13090 } else { 13091 if (triggerElement) 13092 triggerElement.dispatchEvent( 13093 new Event("click", { bubbles: true }) 13094 ); 13095 const teaser = targetElement.closest(".teaser-content"); 13096 if (teaser) { 13097 const teaserFooter = teaser.parentElement.querySelector( 13098 ".teaser-content__footer[data-toggle]" 13099 ); 13100 if (teaserFooter) 13101 teaserFooter.dispatchEvent( 13102 new Event("click", { bubbles: true }) 13103 ); 13104 } 13105 } 13106 if (eConf && eConf.scrollIntoView === true) { 13107 setTimeout(() => { 13108 window.scrollTo({ 13109 top: document.querySelector(eConf.scrollTo).getBoundingClientRect().top + window.pageYOffset - 110, 13110 behavior: "smooth" 13111 }); 13112 }, 0); 13113 } 13114 }); 13115 } 13116 }, "_readHash"); 13117 var _getHash = /* @__PURE__ */ __name(function() { 13118 var currentHash = window.location.hash; 13119 currentHash = currentHash.replace(hashPrefix, ""); 13120 currentHash = currentHash.split("&")[0]; 13121 return currentHash.replace("#", ""); 13122 }, "_getHash"); 13123 var _setHash = /* @__PURE__ */ __name(function(elementId, hashValue = "") { 13124 if (elementId && document.querySelector(`#${elementId}`)?.closest("#content")) { 13125 var hash = "#" + hashPrefix + (hashValue != "" ? hashValue : elementId); 13126 history.pushState( 13127 "", 13128 document.title, 13129 window.location.pathname + window.location.search + hash 13130 ); 13131 } else { 13132 history.pushState( 13133 "", 13134 document.title, 13135 window.location.pathname + window.location.search 13136 ); 13137 } 13138 }, "_setHash"); 13139 return { 13140 init: _init, 13141 readHash: _readHash, 13142 setHash: _setHash, 13143 getHash: _getHash 13144 }; 13145 })(); 13146 imbus.ui.table = /* @__PURE__ */ (function() { 13147 var _init = /* @__PURE__ */ __name(function() { 13148 document.querySelectorAll("table").forEach((table) => { 13149 let wrapper = document.createElement("div"); 13150 wrapper.classList.add("tablewrapper"); 13151 table.parentNode.insertBefore(wrapper, table); 13152 wrapper.appendChild(table); 13153 }); 13154 }, "_init"); 13155 return { 13156 init: _init 13157 }; 13158 })(); 13159 imbus.ui.scrollTop = /* @__PURE__ */ (function() { 13160 var _init = /* @__PURE__ */ __name(function() { 13161 const scrollTopLinks = document.querySelectorAll("a[href='#top']"); 13162 scrollTopLinks.forEach((link) => { 13163 link.addEventListener("click", function(e) { 13164 e.preventDefault(); 13165 window.scrollTo({ top: 0, behavior: "smooth" }); 13166 }); 13167 }); 13168 const toggleScrollTopVisibility = /* @__PURE__ */ __name(() => { 13169 scrollTopLinks.forEach((link) => { 13170 if (window.scrollY === 0) { 13171 link.classList.remove("scroll-top-visible"); 13172 } else { 13173 link.classList.add("scroll-top-visible"); 13174 } 13175 }); 13176 }, "toggleScrollTopVisibility"); 13177 toggleScrollTopVisibility(); 13178 window.addEventListener("scroll", toggleScrollTopVisibility); 13179 }, "_init"); 13180 return { 13181 init: _init 13182 }; 13183 })(); 13184 imbus.ui.slider = /* @__PURE__ */ (function() { 13185 var _init = /* @__PURE__ */ __name(function() { 13186 const sliderElements = document.querySelectorAll(".slider"); 13187 if (sliderElements.length > 0) {
13188 sliderElements.forEach((sliderElement) => { 13189 (0, import_tiny_slider.tns)({ 13190 container: sliderElement, 13191 items: 1, 13192 responsive: { 13193 768: { 13194 items: 2 13195 }, 13196 1024: { 13197 items: 3 13198 } 13199 }, 13200 slideBy: 1, 13201 gutter: 40, 13202 autoplay: true, 13203 autoplayTimeout: 4e3, 13204 animateDelay: 2e3, 13205 mouseDrag: false, 13206 // <button class="tns-pause" type="button" aria-label="Pause slider" data-action="stop"></button> 13207 controlsText: [ 13208 '<span class="icon icon-large icon-animated icon-arrow-left"><i></i><i></i><i></i></span>', 13209 '<span class="icon icon-large icon-animated icon-arrow-right"><i></i><i></i><i></i></span>' 13210 ], 13211 autoplayText: [ 13212 '<span class="icon icon-large icon-animated icon-play"><i></i><i></i><i></i></span>', 13213 '<span class="icon icon-large icon-animated icon-pause"><i></i><i></i><i></i></span>' 13214 ], 13215 arrowKeys: false, 13216 controlsPosition: "bottom", 13217 navPosition: "bottom", 13218 autoplayPosition: "bottom", 13219 onInit(info) { 13220 const container = info.container.closest(".tns-outer"); 13221 container.querySelector(".tns-liveregion").removeAttribute("aria-live"); 13222 container.querySelector(".tns-liveregion").removeAttribute("aria-label"); 13223 container.querySelector(".tns-liveregion").removeAttribute("aria-atomic"); 13224 info.prevButton.setAttribute("tabindex", 0); 13225 info.nextButton.setAttribute("tabindex", 0); 13226 info.prevButton.setAttribute("aria-label", "Vorheriges Element"); 13227 info.nextButton.setAttribute("aria-label", "N\xE4chstes Element"); 13228 const stop = container.querySelector("button"); 13229 const next = container.querySelector('[data-controls="next"]'); 13230 info.controlsContainer.removeAttribute("tabindex"); 13231 info.controlsContainer.appendChild(stop); 13232 info.controlsContainer.appendChild(next); 13233 if (stop.getAttribute("data-action") == "stop") 13234 stop.setAttribute("aria-label", "Slider Anhalten"); 13235 else 13236 stop.setAttribute("aria-label", "Slider Fortsetzen"); 13237 stop.addEventListener("click", () => { 13238 if (stop.getAttribute("data-action") == "stop") 13239 stop.setAttribute("aria-label", "Slider Anhalten"); 13240 else 13241 stop.setAttribute("aria-label", "Slider Fortsetzen"); 13242 }); 13243 info.nextButton.addEventListener("click", () => { 13244 stop.setAttribute("aria-label", "Slider Fortsetzen"); 13245 }); 13246 info.prevButton.addEventListener("click", () => { 13247 stop.setAttribute("aria-label", "Slider Fortsetzen"); 13248 }); 13249 } 13250 }); 13251 }); 13252 } 13253 }, "_init"); 13254 return { 13255 init: _init 13256 }; 13257 })(); 13258 imbus.ui.toggler = (function() { 13259 const togglerConf = imbus_config_default.toggler; 13260 const elementIdentifier = togglerConf.elementIdentifier; 13261 const _initEConf = /* @__PURE__ */ __name((element) => { 13262 return { 13263 toggleMethod: element.dataset.toggle, 13264 targetElement: element.dataset.target, 13265 targetLocation: element.dataset.targetloc, 13266 defaultIcon: element.dataset.icon || togglerConf.defaultIcon, 13267 scrollIntoView: element.dataset.scrollintoview === "true", 13268 scrollIntoViewOnClose: element.dataset.scrollintoviewonclose === "true", 13269 teaseHeightPx: parseInt(element.dataset.teaseheightpx || "0", 10), 13270 label: element.dataset.label, 13271 toggleLabel: element.dataset.togglelabel === "true", 13272 toggleOtherClass: element.dataset.toggleotherclass, 13273 scrollTo: element.dataset.scrollto || element.dataset.target, 13274 closeIcon: element.dataset.iconClose || togglerConf.defaultCloseIcon, 13275 closeOther: element.dataset.closeother, 13276 closeOthers: element.dataset.closeothers, 13277 otherIcon: element.dataset.othericon,
13278 syncother: element.dataset.syncother, 13279 stopfocus: element.dataset.stopfocus === "true", 13280 ariaOpen: element.dataset.ariaOpen, 13281 ariaClosed: element.dataset.ariaClosed, 13282 closeOnLeave: element.dataset.closeonleave === "true", 13283 closeWithEsc: element.dataset.closewithesc === "true" 13284 }; 13285 }, "_initEConf"); 13286 const _getTargetElement = /* @__PURE__ */ __name((triggerElement, eConf) => { 13287 if (eConf.targetLocation === "next") { 13288 return triggerElement.nextElementSibling; 13289 } else if (eConf.targetLocation === "parents") { 13290 return triggerElement.closest(eConf.targetElement); 13291 } else if (eConf.targetLocation) { 13292 return document.querySelector(eConf.targetLocation); 13293 } else { 13294 return document.querySelector(eConf.targetElement); 13295 } 13296 }, "_getTargetElement"); 13297 const _isVisible = /* @__PURE__ */ __name((element) => { 13298 return element.offsetParent !== null; 13299 }, "_isVisible"); 13300 const _toggledState = /* @__PURE__ */ __name((targetElement, triggerElement, eConf, skipAnimation = false) => { 13301 targetElement.classList.add(togglerConf.toggledState); 13302 targetElement.classList.remove(togglerConf.defaultState); 13303 if (_isVisible(triggerElement)) { 13304 if (skipAnimation) { 13305 targetElement.style.height = "auto"; 13306 } else { 13307 switch (eConf.toggleMethod) { 13308 case "slideHorizontal": 13309 gsapWithCSS.to(targetElement, { 13310 width: "auto", 13311 duration: 0.5, 13312 ease: "power1.inOut" 13313 }); 13314 break; 13315 default: 13316 gsapWithCSS.to(targetElement, { 13317 height: "auto", 13318 duration: 0.5, 13319 ease: "power1.inOut" 13320 }); 13321 break; 13322 } 13323 } 13324 } 13325 triggerElement.setAttribute("aria-expanded", "true"); 13326 if (eConf.stopfocus) { 13327 targetElement.querySelectorAll("a, button, [tabindex], input, select").forEach((el) => { 13328 if (el.dataset.tabindex != null) 13329 el.setAttribute("tabindex", el.dataset.tabindex); 13330 else 13331 el.removeAttribute("tabindex"); 13332 el.removeAttribute("data-tabindex"); 13333 }); 13334 } 13335 if (eConf.ariaOpen) { 13336 triggerElement.setAttribute("aria-label", eConf.ariaOpen); 13337 } 13338 const icon = triggerElement.querySelector(".icon"); 13339 if (icon && eConf.defaultIcon && eConf.closeIcon) { 13340 icon.classList.remove("icon-" + eConf.defaultIcon); 13341 icon.classList.add("icon-" + eConf.closeIcon); 13342 } 13343 if (eConf.toggleOtherClass) { 13344 let otherElement = document.querySelector(eConf.toggleOtherClass); 13345 if (otherElement) { 13346 otherElement.classList.add(togglerConf.toggledState); 13347 otherElement.classList.remove(togglerConf.defaultState); 13348 } 13349 } 13350 if (eConf.scrollIntoView === true) { 13351 window.scrollTo({ 13352 top: document.querySelector(eConf.scrollTo).getBoundingClientRect().top + window.pageYOffset - 110, 13353 behavior: "smooth" 13354 }); 13355 const closestID = triggerElement.closest("[id]").getAttribute("id"); 13356 imbus.ui.hashHandler.setHash(closestID); 13357 } 13358 if (eConf.otherIcon) { 13359 const otherIcon = document.querySelector(eConf.otherIcon); 13360 if (otherIcon) { 13361 const baseIcon = otherIcon.dataset.icon; 13362 const closeIcon = otherIcon.dataset.iconClose; 13363 if (baseIcon) { 13364 otherIcon.classList.remove("icon-" + baseIcon); 13365 } 13366 if (closeIcon) { 13367 otherIcon.classList.add("icon-" + closeIcon); 13368 } 13369 } 13370 } 13371 }, "_toggledState"); 13372 const _defaultState = /* @__PURE__ */ __name((targetElement, triggerElement, eConf, skipAnimation = false) => { 13373 targetElement.classList.remove(togglerConf.toggledState); 13374 targetElement.classList.add(togglerConf.defaultState); 13375 if (_isVisible(triggerElement)) { 13376 if (skipAnimation) { 13377 targetElement.style.height = "0px"; 13378 } else { 13379 switch (eConf.toggleMethod) { 13380 case "slideHorizontal": 13381 gsapWithCSS.to(targetElement, { 13382 width: eConf.teaseHeightPx, 13383 duration: 0.5, 13384 ease: "power1.inOut" 13385 }); 13386 break; 13387 default: 13388 gsapWithCSS.to(targetElement, { 13389 height: eConf.teaseHeightPx, 13390 duration: 0.5, 13391 ease: "power1.inOut" 13392 }); 13393 break; 13394 } 13395 } 13396 } 13397 triggerElement.setAttribute("aria-expanded", "false"); 13398 if (eConf.stopfocus) { 13399 targetElement.querySelectorAll("a, button, [tabindex], input, select").forEach((el) => { 13400 el.setAttribute("data-tabindex", el.getAttribute("tabindex") ?? null); 13401 el.setAttribute("tabindex", "-1"); 13402 }); 13403 } 13404 if (eConf.ariaClosed) { 13405 triggerElement.setAttribute("aria-label", eConf.ariaClosed); 13406 } 13407 const icon = triggerElement.querySelector(".icon"); 13408 if (icon && eConf.defaultIcon && eConf.closeIcon) {
13409 icon.classList.remove("icon-" + eConf.closeIcon); 13410 icon.classList.add("icon-" + eConf.defaultIcon); 13411 } 13412 if (eConf.toggleOtherClass) { 13413 let otherElement = document.querySelector(eConf.toggleOtherClass); 13414 if (otherElement) { 13415 otherElement.classList.remove(togglerConf.toggledState); 13416 otherElement.classList.add(togglerConf.defaultState); 13417 } 13418 } 13419 if (eConf.scrollIntoViewOnClose === true) { 13420 window.scrollTo({ 13421 top: document.querySelector(eConf.scrollTo).getBoundingClientRect().top + window.pageYOffset - 110, 13422 behavior: "smooth" 13423 }); 13424 } 13425 if (eConf.otherIcon) { 13426 const otherIcon = document.querySelector(eConf.otherIcon); 13427 if (otherIcon) { 13428 const baseIcon = otherIcon.dataset.icon; 13429 const closeIcon = otherIcon.dataset.iconClose; 13430 if (closeIcon) { 13431 otherIcon.classList.remove("icon-" + closeIcon); 13432 } 13433 if (baseIcon) { 13434 otherIcon.classList.add("icon-" + baseIcon); 13435 } 13436 } 13437 } 13438 imbus.ui.hashHandler.setHash(""); 13439 }, "_defaultState"); 13440 const _init = /* @__PURE__ */ __name((root = document) => { 13441 const elements = root.querySelectorAll(elementIdentifier); 13442 elements.forEach((triggerElement) => { 13443 const eConf = _initEConf(triggerElement); 13444 const targetElement = _getTargetElement(triggerElement, eConf); 13445 if (!targetElement) return; 13446 const isInitiallyOpen = targetElement.classList.contains( 13447 togglerConf.toggledState 13448 ); 13449 if (isInitiallyOpen) { 13450 switch (eConf.toggleMethod) { 13451 case "slideHorizontal": 13452 gsapWithCSS.set(targetElement, { width: "auto" }); 13453 break; 13454 default: 13455 gsapWithCSS.set(targetElement, { height: "auto" }); 13456 break; 13457 } 13458 } else { 13459 switch (eConf.toggleMethod) { 13460 case "slideHorizontal": 13461 gsapWithCSS.set(targetElement, { width: eConf.teaseHeightPx }); 13462 break; 13463 default: 13464 gsapWithCSS.set(targetElement, { 13465 height: eConf.teaseHeightPx 13466 }); 13467 break; 13468 } 13469 } 13470 triggerElement.setAttribute("aria-expanded", isInitiallyOpen); 13471 if (isInitiallyOpen) { 13472 if (eConf.stopfocus) { 13473 targetElement.querySelectorAll("a, button, [tabindex], input, select").forEach((el) => { 13474 if (el.dataset.tabindex != null) 13475 el.setAttribute("tabindex", el.dataset.tabindex); 13476 else 13477 el.removeAttribute("tabindex"); 13478 }); 13479 } 13480 if (eConf.ariaOpen) { 13481 triggerElement.setAttribute("aria-label", eConf.ariaOpen); 13482 } 13483 } 13484 if (!isInitiallyOpen) { 13485 if (eConf.stopfocus) { 13486 targetElement.querySelectorAll("a, button, [tabindex], input, select").forEach((el) => { 13487 el.setAttribute("data-tabindex", el.getAttribute("tabindex") ?? null); 13488 el.setAttribute("tabindex", "-1"); 13489 }); 13490 } 13491 if (eConf.ariaClosed) { 13492 triggerElement.setAttribute("aria-label", eConf.ariaClosed); 13493 } 13494 } 13495 if (eConf.closeWithEsc) { 13496 document.addEventListener("keyup", (e) => { 13497 if (e.code === "Escape" && targetElement.classList.contains( 13498 togglerConf.toggledState 13499 )) { 13500 _defaultState(targetElement, triggerElement, eConf); 13501 } 13502 }); 13503 } 13504 if (eConf.closeOnLeave) { 13505 targetElement.addEventListener("focusout", (e) => { 13506 if (!targetElement.contains(e.relatedTarget)) { 13507 _defaultState(targetElement, triggerElement, eConf); 13508 } 13509 }); 13510 } 13511 triggerElement.addEventListener("click", (e) => { 13512 e.preventDefault(); 13513 const isOpen = targetElement.classList.contains( 13514 togglerConf.toggledState 13515 ); 13516 if (eConf.syncother) { 13517 document.querySelectorAll(eConf.syncother).forEach((otherTriggerElement) => { 13518 const othereConf = _initEConf(otherTriggerElement); 13519 const otherTargetElement = _getTargetElement(otherTriggerElement, othereConf); 13520 if (isOpen) { 13521 _defaultState(otherTargetElement, otherTriggerElement, othereConf); 13522 } else { 13523 _toggledState(otherTargetElement, otherTriggerElement, othereConf, true); 13524 } 13525 }); 13526 } 13527 if (isOpen) { 13528 _defaultState(targetElement, triggerElement, eConf); 13529 } else { 13530 _toggledState(targetElement, triggerElement, eConf); 13531 } 13532 }); 13533 }); 13534 document.dispatchEvent(new CustomEvent("collapsibleLoaded")); 13535 }, "_init"); 13536 return { 13537 init: _init, 13538 initEConf: _initEConf, 13539 defaultState: _defaultState, 13540 toggledState: _toggledState 13541 }; 13542 })(); 13543 imbus.ui.navigation = (function() { 13544 const elementIdentifier = imbus_config_default.navigation.elementIdentifier; 13545 const context3 = document.querySelector(imbus_config_default.navigation.context) || document; 13546 const navToggleBtn = document.querySelector("#mobile-navigation-action .button-action"); 13547 const _init = /* @__PURE__ */ __name(function() { 13548 navToggleBtn.addEventListener("click", function(event) { 13549 document.body.classList.toggle("js_nav_open"); 13550 event.preventDefault(); 13551 }); 13552 const elements = context3.querySelectorAll(elementIdentifier);
13553 elements.forEach((el) => { 13554 _initMode(el); 13555 }); 13556 }, "_init"); 13557 const _initMobile = /* @__PURE__ */ __name(function(navEl) { 13558 navEl.querySelectorAll(".nav-item > button.nav-toggler").forEach((btn) => { 13559 const sub = btn.closest(".sub"); 13560 btn.addEventListener("click", function(event) { 13561 if (sub) sub.classList.toggle("js_navSub_open"); 13562 document.body.classList.toggle("js_navSub_open"); 13563 event.preventDefault(); 13564 }); 13565 const container = sub.querySelector(".navigation-container"); 13566 if (container) container.addEventListener("focusout", (e) => { 13567 if (!container.contains(e.relatedTarget)) { 13568 if (sub) sub.classList.toggle("js_navSub_open"); 13569 document.body.classList.toggle("js_navSub_open"); 13570 } 13571 }); 13572 }); 13573 }, "_initMobile"); 13574 const _initDesktop = /* @__PURE__ */ __name(function(nav) { 13575 const links = nav.querySelectorAll(":scope > a"); 13576 links.forEach((link) => { 13577 link.addEventListener("touchstart", function(e) { 13578 if (!this.classList.contains("js-touchhover")) { 13579 document.querySelectorAll(".js-touchhover").forEach((el) => el.classList.remove("js-touchhover")); 13580 this.classList.add("js-touchhover"); 13581 e.preventDefault(); 13582 } 13583 }); 13584 }); 13585 }, "_initDesktop"); 13586 const _initMode = /* @__PURE__ */ __name(function(nav) { 13587 if (window.matchMedia("only screen and (min-width: 1280px)").matches) { 13588 _initDesktop(nav); 13589 } else { 13590 _initMobile(nav); 13591 } 13592 }, "_initMode"); 13593 const _reset = /* @__PURE__ */ __name(function() { 13594 }, "_reset"); 13595 return { 13596 init: _init, 13597 resize: _reset 13598 }; 13599 })(); 13600 imbus.ui.lightbox = /* @__PURE__ */ (function() { 13601 var _init = /* @__PURE__ */ __name(function() { 13602 (0, import_glightbox.default)({ 13603 selector: "a.lightbox" 13604 }); 13605 }, "_init"); 13606 return { 13607 init: _init 13608 }; 13609 })(); 13610 imbus.ui.simpletabs = (function() { 13611 const elementIdentifier = imbus_config_default.tabs.elementIdentifier; 13612 const _init = /* @__PURE__ */ __name(function() { 13613 const tabContainers = document.querySelectorAll(elementIdentifier); 13614 tabContainers.forEach((container) => { 13615 const tabs = container.querySelectorAll("nav a");
13616 tabs.forEach((tab) => { 13617 tab.addEventListener("click", function(e) { 13618 e.preventDefault(); 13619 if (!this.classList.contains("js_active")) { 13620 const currentHash = this.getAttribute("href"); 13621 if (currentHash && document.querySelector(currentHash)) { 13622 _openTab(container, currentHash); 13623 } 13624 } 13625 }); 13626 }); 13627 }); 13628 }, "_init"); 13629 const _openTab = /* @__PURE__ */ __name(function(instance, tabID) { 13630 const tabs = instance.querySelector("nav"); 13631 const elements = instance.querySelectorAll("section article"); 13632 const currentActiveTab = tabs.querySelector(".js_active"); 13633 if (currentActiveTab) { 13634 currentActiveTab.setAttribute("aria-selected", "false"); 13635 currentActiveTab.classList.remove("js_active"); 13636 } 13637 const newActiveTab = tabs.querySelector(`a[href="${tabID}"]`); 13638 if (newActiveTab) { 13639 newActiveTab.classList.add("js_active"); 13640 newActiveTab.setAttribute("aria-selected", "true"); 13641 } 13642 elements.forEach((section) => section.classList.remove("js_active")); 13643 const newActiveSection = instance.querySelector(tabID); 13644 if (newActiveSection) { 13645 newActiveSection.classList.add("js_active"); 13646 } 13647 }, "_openTab"); 13648 return { 13649 init: _init 13650 }; 13651 })(); 13652 imbus.ui.pdfgenerator = /* @__PURE__ */ (function() { 13653 var currentDateList = [], showPdfFormButton, dataTable, pdfOptions, closePdfOptionsButton, generatePdfButton, downloadPdfButton, selectionCheckboxInputs, _init = /* @__PURE__ */ __name(function() { 13654 showPdfFormButton = document.getElementById("akademie-pdf-button"); 13655 dataTable = document.getElementsByClassName("container-wrapper-table")[0]; 13656 pdfOptions = document.getElementById("imbusakademie-pdf"); 13657 closePdfOptionsButton = document.getElementById("imbusakademie-pdf__action-close"); 13658 downloadPdfButton = document.getElementById("imbusakademie-pdf__action-download"); 13659 generatePdfButton = document.getElementById("imbusakademie-pdf__action-generate"); 13660 if (generatePdfButton && downloadPdfButton) { 13661 downloadPdfButton.classList.add("hidden"); 13662 showPdfFormButton.onclick = function() { 13663 if (dataTable) { 13664 dataTable.classList.toggle("container-wrapper-table__selectionactive"); 13665 } 13666 if (showPdfFormButton.getAttribute("aria-expanded") == "true") { 13667 showPdfFormButton.setAttribute("aria-expanded", false); 13668 } else { 13669 showPdfFormButton.setAttribute("aria-expanded", true); 13670 } 13671 pdfOptions.classList.toggle("js_open"); 13672 }; 13673 selectionCheckboxInputs = dataTable.getElementsByTagName("input"); 13674 for (let i = 0; i < selectionCheckboxInputs.length; i++) { 13675 var element = selectionCheckboxInputs[i]; 13676 element.onclick = function() { 13677 var closestContainer = this.closest(".container"); 13678 if (!generatePdfButton.classList.contains("button-ajaxloader-active")) { 13679 generatePdfButton.classList.remove("hidden"); 13680 downloadPdfButton.classList.add("hidden"); 13681 if (this.checked) { 13682 closestContainer.classList.add("active"); 13683 _addToList(this.value); 13684 generatePdfButton.disabled = false; 13685 } else { 13686 closestContainer.classList.remove("active"); 13687 _removeFromList(this.value); 13688 generatePdfButton.disabled = currentDateList.length == 0; 13689 } 13690 } 13691 }; 13692 } 13693 generatePdfButton.onclick = function() { 13694 if (!generatePdfButton.classList.contains("button-ajaxloader-active")) { 13695 generatePdfButton.classList.add("button-ajaxloader-active"); 13696 var trainingId = document.getElementById("imbusakademie-pdf__trainingid").value; 13697 _handlePdfGeneration(trainingId, currentDateList); 13698 } 13699 }; 13700 closePdfOptionsButton.onclick = function() { 13701 dataTable.classList.remove("container-wrapper-table__selectionactive"); 13702 pdfOptions.classList.remove("js_open"); 13703 showPdfFormButton.setAttribute("aria-expanded", false); 13704 }; 13705 } 13706 }, "_init"), _addToList = /* @__PURE__ */ __name(function(dateId) { 13707 currentDateList.push(dateId); 13708 }, "_addToList"), _removeFromList = /* @__PURE__ */ __name(function(dateId) { 13709 currentDateList = currentDateList.filter(function(e) { 13710 return e !== dateId; 13711 }); 13712 }, "_removeFromList"), _handlePdfGeneration = /* @__PURE__ */ __name(function(trainingId, dateIds) { 13713 var formdata = new FormData(); 13714 for (let index = 0; index < dateIds.length; index++) { 13715 const element = dateIds[index]; 13716 formdata.append("tx_imbuspdf_view[trainings][" + index + "][training]", trainingId); 13717 formdata.append("tx_imbuspdf_view[trainings][" + index + "][date]", element); 13718 } 13719 var request = new XMLHttpRequest(); 13720 request.open("POST", i18next.t("akademie:ajaxUrlPdf"), true); 13721 request.send(formdata); 13722 request.onload = function() { 13723 if (this.status >= 200 && this.status < 400) { 13724 var resp = this.response; 13725 var jsonResp = JSON.parse(resp); 13726 var basePath = i18next.t("akademie:downloadUrlPdf"); 13727 var finalPath = basePath + jsonResp.filename; 13728 var filesize = _getReadableFilesize(jsonResp.filesize); 13729 downloadPdfButton.getElementsByClassName("label")[0].innerText = i18next.t("akademie:pdf_downloadbutton") + " (" + filesize + ")"; 13730 downloadPdfButton.setAttribute("href", finalPath); 13731 generatePdfButton.classList.remove( 13732 "button-ajaxloader-active" 13733 ); 13734 generatePdfButton.classList.add("hidden"); 13735 downloadPdfButton.classList.remove("hidden"); 13736 } else { 13737 (0, import_toastify_js.default)({ 13738 text: i18next.t("akademie:ajaxLoadError"), 13739 duration: 3e3, 13740 close: true, 13741 gravity: "bottom", 13742 position: "right", 13743 stopOnFocus: true 13744 }).showToast(); 13745 generatePdfButton.classList.remove( 13746 "button-ajaxloader-active" 13747 ); 13748 } 13749 }; 13750 request.onerror = function() { 13751 (0, import_toastify_js.default)({ 13752 text: i18next.t("akademie:ajaxLoadError"), 13753 duration: 3e3, 13754 close: true, 13755 gravity: "bottom", 13756 position: "right", 13757 stopOnFocus: true 13758 }).showToast(); 13759 generatePdfButton.classList.remove("button-ajaxloader-active"); 13760 }; 13761 }, "_handlePdfGeneration"), _getReadableFilesize = /* @__PURE__ */ __name(function(filesize) { 13762 const sizes = ["Bytes", "KB", "MB", "GB", "TB"]; 13763 const i = Math.min( 13764 parseInt( 13765 Math.floor(Math.log(filesize) / Math.log(1024)).toString(), 13766 10 13767 ), 13768 sizes.length - 1 13769 ); 13770 return `${(filesize / 1024 ** i).toFixed()} ${sizes[i]}`; 13771 }, "_getReadableFilesize"); 13772 return { 13773 init: _init 13774 }; 13775 })(); 13776 imbus.ui.search = /* @__PURE__ */ (function() { 13777 var _init = /* @__PURE__ */ __name(function(config3) { 13778 const searchButton = document.querySelector( 13779 "#search-action .button-action" 13780 ); 13781 if (searchButton) { 13782 searchButton.addEventListener("click", () => { 13783 setTimeout(function() { 13784 document.querySelector("#search-layer .sword").focus(); 13785 }, 100); 13786 }); 13787 } 13788 const mobileSearchButton = document.querySelector( 13789 "#mobile-search-action .button-action" 13790 ); 13791 if (mobileSearchButton) { 13792 mobileSearchButton.addEventListener("click", () => { 13793 setTimeout(function() { 13794 document.querySelector("#search-layer .sword").focus(); 13795 }, 100); 13796 }); 13797 } 13798 }, "_init"); 13799 return { 13800 init: _init 13801 }; 13802 })(); 13803 imbus.ui.tabs = /* @__PURE__ */ (function() { 13804 var _init = /* @__PURE__ */ __name(function() { 13805 if (document.querySelectorAll(".tabs").length > 0) { 13806 const tabButtons = document.querySelectorAll( 13807 ".tabs__buttons .button" 13808 ); 13809 const tabContents = document.querySelectorAll( 13810 ".tabs__panels .tab-panel" 13811 ); 13812 const currentHashValue = imbus.ui.hashHandler.getHash(); 13813 if (tabButtons && tabContents) { 13814 tabButtons.forEach((tabBtn) => { 13815 const title = tabBtn.getAttribute("data-title"); 13816 const tabId = tabBtn.getAttribute("data-id"); 13817 if (currentHashValue != "" && currentHashValue == title) { 13818 _activateTab(tabBtn, tabButtons, tabContents); 13819 setTimeout(() => { 13820 window.scrollTo({ 13821 top: document.getElementById(tabId)?.getBoundingClientRect().top + window.pageYOffset - 200, 13822 behavior: "smooth" 13823 }); 13824 }); 13825 } 13826 tabBtn.addEventListener("click", () => { 13827 imbus.ui.hashHandler.setHash(tabId, title); 13828 _activateTab(tabBtn, tabButtons, tabContents); 13829 }); 13830 }); 13831 } 13832 } 13833 }, "_init"); 13834 var _activateTab = /* @__PURE__ */ __name(function(tabBtn, tabButtons, tabContents) { 13835 const tabId = tabBtn.getAttribute("data-id"); 13836 tabButtons.forEach((btn) => { 13837 btn.classList.remove("active"); 13838 btn.setAttribute("aria-selected", "false"); 13839 }); 13840 tabBtn.classList.add("active"); 13841 tabBtn.setAttribute("aria-selected", "true");
13842 tabContents.forEach((content) => { 13843 if (content.classList.contains("active")) { 13844 content.classList.add("removing"); 13845 setTimeout(() => { 13846 content.classList.remove("removing"); 13847 }, 400); 13848 } 13849 content.classList.remove("active"); 13850 if (content.id === tabId) { 13851 content.classList.add("active"); 13852 } 13853 }); 13854 }, "_activateTab"); 13855 return { 13856 init: _init 13857 }; 13858 })(); 13859 document.addEventListener("dp--cookie-revoke", function() { 13860 if (window._paq) { 13861 window._paq.push(["disableCookies"]); 13862 window._paq.push(["deleteCookies"]); 13863 } 13864 }); 13865 document.addEventListener("dp--cookie-init", handleCookieInitOrAccept); 13866 document.addEventListener("dp--cookie-accept", handleCookieInitOrAccept); 13867 function handleCookieInitOrAccept() { 13868 const showCheckBtn = document.querySelector( 13869 ".cc-message .cc-btn.cc-showcheck" 13870 ); 13871 const cookieCheck = document.querySelector(".dp--cookie-check"); 13872 const allowBtn = document.querySelector(".cc-btn.cc-allow"); 13873 if (showCheckBtn) showCheckBtn.style.display = "inline-block"; 13874 if (cookieCheck) cookieCheck.style.display = "none"; 13875 if (allowBtn) allowBtn.style.display = "none"; 13876 if (showCheckBtn) { 13877 showCheckBtn.addEventListener( 13878 "click", 13879 function(e) { 13880 e.preventDefault(); 13881 if (cookieCheck) { 13882 cookieCheck.style.display = "block"; 13883 gsapWithCSS.set(cookieCheck, { height: 0, overflow: "hidden" }); 13884 gsapWithCSS.to(cookieCheck, { 13885 height: "auto", 13886 duration: 0.4, 13887 ease: "power1.out", 13888 onComplete: /* @__PURE__ */ __name(() => { 13889 cookieCheck.style.height = "auto"; 13890 }, "onComplete") 13891 }); 13892 } 13893 if (allowBtn) allowBtn.style.display = "inline-block"; 13894 showCheckBtn.style.display = "none"; 13895 }, 13896 { once: true } 13897 ); 13898 } 13899 setTimeout(() => { 13900 if (window.DPCookieConsent.utils.getCookie( 13901 "dp_cookieconsent_status" 13902 ) && window.DPCookieConsent.utils.getCookie( 13903 "dp_cookieconsent_status" 13904 )["checkboxes"] && window.DPCookieConsent.utils.getCookie( 13905 "dp_cookieconsent_status" 13906 )["checkboxes"][1]["checked"]) { 13907 document.querySelectorAll(".cookie-content-replacer").forEach(function(container) { 13908 const plainScript = container.querySelector('script[type="text/plain"]'); 13909 const iframe = container.querySelector("iframe[data-src]"); 13910 if (plainScript) { 13911 const htmlSource = plainScript.textContent; 13912 container.innerHTML = htmlSource; 13913 } else if (iframe) { 13914 iframe.setAttribute("src", iframe.dataset.src); 13915 iframe.style.display = ""; 13916 } 13917 }); 13918 } 13919 }, 500); 13920 } 13921 __name(handleCookieInitOrAccept, "handleCookieInitOrAccept"); 13922 imbus.ui.contrast = (function() { 13923 const button = document.querySelector("#navigation-service .contrast-button"), buttonClick = /* @__PURE__ */ __name(() => { 13924 let contrast_mode_true = getCookieTrue(); 13925 document.cookie = `contrast_mode=${!contrast_mode_true}; max-age=max-age-in-seconds=31536000; path=/`; 13926 setClassFromCookie(!contrast_mode_true); 13927 }, "buttonClick"), _init = /* @__PURE__ */ __name(function() { 13928 setClassFromCookie(getCookieTrue()); 13929 button.addEventListener("click", buttonClick); 13930 }, "_init"); 13931 getCookieTrue = /* @__PURE__ */ __name(() => document.cookie.split("; ").find((row) => row.startsWith("contrast_mode="))?.split("=")[1] == "true", "getCookieTrue"); 13932 setClassFromCookie = /* @__PURE__ */ __name((cookicontrast_cookie) => { 13933 const body = document.querySelector("body"); 13934 const buttons = document.querySelectorAll(".contrast-button"); 13935 if (cookicontrast_cookie) { 13936 body.classList.add("a11y-contrast"); 13937 buttons.forEach((button2) => { 13938 button2.title = i18next.t("contrast:disable"); 13939 }); 13940 } else { 13941 body.classList.remove("a11y-contrast"); 13942 buttons.forEach((button2) => { 13943 button2.title = i18next.t("contrast:enable"); 13944 }); 13945 } 13946 }, "setClassFromCookie"); 13947 return { 13948 init: _init, 13949 buttonClick 13950 }; 13951 })(); 13952 document.addEventListener("imbusLoad", function() { 13953 const consent = window.DPCookieConsent?.utils?.getCookie("dp_co
13953okieconsent_status"); 13954 if (consent && consent.checkboxes && consent.checkboxes[1] && consent.checkboxes[1].checked) { 13955 document.querySelectorAll("[data-adservice]").forEach((element) => { 13956 element.addEventListener("click", function(event) { 13957 const id = event.target.dataset.adservice; 13958 if (id) { 13959 gtag("event", "conversion", { send_to: id }); 13960 } else { 13961 console.log("no adservice id found: ", event.target); 13962 } 13963 }); 13964 }); 13965 } 13966 }); 13967 document.querySelector("html").classList.remove("no-js"); 13968 var domLoadEvent = new Event("imbusLoad"); 13969 var loadEvent = new Event("imbusLoad"); 13970 document.addEventListener("DOMContentLoaded", function() { 13971 window.dispatchEvent(domLoadEvent); 13972 imbus.dom_init(); 13973 }); 13974 window.onload = function() { 13975 window.dispatchEvent(loadEvent); 13976 imbus.init(); 13977 }; 13978})(); 13979/*! Bundled license information: 13980 13981toastify-js/src/toastify.js: 13982 (*! 13983 * Toastify js 1.12.0 13984 * https://github.com/apvarun/toastify-js 13985 * @license MIT licensed 13986 * 13987 * Copyright (C) 2018 Varun A P 13988 *) 13989 13990headroom.js/dist/headroom.js: 13991 (*! 13992 * headroom.js v0.12.0 - Give your page some headroom. Hide your header until you need it 13993 * Copyright (c) 2020 Nick Williams - http://wicky.nillia.ms/headroom.js 13994 * License: MIT 13995 *) 13996 13997vanilla-calendar-pro/index.mjs: 13998 (*! name: vanilla-calendar-pro v3.1.0 | url: https://github.com/uvarov-frontend/vanilla-calendar-pro *) 13999 14000gsap/gsap-core.js: 14001 (*! 14002 * GSAP 3.14.2 14003 * https://gsap.com 14004 * 14005 * @license Copyright 2008-2025, GreenSock. All rights reserved. 14006 * Subject to the terms at https://gsap.com/standard-license 14007 * @author: Jack Doyle, [email protected] 14008 *) 14009 14010gsap/CSSPlugin.js: 14011 (*! 14012 * CSSPlugin 3.14.2 14013 * https://gsap.com 14014 * 14015 * Copyright 2008-2025, GreenSock. All rights reserved. 14016 * Subject to the terms at https://gsap.com/standard-license 14017 * @author: Jack Doyle, [email protected] 14018 *) 14019 14020gsap/Observer.js: 14021 (*! 14022 * Observer 3.14.2 14023 * https://gsap.com 14024 * 14025 * @license Copyright 2008-2025, GreenSock. All rights reserved. 14026 * Subject to the terms at https://gsap.com/standard-license 14027 * @author: Jack Doyle, [email protected] 14028 *) 14029 14030gsap/ScrollTrigger.js: 14031 (*! 14032 * ScrollTrigger 3.14.2 14033 * https://gsap.com 14034 * 14035 * @license Copyright 2008-2025, GreenSock. All rights reserved. 14036 * Subject to the terms at https://gsap.com/standard-license 14037 * @author: Jack Doyle, [email protected] 14038 *) 14039*/ 14040//# sourceMappingURL=imbus.main.js.map
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.