{"version":3,"file":"script.js","mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,MAAMA,SAAS,CAAC;EACfC,WAAW,CAAEC,OAAO,EAAG;IACtB,IAAI,CAACC,MAAM,GAAGD,OAAO;IACrB,IAAI,CAACE,QAAQ,GAAG,IAAI,CAACD,MAAM,CAACE,aAAa,CACxC,iDAAiD,CACjD;IAED,MAAMC,UAAU,GAAG,IAAI,CAACF,QAAQ,CAACG,YAAY,CAAE,eAAe,CAAE;IAChE,IAAI,CAACC,SAAS,GAAGC,QAAQ,CAACC,cAAc,CAAEJ,UAAU,CAAE;IAEtD,IAAK,IAAI,CAACE,SAAS,CAACG,YAAY,CAAE,QAAQ,CAAE,EAAG;MAC9C,IAAI,CAACH,SAAS,CAACI,YAAY,CAAE,QAAQ,EAAE,aAAa,CAAE;IACvD;IAEA,IAAI,CAACC,IAAI,GAAG,IAAI,CAACT,QAAQ,CAACG,YAAY,CAAE,eAAe,CAAE,KAAK,MAAM;;IAEpE;IACA,IAAI,CAACH,QAAQ,CAACU,gBAAgB,CAC7B,OAAO,EACP,IAAI,CAACC,aAAa,CAACC,IAAI,CAAE,IAAI,CAAE,CAC/B;IAED,IAAI,CAACR,SAAS,CAACM,gBAAgB,CAAE,aAAa,EAAE,MAAM;MACrD,IAAI,CAACV,QAAQ,CAACQ,YAAY,CAAE,eAAe,EAAE,IAAI,CAAE;IACpD,CAAC,CAAE;EACJ;EAEAG,aAAa,GAAG;IACf,IAAI,CAACE,MAAM,CAAE,CAAE,IAAI,CAACJ,IAAI,CAAE;EAC3B;EAEAI,MAAM,CAAEJ,IAAI,EAAG;IACd;IACA,IAAKA,IAAI,KAAK,IAAI,CAACA,IAAI,EAAG;MACzB;IACD;;IAEA;IACA,IAAI,CAACA,IAAI,GAAGA,IAAI;;IAEhB;IACA,IAAI,CAACT,QAAQ,CAACQ,YAAY,CAAE,eAAe,EAAG,GAAGC,IAAM,EAAC,CAAE;IAC1D,IAAKA,IAAI,EAAG;MACX,IAAI,CAACT,QAAQ,CAACQ,YAAY,CAAE,eAAe,EAAE,IAAI,CAAE;MACnD,IAAI,CAACJ,SAAS,CAACU,eAAe,CAAE,QAAQ,CAAE;IAC3C,CAAC,MAAM;MACN,IAAI,CAACd,QAAQ,CAACQ,YAAY,CAAE,eAAe,EAAE,KAAK,CAAE;MACpD,IAAI,CAACJ,SAAS,CAACI,YAAY,CAAE,QAAQ,EAAE,aAAa,CAAE;IACvD;EACD;;EAEA;EACAC,IAAI,GAAG;IACN,IAAI,CAACI,MAAM,CAAE,IAAI,CAAE;EACpB;EAEAE,KAAK,GAAG;IACP,IAAI,CAACF,MAAM,CAAE,KAAK,CAAE;EACrB;AACD;;AAEA;AACAR,QAAQ,CAACK,gBAAgB,CAAE,kBAAkB,EAAE,MAAM;EACpD,MAAMM,UAAU,GAAGX,QAAQ,CAACY,gBAAgB,CAC3C,+BAA+B,CAC/B;EACDD,UAAU,CAACE,OAAO,CAAIC,WAAW,IAAM;IACtC,IAAIvB,SAAS,CAAEuB,WAAW,CAAE;EAC7B,CAAC,CAAE;AACJ,CAAC,CAAE,C","sources":["webpack://usc-accordion-block/./src/script.js"],"sourcesContent":["/*\n *   This content is licensed according to the W3C Software License at\n *   https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n *\n *   Simple accordion pattern example\n */\n\n'use strict';\n\nclass Accordion {\n\tconstructor( domNode ) {\n\t\tthis.rootEl = domNode;\n\t\tthis.buttonEl = this.rootEl.querySelector(\n\t\t\t'.wp-block-usc-accordion-block-accordion__button'\n\t\t);\n\n\t\tconst controlsId = this.buttonEl.getAttribute( 'aria-controls' );\n\t\tthis.contentEl = document.getElementById( controlsId );\n\n\t\tif ( this.contentEl.hasAttribute( 'hidden' ) ) {\n\t\t\tthis.contentEl.setAttribute( 'hidden', 'until-found' );\n\t\t}\n\n\t\tthis.open = this.buttonEl.getAttribute( 'aria-expanded' ) === 'true';\n\n\t\t// add event listeners\n\t\tthis.buttonEl.addEventListener(\n\t\t\t'click',\n\t\t\tthis.onButtonClick.bind( this )\n\t\t);\n\n\t\tthis.contentEl.addEventListener( 'beforematch', () => {\n\t\t\tthis.buttonEl.setAttribute( 'aria-expanded', true );\n\t\t} );\n\t}\n\n\tonButtonClick() {\n\t\tthis.toggle( ! this.open );\n\t}\n\n\ttoggle( open ) {\n\t\t// don't do anything if the open state doesn't change\n\t\tif ( open === this.open ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// update the internal state\n\t\tthis.open = open;\n\n\t\t// handle DOM updates\n\t\tthis.buttonEl.setAttribute( 'aria-expanded', `${ open }` );\n\t\tif ( open ) {\n\t\t\tthis.buttonEl.setAttribute( 'aria-expanded', true );\n\t\t\tthis.contentEl.removeAttribute( 'hidden' );\n\t\t} else {\n\t\t\tthis.buttonEl.setAttribute( 'aria-expanded', false );\n\t\t\tthis.contentEl.setAttribute( 'hidden', 'until-found' );\n\t\t}\n\t}\n\n\t// Add public open and close methods for convenience\n\topen() {\n\t\tthis.toggle( true );\n\t}\n\n\tclose() {\n\t\tthis.toggle( false );\n\t}\n}\n\n// init accordions\ndocument.addEventListener( 'DOMContentLoaded', () => {\n\tconst accordions = document.querySelectorAll(\n\t\t'.wp-block-usc-accordion-block'\n\t);\n\taccordions.forEach( ( accordionEl ) => {\n\t\tnew Accordion( accordionEl );\n\t} );\n} );\n"],"names":["Accordion","constructor","domNode","rootEl","buttonEl","querySelector","controlsId","getAttribute","contentEl","document","getElementById","hasAttribute","setAttribute","open","addEventListener","onButtonClick","bind","toggle","removeAttribute","close","accordions","querySelectorAll","forEach","accordionEl"],"sourceRoot":""}