{"version":3,"file":"site-header.js","sources":["../../../js/components/site-header.js"],"sourcesContent":["import $ from 'jquery';\r\n\r\nlet SiteHeader = function(){\r\n this.init();\r\n};\r\n\r\n/**\r\n * Add event listeners\r\n */\r\nSiteHeader.prototype.init = function () {\r\n\r\n this.$el = $('#navbar');\r\n this.$subnav = this.$el.find('.subnav').eq(0);\r\n this.$mobileSubnav = this.$el.find('.mobile-subnav').eq(0);\r\n\r\n this.subnavActive = false;\r\n this.childSubnavActive = false;\r\n this.subnavHiding = false;\r\n this.currentSelector = null;\r\n this.currentChildSubnav = null;\r\n\r\n /** Desktop Event Handlers */\r\n\r\n this.$el.on('mouseenter', '[data-subnav]', function (e) {\r\n if (!$(e.target).is(\"a\"))\r\n return;\r\n this.showDesktopSubnav($(e.currentTarget).data('subnav'));\r\n }.bind(this));\r\n\r\n this.$el.on('mouseleave', function (e) {\r\n this.hideDesktopSubnav();\r\n }.bind(this));\r\n\r\n this.$el.on('show.bs.collapse', '.navbar-collapse', function (e) {\r\n if ($(e.target).hasClass('navbar-collapse')) {\r\n $('html').addClass('navbar-open');\r\n }\r\n }.bind(this));\r\n\r\n this.$el.on('hide.bs.collapse', '.navbar-collapse', function (e) {\r\n if ($(e.target).hasClass('navbar-collapse')) {\r\n $('html').removeClass('navbar-open');\r\n }\r\n });\r\n\r\n $(document).on('click', '[data-action=\"openNav\"]', function (e) {\r\n if ( e.target.dataset.page && e.target.dataset.page.length > 0 ) {\r\n const subnavItem = document.querySelector( '.mobile-subnav a[href=\"' + e.target.dataset.page +'\"]' );\r\n\r\n if ( !subnavItem ) {\r\n return;\r\n }\r\n\r\n const parentMenu = subnavItem.closest( '.mobile-subnav .nav' );\r\n\r\n if ( !parentMenu ) {\r\n return;\r\n }\r\n\r\n this.$el.find('#mobileRoot').addClass('inactive');\r\n this.$mobileSubnav.addClass('active');\r\n $(parentMenu).parents().find('.nav.active').removeClass('active');\r\n $(parentMenu).addClass('active');\r\n this.currentChildSubnav = $(parentMenu);\r\n this.$el.collapse('show');\r\n return;\r\n }\r\n \r\n this.$el.collapse('show');\r\n }.bind(this));\r\n\r\n this.$el.on('click', '[data-child]', function (e) {\r\n e.preventDefault();\r\n this.openDesktopChildSubnav($(e.target));\r\n }.bind(this));\r\n\r\n this.$el.on('click', '[data-action=\"back\"]', function (e) {\r\n e.preventDefault();\r\n this.closeDesktopChildSubnav($(e.target));\r\n }.bind(this));\r\n\r\n /** Mobile Event Handlers */\r\n\r\n this.$el.on('click', '[data-mobile-subnav]', function (e) {\r\n e.preventDefault();\r\n this.openMobileChildSubnav($(e.target));\r\n }.bind(this));\r\n\r\n this.$el.on('click', '[data-mobile-parent]', function (e) {\r\n e.preventDefault();\r\n this.closeMobileChildSubnav($(e.target));\r\n }.bind(this));\r\n\r\n /** final initialisation */\r\n\r\n this.initialised = true;\r\n};\r\n\r\n/** Mobile Nav Functions */\r\n\r\nSiteHeader.prototype.openMobileChildSubnav = function ($target) {\r\n\r\n let target = $($target.data('mobile-subnav'));\r\n\r\n if (this.currentChildSubnav === target) {\r\n return;\r\n }\r\n\r\n this.$el.find('#mobileRoot').addClass('inactive');\r\n this.$mobileSubnav.addClass('active');\r\n\r\n $target.parents().find('.nav.active').removeClass('active');\r\n target.addClass('active');\r\n\r\n\r\n this.currentChildSubnav = target;\r\n\r\n};\r\n\r\nSiteHeader.prototype.closeMobileChildSubnav = function ($target) {\r\n\r\n let target = $($target.data('mobile-parent'));\r\n\r\n if ($target.data('mobile-parent') === '#mobileRoot') {\r\n\r\n this.$mobileSubnav.removeClass('active');\r\n this.$mobileSubnav.find('.nav').removeClass('active');\r\n this.$el.find('#mobileRoot').removeClass('inactive');\r\n\r\n this.currentChildSubnav = null;\r\n return;\r\n }\r\n\r\n if (this.currentChildSubnav === target) {\r\n return;\r\n }\r\n\r\n this.$mobileSubnav.find('.nav').removeClass('active');\r\n target.addClass('active');\r\n\r\n this.currentChildSubnav = target;\r\n};\r\n\r\n/** Desktop Nav Functions */\r\n\r\nSiteHeader.prototype.openDesktopChildSubnav = function ($target) {\r\n\r\n let target = $($target.data('child'));\r\n\r\n if (!this.childSubnavActive) {\r\n this.showSubnavTimeout = setTimeout(function () {\r\n this.$subnav.find('.nav').removeClass('active');\r\n target.addClass('active');\r\n }.bind(this), 100);\r\n }\r\n\r\n if (target === this.currentChildSubnav) {\r\n return;\r\n }\r\n\r\n this.currentChildSubnav = target;\r\n};\r\n\r\nSiteHeader.prototype.closeDesktopChildSubnav = function ($target) {\r\n\r\n let target = $($target.data('parent'));\r\n\r\n if (!this.childSubnavActive) {\r\n this.hideSubnavTimeout = setTimeout(function () {\r\n this.$subnav.find('.nav').removeClass('active');\r\n target.addClass('active');\r\n }.bind(this),100);\r\n }\r\n\r\n if (target === '#desktopRoot') {\r\n this.currentChildSubnav = null;\r\n return;\r\n }\r\n\r\n this.currentChildSubnav = target;\r\n};\r\n\r\nSiteHeader.prototype.showDesktopSubnav = function (selector) {\r\n clearTimeout(this.hideTimeout);\r\n this.subnavHiding = false;\r\n\r\n if(selector.includes(\"more\"))\r\n {\r\n this.$subnav.addClass('is-more');\r\n }\r\n else{\r\n this.$subnav.removeClass('is-more');\r\n }\r\n\r\n if (!this.subnavActive) {\r\n this.$subnav.removeClass('in');\r\n this.$subnav.addClass('active');\r\n document.body.classList.add('nav-open');\r\n\r\n this.showTimeout = setTimeout(function () {\r\n this.$subnav.addClass('in');\r\n }.bind(this), 1);\r\n this.subnavActive = true;\r\n\r\n $(document).on('mousemove.subnav', function (e) {\r\n let $el = $(e.target);\r\n if (!($el.hasClass('subnav') || !!$el.data('subnav') || $el.parents('.subnav').length > 0 || $el.parents('[data-subnav]').length > 0)) {\r\n this.hideDesktopSubnav();\r\n } else {\r\n clearTimeout(this.hideTimeout);\r\n this.subnavHiding = false;\r\n }\r\n }.bind(this));\r\n }\r\n\r\n if (selector === this.currentSelector) {\r\n return;\r\n }\r\n\r\n this.currentSelector = selector;\r\n this.toggleSubnavTimeout = setTimeout(function () {\r\n this.$subnav.find('.nav').removeClass('active').filter(selector).addClass('active');\r\n this.$el.find( 'a[data-subnav]').removeClass('active');\r\n this.$el.find( 'a[data-subnav=\"' + selector + '\"]').addClass('active');\r\n }.bind(this), 100);\r\n};\r\n\r\nSiteHeader.prototype.hideDesktopSubnav = function () {\r\n if (!this.subnavActive || this.subnavHiding) {\r\n return;\r\n }\r\n\r\n this.subnavHiding = true;\r\n this.childSubnavActive = false;\r\n\r\n clearTimeout(this.hideTimeout);\r\n this.hideTimeout = setTimeout(function () {\r\n\r\n if (!this.subnavActive) {\r\n return;\r\n }\r\n\r\n this.subnavActive = this.subnavHiding = false;\r\n $(document).off('mousemove.subnav');\r\n\r\n this.$subnav.removeClass('in');\r\n document.body.classList.remove('nav-open');\r\n this.$el.find( 'a[data-subnav]').removeClass('active');\r\n\r\n this.hideTimeout = setTimeout(function () {\r\n this.$subnav.removeClass('active');\r\n this.$subnav.removeClass('is-more');\r\n }.bind(this), 300);\r\n\r\n }.bind(this), 200);\r\n};\r\n\r\nnew SiteHeader();"],"names":["SiteHeader","$","e","subnavItem","parentMenu","$target","target","selector","$el"],"mappings":"wCAEA,IAAIA,EAAa,UAAU,CACvB,KAAK,KAAI,CACb,EAKAA,EAAW,UAAU,KAAO,UAAY,CAEpC,KAAK,IAAMC,EAAE,SAAS,EACtB,KAAK,QAAU,KAAK,IAAI,KAAK,SAAS,EAAE,GAAG,CAAC,EAC5C,KAAK,cAAgB,KAAK,IAAI,KAAK,gBAAgB,EAAE,GAAG,CAAC,EAEzD,KAAK,aAAe,GACpB,KAAK,kBAAoB,GACzB,KAAK,aAAe,GACpB,KAAK,gBAAkB,KACvB,KAAK,mBAAqB,KAI1B,KAAK,IAAI,GAAG,aAAc,gBAAiB,SAAUC,EAAG,CAC/CD,EAAEC,EAAE,MAAM,EAAE,GAAG,GAAG,GAEvB,KAAK,kBAAkBD,EAAEC,EAAE,aAAa,EAAE,KAAK,QAAQ,CAAC,CAChE,EAAM,KAAK,IAAI,CAAC,EAEZ,KAAK,IAAI,GAAG,aAAc,SAAUA,EAAG,CACnC,KAAK,kBAAiB,CAC9B,EAAM,KAAK,IAAI,CAAC,EAEZ,KAAK,IAAI,GAAG,mBAAoB,mBAAoB,SAAUA,EAAG,CACzDD,EAAEC,EAAE,MAAM,EAAE,SAAS,iBAAiB,GACtCD,EAAE,MAAM,EAAE,SAAS,aAAa,CAE5C,EAAM,KAAK,IAAI,CAAC,EAEZ,KAAK,IAAI,GAAG,mBAAoB,mBAAoB,SAAUC,EAAG,CACzDD,EAAEC,EAAE,MAAM,EAAE,SAAS,iBAAiB,GACtCD,EAAE,MAAM,EAAE,YAAY,aAAa,CAE/C,CAAK,EAEDA,EAAE,QAAQ,EAAE,GAAG,QAAS,0BAA2B,SAAUC,EAAG,CAC5D,GAAKA,EAAE,OAAO,QAAQ,MAAQA,EAAE,OAAO,QAAQ,KAAK,OAAS,EAAI,CAC7D,MAAMC,EAAa,SAAS,cAAe,0BAA4BD,EAAE,OAAO,QAAQ,KAAM,MAE9F,GAAK,CAACC,EACF,OAGJ,MAAMC,EAAaD,EAAW,QAAS,qBAAqB,EAE5D,GAAK,CAACC,EACF,OAGJ,KAAK,IAAI,KAAK,aAAa,EAAE,SAAS,UAAU,EAChD,KAAK,cAAc,SAAS,QAAQ,EACpCH,EAAEG,CAAU,EAAE,QAAS,EAAC,KAAK,aAAa,EAAE,YAAY,QAAQ,EAChEH,EAAEG,CAAU,EAAE,SAAS,QAAQ,EAC/B,KAAK,mBAAqBH,EAAEG,CAAU,EACtC,KAAK,IAAI,SAAS,MAAM,EACxB,MACH,CAED,KAAK,IAAI,SAAS,MAAM,CAChC,EAAM,KAAK,IAAI,CAAC,EAEZ,KAAK,IAAI,GAAG,QAAS,eAAgB,SAAUF,EAAG,CAC9CA,EAAE,eAAc,EAChB,KAAK,uBAAuBD,EAAEC,EAAE,MAAM,CAAC,CAC/C,EAAM,KAAK,IAAI,CAAC,EAEZ,KAAK,IAAI,GAAG,QAAS,uBAAwB,SAAUA,EAAG,CACtDA,EAAE,eAAc,EAChB,KAAK,wBAAwBD,EAAEC,EAAE,MAAM,CAAC,CAChD,EAAM,KAAK,IAAI,CAAC,EAIZ,KAAK,IAAI,GAAG,QAAS,uBAAwB,SAAUA,EAAG,CACtDA,EAAE,eAAc,EAChB,KAAK,sBAAsBD,EAAEC,EAAE,MAAM,CAAC,CAC9C,EAAM,KAAK,IAAI,CAAC,EAEZ,KAAK,IAAI,GAAG,QAAS,uBAAwB,SAAUA,EAAG,CACtDA,EAAE,eAAc,EAChB,KAAK,uBAAuBD,EAAEC,EAAE,MAAM,CAAC,CAC/C,EAAM,KAAK,IAAI,CAAC,EAIZ,KAAK,YAAc,EACvB,EAIAF,EAAW,UAAU,sBAAwB,SAAUK,EAAS,CAE5D,IAAIC,EAASL,EAAEI,EAAQ,KAAK,eAAe,CAAC,EAExC,KAAK,qBAAuBC,IAIhC,KAAK,IAAI,KAAK,aAAa,EAAE,SAAS,UAAU,EAChD,KAAK,cAAc,SAAS,QAAQ,EAEpCD,EAAQ,QAAO,EAAG,KAAK,aAAa,EAAE,YAAY,QAAQ,EAC1DC,EAAO,SAAS,QAAQ,EAGxB,KAAK,mBAAqBA,EAE9B,EAEAN,EAAW,UAAU,uBAAyB,SAAUK,EAAS,CAE7D,IAAIC,EAASL,EAAEI,EAAQ,KAAK,eAAe,CAAC,EAE5C,GAAIA,EAAQ,KAAK,eAAe,IAAM,cAAe,CAEjD,KAAK,cAAc,YAAY,QAAQ,EACvC,KAAK,cAAc,KAAK,MAAM,EAAE,YAAY,QAAQ,EACpD,KAAK,IAAI,KAAK,aAAa,EAAE,YAAY,UAAU,EAEnD,KAAK,mBAAqB,KAC1B,MACH,CAEG,KAAK,qBAAuBC,IAIhC,KAAK,cAAc,KAAK,MAAM,EAAE,YAAY,QAAQ,EACpDA,EAAO,SAAS,QAAQ,EAExB,KAAK,mBAAqBA,EAC9B,EAIAN,EAAW,UAAU,uBAAyB,SAAUK,EAAS,CAE7D,IAAIC,EAASL,EAAEI,EAAQ,KAAK,OAAO,CAAC,EAE/B,KAAK,oBACN,KAAK,kBAAoB,WAAW,UAAY,CAC5C,KAAK,QAAQ,KAAK,MAAM,EAAE,YAAY,QAAQ,EAC9CC,EAAO,SAAS,QAAQ,CAC3B,EAAC,KAAK,IAAI,EAAG,GAAG,GAGjBA,IAAW,KAAK,qBAIpB,KAAK,mBAAqBA,EAC9B,EAEAN,EAAW,UAAU,wBAA0B,SAAUK,EAAS,CAE9D,IAAIC,EAASL,EAAEI,EAAQ,KAAK,QAAQ,CAAC,EASrC,GAPK,KAAK,oBACN,KAAK,kBAAoB,WAAW,UAAY,CAC5C,KAAK,QAAQ,KAAK,MAAM,EAAE,YAAY,QAAQ,EAC9CC,EAAO,SAAS,QAAQ,CAC3B,EAAC,KAAK,IAAI,EAAE,GAAG,GAGhBA,IAAW,eAAgB,CAC3B,KAAK,mBAAqB,KAC1B,MACH,CAED,KAAK,mBAAqBA,CAC9B,EAEAN,EAAW,UAAU,kBAAoB,SAAUO,EAAU,CACzD,aAAa,KAAK,WAAW,EAC7B,KAAK,aAAe,GAEjBA,EAAS,SAAS,MAAM,EAEvB,KAAK,QAAQ,SAAS,SAAS,EAG/B,KAAK,QAAQ,YAAY,SAAS,EAGjC,KAAK,eACN,KAAK,QAAQ,YAAY,IAAI,EAC7B,KAAK,QAAQ,SAAS,QAAQ,EAC9B,SAAS,KAAK,UAAU,IAAI,UAAU,EAEtC,KAAK,YAAc,WAAW,UAAY,CACtC,KAAK,QAAQ,SAAS,IAAI,CAC7B,EAAC,KAAK,IAAI,EAAG,CAAC,EACf,KAAK,aAAe,GAEpBN,EAAE,QAAQ,EAAE,GAAG,mBAAoB,SAAU,EAAG,CAC5C,IAAIO,EAAMP,EAAE,EAAE,MAAM,EACdO,EAAI,SAAS,QAAQ,GAAOA,EAAI,KAAK,QAAQ,GAAKA,EAAI,QAAQ,SAAS,EAAE,OAAS,GAAKA,EAAI,QAAQ,eAAe,EAAE,OAAS,GAG/H,aAAa,KAAK,WAAW,EAC7B,KAAK,aAAe,IAHpB,KAAK,kBAAiB,CAKtC,EAAU,KAAK,IAAI,CAAC,GAGZD,IAAa,KAAK,kBAItB,KAAK,gBAAkBA,EACvB,KAAK,oBAAsB,WAAW,UAAY,CAC9C,KAAK,QAAQ,KAAK,MAAM,EAAE,YAAY,QAAQ,EAAE,OAAOA,CAAQ,EAAE,SAAS,QAAQ,EAClF,KAAK,IAAI,KAAM,gBAAgB,EAAE,YAAY,QAAQ,EACrD,KAAK,IAAI,KAAM,kBAAoBA,EAAW,IAAI,EAAE,SAAS,QAAQ,CACxE,EAAC,KAAK,IAAI,EAAG,GAAG,EACrB,EAEAP,EAAW,UAAU,kBAAoB,UAAY,CAC7C,CAAC,KAAK,cAAgB,KAAK,eAI/B,KAAK,aAAe,GACpB,KAAK,kBAAoB,GAEzB,aAAa,KAAK,WAAW,EAC7B,KAAK,YAAc,WAAW,UAAY,CAEjC,KAAK,eAIV,KAAK,aAAe,KAAK,aAAe,GACxCC,EAAE,QAAQ,EAAE,IAAI,kBAAkB,EAElC,KAAK,QAAQ,YAAY,IAAI,EAC7B,SAAS,KAAK,UAAU,OAAO,UAAU,EACzC,KAAK,IAAI,KAAM,gBAAgB,EAAE,YAAY,QAAQ,EAErD,KAAK,YAAc,WAAW,UAAY,CACtC,KAAK,QAAQ,YAAY,QAAQ,EACjC,KAAK,QAAQ,YAAY,SAAS,CACrC,EAAC,KAAK,IAAI,EAAG,GAAG,EAEpB,EAAC,KAAK,IAAI,EAAG,GAAG,EACrB,EAEA,IAAID"}