{"version":3,"sources":["webpack://@verndale/toolkit/./src/js/modules/achievementsModule.ts"],"names":["AchievementsModule","el","__publicField","cardsContainer","_a","_b","maxInitialCards","cards","card","index","_c","_d","cardsInner"],"mappings":"qTAIA,MAAMA,CAAmB,CAIvB,YAAsBC,EAAiB,CAAjB,QAAAA,EAHtBC,EAAA,wBACAA,EAAA,YAGE,KAAK,gBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,aAAa,CACpB,CAEA,eAAgB,CACd,KAAK,IAAM,CACT,WAAY,KAAK,GAAG,cAClB,6BACF,EACA,eAAgB,KAAK,GAAG,cACtB,uCACF,EACA,MAAO,KAAK,GAAG,iBAA8B,oBAAoB,EACjE,IAAK,KAAK,GAAG,cAA2B,MAAM,CAChD,EAEA,MAAMC,EAAiB,KAAK,IAAI,eAEhC,KAAK,UAAU,KAAK,eAAe,EACnC,KAAK,QAAQ,KAAK,eAAe,EACjCA,EAAe,MAAM,UAAY,MACnC,CAEA,cAAe,CAjCjB,IAAAC,EAAAC,GAkCKA,GAAAD,EAAA,KAAK,MAAL,YAAAA,EAAU,MAAV,MAAAC,EAAwB,iBACvB,QACA,KAAK,eAAe,KAAK,IAAI,CAAC,CAElC,CAEA,UAAUC,EAAqC,CAxCjD,IAAAF,EAyCI,MAAMG,GAAQH,EAAA,KAAK,MAAL,YAAAA,EAAU,MACpB,CAACG,GAELA,EAAM,QAAQ,CAACC,EAAMC,IAAU,CACzBH,GAAmBG,EAAQ,EAAIH,IACjCE,EAAK,MAAM,QAAU,OAEzB,CAAC,CACH,CAEA,QAAQF,EAAqC,CAnD/C,IAAAF,EAAAC,EAoDI,MAAME,GAAQH,EAAA,KAAK,MAAL,YAAAA,EAAU,MACpB,CAACG,GAEDD,GAAmBC,EAAM,QAAUD,MACpCD,EAAA,KAAK,MAAL,YAAAA,EAAU,KAAoB,MAAM,QAAU,OAEnD,CAEA,gBAAiB,CA5DnB,IAAAD,EAAAC,EAAAK,EAAAC,EA6DI,MAAMJ,GAAQH,EAAA,KAAK,MAAL,YAAAA,EAAU,MAClBQ,GAAaP,EAAA,KAAK,MAAL,YAAAA,EAAU,WACvBF,GAAiBO,EAAA,KAAK,MAAL,YAAAA,EAAU,eACjC,GAAI,GAACH,GAAS,CAACK,GAAc,CAACT,GAE9B,GAACQ,EAAA,KAAK,MAAL,YAAAA,EAAU,KAAoB,MAAM,QAAU,OAC/CR,EAAe,MAAM,OAASS,EAAW,aAAe,KACxD,UAAWJ,KAAQD,EACjBC,EAAK,MAAM,QAAU,QAEvBL,EAAe,MAAM,OAASS,EAAW,aAAe,KACxD,WAAW,IAAM,CACfT,EAAe,MAAM,OAAS,MAChC,EAAG,IAAI,CAAC,CACV,CACF,CAEA,QAAeH,C","file":"scripts/1002.0fb8f888d97ea48091cf.js","sourcesContent":["declare type DomElements = {\n [key: string]: HTMLElement | NodeListOf | null;\n};\n\nclass AchievementsModule {\n maxInitialCards: number | undefined;\n dom?: DomElements;\n\n constructor(protected el: HTMLElement) {\n this.maxInitialCards = 6;\n this.setupDefaults();\n this.addListeners();\n }\n\n setupDefaults() {\n this.dom = {\n cardsInner: this.el.querySelector(\n '.achievements-module__cards'\n ),\n cardsContainer: this.el.querySelector(\n '.achievements-module__cards-container'\n ),\n cards: this.el.querySelectorAll('.achievements-card'),\n cta: this.el.querySelector('.btn')\n };\n\n const cardsContainer = this.dom.cardsContainer as HTMLElement;\n\n this.hideCards(this.maxInitialCards);\n this.hideCTA(this.maxInitialCards);\n cardsContainer.style.overflowY = 'clip';\n }\n\n addListeners() {\n (this.dom?.cta as Node)?.addEventListener(\n 'click',\n this.handleCtaClick.bind(this)\n );\n }\n\n hideCards(maxInitialCards: number | undefined) {\n const cards = this.dom?.cards as NodeListOf;\n if (!cards) return;\n\n cards.forEach((card, index) => {\n if (maxInitialCards && index + 1 > maxInitialCards) {\n card.style.display = 'none';\n }\n });\n }\n\n hideCTA(maxInitialCards: number | undefined) {\n const cards = this.dom?.cards as NodeListOf;\n if (!cards) return;\n\n if (maxInitialCards && cards.length <= maxInitialCards) {\n (this.dom?.cta as HTMLElement).style.display = 'none';\n }\n }\n\n handleCtaClick() {\n const cards = this.dom?.cards as NodeListOf;\n const cardsInner = this.dom?.cardsInner as HTMLElement;\n const cardsContainer = this.dom?.cardsContainer as HTMLElement;\n if (!cards || !cardsInner || !cardsContainer) return;\n\n (this.dom?.cta as HTMLElement).style.display = 'none';\n cardsContainer.style.height = cardsInner.offsetHeight + 'px';\n for (const card of cards) {\n card.style.display = 'block';\n }\n cardsContainer.style.height = cardsInner.offsetHeight + 'px';\n setTimeout(() => {\n cardsContainer.style.height = 'auto';\n }, 1200);\n }\n}\n\nexport default AchievementsModule;\n"],"sourceRoot":""}