{"version":3,"sources":["webpack:///./cartridges/app_designholding/cartridge/client/default/js/components/product-tile-button/product-tile-button.js","webpack:///./cartridges/app_designholding/cartridge/client/default/js/components/product-tile-button/index.js"],"names":["HOOK_TRIGGER_BUTTON","ACTIVE_CLASS","CAMPAIGN_PAGE_CLASS","ProductTileButton","constructor","element","buttons","querySelectorAll","productViewID","getAttribute","productView","querySelector","bindEvents","closest","toggleProductView","forEach","button","addEventListener","productVisibility","classList","contains","focus","setAriaAttributes","productIsHidden","setAttribute"],"mappings":";;;;;;;;;;;;;;AAAA,IAAMA,mBAAmB,GAAG,uCAA5B;AACA,IAAMC,YAAY,GAAG,aAArB;AACA,IAAMC,mBAAmB,GAAG,oBAA5B;;AAEA,MAAMC,iBAAN,CAAwB;AACtBC,aAAW,CAACC,OAAD,EAAU;AACnB,SAAKA,OAAL,GAAeA,OAAf;AACA,SAAKC,OAAL,GAAe,CAAC,GAAG,KAAKD,OAAL,CAAaE,gBAAb,CAA8BP,mBAA9B,CAAJ,CAAf;AAEA,QAAMQ,aAAa,GAAG,KAAKF,OAAL,CAAa,CAAb,EAAgBG,YAAhB,CAA6B,eAA7B,CAAtB;AACA,SAAKC,WAAL,GAAmB,KAAKL,OAAL,CAAaM,aAAb,YAA+BH,aAA/B,EAAnB;AAEA,SAAKI,UAAL,GAPmB,CASnB;;AACA,QAAI,KAAKP,OAAL,CAAaQ,OAAb,CAAqBX,mBAArB,CAAJ,EAA+C;AAC7C,WAAKY,iBAAL;AACD;AACF;;AAEDF,YAAU,GAAG;AACX,SAAKN,OAAL,CAAaS,OAAb,CAAqBC,MAAM,IAAI;AAC7BA,YAAM,CAACC,gBAAP,CAAwB,OAAxB,EAAiC,MAAM,KAAKH,iBAAL,EAAvC;AACD,KAFD;AAGD;;AAEDA,mBAAiB,GAAG;AAClB,QAAMI,iBAAiB,GAAG,KAAKR,WAAL,CAAiBS,SAAjB,CAA2BC,QAA3B,CAAoCnB,YAApC,CAA1B;AAEA,SAAKK,OAAL,CAAaY,iBAAiB,GAAG,CAAH,GAAO,CAArC,EAAwCG,KAAxC;AAEA,SAAKC,iBAAL,CAAuB,CAACJ,iBAAxB;AACA,SAAKR,WAAL,CAAiBS,SAAjB,CAA2BD,iBAAiB,GAAG,QAAH,GAAc,KAA1D,EAAiEjB,YAAjE;AACD;;AAEDqB,mBAAiB,CAACC,eAAD,EAAkB;AACjC,SAAKb,WAAL,CAAiBc,YAAjB,CAA8B,aAA9B,EAA6C,CAACD,eAA9C;AACA,SAAKjB,OAAL,CAAaS,OAAb,CAAqBC,MAAM,IAAI;AAC7BA,YAAM,CAACQ,YAAP,CAAoB,eAApB,EAAqCD,eAArC;AACD,KAFD;AAGD;;AApCqB;;AAuCTpB,yEAAf,E;;AC3CA;AAEeA,uHAAf,E","file":"js/ProductTileButton.js","sourcesContent":["const HOOK_TRIGGER_BUTTON = '[js-hook-product-tile-button-trigger]';\nconst ACTIVE_CLASS = 'is--visible';\nconst CAMPAIGN_PAGE_CLASS = '.is--campaign-page'\n\nclass ProductTileButton {\n constructor(element) {\n this.element = element;\n this.buttons = [...this.element.querySelectorAll(HOOK_TRIGGER_BUTTON)];\n\n const productViewID = this.buttons[0].getAttribute('aria-controls');\n this.productView = this.element.querySelector(`#${productViewID}`);\n\n this.bindEvents();\n\n // on campaign PD pages open button on page load\n if (this.element.closest(CAMPAIGN_PAGE_CLASS)) {\n this.toggleProductView();\n }\n }\n\n bindEvents() {\n this.buttons.forEach(button => {\n button.addEventListener('click', () => this.toggleProductView());\n });\n }\n\n toggleProductView() {\n const productVisibility = this.productView.classList.contains(ACTIVE_CLASS);\n\n this.buttons[productVisibility ? 0 : 1].focus();\n\n this.setAriaAttributes(!productVisibility);\n this.productView.classList[productVisibility ? 'remove' : 'add'](ACTIVE_CLASS);\n }\n\n setAriaAttributes(productIsHidden) {\n this.productView.setAttribute('aria-hidden', !productIsHidden);\n this.buttons.forEach(button => {\n button.setAttribute('aria-expanded', productIsHidden);\n });\n }\n}\n\nexport default ProductTileButton;\n","import ProductTileButton from './product-tile-button';\n\nexport default ProductTileButton;\n"],"sourceRoot":""}