{"version":3,"sources":["webpack:///./es6/components/header.js"],"names":["HeaderMenu","this","selectors","mainHeader","header","acnhorTab","secHeader","menuWraper","languageSelector","html","$body","headerConst","lastScroll","isMobile","Resp","isTablet","body","$acnhorTab","on","$secHeader","hasClass","removeClass","$html","$menuWraper","addClass","setTimeout","$languageSelector","e","$","currentTarget","find","slideToggle","$window","debounce","scrollUpdate","toggleHeader","changeHeadertheme","clacHeaderHeight","pushHeaderSpace","pushforHeader","resetHeader","toggleMenu","languageSwitch","menuOpen","windowHeight","window","innerHeight","height","$navbarCollapse","css","$header","target","clacHeaderHeightVlaue","$mainHeader","st","scrollTop","closeHeader","showHeader","headerHeight","top","opacity","initSelectors","initEvent"],"mappings":"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","file":"js/header.js","sourcesContent":["import $ from 'jquery';\r\nimport {\r\n\tResp, debounce, $window, $body,\r\n} from '../util/helpers';\r\n\r\n/**\r\n * Form Header Menu component\r\n * @class Form Header Menu\r\n */\r\nclass HeaderMenu {\r\n\tconstructor() {\r\n\t\tthis.selectors = {\r\n\t\t\tmainHeader: 'header',\r\n\t\t\theader: '.js-header',\r\n\t\t\tacnhorTab: '.js-menu-toggle',\r\n\t\t\tsecHeader: '.sec-header',\r\n\t\t\tmenuWraper: '.menu-wraper',\r\n\t\t\tlanguageSelector: '.js-languageselector',\r\n\t\t\thtml: 'html',\r\n\t\t\t$body,\r\n\t\t};\r\n\t\tthis.headerConst = {\r\n\t\t\tlastScroll: 0\r\n\t\t};\r\n\r\n\t\tthis.isMobile = Resp.isMobile;\r\n\t\tthis.isTablet = Resp.isTablet;\r\n\t\tthis.body = $body;\r\n\t}\r\n\r\n\t/**\r\n\t * Show/Hide Menu box\r\n\t * @function toggleMenu\r\n\t */\r\n\r\n\ttoggleMenu() {\r\n\t\tthis.$acnhorTab.on('click', () => {\r\n\t\t\tif (this.$secHeader.hasClass('open')) {\r\n\t\t\t\tthis.$secHeader.removeClass('open');\r\n\t\t\t\tthis.body.removeClass('js-hiden-body');\r\n\t\t\t\tthis.$html.removeClass('js-hiden-body');\r\n\t\t\t\tthis.$acnhorTab.removeClass('active');\r\n\t\t\t\tthis.$menuWraper.removeClass('js-hid');\r\n\t\t\t} else {\r\n\t\t\t\tthis.$secHeader.addClass('open');\r\n\t\t\t\tthis.body.addClass('js-hiden-body');\r\n\t\t\t\tthis.$html.addClass('js-hiden-body');\r\n\t\t\t\tthis.$acnhorTab.addClass('active');\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tthis.$menuWraper.addClass('js-hid');\r\n\t\t\t\t}, 350);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Show/Hide Language Dropdown\r\n\t * @function languageSwitch\r\n\t */\r\n\tlanguageSwitch() {\r\n\t\tthis.$languageSelector.on('click', (e) => {\r\n\t\t\tconst $this = $(e.currentTarget);\r\n\t\t\t$this.find('.dropdownMenu').slideToggle();\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Initialise events\r\n\t * @function initEvents\r\n\t */\r\n\r\n\tinitEvent() {\r\n\t\t$window.on(\r\n\t\t\t'scroll',\r\n\t\t\tdebounce(() => {\r\n\t\t\t\tthis.scrollUpdate();\r\n\t\t\t\tthis.toggleHeader();\r\n\t\t\t\tthis.changeHeadertheme();\r\n\t\t\t}, 100)\r\n\t\t);\r\n\t\t$window.on(\r\n\t\t\t'resize',\r\n\t\t\tdebounce(() => {\r\n\t\t\t\tthis.clacHeaderHeight();\r\n\t\t\t\tthis.scrollUpdate();\r\n\t\t\t\tthis.pushHeaderSpace(this.selectors.pushforHeader);\r\n\t\t\t\tthis.resetHeader();\r\n\t\t\t}, 100)\r\n\t\t);\r\n\t\t$window.on('load', () => {\r\n\t\t\tthis.clacHeaderHeight();\r\n\t\t\tthis.pushHeaderSpace(this.selectors.pushforHeader);\r\n\t\t\tthis.changeHeadertheme();\r\n\t\t\tthis.toggleMenu();\r\n\t\t\tthis.languageSwitch();\r\n\t\t});\r\n\t}\r\n\r\n\tscrollUpdate() {\r\n\t\tif ($body.hasClass(this.selectors.menuOpen)) {\r\n\t\t\tthis.windowHeight = window.innerHeight;\r\n\t\t\t$body.height(this.windowHeight);\r\n\t\t\tthis.$navbarCollapse.css(\r\n\t\t\t\t'height',\r\n\t\t\t\tthis.windowHeight - this.$header.innerHeight()\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Add Header Height to Body\r\n\t * @function pushHeaderSpace\r\n\t */\r\n\r\n\tpushHeaderSpace(target) {\r\n\t\tconst $self = $(target);\r\n\t\t$self.css('padding-top', this.$header.innerHeight());\r\n\t}\r\n\r\n\t/**\r\n\t * Add Header Height HEADER\r\n\t * @function clacHeaderHeight\r\n\t */\r\n\tclacHeaderHeight() {\r\n\t\tconst clacHeaderHeightVlaue = this.$header.innerHeight();\r\n\t\tthis.$mainHeader.css('height', clacHeaderHeightVlaue);\r\n\t}\r\n\t/**\r\n\t * Reset Header on Screen Resize\r\n\t * @function resetHeader\r\n\t */\r\n\r\n\tresetHeader() {\r\n\t\tthis.$header.removeClass('showing-menu');\r\n\t\t$body.removeClass('hide-scroll');\r\n\t}\r\n\r\n\t/**\r\n\t * Toggle Header Form\r\n\t * @function toggleHeader\r\n\t */\r\n\r\n\ttoggleHeader() {\r\n\t\tconst st = $window.scrollTop();\r\n\t\tif (st > this.headerConst.lastScroll) {\r\n\t\t\t// downscroll code\r\n\t\t\tthis.closeHeader();\r\n\t\t} else {\r\n\t\t\t// upscroll code\r\n\t\t\tthis.showHeader();\r\n\t\t}\r\n\t\tthis.headerConst.lastScroll = st;\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * remove fixed header position on scroll\r\n\t * @function closeHeader\r\n\t */\r\n\r\n\tcloseHeader() {\r\n\t\tconst st = $window.scrollTop();\r\n\t\tconst headerHeight = this.$header.innerHeight();\r\n\t\tif (this.isMobile) {\r\n\t\t\tif (st > 10 && !$body.hasClass('is--parallexed')) {\r\n\t\t\t\tthis.$header.css({\r\n\t\t\t\t\ttop: -headerHeight,\r\n\t\t\t\t\topacity: 0\r\n\t\t\t\t});\r\n\t\t\t\tthis.$header.removeClass('header--showing');\r\n\t\t\t}\r\n\t\t} else if (st > headerHeight && !$body.hasClass('is--parallexed')) {\r\n\t\t\tthis.$header.css({\r\n\t\t\t\ttop: -headerHeight,\r\n\t\t\t\topacity: 0\r\n\t\t\t});\r\n\t\t\tthis.$header.removeClass('header--showing');\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Toggle header position on scroll\r\n\t * @function showHeader\r\n\t */\r\n\tshowHeader() {\r\n\t\tconst st = $window.scrollTop();\r\n\t\tconst scrollConst = 1;\r\n\t\tif (this.headerConst.lastScroll - st > scrollConst) {\r\n\t\t\t// Show Scroll if window is scrolled greater than scrollConst\r\n\t\t\tthis.$header.css({\r\n\t\t\t\ttop: 0,\r\n\t\t\t\topacity: 1\r\n\t\t\t});\r\n\t\t\tthis.$header.addClass('header--showing');\r\n\t\t\tthis.$header.addClass('header--colored');\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Toggle header theme on scroll\r\n\t * @function changeHeadertheme\r\n\t */\r\n\tchangeHeadertheme() {\r\n\t\tconst st = $window.scrollTop();\r\n\t\tconst headerHeight = this.$header.innerHeight();\r\n\t\tif (this.isMobile) {\r\n\t\t\tif (st > 10 && this.$header.hasClass('header--showing') && !$body.hasClass('is--parallexed')) {\r\n\t\t\t\tthis.$header.addClass('header--colored');\r\n\t\t\t} else if (st < 10) {\r\n\t\t\t\tthis.$header.removeClass('header--colored');\r\n\t\t\t}\r\n\t\t} else if (st > headerHeight + 100 && this.$header.hasClass('header--showing') && !$body.hasClass('is--parallexed')) {\r\n\t\t\tthis.$header.addClass('header--colored');\r\n\t\t} else if (st < headerHeight + 100) {\r\n\t\t\tthis.$header.removeClass('header--colored');\r\n\t\t}\r\n\t}\r\n\r\n\tinitSelectors() {\r\n\t\tthis.$mainHeader = $(this.selectors.mainHeader);\r\n\t\tthis.$header = $(this.selectors.header);\r\n\t\tthis.$acnhorTab = $(this.selectors.acnhorTab);\r\n\t\tthis.$secHeader = $(this.selectors.secHeader);\r\n\t\tthis.$menuWraper = $(this.selectors.menuWraper);\r\n\t\tthis.$languageSelector = $(this.selectors.languageSelector);\r\n\t\tthis.$html = $(this.selectors.html);\r\n\t}\r\n\r\n\t/**\r\n\t* Initialise Form Header Menu selectors\r\n\t* @function initSelectors\r\n\t*/\r\n\r\n\t/**\r\n\t * Initialise Form Header Menu\r\n\t * @function init\r\n\t */\r\n\tinit() {\r\n\t\tthis.initSelectors();\r\n\t\tthis.initEvent();\r\n\t}\r\n}\r\n\r\nexport default HeaderMenu;\r\n"],"sourceRoot":""}