{"version":3,"file":"components.accordion-item.4c8bb4ff29d88edc762e.js","mappings":"0JAIAA,IAAAA,UAAc,iBAAkB,CAC9BC,OAAQ,CAAEC,EAAAA,EAAmBC,EAAAA,GAC7BC,MAAO,CACLC,GAAI,CACFC,KAAMC,OACNC,UAAU,GAEZC,cAAe,CACbH,KAAMI,OACNF,UAAU,IAGdG,OAAAA,GACEC,KAAKC,UAAUC,IAAI,qBAAsBF,KAAKG,yBAChD,EACAC,aAAAA,GACEJ,KAAKC,UAAUI,KAAK,qBAAsBL,KAAKG,yBACjD,EACAG,QAAS,CACPC,eAAAA,GACOP,KAAKQ,iBACRR,KAAKC,UAAUQ,MAAM,qBAAsBT,KAAKP,IAElDO,KAAKU,uBACP,EACAP,wBAAAA,CAAyBV,GACnBA,IAAOO,KAAKP,IAAMO,KAAKQ,iBACzBR,KAAKW,gBAET,EACAC,YAAAA,CAAaC,GACX,MAAMC,EAAYD,EAAc,oBAAqB,CACnDE,MAAO,2BACPvB,MAAO,CACLwB,OAAQhB,KAAKQ,mBAIjB,OAAOK,EAAc,eAAgB,CACnCE,MAAO,0BACPvB,MAAO,CACLyB,IAAK,SACLC,QAAS,QAEXC,MAAO,CACLzB,KAAM,SACN,aAAcM,KAAKQ,gBAAkBR,KAAKH,cAAcuB,SAAWpB,KAAKH,cAAcwB,QAExFC,GAAI,CACFC,MAAOvB,KAAKO,kBAEb,CAAEO,GACP,EACAU,YAAAA,CAAaX,GACX,MAAMY,EAAYZ,EAAc,KAAM,CACpCE,MAAO,4BACNf,KAAK0B,QAAQ,YAIhB,OAAOb,EAAc,SAAU,CAC7BE,MAAO,2BACN,CAAEU,EAJYzB,KAAKY,aAAaC,IAKrC,EACAc,UAAAA,CAAWd,GACT,MAAMe,EAASf,EAAc,MAAO,CAClCE,MAAO,yBACNf,KAAK0B,QAAQ,SAEVG,EAAYhB,EAAc,MAAO,CACrCE,MAAO,+BACPe,IAAK,WACJ,CAAEF,IAEL,OAAOf,EAAc,MAAO,CAC1BE,MAAO,iCACPe,IAAK,aACJ,CAAED,GACP,GAEFE,MAAAA,CAAOlB,GACL,OAAOA,EAAc,UAAW,CAC9BE,MAAO,CAAE,kBAAmBf,KAAKQ,gBAAkB,QAAU,YAC5D,CACDR,KAAKwB,aAAaX,GAClBb,KAAK2B,WAAWd,IAEpB,G","sources":["webpack:///./Onlia/Scripts/onlia/one-onlia/components/accordion-item.js"],"sourcesContent":["import Vue from 'vue';\r\nimport expandAndCollapse from '@Shared/mixins/expand-and-collapse';\r\nimport slotUtils from '@Shared/mixins/slot-utils';\r\n\r\nVue.component('accordion-item', {\r\n mixins: [ expandAndCollapse, slotUtils ],\r\n props: {\r\n id: {\r\n type: String,\r\n required: true\r\n },\r\n cheveronLabel: {\r\n type: Object,\r\n required: true\r\n }\r\n },\r\n created() {\r\n this.$eventBus.$on('accordionItem:open', this.handleAccordionOpenEvent);\r\n },\r\n beforeDestroy() {\r\n this.$eventBus.$off('accordionItem:open', this.handleAccordionOpenEvent);\r\n },\r\n methods: {\r\n toggleAccordion() {\r\n if (!this.isContainerOpen) {\r\n this.$eventBus.$emit('accordionItem:open', this.id);\r\n }\r\n this.toggleContainerHeight();\r\n },\r\n handleAccordionOpenEvent(id) {\r\n if (id !== this.id && this.isContainerOpen) {\r\n this.closeContainer();\r\n }\r\n },\r\n createButton(createElement) {\r\n const chevronEl = createElement('drop-down-chevron', {\r\n class: 'm-accordionItem__chevron',\r\n props: {\r\n isOpen: this.isContainerOpen\r\n }\r\n });\r\n\r\n return createElement('onlia-button', {\r\n class: 'm-accordionItem__button',\r\n props: {\r\n tag: 'button',\r\n variant: 'none'\r\n },\r\n attrs: {\r\n type: 'button',\r\n 'aria-label': this.isContainerOpen ? this.cheveronLabel.collapse : this.cheveronLabel.expand\r\n },\r\n on: {\r\n click: this.toggleAccordion\r\n }\r\n }, [ chevronEl ]);\r\n },\r\n createHeader(createElement) {\r\n const headingEl = createElement('h2', {\r\n class: 'm-accordionItem__heading'\r\n }, this.getSlot('heading'));\r\n\r\n const buttonEl = this.createButton(createElement);\r\n\r\n return createElement('header', {\r\n class: 'm-accordionItem__header'\r\n }, [ headingEl, buttonEl ]);\r\n },\r\n createBody(createElement) {\r\n const bodyEl = createElement('div', {\r\n class: 'm-accordionItem__body'\r\n }, this.getSlot('body'));\r\n\r\n const wrapperEl = createElement('div', {\r\n class: 'm-accordionItem__bodyWrapper',\r\n ref: 'wrapper'\r\n }, [ bodyEl ]);\r\n\r\n return createElement('div', {\r\n class: 'm-accordionItem__bodyContainer',\r\n ref: 'container'\r\n }, [ wrapperEl ]);\r\n }\r\n },\r\n render(createElement) {\r\n return createElement('section', {\r\n class: [ 'm-accordionItem', this.isContainerOpen ? '-open' : '-closed' ]\r\n }, [\r\n this.createHeader(createElement),\r\n this.createBody(createElement)\r\n ]);\r\n }\r\n});\r\n"],"names":["Vue","mixins","expandAndCollapse","slotUtils","props","id","type","String","required","cheveronLabel","Object","created","this","$eventBus","$on","handleAccordionOpenEvent","beforeDestroy","$off","methods","toggleAccordion","isContainerOpen","$emit","toggleContainerHeight","closeContainer","createButton","createElement","chevronEl","class","isOpen","tag","variant","attrs","collapse","expand","on","click","createHeader","headingEl","getSlot","createBody","bodyEl","wrapperEl","ref","render"],"sourceRoot":""}