{"version":3,"file":"stickyBar-CJFCmslt.js","sources":["../../src/scripts/modules/stickyBar.ts"],"sourcesContent":["import { Component } from '@verndale/core';\nimport { ActionsToCart } from '../helpers/cart';\n\nclass StickyBar extends Component {\n lastScroll: number = 0;\n\n setupDefaults() {\n this.dom = {\n select: this.el.querySelector('select'),\n addToCartButton: this.el.querySelector('.sticky-bar__add-to-cart')\n };\n }\n\n addListeners() {\n window.addEventListener('scroll', this.onScroll.bind(this));\n (this.dom.select as HTMLSelectElement)?.addEventListener(\n 'change',\n this.onSelectChange.bind(this)\n );\n (this.dom.addToCartButton as HTMLButtonElement)?.addEventListener(\n 'click',\n this.addToCart.bind(this)\n );\n }\n\n onScroll() {\n const currentScroll = window.scrollY;\n\n if (\n currentScroll < this.lastScroll &&\n currentScroll > 500 &&\n window.matchMedia('(min-width: 1024px)').matches\n ) {\n this.el.style.transform = 'translateY(0)';\n this.el.style.display = 'flex';\n } else {\n this.el.style.transform = `translateY(-${this.el.offsetHeight}px)`;\n }\n\n this.lastScroll = currentScroll;\n }\n\n onSelectChange(event: Event) {\n const select = event.target as HTMLSelectElement;\n const value = select.value;\n\n const courseSelectorCardInput = document.querySelector(\n `.course-schedule-selector__card[data-code=\"${value}\"] input[type=\"radio\"]`\n );\n const courseSelectorButton = document.querySelector(\n `.course-schedule-selector .btn`\n );\n\n if (courseSelectorCardInput) {\n courseSelectorCardInput.checked = true;\n courseSelectorButton?.classList.remove('btn--disabled');\n }\n }\n\n async addToCart() {\n const dataObject = {\n code: (this.dom.select as HTMLSelectElement)?.value,\n quantity: 1\n };\n\n const data = await ActionsToCart(this.el.dataset.endpoint || '', dataObject);\n\n if (data.success && this.el.dataset.redirectUrl) {\n window.location.href = this.el.dataset.redirectUrl;\n }\n }\n}\n\nexport default StickyBar;\n"],"names":["StickyBar","Component","__publicField","_a","_b","currentScroll","event","value","courseSelectorCardInput","courseSelectorButton","dataObject","ActionsToCart"],"mappings":"qRAGA,MAAMA,UAAkBC,CAAU,CAAlC,kCACEC,EAAA,kBAAqB,GAErB,eAAgB,CACd,KAAK,IAAM,CACT,OAAQ,KAAK,GAAG,cAAiC,QAAQ,EACzD,gBAAiB,KAAK,GAAG,cAAiC,0BAA0B,CAAA,CAExF,CAEA,cAAe,SACb,OAAO,iBAAiB,SAAU,KAAK,SAAS,KAAK,IAAI,CAAC,GACzDC,EAAA,KAAK,IAAI,SAAT,MAAAA,EAAuC,iBACtC,SACA,KAAK,eAAe,KAAK,IAAI,IAE9BC,EAAA,KAAK,IAAI,kBAAT,MAAAA,EAAgD,iBAC/C,QACA,KAAK,UAAU,KAAK,IAAI,EAE5B,CAEA,UAAW,CACT,MAAMC,EAAgB,OAAO,QAG3BA,EAAgB,KAAK,YACrBA,EAAgB,KAChB,OAAO,WAAW,qBAAqB,EAAE,SAEpC,KAAA,GAAG,MAAM,UAAY,gBACrB,KAAA,GAAG,MAAM,QAAU,QAExB,KAAK,GAAG,MAAM,UAAY,eAAe,KAAK,GAAG,YAAY,MAG/D,KAAK,WAAaA,CACpB,CAEA,eAAeC,EAAc,CAE3B,MAAMC,EADSD,EAAM,OACA,MAEfE,EAA0B,SAAS,cACvC,8CAA8CD,CAAK,wBAAA,EAE/CE,EAAuB,SAAS,cACpC,gCAAA,EAGED,IACFA,EAAwB,QAAU,GACZC,GAAA,MAAAA,EAAA,UAAU,OAAO,iBAE3C,CAEA,MAAM,WAAY,OAChB,MAAMC,EAAa,CACjB,MAAOP,EAAA,KAAK,IAAI,SAAT,YAAAA,EAAuC,MAC9C,SAAU,CAAA,GAGC,MAAMQ,EAAc,KAAK,GAAG,QAAQ,UAAY,GAAID,CAAU,GAElE,SAAW,KAAK,GAAG,QAAQ,cAClC,OAAO,SAAS,KAAO,KAAK,GAAG,QAAQ,YAE3C,CACF"}