{"version":3,"file":"loginHeader-WChmwyoA.js","sources":["../../src/scripts/modules/loginHeader.ts"],"sourcesContent":["import { Component } from '@verndale/core';\nimport { EventBusSingleton } from '../helpers/eventBus';\nimport { CartType, GetCartState } from '../helpers/cart';\n\ninterface updatedCart extends CustomEvent {\n detail: {\n quantity: number;\n };\n}\n\nclass LoginHeader extends Component {\n cartEndpoint: string;\n\n constructor(el: HTMLElement) {\n super(el);\n this.cartEndpoint = this.el.dataset.cartEndpoint || '';\n\n this.getCartQuantity();\n\n EventBusSingleton.subscribe('courseScheduleSelector:submit', () => {\n this.getCartQuantity();\n });\n }\n\n setupDefaults() {\n this.dom = {\n el: this.el,\n cartTrigger: this.el.querySelector('.cart-trigger'),\n cartTriggerQuantity: this.el.querySelector('.cart-trigger__quantity'),\n cart: document.querySelector('.cart ')\n };\n }\n\n addListeners() {\n (this.dom.cartTrigger as HTMLElement).addEventListener(\n 'click',\n this.handleCartTriggerClick.bind(this)\n );\n\n window.addEventListener('cartUpdated', e => {\n this.updateCartHandler(e as updatedCart);\n });\n }\n\n updateCartHandler(e: CustomEvent) {\n if (e.detail && e.detail.quantity > 0) {\n (this.dom.cartTriggerQuantity as HTMLElement).classList.add('cart-trigger--active');\n (this.dom.cartTriggerQuantity as HTMLElement).textContent = e.detail.quantity.toString();\n } else if (e.detail && e.detail.quantity === 0) {\n (this.dom.cartTriggerQuantity as HTMLElement).classList.remove('cart-trigger--active');\n (this.dom.cartTriggerQuantity as HTMLElement).textContent = '';\n }\n }\n\n handleCartTriggerClick(e: Event) {\n e.preventDefault();\n const body = document.querySelector('body');\n body?.classList.add('cart-opened');\n (this.dom.cart as HTMLElement)?.classList.add('is-opened');\n }\n\n handleCartStateChange(data: CartType) {\n if (data) {\n if (data?.itemsInCartCount !== 0) {\n (this.dom.cartTriggerQuantity as HTMLElement).classList.add('cart-trigger--active');\n }\n if (data?.itemsInCartCount) {\n (this.dom.cartTriggerQuantity as HTMLElement).textContent =\n data.itemsInCartCount.toString();\n }\n }\n }\n\n async getCartQuantity() {\n if (this.cartEndpoint && this.cartEndpoint !== '') {\n const cartState = await GetCartState(this.cartEndpoint);\n\n if (cartState) {\n this.handleCartStateChange(cartState);\n }\n }\n }\n}\n\nexport default LoginHeader;\n"],"names":["LoginHeader","Component","el","__publicField","EventBusSingleton","e","body","_a","data","cartState","GetCartState"],"mappings":"iSAUA,MAAMA,UAAoBC,CAAU,CAGlC,YAAYC,EAAiB,CAC3B,MAAMA,CAAE,EAHVC,EAAA,qBAIE,KAAK,aAAe,KAAK,GAAG,QAAQ,cAAgB,GAEpD,KAAK,gBAAgB,EAEHC,EAAA,UAAU,gCAAiC,IAAM,CACjE,KAAK,gBAAgB,CAAA,CACtB,CACH,CAEA,eAAgB,CACd,KAAK,IAAM,CACT,GAAI,KAAK,GACT,YAAa,KAAK,GAAG,cAA2B,eAAe,EAC/D,oBAAqB,KAAK,GAAG,cAA2B,yBAAyB,EACjF,KAAM,SAAS,cAA2B,QAAQ,CAAA,CAEtD,CAEA,cAAe,CACZ,KAAK,IAAI,YAA4B,iBACpC,QACA,KAAK,uBAAuB,KAAK,IAAI,CAAA,EAGhC,OAAA,iBAAiB,cAAoBC,GAAA,CAC1C,KAAK,kBAAkBA,CAAgB,CAAA,CACxC,CACH,CAEA,kBAAkBA,EAAgB,CAC5BA,EAAE,QAAUA,EAAE,OAAO,SAAW,GACjC,KAAK,IAAI,oBAAoC,UAAU,IAAI,sBAAsB,EACjF,KAAK,IAAI,oBAAoC,YAAcA,EAAE,OAAO,SAAS,YACrEA,EAAE,QAAUA,EAAE,OAAO,WAAa,IAC1C,KAAK,IAAI,oBAAoC,UAAU,OAAO,sBAAsB,EACpF,KAAK,IAAI,oBAAoC,YAAc,GAEhE,CAEA,uBAAuBA,EAAU,OAC/BA,EAAE,eAAe,EACX,MAAAC,EAAO,SAAS,cAAc,MAAM,EACpCA,GAAA,MAAAA,EAAA,UAAU,IAAI,gBACnBC,EAAA,KAAK,IAAI,OAAT,MAAAA,EAA+B,UAAU,IAAI,YAChD,CAEA,sBAAsBC,EAAgB,CAChCA,KACEA,GAAA,YAAAA,EAAM,oBAAqB,GAC5B,KAAK,IAAI,oBAAoC,UAAU,IAAI,sBAAsB,EAEhFA,GAAA,MAAAA,EAAM,mBACP,KAAK,IAAI,oBAAoC,YAC5CA,EAAK,iBAAiB,YAG9B,CAEA,MAAM,iBAAkB,CACtB,GAAI,KAAK,cAAgB,KAAK,eAAiB,GAAI,CACjD,MAAMC,EAAY,MAAMC,EAAa,KAAK,YAAY,EAElDD,GACF,KAAK,sBAAsBA,CAAS,CAExC,CACF,CACF"}