{"version":3,"sources":["webpack:///./cartridges/app_designholding/cartridge/client/default/js/components/navigation/mobile-navigation.js","webpack:///./cartridges/app_designholding/cartridge/client/default/js/components/navigation/index.js","webpack:///./cartridges/app_designholding/cartridge/client/default/js/utilities/lock-body/lock-body.js","webpack:///./cartridges/app_designholding/cartridge/client/default/js/utilities/lock-body/index.js"],"names":["CLASS_NAVIGATION_OPEN","CLASS_NO_SCROLL","MobileNavigation","constructor","element","bindEvents","Events","$on","_","isActive","setTimeout","classList","add","addBodyLock","html","$trigger","data","autoFocus","removeBodyLock","remove","viewID","animate","touchMoveHandler","document","body","scrollTop","isIos","addEventListener","removeEventListener"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AAEA;AAEA,IAAMA,qBAAqB,GAAG,4BAA9B;AACA,IAAMC,eAAe,GAAG,YAAxB;;AAEA,MAAMC,kCAAN,CAAuB;AACrBC,aAAW,CAACC,OAAD,EAAU;AACnB,SAAKA,OAAL,GAAeA,OAAf;AAEA,SAAKC,UAAL;AACD;;AAEDA,YAAU,GAAG;AACXC,qBAAM,CAACC,GAAP,CAAW,oCAAX,EAAiD,CAACC,CAAD,EAAIC,QAAJ,KAAiB;AAChE,UAAIA,QAAJ,EAAc;AACZC,kBAAU,CAAC,MAAM;AACf,eAAKN,OAAL,CAAaO,SAAb,CAAuBC,GAAvB,CAA2BZ,qBAA3B;AACD,SAFS,EAEP,CAFO,CAAV;AAIAa,wCAAW;AACXC,4BAAI,CAACH,SAAL,CAAeC,GAAf,CAAmBX,eAAnB;AAEAK,yBAAM,CAACS,QAAP,CAAgB,cAAhB;AACAT,yBAAM,CAACS,QAAP,CAAgB,qBAAhB,EAAuC;AACrCC,cAAI,EAAE;AACJZ,mBAAO,EAAE,KAAKA,OADV;AAEJa,qBAAS,EAAE;AAFP;AAD+B,SAAvC;AAMD,OAfD,MAeO;AACLC,2CAAc;AACdJ,4BAAI,CAACH,SAAL,CAAeQ,MAAf,CAAsBlB,eAAtB;AACA,aAAKG,OAAL,CAAaO,SAAb,CAAuBQ,MAAvB,CAA8BnB,qBAA9B;AAEAM,yBAAM,CAACS,QAAP,CAAgB,uBAAhB;AACAT,yBAAM,CAACS,QAAP,mDAAkE;AAChEC,cAAI,EAAE;AACJI,kBAAM,EAAE,2BADJ;AAEJC,mBAAO,EAAE;AAFL;AAD0D,SAAlE;AAMD;AACF,KA7BD;AA8BD;;AAtCoB;;AAyCRnB,wFAAf,E;;AClDA;AAEeA,iGAAf,E;;;;;;;;;;;;;;;;;;;;;;;;ACFA;AAEA;AACA;AACA;AACA;AACA;;AAEA,SAASoB,gBAAT,GAA4B;AAC1BC,UAAQ,CAACC,IAAT,CAAcC,SAAd,GAA0B,CAA1B;AACD;;AAEM,IAAMZ,WAAW,GAAG,MAAM;AAC/B,MAAI,CAACa,oBAAL,EAAY;AACZH,UAAQ,CAACI,gBAAT,CAA0B,WAA1B,EAAuCL,gBAAvC,EAAyD,KAAzD;AACD,CAHM;AAKA,IAAMJ,cAAc,GAAG,MAAM;AAClC,MAAI,CAACQ,oBAAL,EAAY;AACZH,UAAQ,CAACK,mBAAT,CAA6B,WAA7B,EAA0CN,gBAA1C,EAA4D,KAA5D;AACD,CAHM,C;;ACjBP","file":"js/MobileNavigation.js","sourcesContent":["import Events from '@utilities/events';\nimport { html } from '@utilities/dom-elements';\nimport { addBodyLock, removeBodyLock } from '@utilities/lock-body';\n\nimport '@utilities/focus-trap';\n\nconst CLASS_NAVIGATION_OPEN = 'is--mobile-navigation-open';\nconst CLASS_NO_SCROLL = 'no--scroll';\n\nclass MobileNavigation {\n constructor(element) {\n this.element = element;\n\n this.bindEvents();\n }\n\n bindEvents() {\n Events.$on('toggle[mobile-navigation]::toggled', (_, isActive) => {\n if (isActive) {\n setTimeout(() => {\n this.element.classList.add(CLASS_NAVIGATION_OPEN);\n }, 0);\n\n addBodyLock();\n html.classList.add(CLASS_NO_SCROLL);\n\n Events.$trigger('header::show');\n Events.$trigger('focustrap::activate', {\n data: {\n element: this.element,\n autoFocus: true,\n },\n });\n } else {\n removeBodyLock();\n html.classList.remove(CLASS_NO_SCROLL);\n this.element.classList.remove(CLASS_NAVIGATION_OPEN);\n\n Events.$trigger('focustrap::deactivate');\n Events.$trigger(`pagedNavigation[mobile-navigation]::changeView`, {\n data: {\n viewID: 'mobile-navigation-landing',\n animate: false\n }\n });\n }\n });\n }\n}\n\nexport default MobileNavigation;\n","import MobileNavigation from './mobile-navigation';\n\nexport default MobileNavigation;\n","import isIos from '@utilities/detect-os'\n\n/**\n * Body lock utils to prevent body from scrolling on iOS when positioned fixed\n * Too prevent issues when having -webkit-overflow-scrolling: touch\n * Source: https://stackoverflow.com/questions/48873171/webkit-overflow-touch-stops-working-when-tapping-on-element-outside-of-scroll\n */\n\nfunction touchMoveHandler() {\n document.body.scrollTop = 0\n}\n\nexport const addBodyLock = () => {\n if (!isIos) return\n document.addEventListener('touchmove', touchMoveHandler, false)\n}\n\nexport const removeBodyLock = () => {\n if (!isIos) return\n document.removeEventListener('touchmove', touchMoveHandler, false)\n}\n","import { addBodyLock, removeBodyLock } from './lock-body';\n\nexport { addBodyLock, removeBodyLock };\n"],"sourceRoot":""}