{"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"}