{"version":3,"sources":["webpack:///./node_modules/stickyfilljs/dist/stickyfill.js","webpack:///./js/components/jump-page-nav.js"],"names":["window","document","_createClass","defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","Constructor","protoProps","staticProps","prototype","testNode","seppuku","isWindowDefined","getComputedStyle","createElement","some","prefix","style","position","e","isInitialized","shadowRootExists","ShadowRoot","scroll","top","left","stickies","extend","targetObj","sourceObject","hasOwnProperty","parseNumeric","val","parseFloat","getDocOffsetTop","node","docOffsetTop","offsetTop","offsetParent","Sticky","instance","TypeError","_classCallCheck","this","HTMLElement","Error","sticky","_node","_stickyMode","_active","push","refresh","value","_removed","_deactivate","nodeComputedStyle","nodeComputedProps","display","marginTop","marginBottom","marginLeft","marginRight","cssFloat","isNaN","originalPosition","referenceNode","parentNode","host","nodeWinOffset","getBoundingClientRect","parentWinOffset","parentComputedStyle","_parent","styles","offsetHeight","_offsetToWindow","right","documentElement","clientWidth","_offsetToParent","borderTopWidth","borderLeftWidth","borderRightWidth","_styles","bottom","width","nodeTopValue","_limits","start","pageYOffset","end","borderBottomWidth","parentPosition","_recalcPosition","clone","_clone","height","padding","border","borderSpacing","fontSize","insertBefore","stickyMode","Math","abs","_this","removeChild","_this2","index","splice","Stickyfill","forceSticky","init","refreshAll","addOne","add","nodeList","addedStickies","_loop","forEach","removeOne","remove","_loop2","removeAll","checkScroll","addEventListener","fastCheckTimer","docHiddenKey","visibilityChangeEventName","startFastCheckTimer","clearInterval","pageXOffset","setInterval","_fastCheck","module","exports","whenDomReady","then","list","querySelector","ISOPEN","navigationList","navItems","querySelectorAll","navItemText","dataset","navigationTitle","navigationId","navScrollListElement","className","navScrollLink","setAttribute","textContent","appendChild","bindNavigation","nav","scrollLinks","selected","classList","Array","from","link","data","getAttribute","el","selectedText","contentPos","scrollTo","behavior","contains","scrollToLink"],"mappings":"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","file":"jump-page-nav-64f199e26f67bdb076cb.js","sourcesContent":["/*!\r\n * Stickyfill – `position: sticky` polyfill\r\n * v. 2.1.0 | https://github.com/wilddeer/stickyfill\r\n * MIT License\r\n */\r\n\r\n;(function(window, document) {\r\n 'use strict';\r\n \r\n /*\r\n * 1. Check if the browser supports `position: sticky` natively or is too old to run the polyfill.\r\n * If either of these is the case set `seppuku` flag. It will be checked later to disable key features\r\n * of the polyfill, but the API will remain functional to avoid breaking things.\r\n */\r\n \r\n var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\r\n \r\n function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\r\n \r\n var seppuku = false;\r\n \r\n var isWindowDefined = typeof window !== 'undefined';\r\n \r\n // The polyfill can’t function properly without `window` or `window.getComputedStyle`.\r\n if (!isWindowDefined || !window.getComputedStyle) seppuku = true;\r\n // Dont’t get in a way if the browser supports `position: sticky` natively.\r\n else {\r\n (function () {\r\n var testNode = document.createElement('div');\r\n \r\n if (['', '-webkit-', '-moz-', '-ms-'].some(function (prefix) {\r\n try {\r\n testNode.style.position = prefix + 'sticky';\r\n } catch (e) {}\r\n \r\n return testNode.style.position != '';\r\n })) seppuku = true;\r\n })();\r\n }\r\n \r\n /*\r\n * 2. “Global†vars used across the polyfill\r\n */\r\n var isInitialized = false;\r\n \r\n // Check if Shadow Root constructor exists to make further checks simpler\r\n var shadowRootExists = typeof ShadowRoot !== 'undefined';\r\n \r\n // Last saved scroll position\r\n var scroll = {\r\n top: null,\r\n left: null\r\n };\r\n \r\n // Array of created Sticky instances\r\n var stickies = [];\r\n \r\n /*\r\n * 3. Utility functions\r\n */\r\n function extend(targetObj, sourceObject) {\r\n for (var key in sourceObject) {\r\n if (sourceObject.hasOwnProperty(key)) {\r\n targetObj[key] = sourceObject[key];\r\n }\r\n }\r\n }\r\n \r\n function parseNumeric(val) {\r\n return parseFloat(val) || 0;\r\n }\r\n \r\n function getDocOffsetTop(node) {\r\n var docOffsetTop = 0;\r\n \r\n while (node) {\r\n docOffsetTop += node.offsetTop;\r\n node = node.offsetParent;\r\n }\r\n \r\n return docOffsetTop;\r\n }\r\n \r\n /*\r\n * 4. Sticky class\r\n */\r\n \r\n var Sticky = function () {\r\n function Sticky(node) {\r\n _classCallCheck(this, Sticky);\r\n \r\n if (!(node instanceof HTMLElement)) throw new Error('First argument must be HTMLElement');\r\n if (stickies.some(function (sticky) {\r\n return sticky._node === node;\r\n })) throw new Error('Stickyfill is already applied to this node');\r\n \r\n this._node = node;\r\n this._stickyMode = null;\r\n this._active = false;\r\n \r\n stickies.push(this);\r\n \r\n this.refresh();\r\n }\r\n \r\n _createClass(Sticky, [{\r\n key: 'refresh',\r\n value: function refresh() {\r\n if (seppuku || this._removed) return;\r\n if (this._active) this._deactivate();\r\n \r\n var node = this._node;\r\n \r\n /*\r\n * 1. Save node computed props\r\n */\r\n var nodeComputedStyle = getComputedStyle(node);\r\n var nodeComputedProps = {\r\n position: nodeComputedStyle.position,\r\n top: nodeComputedStyle.top,\r\n display: nodeComputedStyle.display,\r\n marginTop: nodeComputedStyle.marginTop,\r\n marginBottom: nodeComputedStyle.marginBottom,\r\n marginLeft: nodeComputedStyle.marginLeft,\r\n marginRight: nodeComputedStyle.marginRight,\r\n cssFloat: nodeComputedStyle.cssFloat\r\n };\r\n \r\n /*\r\n * 2. Check if the node can be activated\r\n */\r\n if (isNaN(parseFloat(nodeComputedProps.top)) || nodeComputedProps.display == 'table-cell' || nodeComputedProps.display == 'none') return;\r\n \r\n this._active = true;\r\n \r\n /*\r\n * 3. Check if the current node position is `sticky`. If it is, it means that the browser supports sticky positioning,\r\n * but the polyfill was force-enabled. We set the node’s position to `static` before continuing, so that the node\r\n * is in it’s initial position when we gather its params.\r\n */\r\n var originalPosition = node.style.position;\r\n if (nodeComputedStyle.position == 'sticky' || nodeComputedStyle.position == '-webkit-sticky') node.style.position = 'static';\r\n \r\n /*\r\n * 4. Get necessary node parameters\r\n */\r\n var referenceNode = node.parentNode;\r\n var parentNode = shadowRootExists && referenceNode instanceof ShadowRoot ? referenceNode.host : referenceNode;\r\n var nodeWinOffset = node.getBoundingClientRect();\r\n var parentWinOffset = parentNode.getBoundingClientRect();\r\n var parentComputedStyle = getComputedStyle(parentNode);\r\n \r\n this._parent = {\r\n node: parentNode,\r\n styles: {\r\n position: parentNode.style.position\r\n },\r\n offsetHeight: parentNode.offsetHeight\r\n };\r\n this._offsetToWindow = {\r\n left: nodeWinOffset.left,\r\n right: document.documentElement.clientWidth - nodeWinOffset.right\r\n };\r\n this._offsetToParent = {\r\n top: nodeWinOffset.top - parentWinOffset.top - parseNumeric(parentComputedStyle.borderTopWidth),\r\n left: nodeWinOffset.left - parentWinOffset.left - parseNumeric(parentComputedStyle.borderLeftWidth),\r\n right: -nodeWinOffset.right + parentWinOffset.right - parseNumeric(parentComputedStyle.borderRightWidth)\r\n };\r\n this._styles = {\r\n position: originalPosition,\r\n top: node.style.top,\r\n bottom: node.style.bottom,\r\n left: node.style.left,\r\n right: node.style.right,\r\n width: node.style.width,\r\n marginTop: node.style.marginTop,\r\n marginLeft: node.style.marginLeft,\r\n marginRight: node.style.marginRight\r\n };\r\n \r\n var nodeTopValue = parseNumeric(nodeComputedProps.top);\r\n this._limits = {\r\n start: nodeWinOffset.top + window.pageYOffset - nodeTopValue,\r\n end: parentWinOffset.top + window.pageYOffset + parentNode.offsetHeight - parseNumeric(parentComputedStyle.borderBottomWidth) - node.offsetHeight - nodeTopValue - parseNumeric(nodeComputedProps.marginBottom)\r\n };\r\n \r\n /*\r\n * 5. Ensure that the node will be positioned relatively to the parent node\r\n */\r\n var parentPosition = parentComputedStyle.position;\r\n \r\n if (parentPosition != 'absolute' && parentPosition != 'relative') {\r\n parentNode.style.position = 'relative';\r\n }\r\n \r\n /*\r\n * 6. Recalc node position.\r\n * It’s important to do this before clone injection to avoid scrolling bug in Chrome.\r\n */\r\n this._recalcPosition();\r\n \r\n /*\r\n * 7. Create a clone\r\n */\r\n var clone = this._clone = {};\r\n clone.node = document.createElement('div');\r\n \r\n // Apply styles to the clone\r\n extend(clone.node.style, {\r\n width: nodeWinOffset.right - nodeWinOffset.left + 'px',\r\n height: nodeWinOffset.bottom - nodeWinOffset.top + 'px',\r\n marginTop: nodeComputedProps.marginTop,\r\n marginBottom: nodeComputedProps.marginBottom,\r\n marginLeft: nodeComputedProps.marginLeft,\r\n marginRight: nodeComputedProps.marginRight,\r\n cssFloat: nodeComputedProps.cssFloat,\r\n padding: 0,\r\n border: 0,\r\n borderSpacing: 0,\r\n fontSize: '1em',\r\n position: 'static'\r\n });\r\n \r\n referenceNode.insertBefore(clone.node, node);\r\n clone.docOffsetTop = getDocOffsetTop(clone.node);\r\n }\r\n }, {\r\n key: '_recalcPosition',\r\n value: function _recalcPosition() {\r\n if (!this._active || this._removed) return;\r\n \r\n var stickyMode = scroll.top <= this._limits.start ? 'start' : scroll.top >= this._limits.end ? 'end' : 'middle';\r\n \r\n if (this._stickyMode == stickyMode) return;\r\n \r\n switch (stickyMode) {\r\n case 'start':\r\n extend(this._node.style, {\r\n position: 'absolute',\r\n left: this._offsetToParent.left + 'px',\r\n right: this._offsetToParent.right + 'px',\r\n top: this._offsetToParent.top + 'px',\r\n bottom: 'auto',\r\n width: 'auto',\r\n marginLeft: 0,\r\n marginRight: 0,\r\n marginTop: 0\r\n });\r\n break;\r\n \r\n case 'middle':\r\n extend(this._node.style, {\r\n position: 'fixed',\r\n left: this._offsetToWindow.left + 'px',\r\n right: this._offsetToWindow.right + 'px',\r\n top: this._styles.top,\r\n bottom: 'auto',\r\n width: 'auto',\r\n marginLeft: 0,\r\n marginRight: 0,\r\n marginTop: 0\r\n });\r\n break;\r\n \r\n case 'end':\r\n extend(this._node.style, {\r\n position: 'absolute',\r\n left: this._offsetToParent.left + 'px',\r\n right: this._offsetToParent.right + 'px',\r\n top: 'auto',\r\n bottom: 0,\r\n width: 'auto',\r\n marginLeft: 0,\r\n marginRight: 0\r\n });\r\n break;\r\n }\r\n \r\n this._stickyMode = stickyMode;\r\n }\r\n }, {\r\n key: '_fastCheck',\r\n value: function _fastCheck() {\r\n if (!this._active || this._removed) return;\r\n \r\n if (Math.abs(getDocOffsetTop(this._clone.node) - this._clone.docOffsetTop) > 1 || Math.abs(this._parent.node.offsetHeight - this._parent.offsetHeight) > 1) this.refresh();\r\n }\r\n }, {\r\n key: '_deactivate',\r\n value: function _deactivate() {\r\n var _this = this;\r\n \r\n if (!this._active || this._removed) return;\r\n \r\n this._clone.node.parentNode.removeChild(this._clone.node);\r\n delete this._clone;\r\n \r\n extend(this._node.style, this._styles);\r\n delete this._styles;\r\n \r\n // Check whether element’s parent node is used by other stickies.\r\n // If not, restore parent node’s styles.\r\n if (!stickies.some(function (sticky) {\r\n return sticky !== _this && sticky._parent && sticky._parent.node === _this._parent.node;\r\n })) {\r\n extend(this._parent.node.style, this._parent.styles);\r\n }\r\n delete this._parent;\r\n \r\n this._stickyMode = null;\r\n this._active = false;\r\n \r\n delete this._offsetToWindow;\r\n delete this._offsetToParent;\r\n delete this._limits;\r\n }\r\n }, {\r\n key: 'remove',\r\n value: function remove() {\r\n var _this2 = this;\r\n \r\n this._deactivate();\r\n \r\n stickies.some(function (sticky, index) {\r\n if (sticky._node === _this2._node) {\r\n stickies.splice(index, 1);\r\n return true;\r\n }\r\n });\r\n \r\n this._removed = true;\r\n }\r\n }]);\r\n \r\n return Sticky;\r\n }();\r\n \r\n /*\r\n * 5. Stickyfill API\r\n */\r\n \r\n \r\n var Stickyfill = {\r\n stickies: stickies,\r\n Sticky: Sticky,\r\n \r\n forceSticky: function forceSticky() {\r\n seppuku = false;\r\n init();\r\n \r\n this.refreshAll();\r\n },\r\n addOne: function addOne(node) {\r\n // Check whether it’s a node\r\n if (!(node instanceof HTMLElement)) {\r\n // Maybe it’s a node list of some sort?\r\n // Take first node from the list then\r\n if (node.length && node[0]) node = node[0];else return;\r\n }\r\n \r\n // Check if Stickyfill is already applied to the node\r\n // and return existing sticky\r\n for (var i = 0; i < stickies.length; i++) {\r\n if (stickies[i]._node === node) return stickies[i];\r\n }\r\n \r\n // Create and return new sticky\r\n return new Sticky(node);\r\n },\r\n add: function add(nodeList) {\r\n // If it’s a node make an array of one node\r\n if (nodeList instanceof HTMLElement) nodeList = [nodeList];\r\n // Check if the argument is an iterable of some sort\r\n if (!nodeList.length) return;\r\n \r\n // Add every element as a sticky and return an array of created Sticky instances\r\n var addedStickies = [];\r\n \r\n var _loop = function _loop(i) {\r\n var node = nodeList[i];\r\n \r\n // If it’s not an HTMLElement – create an empty element to preserve 1-to-1\r\n // correlation with input list\r\n if (!(node instanceof HTMLElement)) {\r\n addedStickies.push(void 0);\r\n return 'continue';\r\n }\r\n \r\n // If Stickyfill is already applied to the node\r\n // add existing sticky\r\n if (stickies.some(function (sticky) {\r\n if (sticky._node === node) {\r\n addedStickies.push(sticky);\r\n return true;\r\n }\r\n })) return 'continue';\r\n \r\n // Create and add new sticky\r\n addedStickies.push(new Sticky(node));\r\n };\r\n \r\n for (var i = 0; i < nodeList.length; i++) {\r\n var _ret2 = _loop(i);\r\n \r\n if (_ret2 === 'continue') continue;\r\n }\r\n \r\n return addedStickies;\r\n },\r\n refreshAll: function refreshAll() {\r\n stickies.forEach(function (sticky) {\r\n return sticky.refresh();\r\n });\r\n },\r\n removeOne: function removeOne(node) {\r\n // Check whether it’s a node\r\n if (!(node instanceof HTMLElement)) {\r\n // Maybe it’s a node list of some sort?\r\n // Take first node from the list then\r\n if (node.length && node[0]) node = node[0];else return;\r\n }\r\n \r\n // Remove the stickies bound to the nodes in the list\r\n stickies.some(function (sticky) {\r\n if (sticky._node === node) {\r\n sticky.remove();\r\n return true;\r\n }\r\n });\r\n },\r\n remove: function remove(nodeList) {\r\n // If it’s a node make an array of one node\r\n if (nodeList instanceof HTMLElement) nodeList = [nodeList];\r\n // Check if the argument is an iterable of some sort\r\n if (!nodeList.length) return;\r\n \r\n // Remove the stickies bound to the nodes in the list\r\n \r\n var _loop2 = function _loop2(i) {\r\n var node = nodeList[i];\r\n \r\n stickies.some(function (sticky) {\r\n if (sticky._node === node) {\r\n sticky.remove();\r\n return true;\r\n }\r\n });\r\n };\r\n \r\n for (var i = 0; i < nodeList.length; i++) {\r\n _loop2(i);\r\n }\r\n },\r\n removeAll: function removeAll() {\r\n while (stickies.length) {\r\n stickies[0].remove();\r\n }\r\n }\r\n };\r\n \r\n /*\r\n * 6. Setup events (unless the polyfill was disabled)\r\n */\r\n function init() {\r\n if (isInitialized) {\r\n return;\r\n }\r\n \r\n isInitialized = true;\r\n \r\n // Watch for scroll position changes and trigger recalc/refresh if needed\r\n function checkScroll() {\r\n if (window.pageXOffset != scroll.left) {\r\n scroll.top = window.pageYOffset;\r\n scroll.left = window.pageXOffset;\r\n \r\n Stickyfill.refreshAll();\r\n } else if (window.pageYOffset != scroll.top) {\r\n scroll.top = window.pageYOffset;\r\n scroll.left = window.pageXOffset;\r\n \r\n // recalc position for all stickies\r\n stickies.forEach(function (sticky) {\r\n return sticky._recalcPosition();\r\n });\r\n }\r\n }\r\n \r\n checkScroll();\r\n window.addEventListener('scroll', checkScroll);\r\n \r\n // Watch for window resizes and device orientation changes and trigger refresh\r\n window.addEventListener('resize', Stickyfill.refreshAll);\r\n window.addEventListener('orientationchange', Stickyfill.refreshAll);\r\n \r\n //Fast dirty check for layout changes every 500ms\r\n var fastCheckTimer = void 0;\r\n \r\n function startFastCheckTimer() {\r\n fastCheckTimer = setInterval(function () {\r\n stickies.forEach(function (sticky) {\r\n return sticky._fastCheck();\r\n });\r\n }, 500);\r\n }\r\n \r\n function stopFastCheckTimer() {\r\n clearInterval(fastCheckTimer);\r\n }\r\n \r\n var docHiddenKey = void 0;\r\n var visibilityChangeEventName = void 0;\r\n \r\n if ('hidden' in document) {\r\n docHiddenKey = 'hidden';\r\n visibilityChangeEventName = 'visibilitychange';\r\n } else if ('webkitHidden' in document) {\r\n docHiddenKey = 'webkitHidden';\r\n visibilityChangeEventName = 'webkitvisibilitychange';\r\n }\r\n \r\n if (visibilityChangeEventName) {\r\n if (!document[docHiddenKey]) startFastCheckTimer();\r\n \r\n document.addEventListener(visibilityChangeEventName, function () {\r\n if (document[docHiddenKey]) {\r\n stopFastCheckTimer();\r\n } else {\r\n startFastCheckTimer();\r\n }\r\n });\r\n } else startFastCheckTimer();\r\n }\r\n \r\n if (!seppuku) init();\r\n \r\n /*\r\n * 7. Expose Stickyfill\r\n */\r\n if (typeof module != 'undefined' && module.exports) {\r\n module.exports = Stickyfill;\r\n } else if (isWindowDefined) {\r\n window.Stickyfill = Stickyfill;\r\n }\r\n \r\n})(window, document);","import whenDomReady from 'when-dom-ready';\r\nimport Stickyfill from 'stickyfilljs';\r\n\r\nfunction initialize() {\r\n const list = document.querySelector('.js-jump-page-nav-list');\r\n\r\n const ISOPEN = 'is-open';\r\n\r\n bindNavigation(list);\r\n\r\n const nav = document.querySelector('.js-jump-page-nav');\r\n const scrollLinks = document.querySelectorAll('[data-scroll]');\r\n const selected = document.querySelector('.js-selected-item');\r\n\r\n if (scrollLinks.length === 0 || list === null || selected === null) {\r\n return;\r\n }\r\n\r\n nav.classList.remove('hidden');\r\n\r\n // position:sticky polyfill for IE\r\n Stickyfill.add(nav);\r\n\r\n function scrollToLink(link) {\r\n const data = link.getAttribute('data-scroll');\r\n const el = document.querySelector(`[data-navigation-id=\"${data}\"]`);\r\n const selectedText = link.textContent;\r\n\r\n const contentPos = el.getBoundingClientRect().top + window.pageYOffset;\r\n\r\n window.scrollTo({\r\n top: contentPos - 60,\r\n left: 0,\r\n behavior: 'smooth',\r\n });\r\n\r\n if (list.classList.contains(ISOPEN)) {\r\n selected.textContent = selectedText;\r\n list.classList.remove(ISOPEN);\r\n } else {\r\n selected.textContent = 'Select...';\r\n }\r\n }\r\n\r\n Array.from(scrollLinks).forEach(link => {\r\n link.addEventListener('click', () => {\r\n scrollToLink(link);\r\n });\r\n });\r\n\r\n selected.addEventListener('click', () => {\r\n if (!list.classList.contains(ISOPEN)) {\r\n list.classList.add(ISOPEN);\r\n } else {\r\n list.classList.remove(ISOPEN);\r\n }\r\n });\r\n}\r\n\r\nfunction bindNavigation(navigationList) {\r\n const navItems = document.querySelectorAll('[data-navigation-title]');\r\n\r\n for (let i = 0; i < navItems.length; i += 1) {\r\n const navItemText = navItems[i].dataset.navigationTitle;\r\n const navigationId = navItems[i].dataset.navigationId;\r\n\r\n if (navItemText && navigationId) {\r\n const navScrollListElement = document.createElement('li');\r\n navScrollListElement.className = 'sticky-jump-page-nav__list-item';\r\n\r\n const navScrollLink = document.createElement('a');\r\n navScrollLink.setAttribute('data-scroll', navigationId);\r\n navScrollLink.className = 'js-smooth-scroll';\r\n navScrollLink.textContent = navItemText;\r\n\r\n navScrollListElement.appendChild(navScrollLink);\r\n\r\n navigationList.appendChild(navScrollListElement);\r\n }\r\n }\r\n}\r\n\r\nwhenDomReady().then(initialize);\r\n"],"sourceRoot":""}