{"version":3,"file":"stickyBar-BdONFizj.js","sources":["../../src/scripts/modules/stickyBar.ts"],"sourcesContent":["import { Component } from '@verndale/core';\r\nimport { ActionsToCart } from '../helpers/cart';\r\n\r\nclass StickyBar extends Component {\r\n lastScroll: number = 0;\r\n\r\n setupDefaults() {\r\n this.dom = {\r\n select: this.el.querySelector<HTMLSelectElement>('select'),\r\n addToCartButton: this.el.querySelector<HTMLSelectElement>('.sticky-bar__add-to-cart')\r\n };\r\n }\r\n\r\n addListeners() {\r\n window.addEventListener('scroll', this.onScroll.bind(this));\r\n (this.dom.select as HTMLSelectElement)?.addEventListener(\r\n 'change',\r\n this.onSelectChange.bind(this)\r\n );\r\n (this.dom.addToCartButton as HTMLButtonElement)?.addEventListener(\r\n 'click',\r\n this.addToCart.bind(this)\r\n );\r\n }\r\n\r\n onScroll() {\r\n const currentScroll = window.scrollY;\r\n\r\n if (\r\n currentScroll < this.lastScroll &&\r\n currentScroll > 500 &&\r\n window.matchMedia('(min-width: 1024px)').matches\r\n ) {\r\n this.el.style.transform = 'translateY(0)';\r\n this.el.style.display = 'flex';\r\n } else {\r\n this.el.style.transform = `translateY(-${this.el.offsetHeight}px)`;\r\n }\r\n\r\n this.lastScroll = currentScroll;\r\n }\r\n\r\n onSelectChange(event: Event) {\r\n const select = event.target as HTMLSelectElement;\r\n const value = select.value;\r\n\r\n const courseSelectorCardInput = document.querySelector<HTMLInputElement>(\r\n `.course-schedule-selector__card[data-code=\"${value}\"] input[type=\"radio\"]`\r\n );\r\n const courseSelectorButton = document.querySelector<HTMLInputElement>(\r\n `.course-schedule-selector .btn`\r\n );\r\n\r\n if (courseSelectorCardInput) {\r\n courseSelectorCardInput.checked = true;\r\n courseSelectorButton?.classList.remove('btn--disabled');\r\n }\r\n }\r\n\r\n async addToCart() {\r\n const dataObject = {\r\n code: (this.dom.select as HTMLSelectElement)?.value,\r\n quantity: 1\r\n };\r\n\r\n const data = await ActionsToCart(this.el.dataset.endpoint || '', dataObject);\r\n\r\n if (data.success && this.el.dataset.redirectUrl) {\r\n window.location.href = this.el.dataset.redirectUrl;\r\n }\r\n }\r\n}\r\n\r\nexport default StickyBar;\r\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,CACtF,CAAA,CAGF,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,EAC1B,CAGF,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,CAAA,CAGpB,eAAeC,EAAc,CAE3B,MAAMC,EADSD,EAAM,OACA,MAEfE,EAA0B,SAAS,cACvC,8CAA8CD,CAAK,wBACrD,EACME,EAAuB,SAAS,cACpC,gCACF,EAEID,IACFA,EAAwB,QAAU,GACZC,GAAA,MAAAA,EAAA,UAAU,OAAO,iBACzC,CAGF,MAAM,WAAY,OAChB,MAAMC,EAAa,CACjB,MAAOP,EAAA,KAAK,IAAI,SAAT,YAAAA,EAAuC,MAC9C,SAAU,CACZ,GAEa,MAAMQ,EAAc,KAAK,GAAG,QAAQ,UAAY,GAAID,CAAU,GAElE,SAAW,KAAK,GAAG,QAAQ,cAClC,OAAO,SAAS,KAAO,KAAK,GAAG,QAAQ,YACzC,CAEJ"}