{"version":3,"sources":["webpack:///./assets/javascripts/modules/utils/FixBody.js","webpack:///./assets/javascripts/modules/components/CategoryFilterComponent.js"],"names":["FixBody","height","document","body","style","position","top","width","documentElement","window","innerHeight","prevScrollY","scrollTo","CategoryFilterComponent","htmlEl","CategoryFilterComponent_classCallCheck","this","_this","_possibleConstructorReturn","__proto__","Object","getPrototypeOf","call","showMore","$component","querySelector","SELECTORS","showLess","secondaryList","submenuPanel","submenuPanelClose","Component","benefitBar","salesPager","bindEvents","updatePager","ctx","$on","$customEvents","FILTERS_EVENTS","updated","_ref","event","source","payload","response","target","innerHTML","classList","remove","add","_this2","scrollY","barHeight","offsetHeight","addEventListener","matchMedia","matches","display","block","unblock"],"mappings":"wWACqBA,6KACNC,GACXC,SAASC,KAAKC,MAAMC,SAAW,QAC/BH,SAASC,KAAKC,MAAME,IAApB,IAA8BL,EAA9B,KACAC,SAASC,KAAKC,MAAMG,MAAQ,OAC5BL,SAASM,gBAAgBJ,MAAMH,OAAYQ,OAAOC,YAAlD,qCAGaC,GACbT,SAASC,KAAKC,MAAMC,SAAW,GAC/BH,SAASC,KAAKC,MAAME,IAAM,GAC1BJ,SAASC,KAAKC,MAAMG,MAAQ,GAC5BL,SAASM,gBAAgBJ,MAAMH,OAAS,GACxCQ,OAAOG,SAAS,EAAGD,qRCTFE,cAYnB,SAAAA,EAAYC,gGAASC,CAAAC,KAAAH,GAAA,IAAAI,mKAAAC,CAAAF,MAAAH,EAAAM,WAAAC,OAAAC,eAAAR,IAAAS,KAAAN,KACbF,IADY,OAElBG,EAAKM,SAAWN,EAAKO,WAAWC,cAAcR,EAAKS,UAAUH,UAC7DN,EAAKU,SAAWV,EAAKO,WAAWC,cAAcR,EAAKS,UAAUC,UAC7DV,EAAKW,cAAgBX,EAAKO,WAAWC,cACnCR,EAAKS,UAAUE,eAEjBX,EAAKY,aAAeZ,EAAKO,WAAWC,cAClCR,EAAKS,UAAUG,cAEjBZ,EAAKa,kBAAoBb,EAAKO,WAAWC,cACvCR,EAAKS,UAAUI,mBAXCb,qUAZ+Bc,6CAEjD,OACER,SAAU,mBACVI,SAAU,mBACVC,cAAe,wBACfC,aAAc,uBACdC,kBAAmB,uBACnBE,WAAY,qBACZC,WAAY,8DAmBdjB,KAAKkB,aACLlB,KAAKmB,oDAKL,IAAIC,EAAMpB,KAEVA,KAAKqB,IAAIrB,KAAKsB,cAAcC,eAAeC,QAAS,SAAAC,GAAsBA,EAApBC,MAAoB,IAEpEC,EAFoEF,EAAbG,QAEtCC,SAASpB,cAAcW,EAAIV,UAAUO,YACtDa,EAAS5C,SAASuB,cAAcW,EAAIV,UAAUO,iBAC7B,IAAXU,GAAoC,MAAVA,QAAoC,IAAXG,GAAoC,MAAVA,GAErFA,EAAOC,UAAYJ,EAAOI,UAE1BD,EAAOE,UAAUC,OAAO,WACL,MAAVN,QAAoC,IAAXG,GAAoC,MAAVA,GAE5DA,EAAOE,UAAUE,IAAI,iDAMd,IAAAC,EAAAnC,KACPoC,EAAU,EACVpB,EAAa9B,SAASuB,cAAcT,KAAKU,UAAUM,YACnDqB,EAAYrB,EAAaA,EAAWsB,aAAe,EAClC,MAAjBtC,KAAKO,UACPP,KAAKO,SAASgC,iBAAiB,QAAS,WAClC9C,OAAO+C,WAAW,sBAAsBC,SAC1CN,EAAK5B,SAASnB,MAAMsD,QAAU,OAC9BP,EAAKvB,cAAcxB,MAAMsD,QAAU,UAEnCP,EAAKtB,aAAamB,UAAUE,IAAI,QAChCE,EAAU3C,OAAO2C,QAAUC,EAAY5C,OAAO2C,QAAUC,EACxDrD,EAAQ2D,MAAMN,MAIC,MAAjBrC,KAAKW,UACPX,KAAKW,SAAS4B,iBAAiB,QAAS,WAClC9C,OAAO+C,WAAW,sBAAsBC,UAC1CN,EAAK5B,SAASnB,MAAMsD,QAAU,QAC9BP,EAAKvB,cAAcxB,MAAMsD,QAAU,UAIX,MAA1B1C,KAAKc,mBACPd,KAAKc,kBAAkByB,iBAAiB,QAAS,WAC/CJ,EAAKtB,aAAamB,UAAUC,OAAO,QACnCjD,EAAQ4D,QAAQR,cAhFHvC","file":"component-CategoryFilterComponent.chunks.js","sourcesContent":["// workarounds to block body scroll in safari mobile, updated for iOS 15\nexport default class FixBody {\n static block(height) {\n document.body.style.position = 'fixed';\n document.body.style.top = `-${height}px`;\n document.body.style.width = '100%';\n document.documentElement.style.height = `${window.innerHeight}px`;\n }\n\n static unblock(prevScrollY) {\n document.body.style.position = '';\n document.body.style.top = '';\n document.body.style.width = '';\n document.documentElement.style.height = '';\n window.scrollTo(0, prevScrollY);\n }\n}\n","import Component from '../abstracts/Component';\nimport FixBody from '../utils/FixBody';\nimport {emit} from \"../utils/EventsBus\";\nimport {CustomEvents} from \"../utils/CustomEvents\";\n\nexport default class CategoryFilterComponent extends Component {\n get SELECTORS() {\n return {\n showMore: '[data-show-more]',\n showLess: '[data-show-less]',\n secondaryList: '[data-secondary-list]',\n submenuPanel: '[data-submenu-panel]',\n submenuPanelClose: '[data-trigger-close]',\n benefitBar: '[data-benefit-bar]',\n salesPager: '[data-sales-pager]',\n };\n }\n constructor(htmlEl) {\n super(htmlEl);\n this.showMore = this.$component.querySelector(this.SELECTORS.showMore);\n this.showLess = this.$component.querySelector(this.SELECTORS.showLess);\n this.secondaryList = this.$component.querySelector(\n this.SELECTORS.secondaryList\n );\n this.submenuPanel = this.$component.querySelector(\n this.SELECTORS.submenuPanel\n );\n this.submenuPanelClose = this.$component.querySelector(\n this.SELECTORS.submenuPanelClose\n );\n }\n\n render() {\n this.bindEvents();\n this.updatePager();\n }\n\n updatePager() {\n // global\n let ctx = this;\n // listen to update filter event\n this.$on(this.$customEvents.FILTERS_EVENTS.updated, ({event, payload}) => {\n // update pager html\n let source = payload.response.querySelector(ctx.SELECTORS.salesPager);\n let target = document.querySelector(ctx.SELECTORS.salesPager);\n if(typeof source !== 'undefined' && source != null && typeof target !== 'undefined' && target != null ) {\n // update the html pager\n target.innerHTML = source.innerHTML;\n // showit\n target.classList.remove('hidden');\n } else if (source == null && typeof target !== 'undefined' && target != null) {\n // let's hide the paginator if when filtered i have no pagination\n target.classList.add('hidden');\n }\n });\n\n }\n\n bindEvents() {\n let scrollY = 0;\n let benefitBar = document.querySelector(this.SELECTORS.benefitBar);\n let barHeight = benefitBar ? benefitBar.offsetHeight : 0;\n if (this.showMore != null) {\n this.showMore.addEventListener('click', () => {\n if (window.matchMedia('(min-width: 768px)').matches) {\n this.showMore.style.display = 'none';\n this.secondaryList.style.display = 'block';\n } else {\n this.submenuPanel.classList.add('open');\n scrollY = window.scrollY > barHeight ? window.scrollY : barHeight;\n FixBody.block(barHeight);\n }\n });\n }\n if (this.showLess != null) {\n this.showLess.addEventListener('click', () => {\n if (window.matchMedia('(min-width: 768px)').matches) {\n this.showMore.style.display = 'block';\n this.secondaryList.style.display = 'none';\n }\n });\n }\n if (this.submenuPanelClose != null) {\n this.submenuPanelClose.addEventListener('click', () => {\n this.submenuPanel.classList.remove('open');\n FixBody.unblock(scrollY);\n });\n }\n }\n}\n"],"sourceRoot":""}