{"version":3,"file":"main-nav.js","sources":["../../assets/rollup/main-nav.js"],"sourcesContent":["(function($) {\n\nconst $topSlider = $('#menu-top-slider');\nlet $mainHeader = false;\nconst headerMinClass = 'minimized';\nconst bodyFixedHeaderClass = 'fixed-header';\n\nconst breakpointRanking = {\n 'small': 0,\n 'medium': 1,\n 'large': 2,\n 'xlarge': 3,\n 'xxlarge': 4\n};\n\n\n// swapSliderContents()\n// Replaces the HTML contents of a target jQuery object with the\n// contents of a source jQuery object. Returns `true` if content is changed,\n// `false` if content did not need to be changed.\nconst swapContents = ($targetObj, $contentSource, contentContainer = '.content') => {\n const $contentContainer = $targetObj.find(contentContainer);\n const originalHtml = $contentContainer.html();\n\n if (originalHtml === $contentSource.html()) {\n $targetObj.attr('data-source', false);\n return false\n }\n\n $contentContainer.html($contentSource.html());\n $targetObj.attr('data-source', $contentSource.attr('id'));\n return true;\n}\n\nconst clearContents = ($targetObj, contentContainer = '.content') => {\n $targetObj.find(contentContainer).html('');\n}\n\n// buildDropdowns()\n// Takes an array of id strings and finds two objects per string in the current DOM:\n// a button and a dropdown menu. The dropdown must have the same id as the button, appended with `-dropdown`\n// Returns an array of objects, each with the original id, a `$button` jQuery object, and a `$dropdown` jQuery object\nconst buildDropdowns = () => {\n return $('.wrapper__button--dropdown').toArray().map((item) => {\n const $thisButton = $(item);\n const id = $thisButton.attr('id');\n const $thisDropdown = $('#' + id + '-dropdown');\n $thisButton.attr('aria-controls', id + '-dropdown');\n $thisButton.attr('aria-expanded', false);\n\n const thisDropdown = {\n id: id,\n $button: $thisButton,\n $dropdown: $thisDropdown\n }\n\n return thisDropdown;\n });\n}\n\nconst clearActive = (dropdownObjects, excludeName = false) => {\n dropdownObjects.forEach((dropdownObject) => {\n if (dropdownObject.id !== excludeName) {\n dropdownObject.$button.removeClass('active');\n dropdownObject.$dropdown.slideUp();\n }\n });\n};\n\njQuery(document).ready(function documentLoaded($) {\n const utilDropdowns = buildDropdowns()\n //console.log(utilDropdowns);\n\n $(window).on('changed.zf.mediaquery', (event, newSize, oldSize) => {\n if (oldSize === 'small' && breakpointRanking[newSize] > breakpointRanking['small']) {\n clearActive(utilDropdowns);\n $topSlider.hide();\n clearContents($topSlider);\n } else if (newSize === 'small' && oldSize !== 'small') {\n clearActive(utilDropdowns);\n }\n });\n\n utilDropdowns.map((dropdownObject) => {\n dropdownObject.$button.on('click', () => {\n\n var expanded = (dropdownObject.$button.attr('aria-expanded') == 'true');\n dropdownObject.$button.attr('aria-expanded', '' + !expanded);\n \n if (Foundation.MediaQuery.atLeast('medium') || dropdownObject.$dropdown.hasClass('dropdown-in-place')) {\n $topSlider.slideUp(null, () => {\n clearContents($topSlider);\n });\n clearActive(utilDropdowns, dropdownObject.id);\n\n dropdownObject.$button.toggleClass('active');\n dropdownObject.$dropdown.slideToggle();\n\n } else {\n const changedSlider = swapContents($topSlider, dropdownObject.$dropdown);\n clearActive(utilDropdowns);\n dropdownObject.$button.toggleClass('active');\n\n if (changedSlider) {\n $topSlider.slideDown();\n } else {\n $topSlider.slideUp(null, () => {\n clearContents($topSlider);\n });\n }\n }\n });\n });\n\n $('#main-nav-button').on('click', (event) => {\n const $button = $(event.currentTarget);\n const $buttonContent = $button.find('span');\n $button.toggleClass('active');\n if ($button.hasClass('active')) {\n $buttonContent.text('Close');\n $button.attr('aria-expanded', 'true');\n } else {\n $buttonContent.text('Menu');\n $button.attr('aria-expanded', 'false');\n }\n $('#main-nav-dropdown').slideToggle();\n })\n\n setTimeout(() => {\n scrollCheck();\n }, 500);\n});\n\nconst scrollCheck = () => {\n if (!$mainHeader) {\n $mainHeader = $('.main-header');\n }\n\n if ($(window).scrollTop() < 150) {\n $mainHeader.removeClass(headerMinClass);\n $('body').removeClass(bodyFixedHeaderClass);\n return false;\n }\n\n $mainHeader.addClass(headerMinClass);\n $('body').addClass(bodyFixedHeaderClass);\n return true;\n};\n\n$(window).scroll(() => {\n scrollCheck();\n});\n\n})(jQuery);"],"names":["$","$topSlider","$mainHeader","headerMinClass","bodyFixedHeaderClass","breakpointRanking","swapContents","$targetObj","$contentSource","contentContainer","$contentContainer","find","originalHtml","html","attr","clearContents","buildDropdowns","toArray","map","item","$thisButton","id","$thisDropdown","thisDropdown","clearActive","dropdownObjects","excludeName","forEach","dropdownObject","$button","removeClass","$dropdown","slideUp","document","ready","documentLoaded","utilDropdowns","window","on","event","newSize","oldSize","hide","expanded","Foundation","MediaQuery","atLeast","hasClass","toggleClass","slideToggle","changedSlider","slideDown","currentTarget","$buttonContent","text","scrollCheck","scrollTop","addClass","scroll","jQuery"],"mappings":"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"}