{"version":3,"sources":["webpack:///./src/feature/header/header.js","webpack:///./node_modules/core-js/modules/es.object.get-prototype-of.js","webpack:///./node_modules/core-js/modules/es.object.set-prototype-of.js","webpack:///./node_modules/body-scroll-lock/lib/bodyScrollLock.min.js"],"names":["Header","element","_this","_classCallCheck","this","_possibleConstructorReturn","_getPrototypeOf","call","initDomCache","el","lastKnownScrollY","currentScrollY","ticking","header","scrollDownThreshold","scrollUpThreshold","classes","pinned","unpinned","bodyPinned","bodyNavOpen","menuMobileBtn","querySelector","logoText","serviceMenu","basketAlert","body","window","features","dom","mobileMenu","notification","document","addEventListener","BaseFeature","_this2","attachScroll","classList","add","disableBodyScroll","append","setTimeout","focus","pageYOffset","requestTick","update","requestAnimationFrame","bind","removePin","pin","unpin","contains","remove","$","__webpack_require__","fails","toObject","nativeGetPrototypeOf","CORRECT_PROTOTYPE_GETTER","target","stat","forced","sham","getPrototypeOf","it","setPrototypeOf","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","exports","undefined","r","e","Array","isArray","t","o","length","from","Object","defineProperty","value","l","passive","removeEventListener","d","navigator","platform","test","c","u","a","s","v","f","some","options","allowTouchMove","m","event","touches","preventDefault","style","paddingRight","overflow","i","console","error","targetElement","concat","ontouchstart","targetTouches","clientY","ontouchmove","n","scrollTop","scrollHeight","clientHeight","stopPropagation","reserveScrollBarGap","innerWidth","documentElement","clientWidth","clearAllBodyScrollLocks","forEach","enableBodyScroll","filter","apply","module"],"mappings":"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","file":"13-70651ab3.pkg.js","sourcesContent":["import { disableBodyScroll } from 'body-scroll-lock';\r\nimport BaseFeature from '../../foundation/base/base';\r\n\r\n\r\nclass Header extends BaseFeature {\r\n\tconstructor(element) {\r\n\t\tsuper(element);\r\n\r\n\t\tthis.initDomCache();\r\n\r\n\t\tthis.el = element;\r\n\t\tthis.lastKnownScrollY = 0;\r\n\t\tthis.currentScrollY = 0;\r\n\t\tthis.ticking = false;\r\n\t\tthis.header = this.el;\r\n\t\tthis.scrollDownThreshold = 180;\r\n\t\tthis.scrollUpThreshold = 86;\r\n\t\tthis.classes = {\r\n\t\t\tpinned: 'o-header--pinned',\r\n\t\t\tunpinned: 'o-header--unpinned',\r\n\t\t\tbodyPinned: 'u-site--header-pinned',\r\n\t\t\tbodyNavOpen: 'u-site--nav-open'\r\n\t\t};\r\n\t\tthis.menuMobileBtn = this.el.querySelector('[data-js=\"menuMobileBtn\"]');\r\n\t\tthis.logoText = this.el.querySelector('[data-js=\"logoText\"]');\r\n\t\tthis.serviceMenu = this.el.querySelector('[data-js=\"serviceMenu\"]');\r\n\t\tthis.basketAlert = this.el.querySelector('[data-js=\"basketAlert\"]');\r\n\t\tthis.body = window.features.dom.body;\r\n\t\tthis.mobileMenu = this.el.querySelector('.toggle-menu');\r\n\t\tthis.notification = document.querySelector('.m-notofication__container');\r\n\t\tthis.addEventListener();\r\n\t}\r\n\r\n\r\n\taddEventListener() {\r\n\t\tdocument.addEventListener('scroll', () => this.attachScroll());\r\n\r\n\t\t// Add class disable sticky position when basket in use\r\n\t\tif (this.basketAlert) {\r\n\t\t\tthis.el.classList.add('has-active-basket');\r\n\t\t}\r\n\r\n\t\t// Open mobile menu\r\n\t\tif (this.menuMobileBtn) {\r\n\t\t\tthis.menuMobileBtn.addEventListener('click', () => {\r\n\t\t\t\tdocument.querySelector('.toggle-menu').classList.add('is-open');\r\n\t\t\t\tdocument.querySelector('.toggle-menu').classList.add('is-active');\r\n\t\t\t\tdisableBodyScroll(this.mobileMenu);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t// Appending the Logo text\r\n\t\tif (this.logoText) {\r\n\t\t\tthis.el.append(this.logoText);\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tthis.logoText.classList.add('is-visible');\r\n\t\t\t}, 200);\r\n\t\t}\r\n\r\n\t\tif (document.querySelector('.o-modal--open')) {\r\n\t\t\t// This class will be removed in its respected file: modal.js\r\n\t\t\tthis.el.classList.add('is-active-overlay');\r\n\t\t\tdocument.querySelector('.o-modal--open').focus();\r\n\t\t}\r\n\t}\r\n\r\n\tattachScroll() {\r\n\t\tthis.currentScrollY = window.pageYOffset;\r\n\t\tif (this.currentScrollY < this.scrollUpThreshold) {\r\n\t\t\tthis.requestTick(false);\r\n\t\t} else if (this.currentScrollY > this.scrollDownThreshold) {\r\n\t\t\tthis.requestTick(true);\r\n\t\t}\r\n\t}\r\n\r\n\trequestTick(update) {\r\n\t\tif (!this.ticking && !update) {\r\n\t\t\trequestAnimationFrame(this.removePin.bind(this));\r\n\t\t} else if (!this.ticking && update) {\r\n\t\t\trequestAnimationFrame(this.update.bind(this));\r\n\t\t}\r\n\t\tthis.ticking = true;\r\n\t}\r\n\r\n\tupdate() {\r\n\t\tif (this.currentScrollY < this.lastKnownScrollY) {\r\n\t\t\tthis.pin();\r\n\t\t} else if (this.currentScrollY > this.lastKnownScrollY) {\r\n\t\t\tthis.unpin();\r\n\t\t}\r\n\t\tthis.lastKnownScrollY = this.currentScrollY;\r\n\t\tthis.ticking = false;\r\n\t}\r\n\r\n\r\n\tpin() {\r\n\t\tif (this.header.classList.contains(this.classes.unpinned)) {\r\n\t\t\tthis.header.classList.remove(this.classes.unpinned);\r\n\t\t\tthis.header.classList.add(this.classes.pinned);\r\n\t\t}\r\n\t\tif (!this.body.classList.contains(this.classes.bodyPinned)) {\r\n\t\t\tthis.body.classList.add(this.classes.bodyPinned);\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tunpin() {\r\n\t\t// Make it sticky on desktop\r\n\t\tif (this.notification) {\r\n\t\t\tthis.pin();\r\n\t\t} else {\r\n\t\t\tif (this.header.classList.contains(this.classes.pinned)\r\n\t\t\t\t|| !this.header.classList.contains(this.classes.unpinned)) {\r\n\t\t\t\tthis.header.classList.remove(this.classes.pinned);\r\n\t\t\t\tthis.header.classList.add(this.classes.unpinned);\r\n\t\t\t}\r\n\t\t\tif (this.body.classList.contains(this.classes.bodyPinned)) {\r\n\t\t\t\tthis.body.classList.remove(this.classes.bodyPinned);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tremovePin() {\r\n\t\tif (this.header.classList.contains(this.classes.pinned)) {\r\n\t\t\tthis.header.classList.remove(this.classes.pinned);\r\n\t\t}\r\n\t\tif (this.header.classList.contains(this.classes.unpinned)) {\r\n\t\t\tthis.header.classList.remove(this.classes.unpinned);\r\n\t\t}\r\n\t\tif (this.header.classList.contains(this.classes.pinned)) {\r\n\t\t\tthis.header.classList.remove(this.classes.pinned);\r\n\t\t}\r\n\t\tthis.ticking = false;\r\n\t}\r\n}\r\n\r\nexport default Header;\r\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toObject = require('../internals/to-object');\nvar nativeGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); });\n\n// `Object.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, {\n getPrototypeOf: function getPrototypeOf(it) {\n return nativeGetPrototypeOf(toObject(it));\n }\n});\n\n","var $ = require('../internals/export');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// `Object.setPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\n$({ target: 'Object', stat: true }, {\n setPrototypeOf: setPrototypeOf\n});\n","!function(e,t){if(\"function\"==typeof define&&define.amd)define([\"exports\"],t);else if(\"undefined\"!=typeof exports)t(exports);else{var o={};t(o),e.bodyScrollLock=o}}(this,function(exports){\"use strict\";function r(e){if(Array.isArray(e)){for(var t=0,o=Array(e.length);t