{"version":3,"sources":["js/header.js"],"names":["$","Drupal","behaviors","ucwsThemeHeader","isInitialized","attach","context","this","on","hasClass","closeToolbox","openToolbox","prevScrollTop","scrollTop","origHeaderTop","parseFloat","css","window","yTop","newTop","headerHideHeight","undefined","height","minTop","maxTop","vertScrollTop","currHeaderTop","top","toggleClass","slideDown","duration","start","removeClass","addClass","complete","slideUp","jQuery"],"mappings":"CAAA,SAAWA,EAAGC,GACZ,aAEAA,EAAOC,UAAUC,gBAAkB,CACjCC,eAAe,EACfC,OAAQ,SAAgBC,GACtB,IAAIC,KAAKH,cAAT,CAGAG,KAAKH,eAAgB,EAmDrB,GAjBAJ,EAAE,mCAAmCQ,GAAG,SAAS,WAC/CR,EAAE,YAAYS,SAAS,gBAAkBC,IAAiBC,OAI5DX,EAAE,yBAAyBQ,GAAG,SAAS,WACrCG,OAIFX,EAAE,mCAAmCQ,GAAG,UAAU,WAChDE,OAMEV,EAAE,eAAgB,CAGpB,IAAIY,EAAgBZ,EAAEO,MAAMM,YAGxBC,EAAgBC,WAAWf,EAAE,UAAUgB,IAAI,QAE/ChB,EAAEiB,QAAQT,GAAG,UAAU,WAErB,IAWIU,EAAMC,EATNC,QADmDC,IAAhCrB,EAAE,iBAAiBsB,SAA0B,EAAItB,EAAE,iBAAiBsB,UACjDtB,EAAE,YAAYsB,SAAWtB,EAAE,eAAesB,SAF9D,GAGlBC,EAAST,EAAgBM,EACzBI,EAASV,EAITW,EAAiBzB,EAAEO,MAAMM,YAAc,EAAK,EAAIb,EAAEO,MAAMM,YACxDa,EAAgBX,WAAWf,EAAE,UAAUgB,IAAI,QAK7CE,EAFEO,EAAgBb,GAClBO,EAASO,GAAiBD,EAAgBb,KACxBW,EAAUJ,EAASI,GAGrCJ,EAASO,GAAiBd,EAAgBa,KACxBD,EAAUL,EAASK,EAEvCZ,EAAgBa,EAEhBzB,EAAE,UAAUgB,IAAI,CAACW,IAAOT,IAGxBlB,EAAE,eAAe4B,YAAY,SAAUV,IAASK,OA/EpD,SAASZ,IACPX,EAAE,yBAAyB6B,UAAU,CACnCC,SAJe,IAKfC,MAAO,WACL/B,EAAE,+BAA+BgC,YAAY,WAC7ChC,EAAE,YAAYiC,SAAS,mBAAmBA,SAAS,iBAErDC,SAAU,WACRlC,EAAE,YAAYgC,YAAY,sBAKhC,SAAStB,IACPV,EAAE,yBAAyBmC,QAAQ,CACjCL,SAjBe,IAkBfC,MAAO,WACL/B,EAAE,+BAA+BiC,SAAS,WAC1CjC,EAAE,YAAYiC,SAAS,mBAAmBD,YAAY,iBAExDE,SAAU,WACRlC,EAAE,YAAYgC,YAAY,yBArCtC,CAoGGI,OAAQnC","file":"header.js","sourcesContent":["(function ($, Drupal) {\n 'use strict';\n\n Drupal.behaviors.ucwsThemeHeader = {\n isInitialized: false,\n attach: function attach(context) {\n if (this.isInitialized) {\n return;\n }\n this.isInitialized = true;\n\n //\n // Toolbox controls\n //\n var toolboxSpeed = 400;\n\n function openToolbox() {\n $('#toolbox .row.content').slideDown({\n duration: toolboxSpeed,\n start: function () {\n $('#toolbox .row.controls .btn').removeClass('btn-tab'); // Disable tab display\n $('#toolbox').addClass('toolbox-opening').addClass('toolbox-open');\n },\n complete: function () {\n $('#toolbox').removeClass('toolbox-opening');\n }\n });\n }\n\n function closeToolbox() {\n $('#toolbox .row.content').slideUp({\n duration: toolboxSpeed,\n start: function () {\n $('#toolbox .row.controls .btn').addClass('btn-tab'); // Enable tab display\n $('#toolbox').addClass('toolbox-opening').removeClass('toolbox-open');\n },\n complete: function () {\n $('#toolbox').removeClass('toolbox-opening');\n }\n });\n }\n\n // General toolbox display toggle\n $('#toolbox button.btn.btn-rounded').on('click', function () {\n $('#toolbox').hasClass('toolbox-open') ? closeToolbox() : openToolbox();\n });\n\n // Global search toolbox control\n $('#search-desktop input').on('focus', function () {\n openToolbox();\n });\n\n // Global search form submission\n $('#search-desktop, #search-mobile').on('submit', function () {\n closeToolbox();\n });\n\n //\n // Special scroll handling menus\n //\n if ($('#navigation')) {\n\n // Initial page load position (i.e. refresh @ bottom)\n var prevScrollTop = $(this).scrollTop();\n // Account for admin adjustments if logged in (doesn't\n // account for any offset changes on window resize)\n var origHeaderTop = parseFloat($('header').css('top'));\n\n $(window).on(\"scroll\", function () {\n // Need this in scroll event in case they open the Toolbox etc.\n var dropShadowWidth = 15; // Also account for header's drop-shadow.\n var siteAlertHeight = ($('#global-alert').height() === undefined) ? 0 : $('#global-alert').height();\n var headerHideHeight = (siteAlertHeight + $('#toolbox').height() + $('#navigation').height() + dropShadowWidth);\n var minTop = origHeaderTop - headerHideHeight;\n var maxTop = origHeaderTop;\n\n // Gather current state values\n // Mobile devices can provide negative scroll positions!\n var vertScrollTop = ($(this).scrollTop() < 0) ? 0 : $(this).scrollTop();\n var currHeaderTop = parseFloat($('header').css('top'));\n\n var yTop, newTop;\n if (vertScrollTop > prevScrollTop) { // Scrolling down page\n newTop = currHeaderTop - (vertScrollTop - prevScrollTop);\n yTop = (newTop >= minTop) ? newTop : minTop;\n }\n else { // Scrolling up page\n newTop = currHeaderTop + (prevScrollTop - vertScrollTop);\n yTop = (newTop <= maxTop) ? newTop : maxTop;\n }\n prevScrollTop = vertScrollTop;\n\n $('header').css({'top': yTop});\n\n // Add class only when navigation is in 'pinned' position\n $('#navigation').toggleClass('pinned', yTop === minTop);\n });\n }\n }\n };\n})(jQuery, Drupal);\n"]}