{"version":3,"file":"loginHeader-w8b5FgD2.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<HTMLElement>('.cart-trigger'),\n      cartTriggerQuantity: this.el.querySelector<HTMLElement>('.cart-trigger__quantity'),\n      cart: document.querySelector<HTMLElement>('.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,CAAA,CAGH,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,CACpD,CAAA,CAGF,cAAe,CACZ,KAAK,IAAI,YAA4B,iBACpC,QACA,KAAK,uBAAuB,KAAK,IAAI,CACvC,EAEO,OAAA,iBAAiB,cAAoBC,GAAA,CAC1C,KAAK,kBAAkBA,CAAgB,CAAA,CACxC,CAAA,CAGH,kBAAkBA,EAAgB,CAC5BA,EAAE,QAAUA,EAAE,OAAO,SAAW,GACjC,KAAK,IAAI,oBAAoC,UAAU,IAAI,sBAAsB,EACjF,KAAK,IAAI,oBAAoC,YAAcA,EAAE,OAAO,SAAS,SAAS,GAC9EA,EAAE,QAAUA,EAAE,OAAO,WAAa,IAC1C,KAAK,IAAI,oBAAoC,UAAU,OAAO,sBAAsB,EACpF,KAAK,IAAI,oBAAoC,YAAc,GAC9D,CAGF,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,YAAW,CAG3D,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,SAAS,GAErC,CAGF,MAAM,iBAAkB,CACtB,GAAI,KAAK,cAAgB,KAAK,eAAiB,GAAI,CACjD,MAAMC,EAAY,MAAMC,EAAa,KAAK,YAAY,EAElDD,GACF,KAAK,sBAAsBA,CAAS,CACtC,CACF,CAEJ"}