{"version":3,"file":"accordionList-524c6d0c.js","sources":["../../../../../../src/scripts/modules/accordionList.ts"],"sourcesContent":["import { Component } from '@verndale/core';\nimport '../../scss/modules/_accordion-list.scss';\n\nclass AccordionList extends Component {\n private viewMoreData: string;\n private isOpen: boolean;\n private clicked: boolean;\n\n constructor(el: HTMLElement) {\n super(el);\n this.viewMoreData = this.el.dataset.viewMore || '';\n this.isOpen = this.el.dataset.isOpen === 'true';\n this.clicked = false;\n }\n\n setupDefaults() {\n this.dom = {\n accordionBtn: this.el.querySelector<HTMLElement>('.accordion__button'),\n accordionContent: this.el.querySelector<HTMLElement>('.accordion__content-container'),\n minusIcon: this.el.querySelector<HTMLElement>('.accordion__button__icon--minus'),\n plusIcon: this.el.querySelector<HTMLElement>('.accordion__button__icon--plus'),\n viewMoreBtn: this.el.querySelector<HTMLElement>('.accordion__read-more-button'),\n viewMoreContainer: this.el.querySelector<HTMLElement>('.accordion__read-more')\n };\n\n this.viewMoreData = this.el.dataset.viewMore || '';\n this.isOpen = this.el.dataset.isOpen === 'true';\n this.clicked = false;\n\n if (!this.viewMoreData) {\n (this.dom.viewMoreContainer as HTMLElement).remove();\n }\n }\n\n addListeners() {\n (this.dom.accordionBtn as HTMLElement).addEventListener(\n 'click',\n this.toggleAccordion.bind(this)\n );\n\n if (this.viewMoreData && this.dom.viewMoreBtn) {\n (this.dom.viewMoreBtn as HTMLElement).addEventListener(\n 'click',\n this.toggleViewMore.bind(this)\n );\n }\n\n if (this.isOpen) {\n (this.dom.accordionContent as HTMLElement).removeAttribute('hidden');\n (this.dom.accordionBtn as HTMLElement).setAttribute('aria-expanded', 'true');\n (this.dom.minusIcon as HTMLElement).removeAttribute('hidden');\n (this.dom.plusIcon as HTMLElement).setAttribute('hidden', 'true');\n (this.dom.accordionContent as HTMLElement).classList.add(\n 'accordion__content-container--restricted-view'\n );\n this.checkContent();\n }\n }\n\n checkContent() {\n const description = this.el.querySelector('.accordion__content-description') as HTMLElement;\n if (!description) return;\n\n const descriptionHeight = description.offsetHeight;\n (this.dom.accordionContent as HTMLElement).style.maxBlockSize = `${descriptionHeight * 0.5}px`;\n }\n\n toggleViewMore() {\n if (\n (this.dom.accordionContent as HTMLElement).classList.contains(\n 'accordion__content-container--restricted-view'\n )\n ) {\n (this.dom.viewMoreContainer as HTMLElement).remove();\n (this.dom.accordionContent as HTMLElement).removeAttribute('style');\n (this.dom.viewMoreContainer as HTMLElement).removeAttribute('style');\n (this.dom.accordionContent as HTMLElement).classList.remove(\n 'accordion__content-container--restricted-view'\n );\n this.clicked = true;\n }\n }\n\n toggleAccordion() {\n if ((this.dom.accordionContent as HTMLElement).hidden) {\n (this.dom.accordionContent as HTMLElement).removeAttribute('hidden');\n (this.dom.accordionBtn as HTMLElement).setAttribute('aria-expanded', 'true');\n (this.dom.minusIcon as HTMLElement).removeAttribute('hidden');\n (this.dom.plusIcon as HTMLElement).setAttribute('hidden', 'true');\n\n if (this.viewMoreData && !this.clicked) {\n (this.dom.accordionContent as HTMLElement).classList.add(\n 'accordion__content-container--restricted-view'\n );\n\n this.checkContent();\n }\n } else {\n (this.dom.accordionContent as HTMLElement).setAttribute('hidden', 'true');\n (this.dom.accordionBtn as HTMLElement).setAttribute('aria-expanded', 'false');\n (this.dom.minusIcon as HTMLElement).setAttribute('hidden', 'true');\n (this.dom.plusIcon as HTMLElement).removeAttribute('hidden');\n }\n }\n}\n\nexport default AccordionList;\n"],"names":["AccordionList","Component","el","__publicField","description","descriptionHeight"],"mappings":"iNAGA,MAAMA,UAAsBC,CAAU,CAKpC,YAAYC,EAAiB,CAC3B,MAAMA,CAAE,EALFC,EAAA,qBACAA,EAAA,eACAA,EAAA,gBAIN,KAAK,aAAe,KAAK,GAAG,QAAQ,UAAY,GAChD,KAAK,OAAS,KAAK,GAAG,QAAQ,SAAW,OACzC,KAAK,QAAU,EACjB,CAEA,eAAgB,CACd,KAAK,IAAM,CACT,aAAc,KAAK,GAAG,cAA2B,oBAAoB,EACrE,iBAAkB,KAAK,GAAG,cAA2B,+BAA+B,EACpF,UAAW,KAAK,GAAG,cAA2B,iCAAiC,EAC/E,SAAU,KAAK,GAAG,cAA2B,gCAAgC,EAC7E,YAAa,KAAK,GAAG,cAA2B,8BAA8B,EAC9E,kBAAmB,KAAK,GAAG,cAA2B,uBAAuB,CAAA,EAG/E,KAAK,aAAe,KAAK,GAAG,QAAQ,UAAY,GAChD,KAAK,OAAS,KAAK,GAAG,QAAQ,SAAW,OACzC,KAAK,QAAU,GAEV,KAAK,cACP,KAAK,IAAI,kBAAkC,QAEhD,CAEA,cAAe,CACZ,KAAK,IAAI,aAA6B,iBACrC,QACA,KAAK,gBAAgB,KAAK,IAAI,CAAA,EAG5B,KAAK,cAAgB,KAAK,IAAI,aAC/B,KAAK,IAAI,YAA4B,iBACpC,QACA,KAAK,eAAe,KAAK,IAAI,CAAA,EAI7B,KAAK,SACN,KAAK,IAAI,iBAAiC,gBAAgB,QAAQ,EAClE,KAAK,IAAI,aAA6B,aAAa,gBAAiB,MAAM,EAC1E,KAAK,IAAI,UAA0B,gBAAgB,QAAQ,EAC3D,KAAK,IAAI,SAAyB,aAAa,SAAU,MAAM,EAC/D,KAAK,IAAI,iBAAiC,UAAU,IACnD,+CAAA,EAEF,KAAK,aAAa,EAEtB,CAEA,cAAe,CACb,MAAMC,EAAc,KAAK,GAAG,cAAc,iCAAiC,EAC3E,GAAI,CAACA,EAAa,OAElB,MAAMC,EAAoBD,EAAY,aACrC,KAAK,IAAI,iBAAiC,MAAM,aAAe,GAAGC,EAAoB,EAAG,IAC5F,CAEA,gBAAiB,CAEZ,KAAK,IAAI,iBAAiC,UAAU,SACnD,+CAAA,IAGD,KAAK,IAAI,kBAAkC,SAC3C,KAAK,IAAI,iBAAiC,gBAAgB,OAAO,EACjE,KAAK,IAAI,kBAAkC,gBAAgB,OAAO,EAClE,KAAK,IAAI,iBAAiC,UAAU,OACnD,+CAAA,EAEF,KAAK,QAAU,GAEnB,CAEA,iBAAkB,CACX,KAAK,IAAI,iBAAiC,QAC5C,KAAK,IAAI,iBAAiC,gBAAgB,QAAQ,EAClE,KAAK,IAAI,aAA6B,aAAa,gBAAiB,MAAM,EAC1E,KAAK,IAAI,UAA0B,gBAAgB,QAAQ,EAC3D,KAAK,IAAI,SAAyB,aAAa,SAAU,MAAM,EAE5D,KAAK,cAAgB,CAAC,KAAK,UAC5B,KAAK,IAAI,iBAAiC,UAAU,IACnD,+CAAA,EAGF,KAAK,aAAa,KAGnB,KAAK,IAAI,iBAAiC,aAAa,SAAU,MAAM,EACvE,KAAK,IAAI,aAA6B,aAAa,gBAAiB,OAAO,EAC3E,KAAK,IAAI,UAA0B,aAAa,SAAU,MAAM,EAChE,KAAK,IAAI,SAAyB,gBAAgB,QAAQ,EAE/D,CACF"}