diff --git a/README.md b/README.md index 20ea6db..c15daa8 100644 --- a/README.md +++ b/README.md @@ -178,11 +178,12 @@ The following settings are editable to overwrite the default. // // Sets the easing type for the scroll animation that is triggered by the // click event on a nav item, by default it's 'easeOutQuad'. + // To disable scrolling animation, choose 'none'. // // available options are 'linear' 'easeInQuad', 'easeOutQuad', // 'easeInOutQuad', 'easeInCubic', 'easeOutCubic', 'easeInOutCubic', // 'easeInQuart', 'easeOutQuart', 'easeInOutQuart', 'easeInQuint', - // 'easeOutQuint', easeInOutQuint + // 'easeOutQuint', easeInOutQuint, 'none' updateHistory: true // boolean diff --git a/dist/scrollnav.min.js b/dist/scrollnav.min.js index c25bcfa..67495c2 100644 --- a/dist/scrollnav.min.js +++ b/dist/scrollnav.min.js @@ -1,2 +1,477 @@ -function f(f,h){var y,w={};for(y in f)Object.prototype.hasOwnProperty.call(f,y)&&(w[y]=f[y]);for(y in h)Object.prototype.hasOwnProperty.call(h,y)&&(w[y]=h[y]);return w}function h(f,h){if("object"!=typeof f)return Promise.reject(new Error("First argument must be an object"));if("object"!=typeof(h=h||document.body))return Promise.reject(new Error("Second argument must be an object"));var y=h.getBoundingClientRect();return f.getBoundingClientRect().top-y.top}function y(f,w,E){void 0===E&&(E="scroll-nav");var L=[];return E+="__",f.forEach(function(f,O){var x=[],j=function(f,h){if("object"!=typeof f)return Promise.reject(new Error("First argument must be an object"));var y=f.id;if(!y){if("string"!=typeof h)return Promise.reject(new Error("Second argument must be a string"));f.id=y=h}return y}(f,E+(O+1));w.subSections&&f.matches(w.sections)&&(x=y(function(f,h,y){var w=[];for(f=f.nextElementSibling;f&&!f.matches(h);)!y||f.matches(y)?(w.push(f),f=f.nextElementSibling):f=f.nextElementSibling;return w}(f,w.sections,w.subSections),w,j));L.push({id:j,text:f.innerText||f.textContent,offsetTop:h(f),subSections:x})}),L}function w(f){var h=document.createElement("nav");return h.className="scroll-nav",h.innerHTML=function f(h,y){void 0===y&&(y=!1);var w="scroll-nav"+(y?"__sub-":"__"),E="\n "+h.map(function(h){return'
  • \n '+h.text+"\n "+(h.subSections&&h.subSections.length?""+f(h.subSections,!0):"")+"\n
  • "}).join("")+"\n ";return'\n
      \n '+E+"\n
    \n "}(f),h}function E(f){return f.forEach(function(f){var y=document.querySelector("#"+f.id);f.offsetTop=h(y),f.subSections.length&&(f.subSections=E(f.subSections))}),f}function L(f,h){var y=f.getAttribute("href");return"#"===y.charAt(0)&&(y=y.substr(1)),function f(h,y){var w;h.forEach(function(h){h.id===y&&(w=h),h.subSections&&void 0===w&&(w=f(h.subSections,y))});return w}(h,y).offsetTop}var O,x,j,_=function(f){return function(h){return Math.pow(h,f)}},I=function(f){return function(h){return 1-Math.abs(Math.pow(h-1,f))}},Q=function(f){return function(h){return h<.5?_(f)(2*h)/2:I(f)(2*h-1)/2+.5}},C={linear:Q(1),easeInQuad:_(2),easeOutQuad:I(2),easeInOutQuad:Q(2),easeInCubic:_(3),easeOutCubic:I(3),easeInOutCubic:Q(3),easeInQuart:_(4),easeOutQuart:I(4),easeInOutQuart:Q(4),easeInQuint:_(5),easeOutQuint:I(5),easeInOutQuint:Q(5)};function M(f,h){return new Promise(function(y,w){if("number"!=typeof f)return w(new Error("First argument must be a number"));if("string"!=typeof(h=h||"linear"))return w(new Error("Second argument must be a string"));var E,L=window.pageYOffset,O=f-L,x=function(f){var h=Math.abs(f/2);return Math.min(Math.max(h,250),1200)}(O),j=20,_=0;!function f(){E=C[h]((_+=j)/x),window.scroll(0,E*O+L),_w?!E&&f.offsetTop\n " + item.text + "\n " + (item.subSections && item.subSections.length ? "" + createList(item.subSections, true) : '') + "\n "; + }).join('') + "\n "; + var list = "\n
      \n " + itemsMarkup + "\n
    \n "; + return list; +} + +function createNav(data) { + var nav = document.createElement('nav'); + nav.className = 'scroll-nav'; + nav.innerHTML = createList(data); + return nav; +} + +function insertNav(scrollnav) { + var target = scrollnav.settings.insertTarget; + var location = scrollnav.settings.insertLocation; + + if (location === 'append') { + target.appendChild(scrollnav.nav); + } else if (location === 'prepend') { + target.insertBefore(scrollnav.nav, target.firstChild); + } else if (location === 'before') { + target.parentNode.insertBefore(scrollnav.nav, target); + } else if (location === 'after') { + target.parentNode.insertBefore(scrollnav.nav, target.nextSibling); + } +} + +function updatePositionData(data) { + data.forEach(function (section) { + var sectionDom = document.querySelector("#" + section.id); + section.offsetTop = getYPosition(sectionDom); + + if (section.subSections.length) { + section.subSections = updatePositionData(section.subSections); + } + }); + return data; +} + +function insertVisualDebugger() { + var snDebugger = document.createElement('div'); + snDebugger.className = 'snDebugger'; + snDebugger.setAttribute('style', "\n position: fixed;\n top: 40%;\n height: 0px;\n border-bottom:5px solid red;\n border-top: 5px solid blue;\n width: 100%;\n opacity: .5;\n pointer-events: none;\n "); + document.body.appendChild(snDebugger); +} + +function getTargetYPosition(target, data) { + var id = target.getAttribute('href'); + + if (id.charAt(0) === '#') { + id = id.substr(1); + } + + var targetSection = filterData(data, id); + return targetSection.offsetTop; +} + +function filterData(data, id) { + var targetSection; + data.forEach(function (section) { + if (section.id === id) { + targetSection = section; + } + + if (section.subSections && targetSection === undefined) { + targetSection = filterData(section.subSections, id); + } + }); + return targetSection; +} + +function calculateScrollDuration(distance) { + var halfDistance = Math.abs(distance / 2); + return Math.min(Math.max(halfDistance, 250), 1200); +} + +/* Borrowed from https://gist.github.com/gre/1650294#gistcomment-1806616 */ +var easeIn = function easeIn(p) { + return function (t) { + return Math.pow(t, p); + }; +}; + +var easeOut = function easeOut(p) { + return function (t) { + return 1 - Math.abs(Math.pow(t - 1, p)); + }; +}; + +var easeInOut = function easeInOut(p) { + return function (t) { + return t < 0.5 ? easeIn(p)(t * 2) / 2 : easeOut(p)(t * 2 - 1) / 2 + 0.5; + }; +}; + +var easing = { + linear: easeInOut(1), + easeInQuad: easeIn(2), + easeOutQuad: easeOut(2), + easeInOutQuad: easeInOut(2), + easeInCubic: easeIn(3), + easeOutCubic: easeOut(3), + easeInOutCubic: easeInOut(3), + easeInQuart: easeIn(4), + easeOutQuart: easeOut(4), + easeInOutQuart: easeInOut(4), + easeInQuint: easeIn(5), + easeOutQuint: easeOut(5), + easeInOutQuint: easeInOut(5) +}; + +/* istanbul ignore next */ + +function scrollTo(targetPosition, easingStyle) { + return new Promise(function (resolve, reject) { + if (typeof targetPosition !== 'number') { + return reject(new Error('First argument must be a number')); + } + + easingStyle = easingStyle || 'linear'; + + if (typeof easingStyle !== 'string') { + return reject(new Error('Second argument must be a string')); + } + + var startingPosition = window.pageYOffset; + var distance = targetPosition - startingPosition; + var duration = calculateScrollDuration(distance); + var framerate = 50; + var increment = 1000 / framerate; + var ellapsedTime = 0; + var easedTime; + var next; + + function animateScroll() { + ellapsedTime += increment; + easedTime = easing[easingStyle](ellapsedTime / duration); + next = easedTime * distance + startingPosition; + window.scroll(0, next); + + if (ellapsedTime < duration) { + setTimeout(animateScroll, increment); + } else { + resolve(window.pageYOffset); + } + } + + if (easingStyle == 'none') { + window.scroll(0, targetPosition); + } else { + animateScroll(); + } + }); +} + +function setupClickHandlers(scrollnav) { + var settings = scrollnav.settings; + + function clickHandler(event) { + event.preventDefault(); + var activeArea = window.innerHeight * 0.39; + var targetYPosition = getTargetYPosition(event.target, scrollnav.data); + var scrollYTarget = targetYPosition - activeArea; + /* istanbul ignore next */ + + return scrollTo(scrollYTarget, settings.easingStyle).then(function () { + if (settings.updateHistory) { + history.replaceState({}, '', event.target.getAttribute('href')); + } + + if (settings.onScroll) { + settings.onScroll(); + } + }); + } + + var links = scrollnav.nav.querySelectorAll('a'); + links.forEach(function (link) { + link.addEventListener('click', clickHandler); + }); + return clickHandler; +} + +function getActiveSection(data, boundryTop, boundryBottom) { + var activeSection; + data.forEach(function (section) { + if (section.offsetTop > boundryBottom) { + if (!activeSection && section.offsetTop < boundryTop) { + activeSection = section; + } + } else { + activeSection = section; + } + }); + + if (activeSection && activeSection.subSections.length) { + var activeSubSection; + activeSubSection = getActiveSection(activeSection.subSections, boundryTop, boundryBottom); + + if (activeSubSection) { + activeSection = activeSubSection; + } + } + + return activeSection; +} + +function updateActiveNavItem(activeSection, nav) { + var previousActive = nav.querySelector('[data-sn-active]'); + + if (!activeSection) { + if (previousActive) { + previousActive.classList.remove('scroll-nav__item--active'); + previousActive.removeAttribute('data-sn-active'); + } + + return; + } + + var newActive = nav.querySelector('[data-sn-section=' + activeSection.id + ']'); + + if (newActive && newActive !== previousActive) { + if (previousActive) { + previousActive.classList.remove('scroll-nav__item--active'); + previousActive.removeAttribute('data-sn-active'); + } + + newActive.classList.add('scroll-nav__item--active'); + newActive.setAttribute('data-sn-active', true); + } +} + +function setupScrollHandler(scrollnav) { + function scrollHandler() { + var top = window.scrollY || window.pageYOffset || document.body.scrollTop; + var boundryTop = top; + var boundryBottom = top + window.innerHeight * 0.4; + var activeSection = getActiveSection(scrollnav.data, boundryTop, boundryBottom); + updateActiveNavItem(activeSection, scrollnav.nav); + return activeSection; + } + + window.addEventListener('scroll', scrollHandler); + return scrollHandler; +} + +function setupResizeHandler(scrollnav) { + function resizeHandler() { + scrollnav.data = updatePositionData(scrollnav.data); + } + + window.addEventListener('resize', resizeHandler); + return resizeHandler; +} + +function teardownClickHandlers(nav, clickHandler) { + var links = nav.querySelectorAll('a'); + links.forEach(function (link) { + link.removeEventListener('click', clickHandler); + }); +} + +function teardownScrollHandler(scrollHandler) { + window.removeEventListener('scroll', scrollHandler); +} + +function teardownResizelHandler(resizeHandler) { + window.removeEventListener('resize', resizeHandler); +} + +/* + * scrollnav + * http://scrollnav.com + * + * Copyright (c) 2013-2018 James Wilson + * Licensed under the MIT license. + */ +var clickHandler; +var scrollHandler; +var resizeHandler; + +function isElement(element) { + return element instanceof Element; +} + +function init(elem, options) { + var defaults = { + sections: 'h2', + insertTarget: elem, + insertLocation: 'before', + easingStyle: 'easeOutQuad', + updateHistory: true + }; + this.settings = extend(defaults, options); + var locationOptions = ['append', 'prepend', 'after', 'before']; + + if (!isElement(elem)) { + if (this.settings.debug) { + // eslint-disable-next-line no-console + console.error("\n scrollnav build failed, content argument \"" + elem + "\" is not an HTML Element\n "); + } + + return; + } + + if (this.settings.insertTarget && !isElement(this.settings.insertTarget)) { + if (this.settings.debug) { + // eslint-disable-next-line no-console + console.error("\n scrollnav build failed, options.insertTarget \"" + elem + "\" is not an HTML Element\n "); + } + + return; + } + + if (!locationOptions.includes(this.settings.insertLocation)) { + if (this.settings.debug) { + // eslint-disable-next-line no-console + console.error("\n scrollnav build failed, options.insertLocation \"" + this.settings.insertLocation + "\" is not a valid option\n "); + } + + return; + } + + var sectionsDom = elem.querySelectorAll(this.settings.sections); + + if (!sectionsDom.length) { + if (this.settings.debug) { + // eslint-disable-next-line no-console + console.error("\n scrollnav build failed, could not find any \"" + this.settings.sections + "\"\n elements inside of \"" + elem + "\"\n "); + } + + return; + } + + this.data = populateSectionData(sectionsDom, this.settings); + this.nav = createNav(this.data); + insertNav(this); + clickHandler = setupClickHandlers(this); + scrollHandler = setupScrollHandler(this); + resizeHandler = setupResizeHandler(this); + if (this.settings.debug) insertVisualDebugger(); + if (this.settings.onInit) return this.settings.onInit(); +} + +function destroy(options) { + this.settings = extend(this.settings, options); + teardownClickHandlers(this.nav, clickHandler); + teardownScrollHandler(scrollHandler); + teardownResizelHandler(resizeHandler); + this.nav.remove(); + if (this.settings.onDestroy) return this.settings.onDestroy(); +} + +function updatePositions(options) { + this.settings = extend(this.settings, options); + this.data = updatePositionData(this.data); + if (this.settings.onUpdatePositions) return this.settings.onUpdatePositions(); +} + +var scrollnav = { + init: init, + destroy: destroy, + updatePositions: updatePositions +}; + +module.exports = scrollnav; //# sourceMappingURL=scrollnav.min.js.map diff --git a/dist/scrollnav.min.js.map b/dist/scrollnav.min.js.map index 189a3a1..b23f958 100644 --- a/dist/scrollnav.min.js.map +++ b/dist/scrollnav.min.js.map @@ -1 +1 @@ -{"version":3,"file":"scrollnav.min.js","sources":["../src/util/extend.js","../src/util/getYPosition.js","../src/util/populateSectionData.js","../src/util/getOrSetID.js","../src/util/nextUntil.js","../src/util/createNav.js","../src/util/createList.js","../src/util/updatePositionData.js","../src/util/getTargetYPosition.js","../src/util/easing.js","../src/scrollnav.js","../src/scrollTo.js","../src/util/calculateScrollDuration.js","../src/setupScrollHandler.js","../src/util/getActiveSection.js","../src/util/updateActiveNavItem.js","../src/util/insertNav.js","../src/util/insertVisualDebugger.js","../src/setupClickHandlers.js","../src/setupResizeHandler.js","../src/teardownClickHandlers.js","../src/teardownScrollHandler.js","../src/teardownResizeHandler.js"],"sourcesContent":["/* Borrowed from https://gist.github.com/cferdinandi/4f8a0e17921c5b46e6c4 */\n\nexport default function extend(defaults, options) {\n const extended = {};\n let prop;\n\n for (prop in defaults) {\n if (Object.prototype.hasOwnProperty.call(defaults, prop)) {\n extended[prop] = defaults[prop];\n }\n }\n\n for (prop in options) {\n if (Object.prototype.hasOwnProperty.call(options, prop)) {\n extended[prop] = options[prop];\n }\n }\n\n return extended;\n}\n","export default function getYPosition(elem, parent) {\n if (typeof elem !== 'object') {\n return Promise.reject(new Error('First argument must be an object'));\n }\n\n parent = parent || document.body;\n if (typeof parent !== 'object') {\n return Promise.reject(new Error('Second argument must be an object'));\n }\n\n const bodyRect = parent.getBoundingClientRect();\n const elemRect = elem.getBoundingClientRect();\n\n return elemRect.top - bodyRect.top;\n}\n","import getOrSetID from './getOrSetID';\nimport getYPosition from './getYPosition';\nimport nextUntil from './nextUntil';\n\nexport default function populateSectionData(\n sections,\n settings,\n prefix = 'scroll-nav'\n) {\n const sectionData = [];\n prefix = prefix + '__';\n\n sections.forEach((elem, i) => {\n let subSectionData = [];\n const id = getOrSetID(elem, prefix + (i + 1));\n\n if (settings.subSections && elem.matches(settings.sections)) {\n const subSectionDom = nextUntil(\n elem,\n settings.sections,\n settings.subSections\n );\n subSectionData = populateSectionData(subSectionDom, settings, id);\n }\n\n sectionData.push({\n id: id,\n text: elem.innerText || elem.textContent,\n offsetTop: getYPosition(elem),\n subSections: subSectionData\n });\n });\n\n return sectionData;\n}\n","export default function getOrSetID(elem, setID) {\n if (typeof elem !== 'object') {\n return Promise.reject(new Error('First argument must be an object'));\n }\n\n let id = elem.id;\n\n if (!id) {\n if (typeof setID !== 'string') {\n return Promise.reject(new Error('Second argument must be a string'));\n }\n\n id = setID;\n elem.id = id;\n }\n return id;\n}\n","/* Borrowed from https://github.com/cferdinandi/nextUntil */\n\nexport default function nextUntil(elem, selector, filter) {\n var siblings = [];\n\n elem = elem.nextElementSibling;\n\n while (elem) {\n if (elem.matches(selector)) break;\n\n if (filter && !elem.matches(filter)) {\n elem = elem.nextElementSibling;\n continue;\n }\n\n siblings.push(elem);\n\n elem = elem.nextElementSibling;\n }\n\n return siblings;\n}\n","import createList from './createList';\n\nexport default function createNav(data) {\n const nav = document.createElement('nav');\n nav.className = 'scroll-nav';\n nav.innerHTML = createList(data);\n\n return nav;\n}\n","export default function createList(data, isSubList = false) {\n const suffix = isSubList ? '__sub-' : '__';\n const baseClass = 'scroll-nav' + suffix;\n\n const itemsMarkup = `\n ${data\n .map(\n item =>\n `
  • \n ${item.text}\n ${\n item.subSections && item.subSections.length\n ? `${createList(item.subSections, true)}`\n : ''\n }\n
  • `\n )\n .join('')}\n `;\n\n const list = `\n
      \n ${itemsMarkup}\n
    \n `;\n\n return list;\n}\n","import getYPosition from './getYPosition';\n\nexport default function updatePositionData(data) {\n data.forEach(section => {\n const sectionDom = document.querySelector(`#${section.id}`);\n section.offsetTop = getYPosition(sectionDom);\n\n if (section.subSections.length) {\n section.subSections = updatePositionData(section.subSections);\n }\n });\n\n return data;\n}\n","export default function getTargetYPosition(target, data) {\n let id = target.getAttribute('href');\n if (id.charAt(0) === '#') {\n id = id.substr(1);\n }\n\n const targetSection = filterData(data, id);\n\n return targetSection.offsetTop;\n}\n\nfunction filterData(data, id) {\n let targetSection;\n\n data.forEach(section => {\n if (section.id === id) {\n targetSection = section;\n }\n\n if (section.subSections && targetSection === undefined) {\n targetSection = filterData(section.subSections, id);\n }\n });\n\n return targetSection;\n}\n","/* Borrowed from https://gist.github.com/gre/1650294#gistcomment-1806616 */\n\nconst easeIn = p => t => Math.pow(t, p);\nconst easeOut = p => t => 1 - Math.abs(Math.pow(t - 1, p));\nconst easeInOut = p => t =>\n t < 0.5 ? easeIn(p)(t * 2) / 2 : easeOut(p)(t * 2 - 1) / 2 + 0.5;\n\nconst easing = {\n linear: easeInOut(1),\n easeInQuad: easeIn(2),\n easeOutQuad: easeOut(2),\n easeInOutQuad: easeInOut(2),\n easeInCubic: easeIn(3),\n easeOutCubic: easeOut(3),\n easeInOutCubic: easeInOut(3),\n easeInQuart: easeIn(4),\n easeOutQuart: easeOut(4),\n easeInOutQuart: easeInOut(4),\n easeInQuint: easeIn(5),\n easeOutQuint: easeOut(5),\n easeInOutQuint: easeInOut(5)\n};\n\nexport { easing };\n","/*\n * scrollnav\n * http://scrollnav.com\n *\n * Copyright (c) 2013-2018 James Wilson\n * Licensed under the MIT license.\n */\n\nimport extend from './util/extend';\nimport populateSectionData from './util/populateSectionData';\nimport createNav from './util/createNav';\nimport insertNav from './util/insertNav';\nimport updatePositionData from './util/updatePositionData';\nimport insertVisualDebugger from './util/insertVisualDebugger';\nimport setupClickHandlers from './setupClickHandlers';\nimport setupScrollHandler from './setupScrollHandler';\nimport setupResizeHandler from './setupResizeHandler';\nimport teardownClickHandlers from './teardownClickHandlers';\nimport teardownScrollHandler from './teardownScrollHandler';\nimport teardownResizeHandler from './teardownResizeHandler';\n\nlet clickHandler;\nlet scrollHandler;\nlet resizeHandler;\n\nfunction isElement(element) {\n return element instanceof Element;\n}\n\nfunction init(elem, options) {\n const defaults = {\n sections: 'h2',\n insertTarget: elem,\n insertLocation: 'before',\n easingStyle: 'easeOutQuad',\n updateHistory: true\n };\n this.settings = extend(defaults, options);\n const locationOptions = ['append', 'prepend', 'after', 'before'];\n\n if (!isElement(elem)) {\n if (this.settings.debug) {\n // eslint-disable-next-line no-console\n console.error(`\n scrollnav build failed, content argument \"${elem}\" is not an HTML Element\n `);\n }\n return;\n }\n\n if (this.settings.insertTarget && !isElement(this.settings.insertTarget)) {\n if (this.settings.debug) {\n // eslint-disable-next-line no-console\n console.error(`\n scrollnav build failed, options.insertTarget \"${elem}\" is not an HTML Element\n `);\n }\n return;\n }\n\n if (!locationOptions.includes(this.settings.insertLocation)) {\n if (this.settings.debug) {\n // eslint-disable-next-line no-console\n console.error(`\n scrollnav build failed, options.insertLocation \"${\n this.settings.insertLocation\n }\" is not a valid option\n `);\n }\n return;\n }\n\n const sectionsDom = elem.querySelectorAll(this.settings.sections);\n\n if (!sectionsDom.length) {\n if (this.settings.debug) {\n // eslint-disable-next-line no-console\n console.error(`\n scrollnav build failed, could not find any \"${this.settings.sections}\"\n elements inside of \"${elem}\"\n `);\n }\n return;\n }\n\n this.data = populateSectionData(sectionsDom, this.settings);\n this.nav = createNav(this.data);\n\n insertNav(this);\n clickHandler = setupClickHandlers(this);\n scrollHandler = setupScrollHandler(this);\n resizeHandler = setupResizeHandler(this);\n\n if (this.settings.debug) insertVisualDebugger();\n if (this.settings.onInit) return this.settings.onInit();\n}\n\nfunction destroy(options) {\n this.settings = extend(this.settings, options);\n\n teardownClickHandlers(this.nav, clickHandler);\n teardownScrollHandler(scrollHandler);\n teardownResizeHandler(resizeHandler);\n this.nav.remove();\n\n if (this.settings.onDestroy) return this.settings.onDestroy();\n}\n\nfunction updatePositions(options) {\n this.settings = extend(this.settings, options);\n this.data = updatePositionData(this.data);\n\n if (this.settings.onUpdatePositions) return this.settings.onUpdatePositions();\n}\n\nconst scrollnav = {\n init: init,\n destroy: destroy,\n updatePositions: updatePositions\n};\n\nexport default scrollnav;\n","import calculateScrollDuration from './util/calculateScrollDuration';\nimport { easing } from './util/easing';\n\n/* istanbul ignore next */\nexport default function scrollTo(targetPosition, easingStyle) {\n return new Promise((resolve, reject) => {\n if (typeof targetPosition !== 'number') {\n return reject(new Error('First argument must be a number'));\n }\n\n easingStyle = easingStyle || 'linear';\n if (typeof easingStyle !== 'string') {\n return reject(new Error('Second argument must be a string'));\n }\n\n const startingPosition = window.pageYOffset;\n const distance = targetPosition - startingPosition;\n const duration = calculateScrollDuration(distance);\n const framerate = 50;\n const increment = 1000 / framerate;\n let ellapsedTime = 0;\n let easedTime;\n let next;\n\n function animateScroll() {\n ellapsedTime += increment;\n easedTime = easing[easingStyle](ellapsedTime / duration);\n next = easedTime * distance + startingPosition;\n window.scroll(0, next);\n\n if (ellapsedTime < duration) {\n setTimeout(animateScroll, increment);\n } else {\n resolve(window.pageYOffset);\n }\n }\n\n animateScroll();\n });\n}\n","export default function calculateScrollDuration(distance) {\n const halfDistance = Math.abs(distance / 2);\n\n return Math.min(Math.max(halfDistance, 250), 1200);\n}\n","import getActiveSection from './util/getActiveSection';\nimport updateActiveNavItem from './util/updateActiveNavItem';\n\nexport default function setupScrollHandler(scrollnav) {\n function scrollHandler() {\n const top = window.scrollY || window.pageYOffset || document.body.scrollTop;\n const boundryTop = top;\n const boundryBottom = top + window.innerHeight * 0.4;\n const activeSection = getActiveSection(\n scrollnav.data,\n boundryTop,\n boundryBottom\n );\n\n updateActiveNavItem(activeSection, scrollnav.nav);\n\n return activeSection;\n }\n\n window.addEventListener('scroll', scrollHandler);\n\n return scrollHandler;\n}\n","export default function getActiveSection(data, boundryTop, boundryBottom) {\n let activeSection;\n\n data.forEach(section => {\n if (section.offsetTop > boundryBottom) {\n if (!activeSection && section.offsetTop < boundryTop) {\n activeSection = section;\n }\n } else {\n activeSection = section;\n }\n });\n\n if (activeSection && activeSection.subSections.length) {\n let activeSubSection;\n\n activeSubSection = getActiveSection(\n activeSection.subSections,\n boundryTop,\n boundryBottom\n );\n\n if (activeSubSection) {\n activeSection = activeSubSection;\n }\n }\n\n return activeSection;\n}\n","export default function updateActiveNavItem(activeSection, nav) {\n const previousActive = nav.querySelector('[data-sn-active]');\n\n if (!activeSection) {\n if (previousActive) {\n previousActive.classList.remove('scroll-nav__item--active');\n previousActive.removeAttribute('data-sn-active');\n }\n\n return;\n }\n\n const newActive = nav.querySelector(\n '[data-sn-section=' + activeSection.id + ']'\n );\n\n if (newActive && newActive !== previousActive) {\n if (previousActive) {\n previousActive.classList.remove('scroll-nav__item--active');\n previousActive.removeAttribute('data-sn-active');\n }\n newActive.classList.add('scroll-nav__item--active');\n newActive.setAttribute('data-sn-active', true);\n }\n}\n","export default function insertNav(scrollnav) {\n const target = scrollnav.settings.insertTarget;\n const location = scrollnav.settings.insertLocation;\n\n if (location === 'append') {\n target.appendChild(scrollnav.nav);\n } else if (location === 'prepend') {\n target.insertBefore(scrollnav.nav, target.firstChild);\n } else if (location === 'before') {\n target.parentNode.insertBefore(scrollnav.nav, target);\n } else if (location === 'after') {\n target.parentNode.insertBefore(scrollnav.nav, target.nextSibling);\n }\n}\n","export default function insertVisualDebugger() {\n const snDebugger = document.createElement('div');\n snDebugger.className = 'snDebugger';\n\n snDebugger.setAttribute(\n 'style',\n `\n position: fixed;\n top: 40%;\n height: 0px;\n border-bottom:5px solid red;\n border-top: 5px solid blue;\n width: 100%;\n opacity: .5;\n pointer-events: none;\n `\n );\n\n document.body.appendChild(snDebugger);\n}\n","import getTargetYPosition from './util/getTargetYPosition';\nimport scrollTo from './scrollTo';\n\nexport default function setupClickHandlers(scrollnav) {\n const settings = scrollnav.settings;\n function clickHandler(event) {\n event.preventDefault();\n\n const activeArea = window.innerHeight * 0.39;\n const targetYPosition = getTargetYPosition(event.target, scrollnav.data);\n const scrollYTarget = targetYPosition - activeArea;\n\n /* istanbul ignore next */\n return scrollTo(scrollYTarget, settings.easingStyle).then(() => {\n if (settings.updateHistory) {\n history.replaceState({}, '', event.target.getAttribute('href'));\n }\n\n if (settings.onScroll) {\n settings.onScroll();\n }\n });\n }\n\n const links = scrollnav.nav.querySelectorAll('a');\n links.forEach(link => {\n link.addEventListener('click', clickHandler);\n });\n\n return clickHandler;\n}\n","import updatePositionData from './util/updatePositionData';\n\nexport default function setupResizeHandler(scrollnav) {\n function resizeHandler() {\n scrollnav.data = updatePositionData(scrollnav.data);\n }\n\n window.addEventListener('resize', resizeHandler);\n\n return resizeHandler;\n}\n","export default function teardownClickHandlers(nav, clickHandler) {\n const links = nav.querySelectorAll('a');\n links.forEach(link => {\n link.removeEventListener('click', clickHandler);\n });\n}\n","export default function teardownScrollHandler(scrollHandler) {\n window.removeEventListener('scroll', scrollHandler);\n}\n","export default function teardownResizelHandler(resizeHandler) {\n window.removeEventListener('resize', resizeHandler);\n}\n"],"names":["extend","defaults","options","prop","extended","Object","prototype","hasOwnProperty","call","getYPosition","elem","parent","Promise","reject","Error","document","body","bodyRect","getBoundingClientRect","top","populateSectionData","sections","settings","prefix","sectionData","forEach","i","subSectionData","id","setID","getOrSetID","subSections","matches","selector","filter","siblings","nextElementSibling","push","nextUntil","text","innerText","textContent","offsetTop","createNav","data","nav","createElement","className","innerHTML","createList","isSubList","baseClass","itemsMarkup","map","item","length","join","updatePositionData","section","sectionDom","querySelector","getTargetYPosition","target","getAttribute","charAt","substr","filterData","targetSection","undefined","const","clickHandler","scrollHandler","resizeHandler","easeIn","p","t","Math","pow","easeOut","abs","easeInOut","easing","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","scrollTo","targetPosition","easingStyle","resolve","easedTime","startingPosition","window","pageYOffset","distance","duration","halfDistance","min","max","calculateScrollDuration","increment","ellapsedTime","animateScroll","scroll","setTimeout","setupScrollHandler","scrollnav","scrollY","scrollTop","boundryBottom","innerHeight","activeSection","getActiveSection","boundryTop","activeSubSection","previousActive","newActive","classList","remove","removeAttribute","add","setAttribute","updateActiveNavItem","addEventListener","isElement","element","Element","init","insertTarget","insertLocation","updateHistory","this","includes","location","snDebugger","sectionsDom","querySelectorAll","appendChild","insertBefore","firstChild","parentNode","nextSibling","event","preventDefault","activeArea","then","history","replaceState","onScroll","link","setupClickHandlers","setupResizeHandler","debug","onInit","console","error","destroy","removeEventListener","teardownClickHandlers","teardownScrollHandler","teardownResizeHandler","onDestroy","updatePositions","onUpdatePositions"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"scrollnav.min.js","sources":["../src/util/extend.js","../src/util/getOrSetID.js","../src/util/getYPosition.js","../src/util/nextUntil.js","../src/util/populateSectionData.js","../src/util/createList.js","../src/util/createNav.js","../src/util/insertNav.js","../src/util/updatePositionData.js","../src/util/insertVisualDebugger.js","../src/util/getTargetYPosition.js","../src/util/calculateScrollDuration.js","../src/util/easing.js","../src/scrollTo.js","../src/setupClickHandlers.js","../src/util/getActiveSection.js","../src/util/updateActiveNavItem.js","../src/setupScrollHandler.js","../src/setupResizeHandler.js","../src/teardownClickHandlers.js","../src/teardownScrollHandler.js","../src/teardownResizeHandler.js","../src/scrollnav.js"],"sourcesContent":["/* Borrowed from https://gist.github.com/cferdinandi/4f8a0e17921c5b46e6c4 */\n\nexport default function extend(defaults, options) {\n const extended = {};\n let prop;\n\n for (prop in defaults) {\n if (Object.prototype.hasOwnProperty.call(defaults, prop)) {\n extended[prop] = defaults[prop];\n }\n }\n\n for (prop in options) {\n if (Object.prototype.hasOwnProperty.call(options, prop)) {\n extended[prop] = options[prop];\n }\n }\n\n return extended;\n}\n","export default function getOrSetID(elem, setID) {\n if (typeof elem !== 'object') {\n return Promise.reject(new Error('First argument must be an object'));\n }\n\n let id = elem.id;\n\n if (!id) {\n if (typeof setID !== 'string') {\n return Promise.reject(new Error('Second argument must be a string'));\n }\n\n id = setID;\n elem.id = id;\n }\n return id;\n}\n","export default function getYPosition(elem, parent) {\n if (typeof elem !== 'object') {\n return Promise.reject(new Error('First argument must be an object'));\n }\n\n parent = parent || document.body;\n if (typeof parent !== 'object') {\n return Promise.reject(new Error('Second argument must be an object'));\n }\n\n const bodyRect = parent.getBoundingClientRect();\n const elemRect = elem.getBoundingClientRect();\n\n return elemRect.top - bodyRect.top;\n}\n","/* Borrowed from https://github.com/cferdinandi/nextUntil */\n\nexport default function nextUntil(elem, selector, filter) {\n var siblings = [];\n\n elem = elem.nextElementSibling;\n\n while (elem) {\n if (elem.matches(selector)) break;\n\n if (filter && !elem.matches(filter)) {\n elem = elem.nextElementSibling;\n continue;\n }\n\n siblings.push(elem);\n\n elem = elem.nextElementSibling;\n }\n\n return siblings;\n}\n","import getOrSetID from './getOrSetID';\nimport getYPosition from './getYPosition';\nimport nextUntil from './nextUntil';\n\nexport default function populateSectionData(\n sections,\n settings,\n prefix = 'scroll-nav'\n) {\n const sectionData = [];\n prefix = prefix + '__';\n\n sections.forEach((elem, i) => {\n let subSectionData = [];\n const id = getOrSetID(elem, prefix + (i + 1));\n\n if (settings.subSections && elem.matches(settings.sections)) {\n const subSectionDom = nextUntil(\n elem,\n settings.sections,\n settings.subSections\n );\n subSectionData = populateSectionData(subSectionDom, settings, id);\n }\n\n sectionData.push({\n id: id,\n text: elem.innerText || elem.textContent,\n offsetTop: getYPosition(elem),\n subSections: subSectionData\n });\n });\n\n return sectionData;\n}\n","export default function createList(data, isSubList = false) {\n const suffix = isSubList ? '__sub-' : '__';\n const baseClass = 'scroll-nav' + suffix;\n\n const itemsMarkup = `\n ${data\n .map(\n item =>\n `
  • \n ${item.text}\n ${\n item.subSections && item.subSections.length\n ? `${createList(item.subSections, true)}`\n : ''\n }\n
  • `\n )\n .join('')}\n `;\n\n const list = `\n
      \n ${itemsMarkup}\n
    \n `;\n\n return list;\n}\n","import createList from './createList';\n\nexport default function createNav(data) {\n const nav = document.createElement('nav');\n nav.className = 'scroll-nav';\n nav.innerHTML = createList(data);\n\n return nav;\n}\n","export default function insertNav(scrollnav) {\n const target = scrollnav.settings.insertTarget;\n const location = scrollnav.settings.insertLocation;\n\n if (location === 'append') {\n target.appendChild(scrollnav.nav);\n } else if (location === 'prepend') {\n target.insertBefore(scrollnav.nav, target.firstChild);\n } else if (location === 'before') {\n target.parentNode.insertBefore(scrollnav.nav, target);\n } else if (location === 'after') {\n target.parentNode.insertBefore(scrollnav.nav, target.nextSibling);\n }\n}\n","import getYPosition from './getYPosition';\n\nexport default function updatePositionData(data) {\n data.forEach(section => {\n const sectionDom = document.querySelector(`#${section.id}`);\n section.offsetTop = getYPosition(sectionDom);\n\n if (section.subSections.length) {\n section.subSections = updatePositionData(section.subSections);\n }\n });\n\n return data;\n}\n","export default function insertVisualDebugger() {\n const snDebugger = document.createElement('div');\n snDebugger.className = 'snDebugger';\n\n snDebugger.setAttribute(\n 'style',\n `\n position: fixed;\n top: 40%;\n height: 0px;\n border-bottom:5px solid red;\n border-top: 5px solid blue;\n width: 100%;\n opacity: .5;\n pointer-events: none;\n `\n );\n\n document.body.appendChild(snDebugger);\n}\n","export default function getTargetYPosition(target, data) {\n let id = target.getAttribute('href');\n if (id.charAt(0) === '#') {\n id = id.substr(1);\n }\n\n const targetSection = filterData(data, id);\n\n return targetSection.offsetTop;\n}\n\nfunction filterData(data, id) {\n let targetSection;\n\n data.forEach(section => {\n if (section.id === id) {\n targetSection = section;\n }\n\n if (section.subSections && targetSection === undefined) {\n targetSection = filterData(section.subSections, id);\n }\n });\n\n return targetSection;\n}\n","export default function calculateScrollDuration(distance) {\n const halfDistance = Math.abs(distance / 2);\n\n return Math.min(Math.max(halfDistance, 250), 1200);\n}\n","/* Borrowed from https://gist.github.com/gre/1650294#gistcomment-1806616 */\n\nconst easeIn = p => t => Math.pow(t, p);\nconst easeOut = p => t => 1 - Math.abs(Math.pow(t - 1, p));\nconst easeInOut = p => t =>\n t < 0.5 ? easeIn(p)(t * 2) / 2 : easeOut(p)(t * 2 - 1) / 2 + 0.5;\n\nconst easing = {\n linear: easeInOut(1),\n easeInQuad: easeIn(2),\n easeOutQuad: easeOut(2),\n easeInOutQuad: easeInOut(2),\n easeInCubic: easeIn(3),\n easeOutCubic: easeOut(3),\n easeInOutCubic: easeInOut(3),\n easeInQuart: easeIn(4),\n easeOutQuart: easeOut(4),\n easeInOutQuart: easeInOut(4),\n easeInQuint: easeIn(5),\n easeOutQuint: easeOut(5),\n easeInOutQuint: easeInOut(5)\n};\n\nexport { easing };\n","import calculateScrollDuration from './util/calculateScrollDuration';\nimport { easing } from './util/easing';\n\n/* istanbul ignore next */\nexport default function scrollTo(targetPosition, easingStyle) {\n return new Promise((resolve, reject) => {\n if (typeof targetPosition !== 'number') {\n return reject(new Error('First argument must be a number'));\n }\n\n easingStyle = easingStyle || 'linear';\n if (typeof easingStyle !== 'string') {\n return reject(new Error('Second argument must be a string'));\n }\n\n const startingPosition = window.pageYOffset;\n const distance = targetPosition - startingPosition;\n const duration = calculateScrollDuration(distance);\n const framerate = 50;\n const increment = 1000 / framerate;\n let ellapsedTime = 0;\n let easedTime;\n let next;\n\n function animateScroll() {\n ellapsedTime += increment;\n easedTime = easing[easingStyle](ellapsedTime / duration);\n next = easedTime * distance + startingPosition;\n window.scroll(0, next);\n\n if (ellapsedTime < duration) {\n setTimeout(animateScroll, increment);\n } else {\n resolve(window.pageYOffset);\n }\n }\n\n if (easingStyle == 'none') {\n window.scroll(0, targetPosition);\n } else {\n animateScroll();\n }\n });\n}\n","import getTargetYPosition from './util/getTargetYPosition';\nimport scrollTo from './scrollTo';\n\nexport default function setupClickHandlers(scrollnav) {\n const settings = scrollnav.settings;\n function clickHandler(event) {\n event.preventDefault();\n\n const activeArea = window.innerHeight * 0.39;\n const targetYPosition = getTargetYPosition(event.target, scrollnav.data);\n const scrollYTarget = targetYPosition - activeArea;\n\n /* istanbul ignore next */\n return scrollTo(scrollYTarget, settings.easingStyle).then(() => {\n if (settings.updateHistory) {\n history.replaceState({}, '', event.target.getAttribute('href'));\n }\n\n if (settings.onScroll) {\n settings.onScroll();\n }\n });\n }\n\n const links = scrollnav.nav.querySelectorAll('a');\n links.forEach(link => {\n link.addEventListener('click', clickHandler);\n });\n\n return clickHandler;\n}\n","export default function getActiveSection(data, boundryTop, boundryBottom) {\n let activeSection;\n\n data.forEach(section => {\n if (section.offsetTop > boundryBottom) {\n if (!activeSection && section.offsetTop < boundryTop) {\n activeSection = section;\n }\n } else {\n activeSection = section;\n }\n });\n\n if (activeSection && activeSection.subSections.length) {\n let activeSubSection;\n\n activeSubSection = getActiveSection(\n activeSection.subSections,\n boundryTop,\n boundryBottom\n );\n\n if (activeSubSection) {\n activeSection = activeSubSection;\n }\n }\n\n return activeSection;\n}\n","export default function updateActiveNavItem(activeSection, nav) {\n const previousActive = nav.querySelector('[data-sn-active]');\n\n if (!activeSection) {\n if (previousActive) {\n previousActive.classList.remove('scroll-nav__item--active');\n previousActive.removeAttribute('data-sn-active');\n }\n\n return;\n }\n\n const newActive = nav.querySelector(\n '[data-sn-section=' + activeSection.id + ']'\n );\n\n if (newActive && newActive !== previousActive) {\n if (previousActive) {\n previousActive.classList.remove('scroll-nav__item--active');\n previousActive.removeAttribute('data-sn-active');\n }\n newActive.classList.add('scroll-nav__item--active');\n newActive.setAttribute('data-sn-active', true);\n }\n}\n","import getActiveSection from './util/getActiveSection';\nimport updateActiveNavItem from './util/updateActiveNavItem';\n\nexport default function setupScrollHandler(scrollnav) {\n function scrollHandler() {\n const top = window.scrollY || window.pageYOffset || document.body.scrollTop;\n const boundryTop = top;\n const boundryBottom = top + window.innerHeight * 0.4;\n const activeSection = getActiveSection(\n scrollnav.data,\n boundryTop,\n boundryBottom\n );\n\n updateActiveNavItem(activeSection, scrollnav.nav);\n\n return activeSection;\n }\n\n window.addEventListener('scroll', scrollHandler);\n\n return scrollHandler;\n}\n","import updatePositionData from './util/updatePositionData';\n\nexport default function setupResizeHandler(scrollnav) {\n function resizeHandler() {\n scrollnav.data = updatePositionData(scrollnav.data);\n }\n\n window.addEventListener('resize', resizeHandler);\n\n return resizeHandler;\n}\n","export default function teardownClickHandlers(nav, clickHandler) {\n const links = nav.querySelectorAll('a');\n links.forEach(link => {\n link.removeEventListener('click', clickHandler);\n });\n}\n","export default function teardownScrollHandler(scrollHandler) {\n window.removeEventListener('scroll', scrollHandler);\n}\n","export default function teardownResizelHandler(resizeHandler) {\n window.removeEventListener('resize', resizeHandler);\n}\n","/*\n * scrollnav\n * http://scrollnav.com\n *\n * Copyright (c) 2013-2018 James Wilson\n * Licensed under the MIT license.\n */\n\nimport extend from './util/extend';\nimport populateSectionData from './util/populateSectionData';\nimport createNav from './util/createNav';\nimport insertNav from './util/insertNav';\nimport updatePositionData from './util/updatePositionData';\nimport insertVisualDebugger from './util/insertVisualDebugger';\nimport setupClickHandlers from './setupClickHandlers';\nimport setupScrollHandler from './setupScrollHandler';\nimport setupResizeHandler from './setupResizeHandler';\nimport teardownClickHandlers from './teardownClickHandlers';\nimport teardownScrollHandler from './teardownScrollHandler';\nimport teardownResizeHandler from './teardownResizeHandler';\n\nlet clickHandler;\nlet scrollHandler;\nlet resizeHandler;\n\nfunction isElement(element) {\n return element instanceof Element;\n}\n\nfunction init(elem, options) {\n const defaults = {\n sections: 'h2',\n insertTarget: elem,\n insertLocation: 'before',\n easingStyle: 'easeOutQuad',\n updateHistory: true\n };\n this.settings = extend(defaults, options);\n const locationOptions = ['append', 'prepend', 'after', 'before'];\n\n if (!isElement(elem)) {\n if (this.settings.debug) {\n // eslint-disable-next-line no-console\n console.error(`\n scrollnav build failed, content argument \"${elem}\" is not an HTML Element\n `);\n }\n return;\n }\n\n if (this.settings.insertTarget && !isElement(this.settings.insertTarget)) {\n if (this.settings.debug) {\n // eslint-disable-next-line no-console\n console.error(`\n scrollnav build failed, options.insertTarget \"${elem}\" is not an HTML Element\n `);\n }\n return;\n }\n\n if (!locationOptions.includes(this.settings.insertLocation)) {\n if (this.settings.debug) {\n // eslint-disable-next-line no-console\n console.error(`\n scrollnav build failed, options.insertLocation \"${this.settings.insertLocation}\" is not a valid option\n `);\n }\n return;\n }\n\n const sectionsDom = elem.querySelectorAll(this.settings.sections);\n\n if (!sectionsDom.length) {\n if (this.settings.debug) {\n // eslint-disable-next-line no-console\n console.error(`\n scrollnav build failed, could not find any \"${this.settings.sections}\"\n elements inside of \"${elem}\"\n `);\n }\n return;\n }\n\n this.data = populateSectionData(sectionsDom, this.settings);\n this.nav = createNav(this.data);\n\n insertNav(this);\n clickHandler = setupClickHandlers(this);\n scrollHandler = setupScrollHandler(this);\n resizeHandler = setupResizeHandler(this);\n\n if (this.settings.debug) insertVisualDebugger();\n if (this.settings.onInit) return this.settings.onInit();\n}\n\nfunction destroy(options) {\n this.settings = extend(this.settings, options);\n\n teardownClickHandlers(this.nav, clickHandler);\n teardownScrollHandler(scrollHandler);\n teardownResizeHandler(resizeHandler);\n this.nav.remove();\n\n if (this.settings.onDestroy) return this.settings.onDestroy();\n}\n\nfunction updatePositions(options) {\n this.settings = extend(this.settings, options);\n this.data = updatePositionData(this.data);\n\n if (this.settings.onUpdatePositions) return this.settings.onUpdatePositions();\n}\n\nconst scrollnav = {\n init: init,\n destroy: destroy,\n updatePositions: updatePositions\n};\n\nexport default scrollnav;\n"],"names":["extend","defaults","options","extended","prop","Object","prototype","hasOwnProperty","call","getOrSetID","elem","setID","Promise","reject","Error","id","getYPosition","parent","document","body","bodyRect","getBoundingClientRect","elemRect","top","nextUntil","selector","filter","siblings","nextElementSibling","matches","push","populateSectionData","sections","settings","prefix","sectionData","forEach","i","subSectionData","subSections","subSectionDom","text","innerText","textContent","offsetTop","createList","data","isSubList","suffix","baseClass","itemsMarkup","map","item","length","join","list","createNav","nav","createElement","className","innerHTML","insertNav","scrollnav","target","insertTarget","location","insertLocation","appendChild","insertBefore","firstChild","parentNode","nextSibling","updatePositionData","section","sectionDom","querySelector","insertVisualDebugger","snDebugger","setAttribute","getTargetYPosition","getAttribute","charAt","substr","targetSection","filterData","undefined","calculateScrollDuration","distance","halfDistance","Math","abs","min","max","easeIn","p","t","pow","easeOut","easeInOut","easing","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","scrollTo","targetPosition","easingStyle","resolve","startingPosition","window","pageYOffset","duration","framerate","increment","ellapsedTime","easedTime","next","animateScroll","scroll","setTimeout","setupClickHandlers","clickHandler","event","preventDefault","activeArea","innerHeight","targetYPosition","scrollYTarget","then","updateHistory","history","replaceState","onScroll","links","querySelectorAll","link","addEventListener","getActiveSection","boundryTop","boundryBottom","activeSection","activeSubSection","updateActiveNavItem","previousActive","classList","remove","removeAttribute","newActive","add","setupScrollHandler","scrollHandler","scrollY","scrollTop","setupResizeHandler","resizeHandler","teardownClickHandlers","removeEventListener","teardownScrollHandler","teardownResizelHandler","isElement","element","Element","init","locationOptions","debug","console","error","includes","sectionsDom","onInit","destroy","teardownResizeHandler","onDestroy","updatePositions","onUpdatePositions"],"mappings":"AAAA;AAEe,SAASA,MAAT,CAAgBC,QAAhB,EAA0BC,OAA1B,EAAmC;AAChD,MAAMC,QAAQ,GAAG,EAAjB;AACA,MAAIC,IAAJ;;AAEA,OAAKA,IAAL,IAAaH,QAAb,EAAuB;AACrB,QAAII,MAAM,CAACC,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqCP,QAArC,EAA+CG,IAA/C,CAAJ,EAA0D;AACxDD,MAAAA,QAAQ,CAACC,IAAD,CAAR,GAAiBH,QAAQ,CAACG,IAAD,CAAzB;AACD;AACF;;AAED,OAAKA,IAAL,IAAaF,OAAb,EAAsB;AACpB,QAAIG,MAAM,CAACC,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqCN,OAArC,EAA8CE,IAA9C,CAAJ,EAAyD;AACvDD,MAAAA,QAAQ,CAACC,IAAD,CAAR,GAAiBF,OAAO,CAACE,IAAD,CAAxB;AACD;AACF;;AAED,SAAOD,QAAP;AACD;;ACnBc,SAASM,UAAT,CAAoBC,IAApB,EAA0BC,KAA1B,EAAiC;AAC9C,MAAI,OAAOD,IAAP,KAAgB,QAApB,EAA8B;AAC5B,WAAOE,OAAO,CAACC,MAAR,CAAe,IAAIC,KAAJ,CAAU,kCAAV,CAAf,CAAP;AACD;;AAED,MAAIC,EAAE,GAAGL,IAAI,CAACK,EAAd;;AAEA,MAAI,CAACA,EAAL,EAAS;AACP,QAAI,OAAOJ,KAAP,KAAiB,QAArB,EAA+B;AAC7B,aAAOC,OAAO,CAACC,MAAR,CAAe,IAAIC,KAAJ,CAAU,kCAAV,CAAf,CAAP;AACD;;AAEDC,IAAAA,EAAE,GAAGJ,KAAL;AACAD,IAAAA,IAAI,CAACK,EAAL,GAAUA,EAAV;AACD;;AACD,SAAOA,EAAP;AACD;;AChBc,SAASC,YAAT,CAAsBN,IAAtB,EAA4BO,MAA5B,EAAoC;AACjD,MAAI,OAAOP,IAAP,KAAgB,QAApB,EAA8B;AAC5B,WAAOE,OAAO,CAACC,MAAR,CAAe,IAAIC,KAAJ,CAAU,kCAAV,CAAf,CAAP;AACD;;AAEDG,EAAAA,MAAM,GAAGA,MAAM,IAAIC,QAAQ,CAACC,IAA5B;;AACA,MAAI,OAAOF,MAAP,KAAkB,QAAtB,EAAgC;AAC9B,WAAOL,OAAO,CAACC,MAAR,CAAe,IAAIC,KAAJ,CAAU,mCAAV,CAAf,CAAP;AACD;;AAED,MAAMM,QAAQ,GAAGH,MAAM,CAACI,qBAAP,EAAjB;AACA,MAAMC,QAAQ,GAAGZ,IAAI,CAACW,qBAAL,EAAjB;AAEA,SAAOC,QAAQ,CAACC,GAAT,GAAeH,QAAQ,CAACG,GAA/B;AACD;;ACdD;AAEe,SAASC,SAAT,CAAmBd,IAAnB,EAAyBe,QAAzB,EAAmCC,MAAnC,EAA2C;AACxD,MAAIC,QAAQ,GAAG,EAAf;AAEAjB,EAAAA,IAAI,GAAGA,IAAI,CAACkB,kBAAZ;;AAEA,SAAOlB,IAAP,EAAa;AACX,QAAIA,IAAI,CAACmB,OAAL,CAAaJ,QAAb,CAAJ,EAA4B;;AAE5B,QAAIC,MAAM,IAAI,CAAChB,IAAI,CAACmB,OAAL,CAAaH,MAAb,CAAf,EAAqC;AACnChB,MAAAA,IAAI,GAAGA,IAAI,CAACkB,kBAAZ;AACA;AACD;;AAEDD,IAAAA,QAAQ,CAACG,IAAT,CAAcpB,IAAd;AAEAA,IAAAA,IAAI,GAAGA,IAAI,CAACkB,kBAAZ;AACD;;AAED,SAAOD,QAAP;AACD;;ACjBc,SAASI,mBAAT,CACbC,QADa,EAEbC,QAFa,EAGbC,MAHa,EAIb;AAAA,MADAA,MACA;AADAA,IAAAA,MACA,GADS,YACT;AAAA;;AACA,MAAMC,WAAW,GAAG,EAApB;AACAD,EAAAA,MAAM,GAAGA,MAAM,GAAG,IAAlB;AAEAF,EAAAA,QAAQ,CAACI,OAAT,CAAiB,UAAC1B,IAAD,EAAO2B,CAAP,EAAa;AAC5B,QAAIC,cAAc,GAAG,EAArB;AACA,QAAMvB,EAAE,GAAGN,UAAU,CAACC,IAAD,EAAOwB,MAAM,IAAIG,CAAC,GAAG,CAAR,CAAb,CAArB;;AAEA,QAAIJ,QAAQ,CAACM,WAAT,IAAwB7B,IAAI,CAACmB,OAAL,CAAaI,QAAQ,CAACD,QAAtB,CAA5B,EAA6D;AAC3D,UAAMQ,aAAa,GAAGhB,SAAS,CAC7Bd,IAD6B,EAE7BuB,QAAQ,CAACD,QAFoB,EAG7BC,QAAQ,CAACM,WAHoB,CAA/B;AAKAD,MAAAA,cAAc,GAAGP,mBAAmB,CAACS,aAAD,EAAgBP,QAAhB,EAA0BlB,EAA1B,CAApC;AACD;;AAEDoB,IAAAA,WAAW,CAACL,IAAZ,CAAiB;AACff,MAAAA,EAAE,EAAEA,EADW;AAEf0B,MAAAA,IAAI,EAAE/B,IAAI,CAACgC,SAAL,IAAkBhC,IAAI,CAACiC,WAFd;AAGfC,MAAAA,SAAS,EAAE5B,YAAY,CAACN,IAAD,CAHR;AAIf6B,MAAAA,WAAW,EAAED;AAJE,KAAjB;AAMD,GAnBD;AAqBA,SAAOH,WAAP;AACD;;AClCc,SAASU,UAAT,CAAoBC,IAApB,EAA0BC,SAA1B,EAA6C;AAAA,MAAnBA,SAAmB;AAAnBA,IAAAA,SAAmB,GAAP,KAAO;AAAA;;AAC1D,MAAMC,MAAM,GAAGD,SAAS,GAAG,QAAH,GAAc,IAAtC;AACA,MAAME,SAAS,GAAG,eAAeD,MAAjC;AAEA,MAAME,WAAW,cACbJ,IAAI,CACHK,GADD,CAEE,UAAAC,IAAI;AAAA,4BACYH,SADZ,iCAC+CG,IAAI,CAACrC,EADpD,oCAEYkC,SAFZ,uBAEqCG,IAAI,CAACrC,EAF1C,WAEiDqC,IAAI,CAACX,IAFtD,2BAIEW,IAAI,CAACb,WAAL,IAAoBa,IAAI,CAACb,WAAL,CAAiBc,MAArC,QACOR,UAAU,CAACO,IAAI,CAACb,WAAN,EAAmB,IAAnB,CADjB,GAEI,EANN;AAAA,GAFN,EAYCe,IAZD,CAYM,EAZN,CADa,SAAjB;AAgBA,MAAMC,IAAI,0BACKN,SADL,uBAEJC,WAFI,oBAAV;AAMA,SAAOK,IAAP;AACD;;ACzBc,SAASC,SAAT,CAAmBV,IAAnB,EAAyB;AACtC,MAAMW,GAAG,GAAGvC,QAAQ,CAACwC,aAAT,CAAuB,KAAvB,CAAZ;AACAD,EAAAA,GAAG,CAACE,SAAJ,GAAgB,YAAhB;AACAF,EAAAA,GAAG,CAACG,SAAJ,GAAgBf,UAAU,CAACC,IAAD,CAA1B;AAEA,SAAOW,GAAP;AACD;;ACRc,SAASI,SAAT,CAAmBC,SAAnB,EAA8B;AAC3C,MAAMC,MAAM,GAAGD,SAAS,CAAC7B,QAAV,CAAmB+B,YAAlC;AACA,MAAMC,QAAQ,GAAGH,SAAS,CAAC7B,QAAV,CAAmBiC,cAApC;;AAEA,MAAID,QAAQ,KAAK,QAAjB,EAA2B;AACzBF,IAAAA,MAAM,CAACI,WAAP,CAAmBL,SAAS,CAACL,GAA7B;AACD,GAFD,MAEO,IAAIQ,QAAQ,KAAK,SAAjB,EAA4B;AACjCF,IAAAA,MAAM,CAACK,YAAP,CAAoBN,SAAS,CAACL,GAA9B,EAAmCM,MAAM,CAACM,UAA1C;AACD,GAFM,MAEA,IAAIJ,QAAQ,KAAK,QAAjB,EAA2B;AAChCF,IAAAA,MAAM,CAACO,UAAP,CAAkBF,YAAlB,CAA+BN,SAAS,CAACL,GAAzC,EAA8CM,MAA9C;AACD,GAFM,MAEA,IAAIE,QAAQ,KAAK,OAAjB,EAA0B;AAC/BF,IAAAA,MAAM,CAACO,UAAP,CAAkBF,YAAlB,CAA+BN,SAAS,CAACL,GAAzC,EAA8CM,MAAM,CAACQ,WAArD;AACD;AACF;;ACXc,SAASC,kBAAT,CAA4B1B,IAA5B,EAAkC;AAC/CA,EAAAA,IAAI,CAACV,OAAL,CAAa,UAAAqC,OAAO,EAAI;AACtB,QAAMC,UAAU,GAAGxD,QAAQ,CAACyD,aAAT,OAA2BF,OAAO,CAAC1D,EAAnC,CAAnB;AACA0D,IAAAA,OAAO,CAAC7B,SAAR,GAAoB5B,YAAY,CAAC0D,UAAD,CAAhC;;AAEA,QAAID,OAAO,CAAClC,WAAR,CAAoBc,MAAxB,EAAgC;AAC9BoB,MAAAA,OAAO,CAAClC,WAAR,GAAsBiC,kBAAkB,CAACC,OAAO,CAAClC,WAAT,CAAxC;AACD;AACF,GAPD;AASA,SAAOO,IAAP;AACD;;ACbc,SAAS8B,oBAAT,GAAgC;AAC7C,MAAMC,UAAU,GAAG3D,QAAQ,CAACwC,aAAT,CAAuB,KAAvB,CAAnB;AACAmB,EAAAA,UAAU,CAAClB,SAAX,GAAuB,YAAvB;AAEAkB,EAAAA,UAAU,CAACC,YAAX,CACE,OADF;AAcA5D,EAAAA,QAAQ,CAACC,IAAT,CAAcgD,WAAd,CAA0BU,UAA1B;AACD;;ACnBc,SAASE,kBAAT,CAA4BhB,MAA5B,EAAoCjB,IAApC,EAA0C;AACvD,MAAI/B,EAAE,GAAGgD,MAAM,CAACiB,YAAP,CAAoB,MAApB,CAAT;;AACA,MAAIjE,EAAE,CAACkE,MAAH,CAAU,CAAV,MAAiB,GAArB,EAA0B;AACxBlE,IAAAA,EAAE,GAAGA,EAAE,CAACmE,MAAH,CAAU,CAAV,CAAL;AACD;;AAED,MAAMC,aAAa,GAAGC,UAAU,CAACtC,IAAD,EAAO/B,EAAP,CAAhC;AAEA,SAAOoE,aAAa,CAACvC,SAArB;AACD;;AAED,SAASwC,UAAT,CAAoBtC,IAApB,EAA0B/B,EAA1B,EAA8B;AAC5B,MAAIoE,aAAJ;AAEArC,EAAAA,IAAI,CAACV,OAAL,CAAa,UAAAqC,OAAO,EAAI;AACtB,QAAIA,OAAO,CAAC1D,EAAR,KAAeA,EAAnB,EAAuB;AACrBoE,MAAAA,aAAa,GAAGV,OAAhB;AACD;;AAED,QAAIA,OAAO,CAAClC,WAAR,IAAuB4C,aAAa,KAAKE,SAA7C,EAAwD;AACtDF,MAAAA,aAAa,GAAGC,UAAU,CAACX,OAAO,CAAClC,WAAT,EAAsBxB,EAAtB,CAA1B;AACD;AACF,GARD;AAUA,SAAOoE,aAAP;AACD;;ACzBc,SAASG,uBAAT,CAAiCC,QAAjC,EAA2C;AACxD,MAAMC,YAAY,GAAGC,IAAI,CAACC,GAAL,CAASH,QAAQ,GAAG,CAApB,CAArB;AAEA,SAAOE,IAAI,CAACE,GAAL,CAASF,IAAI,CAACG,GAAL,CAASJ,YAAT,EAAuB,GAAvB,CAAT,EAAsC,IAAtC,CAAP;AACD;;ACJD;AAEA,IAAMK,MAAM,GAAG,SAATA,MAAS,CAAAC,CAAC;AAAA,SAAI,UAAAC,CAAC;AAAA,WAAIN,IAAI,CAACO,GAAL,CAASD,CAAT,EAAYD,CAAZ,CAAJ;AAAA,GAAL;AAAA,CAAhB;;AACA,IAAMG,OAAO,GAAG,SAAVA,OAAU,CAAAH,CAAC;AAAA,SAAI,UAAAC,CAAC;AAAA,WAAI,IAAIN,IAAI,CAACC,GAAL,CAASD,IAAI,CAACO,GAAL,CAASD,CAAC,GAAG,CAAb,EAAgBD,CAAhB,CAAT,CAAR;AAAA,GAAL;AAAA,CAAjB;;AACA,IAAMI,SAAS,GAAG,SAAZA,SAAY,CAAAJ,CAAC;AAAA,SAAI,UAAAC,CAAC;AAAA,WACtBA,CAAC,GAAG,GAAJ,GAAUF,MAAM,CAACC,CAAD,CAAN,CAAUC,CAAC,GAAG,CAAd,IAAmB,CAA7B,GAAiCE,OAAO,CAACH,CAAD,CAAP,CAAWC,CAAC,GAAG,CAAJ,GAAQ,CAAnB,IAAwB,CAAxB,GAA4B,GADvC;AAAA,GAAL;AAAA,CAAnB;;AAGA,IAAMI,MAAM,GAAG;AACbC,EAAAA,MAAM,EAAEF,SAAS,CAAC,CAAD,CADJ;AAEbG,EAAAA,UAAU,EAAER,MAAM,CAAC,CAAD,CAFL;AAGbS,EAAAA,WAAW,EAAEL,OAAO,CAAC,CAAD,CAHP;AAIbM,EAAAA,aAAa,EAAEL,SAAS,CAAC,CAAD,CAJX;AAKbM,EAAAA,WAAW,EAAEX,MAAM,CAAC,CAAD,CALN;AAMbY,EAAAA,YAAY,EAAER,OAAO,CAAC,CAAD,CANR;AAObS,EAAAA,cAAc,EAAER,SAAS,CAAC,CAAD,CAPZ;AAQbS,EAAAA,WAAW,EAAEd,MAAM,CAAC,CAAD,CARN;AASbe,EAAAA,YAAY,EAAEX,OAAO,CAAC,CAAD,CATR;AAUbY,EAAAA,cAAc,EAAEX,SAAS,CAAC,CAAD,CAVZ;AAWbY,EAAAA,WAAW,EAAEjB,MAAM,CAAC,CAAD,CAXN;AAYbkB,EAAAA,YAAY,EAAEd,OAAO,CAAC,CAAD,CAZR;AAabe,EAAAA,cAAc,EAAEd,SAAS,CAAC,CAAD;AAbZ,CAAf;;ACJA;;AACe,SAASe,QAAT,CAAkBC,cAAlB,EAAkCC,WAAlC,EAA+C;AAC5D,SAAO,IAAIvG,OAAJ,CAAY,UAACwG,OAAD,EAAUvG,MAAV,EAAqB;AACtC,QAAI,OAAOqG,cAAP,KAA0B,QAA9B,EAAwC;AACtC,aAAOrG,MAAM,CAAC,IAAIC,KAAJ,CAAU,iCAAV,CAAD,CAAb;AACD;;AAEDqG,IAAAA,WAAW,GAAGA,WAAW,IAAI,QAA7B;;AACA,QAAI,OAAOA,WAAP,KAAuB,QAA3B,EAAqC;AACnC,aAAOtG,MAAM,CAAC,IAAIC,KAAJ,CAAU,kCAAV,CAAD,CAAb;AACD;;AAED,QAAMuG,gBAAgB,GAAGC,MAAM,CAACC,WAAhC;AACA,QAAMhC,QAAQ,GAAG2B,cAAc,GAAGG,gBAAlC;AACA,QAAMG,QAAQ,GAAGlC,uBAAuB,CAACC,QAAD,CAAxC;AACA,QAAMkC,SAAS,GAAG,EAAlB;AACA,QAAMC,SAAS,GAAG,OAAOD,SAAzB;AACA,QAAIE,YAAY,GAAG,CAAnB;AACA,QAAIC,SAAJ;AACA,QAAIC,IAAJ;;AAEA,aAASC,aAAT,GAAyB;AACvBH,MAAAA,YAAY,IAAID,SAAhB;AACAE,MAAAA,SAAS,GAAGzB,MAAM,CAACgB,WAAD,CAAN,CAAoBQ,YAAY,GAAGH,QAAnC,CAAZ;AACAK,MAAAA,IAAI,GAAGD,SAAS,GAAGrC,QAAZ,GAAuB8B,gBAA9B;AACAC,MAAAA,MAAM,CAACS,MAAP,CAAc,CAAd,EAAiBF,IAAjB;;AAEA,UAAIF,YAAY,GAAGH,QAAnB,EAA6B;AAC3BQ,QAAAA,UAAU,CAACF,aAAD,EAAgBJ,SAAhB,CAAV;AACD,OAFD,MAEO;AACLN,QAAAA,OAAO,CAACE,MAAM,CAACC,WAAR,CAAP;AACD;AACF;;AAED,QAAIJ,WAAW,IAAI,MAAnB,EAA2B;AACzBG,MAAAA,MAAM,CAACS,MAAP,CAAc,CAAd,EAAiBb,cAAjB;AACD,KAFD,MAEO;AACLY,MAAAA,aAAa;AACd;AACF,GArCM,CAAP;AAsCD;;ACxCc,SAASG,kBAAT,CAA4BnE,SAA5B,EAAuC;AACpD,MAAM7B,QAAQ,GAAG6B,SAAS,CAAC7B,QAA3B;;AACA,WAASiG,YAAT,CAAsBC,KAAtB,EAA6B;AAC3BA,IAAAA,KAAK,CAACC,cAAN;AAEA,QAAMC,UAAU,GAAGf,MAAM,CAACgB,WAAP,GAAqB,IAAxC;AACA,QAAMC,eAAe,GAAGxD,kBAAkB,CAACoD,KAAK,CAACpE,MAAP,EAAeD,SAAS,CAAChB,IAAzB,CAA1C;AACA,QAAM0F,aAAa,GAAGD,eAAe,GAAGF,UAAxC;AAEA;;AACA,WAAOpB,QAAQ,CAACuB,aAAD,EAAgBvG,QAAQ,CAACkF,WAAzB,CAAR,CAA8CsB,IAA9C,CAAmD,YAAM;AAC9D,UAAIxG,QAAQ,CAACyG,aAAb,EAA4B;AAC1BC,QAAAA,OAAO,CAACC,YAAR,CAAqB,EAArB,EAAyB,EAAzB,EAA6BT,KAAK,CAACpE,MAAN,CAAaiB,YAAb,CAA0B,MAA1B,CAA7B;AACD;;AAED,UAAI/C,QAAQ,CAAC4G,QAAb,EAAuB;AACrB5G,QAAAA,QAAQ,CAAC4G,QAAT;AACD;AACF,KARM,CAAP;AASD;;AAED,MAAMC,KAAK,GAAGhF,SAAS,CAACL,GAAV,CAAcsF,gBAAd,CAA+B,GAA/B,CAAd;AACAD,EAAAA,KAAK,CAAC1G,OAAN,CAAc,UAAA4G,IAAI,EAAI;AACpBA,IAAAA,IAAI,CAACC,gBAAL,CAAsB,OAAtB,EAA+Bf,YAA/B;AACD,GAFD;AAIA,SAAOA,YAAP;AACD;;AC9Bc,SAASgB,gBAAT,CAA0BpG,IAA1B,EAAgCqG,UAAhC,EAA4CC,aAA5C,EAA2D;AACxE,MAAIC,aAAJ;AAEAvG,EAAAA,IAAI,CAACV,OAAL,CAAa,UAAAqC,OAAO,EAAI;AACtB,QAAIA,OAAO,CAAC7B,SAAR,GAAoBwG,aAAxB,EAAuC;AACrC,UAAI,CAACC,aAAD,IAAkB5E,OAAO,CAAC7B,SAAR,GAAoBuG,UAA1C,EAAsD;AACpDE,QAAAA,aAAa,GAAG5E,OAAhB;AACD;AACF,KAJD,MAIO;AACL4E,MAAAA,aAAa,GAAG5E,OAAhB;AACD;AACF,GARD;;AAUA,MAAI4E,aAAa,IAAIA,aAAa,CAAC9G,WAAd,CAA0Bc,MAA/C,EAAuD;AACrD,QAAIiG,gBAAJ;AAEAA,IAAAA,gBAAgB,GAAGJ,gBAAgB,CACjCG,aAAa,CAAC9G,WADmB,EAEjC4G,UAFiC,EAGjCC,aAHiC,CAAnC;;AAMA,QAAIE,gBAAJ,EAAsB;AACpBD,MAAAA,aAAa,GAAGC,gBAAhB;AACD;AACF;;AAED,SAAOD,aAAP;AACD;;AC5Bc,SAASE,mBAAT,CAA6BF,aAA7B,EAA4C5F,GAA5C,EAAiD;AAC9D,MAAM+F,cAAc,GAAG/F,GAAG,CAACkB,aAAJ,CAAkB,kBAAlB,CAAvB;;AAEA,MAAI,CAAC0E,aAAL,EAAoB;AAClB,QAAIG,cAAJ,EAAoB;AAClBA,MAAAA,cAAc,CAACC,SAAf,CAAyBC,MAAzB,CAAgC,0BAAhC;AACAF,MAAAA,cAAc,CAACG,eAAf,CAA+B,gBAA/B;AACD;;AAED;AACD;;AAED,MAAMC,SAAS,GAAGnG,GAAG,CAACkB,aAAJ,CAChB,sBAAsB0E,aAAa,CAACtI,EAApC,GAAyC,GADzB,CAAlB;;AAIA,MAAI6I,SAAS,IAAIA,SAAS,KAAKJ,cAA/B,EAA+C;AAC7C,QAAIA,cAAJ,EAAoB;AAClBA,MAAAA,cAAc,CAACC,SAAf,CAAyBC,MAAzB,CAAgC,0BAAhC;AACAF,MAAAA,cAAc,CAACG,eAAf,CAA+B,gBAA/B;AACD;;AACDC,IAAAA,SAAS,CAACH,SAAV,CAAoBI,GAApB,CAAwB,0BAAxB;AACAD,IAAAA,SAAS,CAAC9E,YAAV,CAAuB,gBAAvB,EAAyC,IAAzC;AACD;AACF;;ACrBc,SAASgF,kBAAT,CAA4BhG,SAA5B,EAAuC;AACpD,WAASiG,aAAT,GAAyB;AACvB,QAAMxI,GAAG,GAAG+F,MAAM,CAAC0C,OAAP,IAAkB1C,MAAM,CAACC,WAAzB,IAAwCrG,QAAQ,CAACC,IAAT,CAAc8I,SAAlE;AACA,QAAMd,UAAU,GAAG5H,GAAnB;AACA,QAAM6H,aAAa,GAAG7H,GAAG,GAAG+F,MAAM,CAACgB,WAAP,GAAqB,GAAjD;AACA,QAAMe,aAAa,GAAGH,gBAAgB,CACpCpF,SAAS,CAAChB,IAD0B,EAEpCqG,UAFoC,EAGpCC,aAHoC,CAAtC;AAMAG,IAAAA,mBAAmB,CAACF,aAAD,EAAgBvF,SAAS,CAACL,GAA1B,CAAnB;AAEA,WAAO4F,aAAP;AACD;;AAED/B,EAAAA,MAAM,CAAC2B,gBAAP,CAAwB,QAAxB,EAAkCc,aAAlC;AAEA,SAAOA,aAAP;AACD;;ACpBc,SAASG,kBAAT,CAA4BpG,SAA5B,EAAuC;AACpD,WAASqG,aAAT,GAAyB;AACvBrG,IAAAA,SAAS,CAAChB,IAAV,GAAiB0B,kBAAkB,CAACV,SAAS,CAAChB,IAAX,CAAnC;AACD;;AAEDwE,EAAAA,MAAM,CAAC2B,gBAAP,CAAwB,QAAxB,EAAkCkB,aAAlC;AAEA,SAAOA,aAAP;AACD;;ACVc,SAASC,qBAAT,CAA+B3G,GAA/B,EAAoCyE,YAApC,EAAkD;AAC/D,MAAMY,KAAK,GAAGrF,GAAG,CAACsF,gBAAJ,CAAqB,GAArB,CAAd;AACAD,EAAAA,KAAK,CAAC1G,OAAN,CAAc,UAAA4G,IAAI,EAAI;AACpBA,IAAAA,IAAI,CAACqB,mBAAL,CAAyB,OAAzB,EAAkCnC,YAAlC;AACD,GAFD;AAGD;;ACLc,SAASoC,qBAAT,CAA+BP,aAA/B,EAA8C;AAC3DzC,EAAAA,MAAM,CAAC+C,mBAAP,CAA2B,QAA3B,EAAqCN,aAArC;AACD;;ACFc,SAASQ,sBAAT,CAAgCJ,aAAhC,EAA+C;AAC5D7C,EAAAA,MAAM,CAAC+C,mBAAP,CAA2B,QAA3B,EAAqCF,aAArC;AACD;;ACFD;AACA;AACA;AACA;AACA;AACA;AACA;AAeA,IAAIjC,YAAJ;AACA,IAAI6B,aAAJ;AACA,IAAII,aAAJ;;AAEA,SAASK,SAAT,CAAmBC,OAAnB,EAA4B;AAC1B,SAAOA,OAAO,YAAYC,OAA1B;AACD;;AAED,SAASC,IAAT,CAAcjK,IAAd,EAAoBR,OAApB,EAA6B;AAC3B,MAAMD,QAAQ,GAAG;AACf+B,IAAAA,QAAQ,EAAE,IADK;AAEfgC,IAAAA,YAAY,EAAEtD,IAFC;AAGfwD,IAAAA,cAAc,EAAE,QAHD;AAIfiD,IAAAA,WAAW,EAAE,aAJE;AAKfuB,IAAAA,aAAa,EAAE;AALA,GAAjB;AAOA,OAAKzG,QAAL,GAAgBjC,MAAM,CAACC,QAAD,EAAWC,OAAX,CAAtB;AACA,MAAM0K,eAAe,GAAG,CAAC,QAAD,EAAW,SAAX,EAAsB,OAAtB,EAA+B,QAA/B,CAAxB;;AAEA,MAAI,CAACJ,SAAS,CAAC9J,IAAD,CAAd,EAAsB;AACpB,QAAI,KAAKuB,QAAL,CAAc4I,KAAlB,EAAyB;AACvB;AACAC,MAAAA,OAAO,CAACC,KAAR,2DAC8CrK,IAD9C;AAGD;;AACD;AACD;;AAED,MAAI,KAAKuB,QAAL,CAAc+B,YAAd,IAA8B,CAACwG,SAAS,CAAC,KAAKvI,QAAL,CAAc+B,YAAf,CAA5C,EAA0E;AACxE,QAAI,KAAK/B,QAAL,CAAc4I,KAAlB,EAAyB;AACvB;AACAC,MAAAA,OAAO,CAACC,KAAR,+DACkDrK,IADlD;AAGD;;AACD;AACD;;AAED,MAAI,CAACkK,eAAe,CAACI,QAAhB,CAAyB,KAAK/I,QAAL,CAAciC,cAAvC,CAAL,EAA6D;AAC3D,QAAI,KAAKjC,QAAL,CAAc4I,KAAlB,EAAyB;AACvB;AACAC,MAAAA,OAAO,CAACC,KAAR,iEACoD,KAAK9I,QAAL,CAAciC,cADlE;AAGD;;AACD;AACD;;AAED,MAAM+G,WAAW,GAAGvK,IAAI,CAACqI,gBAAL,CAAsB,KAAK9G,QAAL,CAAcD,QAApC,CAApB;;AAEA,MAAI,CAACiJ,WAAW,CAAC5H,MAAjB,EAAyB;AACvB,QAAI,KAAKpB,QAAL,CAAc4I,KAAlB,EAAyB;AACvB;AACAC,MAAAA,OAAO,CAACC,KAAR,6DACgD,KAAK9I,QAAL,CAAcD,QAD9D,yCAEwBtB,IAFxB;AAID;;AACD;AACD;;AAED,OAAKoC,IAAL,GAAYf,mBAAmB,CAACkJ,WAAD,EAAc,KAAKhJ,QAAnB,CAA/B;AACA,OAAKwB,GAAL,GAAWD,SAAS,CAAC,KAAKV,IAAN,CAApB;AAEAe,EAAAA,SAAS,CAAC,IAAD,CAAT;AACAqE,EAAAA,YAAY,GAAGD,kBAAkB,CAAC,IAAD,CAAjC;AACA8B,EAAAA,aAAa,GAAGD,kBAAkB,CAAC,IAAD,CAAlC;AACAK,EAAAA,aAAa,GAAGD,kBAAkB,CAAC,IAAD,CAAlC;AAEA,MAAI,KAAKjI,QAAL,CAAc4I,KAAlB,EAAyBjG,oBAAoB;AAC7C,MAAI,KAAK3C,QAAL,CAAciJ,MAAlB,EAA0B,OAAO,KAAKjJ,QAAL,CAAciJ,MAAd,EAAP;AAC3B;;AAED,SAASC,OAAT,CAAiBjL,OAAjB,EAA0B;AACxB,OAAK+B,QAAL,GAAgBjC,MAAM,CAAC,KAAKiC,QAAN,EAAgB/B,OAAhB,CAAtB;AAEAkK,EAAAA,qBAAqB,CAAC,KAAK3G,GAAN,EAAWyE,YAAX,CAArB;AACAoC,EAAAA,qBAAqB,CAACP,aAAD,CAArB;AACAqB,EAAAA,sBAAqB,CAACjB,aAAD,CAArB;AACA,OAAK1G,GAAL,CAASiG,MAAT;AAEA,MAAI,KAAKzH,QAAL,CAAcoJ,SAAlB,EAA6B,OAAO,KAAKpJ,QAAL,CAAcoJ,SAAd,EAAP;AAC9B;;AAED,SAASC,eAAT,CAAyBpL,OAAzB,EAAkC;AAChC,OAAK+B,QAAL,GAAgBjC,MAAM,CAAC,KAAKiC,QAAN,EAAgB/B,OAAhB,CAAtB;AACA,OAAK4C,IAAL,GAAY0B,kBAAkB,CAAC,KAAK1B,IAAN,CAA9B;AAEA,MAAI,KAAKb,QAAL,CAAcsJ,iBAAlB,EAAqC,OAAO,KAAKtJ,QAAL,CAAcsJ,iBAAd,EAAP;AACtC;;IAEKzH,SAAS,GAAG;AAChB6G,EAAAA,IAAI,EAAEA,IADU;AAEhBQ,EAAAA,OAAO,EAAEA,OAFO;AAGhBG,EAAAA,eAAe,EAAEA;AAHD;;;;"} \ No newline at end of file diff --git a/dist/scrollnav.min.umd.js b/dist/scrollnav.min.umd.js index 779c2da..713feba 100644 --- a/dist/scrollnav.min.umd.js +++ b/dist/scrollnav.min.umd.js @@ -1,2 +1,484 @@ -!function(f,h){"object"==typeof exports&&"undefined"!=typeof module?module.exports=h():"function"==typeof define&&define.amd?define(h):f.scrollnav=h()}(this,function(){function f(f,h){var y,w={};for(y in f)Object.prototype.hasOwnProperty.call(f,y)&&(w[y]=f[y]);for(y in h)Object.prototype.hasOwnProperty.call(h,y)&&(w[y]=h[y]);return w}function h(f,h){if("object"!=typeof f)return Promise.reject(new Error("First argument must be an object"));if("object"!=typeof(h=h||document.body))return Promise.reject(new Error("Second argument must be an object"));var y=h.getBoundingClientRect();return f.getBoundingClientRect().top-y.top}function y(f,w,E){void 0===E&&(E="scroll-nav");var L=[];return E+="__",f.forEach(function(f,O){var x=[],j=function(f,h){if("object"!=typeof f)return Promise.reject(new Error("First argument must be an object"));var y=f.id;if(!y){if("string"!=typeof h)return Promise.reject(new Error("Second argument must be a string"));f.id=y=h}return y}(f,E+(O+1));w.subSections&&f.matches(w.sections)&&(x=y(function(f,h,y){var w=[];for(f=f.nextElementSibling;f&&!f.matches(h);)!y||f.matches(y)?(w.push(f),f=f.nextElementSibling):f=f.nextElementSibling;return w}(f,w.sections,w.subSections),w,j));L.push({id:j,text:f.innerText||f.textContent,offsetTop:h(f),subSections:x})}),L}function w(f){var h=document.createElement("nav");return h.className="scroll-nav",h.innerHTML=function f(h,y){void 0===y&&(y=!1);var w="scroll-nav"+(y?"__sub-":"__"),E="\n "+h.map(function(h){return'
  • \n '+h.text+"\n "+(h.subSections&&h.subSections.length?""+f(h.subSections,!0):"")+"\n
  • "}).join("")+"\n ";return'\n
      \n '+E+"\n
    \n "}(f),h}function E(f){return f.forEach(function(f){var y=document.querySelector("#"+f.id);f.offsetTop=h(y),f.subSections.length&&(f.subSections=E(f.subSections))}),f}function L(f,h){var y=f.getAttribute("href");return"#"===y.charAt(0)&&(y=y.substr(1)),function f(h,y){var w;h.forEach(function(h){h.id===y&&(w=h),h.subSections&&void 0===w&&(w=f(h.subSections,y))});return w}(h,y).offsetTop}var O,x,j,_=function(f){return function(h){return Math.pow(h,f)}},I=function(f){return function(h){return 1-Math.abs(Math.pow(h-1,f))}},Q=function(f){return function(h){return h<.5?_(f)(2*h)/2:I(f)(2*h-1)/2+.5}},C={linear:Q(1),easeInQuad:_(2),easeOutQuad:I(2),easeInOutQuad:Q(2),easeInCubic:_(3),easeOutCubic:I(3),easeInOutCubic:Q(3),easeInQuart:_(4),easeOutQuart:I(4),easeInOutQuart:Q(4),easeInQuint:_(5),easeOutQuint:I(5),easeInOutQuint:Q(5)};function M(f,h){return new Promise(function(y,w){if("number"!=typeof f)return w(new Error("First argument must be a number"));if("string"!=typeof(h=h||"linear"))return w(new Error("Second argument must be a string"));var E,L=window.pageYOffset,O=f-L,x=function(f){var h=Math.abs(f/2);return Math.min(Math.max(h,250),1200)}(O),j=20,_=0;!function f(){E=C[h]((_+=j)/x),window.scroll(0,E*O+L),_w?!E&&f.offsetTop\n " + item.text + "\n " + (item.subSections && item.subSections.length ? "" + createList(item.subSections, true) : '') + "\n "; + }).join('') + "\n "; + var list = "\n
      \n " + itemsMarkup + "\n
    \n "; + return list; + } + + function createNav(data) { + var nav = document.createElement('nav'); + nav.className = 'scroll-nav'; + nav.innerHTML = createList(data); + return nav; + } + + function insertNav(scrollnav) { + var target = scrollnav.settings.insertTarget; + var location = scrollnav.settings.insertLocation; + + if (location === 'append') { + target.appendChild(scrollnav.nav); + } else if (location === 'prepend') { + target.insertBefore(scrollnav.nav, target.firstChild); + } else if (location === 'before') { + target.parentNode.insertBefore(scrollnav.nav, target); + } else if (location === 'after') { + target.parentNode.insertBefore(scrollnav.nav, target.nextSibling); + } + } + + function updatePositionData(data) { + data.forEach(function (section) { + var sectionDom = document.querySelector("#" + section.id); + section.offsetTop = getYPosition(sectionDom); + + if (section.subSections.length) { + section.subSections = updatePositionData(section.subSections); + } + }); + return data; + } + + function insertVisualDebugger() { + var snDebugger = document.createElement('div'); + snDebugger.className = 'snDebugger'; + snDebugger.setAttribute('style', "\n position: fixed;\n top: 40%;\n height: 0px;\n border-bottom:5px solid red;\n border-top: 5px solid blue;\n width: 100%;\n opacity: .5;\n pointer-events: none;\n "); + document.body.appendChild(snDebugger); + } + + function getTargetYPosition(target, data) { + var id = target.getAttribute('href'); + + if (id.charAt(0) === '#') { + id = id.substr(1); + } + + var targetSection = filterData(data, id); + return targetSection.offsetTop; + } + + function filterData(data, id) { + var targetSection; + data.forEach(function (section) { + if (section.id === id) { + targetSection = section; + } + + if (section.subSections && targetSection === undefined) { + targetSection = filterData(section.subSections, id); + } + }); + return targetSection; + } + + function calculateScrollDuration(distance) { + var halfDistance = Math.abs(distance / 2); + return Math.min(Math.max(halfDistance, 250), 1200); + } + + /* Borrowed from https://gist.github.com/gre/1650294#gistcomment-1806616 */ + var easeIn = function easeIn(p) { + return function (t) { + return Math.pow(t, p); + }; + }; + + var easeOut = function easeOut(p) { + return function (t) { + return 1 - Math.abs(Math.pow(t - 1, p)); + }; + }; + + var easeInOut = function easeInOut(p) { + return function (t) { + return t < 0.5 ? easeIn(p)(t * 2) / 2 : easeOut(p)(t * 2 - 1) / 2 + 0.5; + }; + }; + + var easing = { + linear: easeInOut(1), + easeInQuad: easeIn(2), + easeOutQuad: easeOut(2), + easeInOutQuad: easeInOut(2), + easeInCubic: easeIn(3), + easeOutCubic: easeOut(3), + easeInOutCubic: easeInOut(3), + easeInQuart: easeIn(4), + easeOutQuart: easeOut(4), + easeInOutQuart: easeInOut(4), + easeInQuint: easeIn(5), + easeOutQuint: easeOut(5), + easeInOutQuint: easeInOut(5) + }; + + /* istanbul ignore next */ + + function scrollTo(targetPosition, easingStyle) { + return new Promise(function (resolve, reject) { + if (typeof targetPosition !== 'number') { + return reject(new Error('First argument must be a number')); + } + + easingStyle = easingStyle || 'linear'; + + if (typeof easingStyle !== 'string') { + return reject(new Error('Second argument must be a string')); + } + + var startingPosition = window.pageYOffset; + var distance = targetPosition - startingPosition; + var duration = calculateScrollDuration(distance); + var framerate = 50; + var increment = 1000 / framerate; + var ellapsedTime = 0; + var easedTime; + var next; + + function animateScroll() { + ellapsedTime += increment; + easedTime = easing[easingStyle](ellapsedTime / duration); + next = easedTime * distance + startingPosition; + window.scroll(0, next); + + if (ellapsedTime < duration) { + setTimeout(animateScroll, increment); + } else { + resolve(window.pageYOffset); + } + } + + if (easingStyle == 'none') { + window.scroll(0, targetPosition); + } else { + animateScroll(); + } + }); + } + + function setupClickHandlers(scrollnav) { + var settings = scrollnav.settings; + + function clickHandler(event) { + event.preventDefault(); + var activeArea = window.innerHeight * 0.39; + var targetYPosition = getTargetYPosition(event.target, scrollnav.data); + var scrollYTarget = targetYPosition - activeArea; + /* istanbul ignore next */ + + return scrollTo(scrollYTarget, settings.easingStyle).then(function () { + if (settings.updateHistory) { + history.replaceState({}, '', event.target.getAttribute('href')); + } + + if (settings.onScroll) { + settings.onScroll(); + } + }); + } + + var links = scrollnav.nav.querySelectorAll('a'); + links.forEach(function (link) { + link.addEventListener('click', clickHandler); + }); + return clickHandler; + } + + function getActiveSection(data, boundryTop, boundryBottom) { + var activeSection; + data.forEach(function (section) { + if (section.offsetTop > boundryBottom) { + if (!activeSection && section.offsetTop < boundryTop) { + activeSection = section; + } + } else { + activeSection = section; + } + }); + + if (activeSection && activeSection.subSections.length) { + var activeSubSection; + activeSubSection = getActiveSection(activeSection.subSections, boundryTop, boundryBottom); + + if (activeSubSection) { + activeSection = activeSubSection; + } + } + + return activeSection; + } + + function updateActiveNavItem(activeSection, nav) { + var previousActive = nav.querySelector('[data-sn-active]'); + + if (!activeSection) { + if (previousActive) { + previousActive.classList.remove('scroll-nav__item--active'); + previousActive.removeAttribute('data-sn-active'); + } + + return; + } + + var newActive = nav.querySelector('[data-sn-section=' + activeSection.id + ']'); + + if (newActive && newActive !== previousActive) { + if (previousActive) { + previousActive.classList.remove('scroll-nav__item--active'); + previousActive.removeAttribute('data-sn-active'); + } + + newActive.classList.add('scroll-nav__item--active'); + newActive.setAttribute('data-sn-active', true); + } + } + + function setupScrollHandler(scrollnav) { + function scrollHandler() { + var top = window.scrollY || window.pageYOffset || document.body.scrollTop; + var boundryTop = top; + var boundryBottom = top + window.innerHeight * 0.4; + var activeSection = getActiveSection(scrollnav.data, boundryTop, boundryBottom); + updateActiveNavItem(activeSection, scrollnav.nav); + return activeSection; + } + + window.addEventListener('scroll', scrollHandler); + return scrollHandler; + } + + function setupResizeHandler(scrollnav) { + function resizeHandler() { + scrollnav.data = updatePositionData(scrollnav.data); + } + + window.addEventListener('resize', resizeHandler); + return resizeHandler; + } + + function teardownClickHandlers(nav, clickHandler) { + var links = nav.querySelectorAll('a'); + links.forEach(function (link) { + link.removeEventListener('click', clickHandler); + }); + } + + function teardownScrollHandler(scrollHandler) { + window.removeEventListener('scroll', scrollHandler); + } + + function teardownResizelHandler(resizeHandler) { + window.removeEventListener('resize', resizeHandler); + } + + /* + * scrollnav + * http://scrollnav.com + * + * Copyright (c) 2013-2018 James Wilson + * Licensed under the MIT license. + */ + var clickHandler; + var scrollHandler; + var resizeHandler; + + function isElement(element) { + return element instanceof Element; + } + + function init(elem, options) { + var defaults = { + sections: 'h2', + insertTarget: elem, + insertLocation: 'before', + easingStyle: 'easeOutQuad', + updateHistory: true + }; + this.settings = extend(defaults, options); + var locationOptions = ['append', 'prepend', 'after', 'before']; + + if (!isElement(elem)) { + if (this.settings.debug) { + // eslint-disable-next-line no-console + console.error("\n scrollnav build failed, content argument \"" + elem + "\" is not an HTML Element\n "); + } + + return; + } + + if (this.settings.insertTarget && !isElement(this.settings.insertTarget)) { + if (this.settings.debug) { + // eslint-disable-next-line no-console + console.error("\n scrollnav build failed, options.insertTarget \"" + elem + "\" is not an HTML Element\n "); + } + + return; + } + + if (!locationOptions.includes(this.settings.insertLocation)) { + if (this.settings.debug) { + // eslint-disable-next-line no-console + console.error("\n scrollnav build failed, options.insertLocation \"" + this.settings.insertLocation + "\" is not a valid option\n "); + } + + return; + } + + var sectionsDom = elem.querySelectorAll(this.settings.sections); + + if (!sectionsDom.length) { + if (this.settings.debug) { + // eslint-disable-next-line no-console + console.error("\n scrollnav build failed, could not find any \"" + this.settings.sections + "\"\n elements inside of \"" + elem + "\"\n "); + } + + return; + } + + this.data = populateSectionData(sectionsDom, this.settings); + this.nav = createNav(this.data); + insertNav(this); + clickHandler = setupClickHandlers(this); + scrollHandler = setupScrollHandler(this); + resizeHandler = setupResizeHandler(this); + if (this.settings.debug) insertVisualDebugger(); + if (this.settings.onInit) return this.settings.onInit(); + } + + function destroy(options) { + this.settings = extend(this.settings, options); + teardownClickHandlers(this.nav, clickHandler); + teardownScrollHandler(scrollHandler); + teardownResizelHandler(resizeHandler); + this.nav.remove(); + if (this.settings.onDestroy) return this.settings.onDestroy(); + } + + function updatePositions(options) { + this.settings = extend(this.settings, options); + this.data = updatePositionData(this.data); + if (this.settings.onUpdatePositions) return this.settings.onUpdatePositions(); + } + + var scrollnav = { + init: init, + destroy: destroy, + updatePositions: updatePositions + }; + + return scrollnav; + +}))); //# sourceMappingURL=scrollnav.min.umd.js.map diff --git a/dist/scrollnav.min.umd.js.map b/dist/scrollnav.min.umd.js.map index aca3ae5..6a24430 100644 --- a/dist/scrollnav.min.umd.js.map +++ b/dist/scrollnav.min.umd.js.map @@ -1 +1 @@ -{"version":3,"file":"scrollnav.min.umd.js","sources":["../src/util/extend.js","../src/util/getYPosition.js","../src/util/populateSectionData.js","../src/util/getOrSetID.js","../src/util/nextUntil.js","../src/util/createNav.js","../src/util/createList.js","../src/util/updatePositionData.js","../src/util/getTargetYPosition.js","../src/util/easing.js","../src/scrollnav.js","../src/scrollTo.js","../src/util/calculateScrollDuration.js","../src/setupScrollHandler.js","../src/util/getActiveSection.js","../src/util/updateActiveNavItem.js","../src/util/insertNav.js","../src/util/insertVisualDebugger.js","../src/setupClickHandlers.js","../src/setupResizeHandler.js","../src/teardownClickHandlers.js","../src/teardownScrollHandler.js","../src/teardownResizeHandler.js"],"sourcesContent":["/* Borrowed from https://gist.github.com/cferdinandi/4f8a0e17921c5b46e6c4 */\n\nexport default function extend(defaults, options) {\n const extended = {};\n let prop;\n\n for (prop in defaults) {\n if (Object.prototype.hasOwnProperty.call(defaults, prop)) {\n extended[prop] = defaults[prop];\n }\n }\n\n for (prop in options) {\n if (Object.prototype.hasOwnProperty.call(options, prop)) {\n extended[prop] = options[prop];\n }\n }\n\n return extended;\n}\n","export default function getYPosition(elem, parent) {\n if (typeof elem !== 'object') {\n return Promise.reject(new Error('First argument must be an object'));\n }\n\n parent = parent || document.body;\n if (typeof parent !== 'object') {\n return Promise.reject(new Error('Second argument must be an object'));\n }\n\n const bodyRect = parent.getBoundingClientRect();\n const elemRect = elem.getBoundingClientRect();\n\n return elemRect.top - bodyRect.top;\n}\n","import getOrSetID from './getOrSetID';\nimport getYPosition from './getYPosition';\nimport nextUntil from './nextUntil';\n\nexport default function populateSectionData(\n sections,\n settings,\n prefix = 'scroll-nav'\n) {\n const sectionData = [];\n prefix = prefix + '__';\n\n sections.forEach((elem, i) => {\n let subSectionData = [];\n const id = getOrSetID(elem, prefix + (i + 1));\n\n if (settings.subSections && elem.matches(settings.sections)) {\n const subSectionDom = nextUntil(\n elem,\n settings.sections,\n settings.subSections\n );\n subSectionData = populateSectionData(subSectionDom, settings, id);\n }\n\n sectionData.push({\n id: id,\n text: elem.innerText || elem.textContent,\n offsetTop: getYPosition(elem),\n subSections: subSectionData\n });\n });\n\n return sectionData;\n}\n","export default function getOrSetID(elem, setID) {\n if (typeof elem !== 'object') {\n return Promise.reject(new Error('First argument must be an object'));\n }\n\n let id = elem.id;\n\n if (!id) {\n if (typeof setID !== 'string') {\n return Promise.reject(new Error('Second argument must be a string'));\n }\n\n id = setID;\n elem.id = id;\n }\n return id;\n}\n","/* Borrowed from https://github.com/cferdinandi/nextUntil */\n\nexport default function nextUntil(elem, selector, filter) {\n var siblings = [];\n\n elem = elem.nextElementSibling;\n\n while (elem) {\n if (elem.matches(selector)) break;\n\n if (filter && !elem.matches(filter)) {\n elem = elem.nextElementSibling;\n continue;\n }\n\n siblings.push(elem);\n\n elem = elem.nextElementSibling;\n }\n\n return siblings;\n}\n","import createList from './createList';\n\nexport default function createNav(data) {\n const nav = document.createElement('nav');\n nav.className = 'scroll-nav';\n nav.innerHTML = createList(data);\n\n return nav;\n}\n","export default function createList(data, isSubList = false) {\n const suffix = isSubList ? '__sub-' : '__';\n const baseClass = 'scroll-nav' + suffix;\n\n const itemsMarkup = `\n ${data\n .map(\n item =>\n `
  • \n ${item.text}\n ${\n item.subSections && item.subSections.length\n ? `${createList(item.subSections, true)}`\n : ''\n }\n
  • `\n )\n .join('')}\n `;\n\n const list = `\n
      \n ${itemsMarkup}\n
    \n `;\n\n return list;\n}\n","import getYPosition from './getYPosition';\n\nexport default function updatePositionData(data) {\n data.forEach(section => {\n const sectionDom = document.querySelector(`#${section.id}`);\n section.offsetTop = getYPosition(sectionDom);\n\n if (section.subSections.length) {\n section.subSections = updatePositionData(section.subSections);\n }\n });\n\n return data;\n}\n","export default function getTargetYPosition(target, data) {\n let id = target.getAttribute('href');\n if (id.charAt(0) === '#') {\n id = id.substr(1);\n }\n\n const targetSection = filterData(data, id);\n\n return targetSection.offsetTop;\n}\n\nfunction filterData(data, id) {\n let targetSection;\n\n data.forEach(section => {\n if (section.id === id) {\n targetSection = section;\n }\n\n if (section.subSections && targetSection === undefined) {\n targetSection = filterData(section.subSections, id);\n }\n });\n\n return targetSection;\n}\n","/* Borrowed from https://gist.github.com/gre/1650294#gistcomment-1806616 */\n\nconst easeIn = p => t => Math.pow(t, p);\nconst easeOut = p => t => 1 - Math.abs(Math.pow(t - 1, p));\nconst easeInOut = p => t =>\n t < 0.5 ? easeIn(p)(t * 2) / 2 : easeOut(p)(t * 2 - 1) / 2 + 0.5;\n\nconst easing = {\n linear: easeInOut(1),\n easeInQuad: easeIn(2),\n easeOutQuad: easeOut(2),\n easeInOutQuad: easeInOut(2),\n easeInCubic: easeIn(3),\n easeOutCubic: easeOut(3),\n easeInOutCubic: easeInOut(3),\n easeInQuart: easeIn(4),\n easeOutQuart: easeOut(4),\n easeInOutQuart: easeInOut(4),\n easeInQuint: easeIn(5),\n easeOutQuint: easeOut(5),\n easeInOutQuint: easeInOut(5)\n};\n\nexport { easing };\n","/*\n * scrollnav\n * http://scrollnav.com\n *\n * Copyright (c) 2013-2018 James Wilson\n * Licensed under the MIT license.\n */\n\nimport extend from './util/extend';\nimport populateSectionData from './util/populateSectionData';\nimport createNav from './util/createNav';\nimport insertNav from './util/insertNav';\nimport updatePositionData from './util/updatePositionData';\nimport insertVisualDebugger from './util/insertVisualDebugger';\nimport setupClickHandlers from './setupClickHandlers';\nimport setupScrollHandler from './setupScrollHandler';\nimport setupResizeHandler from './setupResizeHandler';\nimport teardownClickHandlers from './teardownClickHandlers';\nimport teardownScrollHandler from './teardownScrollHandler';\nimport teardownResizeHandler from './teardownResizeHandler';\n\nlet clickHandler;\nlet scrollHandler;\nlet resizeHandler;\n\nfunction isElement(element) {\n return element instanceof Element;\n}\n\nfunction init(elem, options) {\n const defaults = {\n sections: 'h2',\n insertTarget: elem,\n insertLocation: 'before',\n easingStyle: 'easeOutQuad',\n updateHistory: true\n };\n this.settings = extend(defaults, options);\n const locationOptions = ['append', 'prepend', 'after', 'before'];\n\n if (!isElement(elem)) {\n if (this.settings.debug) {\n // eslint-disable-next-line no-console\n console.error(`\n scrollnav build failed, content argument \"${elem}\" is not an HTML Element\n `);\n }\n return;\n }\n\n if (this.settings.insertTarget && !isElement(this.settings.insertTarget)) {\n if (this.settings.debug) {\n // eslint-disable-next-line no-console\n console.error(`\n scrollnav build failed, options.insertTarget \"${elem}\" is not an HTML Element\n `);\n }\n return;\n }\n\n if (!locationOptions.includes(this.settings.insertLocation)) {\n if (this.settings.debug) {\n // eslint-disable-next-line no-console\n console.error(`\n scrollnav build failed, options.insertLocation \"${\n this.settings.insertLocation\n }\" is not a valid option\n `);\n }\n return;\n }\n\n const sectionsDom = elem.querySelectorAll(this.settings.sections);\n\n if (!sectionsDom.length) {\n if (this.settings.debug) {\n // eslint-disable-next-line no-console\n console.error(`\n scrollnav build failed, could not find any \"${this.settings.sections}\"\n elements inside of \"${elem}\"\n `);\n }\n return;\n }\n\n this.data = populateSectionData(sectionsDom, this.settings);\n this.nav = createNav(this.data);\n\n insertNav(this);\n clickHandler = setupClickHandlers(this);\n scrollHandler = setupScrollHandler(this);\n resizeHandler = setupResizeHandler(this);\n\n if (this.settings.debug) insertVisualDebugger();\n if (this.settings.onInit) return this.settings.onInit();\n}\n\nfunction destroy(options) {\n this.settings = extend(this.settings, options);\n\n teardownClickHandlers(this.nav, clickHandler);\n teardownScrollHandler(scrollHandler);\n teardownResizeHandler(resizeHandler);\n this.nav.remove();\n\n if (this.settings.onDestroy) return this.settings.onDestroy();\n}\n\nfunction updatePositions(options) {\n this.settings = extend(this.settings, options);\n this.data = updatePositionData(this.data);\n\n if (this.settings.onUpdatePositions) return this.settings.onUpdatePositions();\n}\n\nconst scrollnav = {\n init: init,\n destroy: destroy,\n updatePositions: updatePositions\n};\n\nexport default scrollnav;\n","import calculateScrollDuration from './util/calculateScrollDuration';\nimport { easing } from './util/easing';\n\n/* istanbul ignore next */\nexport default function scrollTo(targetPosition, easingStyle) {\n return new Promise((resolve, reject) => {\n if (typeof targetPosition !== 'number') {\n return reject(new Error('First argument must be a number'));\n }\n\n easingStyle = easingStyle || 'linear';\n if (typeof easingStyle !== 'string') {\n return reject(new Error('Second argument must be a string'));\n }\n\n const startingPosition = window.pageYOffset;\n const distance = targetPosition - startingPosition;\n const duration = calculateScrollDuration(distance);\n const framerate = 50;\n const increment = 1000 / framerate;\n let ellapsedTime = 0;\n let easedTime;\n let next;\n\n function animateScroll() {\n ellapsedTime += increment;\n easedTime = easing[easingStyle](ellapsedTime / duration);\n next = easedTime * distance + startingPosition;\n window.scroll(0, next);\n\n if (ellapsedTime < duration) {\n setTimeout(animateScroll, increment);\n } else {\n resolve(window.pageYOffset);\n }\n }\n\n animateScroll();\n });\n}\n","export default function calculateScrollDuration(distance) {\n const halfDistance = Math.abs(distance / 2);\n\n return Math.min(Math.max(halfDistance, 250), 1200);\n}\n","import getActiveSection from './util/getActiveSection';\nimport updateActiveNavItem from './util/updateActiveNavItem';\n\nexport default function setupScrollHandler(scrollnav) {\n function scrollHandler() {\n const top = window.scrollY || window.pageYOffset || document.body.scrollTop;\n const boundryTop = top;\n const boundryBottom = top + window.innerHeight * 0.4;\n const activeSection = getActiveSection(\n scrollnav.data,\n boundryTop,\n boundryBottom\n );\n\n updateActiveNavItem(activeSection, scrollnav.nav);\n\n return activeSection;\n }\n\n window.addEventListener('scroll', scrollHandler);\n\n return scrollHandler;\n}\n","export default function getActiveSection(data, boundryTop, boundryBottom) {\n let activeSection;\n\n data.forEach(section => {\n if (section.offsetTop > boundryBottom) {\n if (!activeSection && section.offsetTop < boundryTop) {\n activeSection = section;\n }\n } else {\n activeSection = section;\n }\n });\n\n if (activeSection && activeSection.subSections.length) {\n let activeSubSection;\n\n activeSubSection = getActiveSection(\n activeSection.subSections,\n boundryTop,\n boundryBottom\n );\n\n if (activeSubSection) {\n activeSection = activeSubSection;\n }\n }\n\n return activeSection;\n}\n","export default function updateActiveNavItem(activeSection, nav) {\n const previousActive = nav.querySelector('[data-sn-active]');\n\n if (!activeSection) {\n if (previousActive) {\n previousActive.classList.remove('scroll-nav__item--active');\n previousActive.removeAttribute('data-sn-active');\n }\n\n return;\n }\n\n const newActive = nav.querySelector(\n '[data-sn-section=' + activeSection.id + ']'\n );\n\n if (newActive && newActive !== previousActive) {\n if (previousActive) {\n previousActive.classList.remove('scroll-nav__item--active');\n previousActive.removeAttribute('data-sn-active');\n }\n newActive.classList.add('scroll-nav__item--active');\n newActive.setAttribute('data-sn-active', true);\n }\n}\n","export default function insertNav(scrollnav) {\n const target = scrollnav.settings.insertTarget;\n const location = scrollnav.settings.insertLocation;\n\n if (location === 'append') {\n target.appendChild(scrollnav.nav);\n } else if (location === 'prepend') {\n target.insertBefore(scrollnav.nav, target.firstChild);\n } else if (location === 'before') {\n target.parentNode.insertBefore(scrollnav.nav, target);\n } else if (location === 'after') {\n target.parentNode.insertBefore(scrollnav.nav, target.nextSibling);\n }\n}\n","export default function insertVisualDebugger() {\n const snDebugger = document.createElement('div');\n snDebugger.className = 'snDebugger';\n\n snDebugger.setAttribute(\n 'style',\n `\n position: fixed;\n top: 40%;\n height: 0px;\n border-bottom:5px solid red;\n border-top: 5px solid blue;\n width: 100%;\n opacity: .5;\n pointer-events: none;\n `\n );\n\n document.body.appendChild(snDebugger);\n}\n","import getTargetYPosition from './util/getTargetYPosition';\nimport scrollTo from './scrollTo';\n\nexport default function setupClickHandlers(scrollnav) {\n const settings = scrollnav.settings;\n function clickHandler(event) {\n event.preventDefault();\n\n const activeArea = window.innerHeight * 0.39;\n const targetYPosition = getTargetYPosition(event.target, scrollnav.data);\n const scrollYTarget = targetYPosition - activeArea;\n\n /* istanbul ignore next */\n return scrollTo(scrollYTarget, settings.easingStyle).then(() => {\n if (settings.updateHistory) {\n history.replaceState({}, '', event.target.getAttribute('href'));\n }\n\n if (settings.onScroll) {\n settings.onScroll();\n }\n });\n }\n\n const links = scrollnav.nav.querySelectorAll('a');\n links.forEach(link => {\n link.addEventListener('click', clickHandler);\n });\n\n return clickHandler;\n}\n","import updatePositionData from './util/updatePositionData';\n\nexport default function setupResizeHandler(scrollnav) {\n function resizeHandler() {\n scrollnav.data = updatePositionData(scrollnav.data);\n }\n\n window.addEventListener('resize', resizeHandler);\n\n return resizeHandler;\n}\n","export default function teardownClickHandlers(nav, clickHandler) {\n const links = nav.querySelectorAll('a');\n links.forEach(link => {\n link.removeEventListener('click', clickHandler);\n });\n}\n","export default function teardownScrollHandler(scrollHandler) {\n window.removeEventListener('scroll', scrollHandler);\n}\n","export default function teardownResizelHandler(resizeHandler) {\n window.removeEventListener('resize', resizeHandler);\n}\n"],"names":["extend","defaults","options","prop","extended","Object","prototype","hasOwnProperty","call","getYPosition","elem","parent","Promise","reject","Error","document","body","bodyRect","getBoundingClientRect","top","populateSectionData","sections","settings","prefix","sectionData","forEach","i","subSectionData","id","setID","getOrSetID","subSections","matches","selector","filter","siblings","nextElementSibling","push","nextUntil","text","innerText","textContent","offsetTop","createNav","data","nav","createElement","className","innerHTML","createList","isSubList","baseClass","itemsMarkup","map","item","length","join","updatePositionData","section","sectionDom","querySelector","getTargetYPosition","target","getAttribute","charAt","substr","filterData","targetSection","undefined","const","clickHandler","scrollHandler","resizeHandler","easeIn","p","t","Math","pow","easeOut","abs","easeInOut","easing","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","scrollTo","targetPosition","easingStyle","resolve","easedTime","startingPosition","window","pageYOffset","distance","duration","halfDistance","min","max","calculateScrollDuration","increment","ellapsedTime","animateScroll","scroll","setTimeout","setupScrollHandler","scrollnav","scrollY","scrollTop","boundryBottom","innerHeight","activeSection","getActiveSection","boundryTop","activeSubSection","previousActive","newActive","classList","remove","removeAttribute","add","setAttribute","updateActiveNavItem","addEventListener","isElement","element","Element","init","insertTarget","insertLocation","updateHistory","this","includes","location","snDebugger","sectionsDom","querySelectorAll","appendChild","insertBefore","firstChild","parentNode","nextSibling","event","preventDefault","activeArea","then","history","replaceState","onScroll","link","setupClickHandlers","setupResizeHandler","debug","onInit","console","error","destroy","removeEventListener","teardownClickHandlers","teardownScrollHandler","teardownResizeHandler","onDestroy","updatePositions","onUpdatePositions"],"mappings":"wKAEe,SAASA,EAAOC,EAAUC,OAEnCC,EADEC,EAAW,OAGZD,KAAQF,EACPI,OAAOC,UAAUC,eAAeC,KAAKP,EAAUE,KACjDC,EAASD,GAAQF,EAASE,QAIzBA,KAAQD,EACPG,OAAOC,UAAUC,eAAeC,KAAKN,EAASC,KAChDC,EAASD,GAAQD,EAAQC,WAItBC,EClBM,SAASK,EAAaC,EAAMC,MACrB,iBAATD,SACFE,QAAQC,OAAO,IAAIC,MAAM,wCAIZ,iBADtBH,EAASA,GAAUI,SAASC,aAEnBJ,QAAQC,OAAO,IAAIC,MAAM,0CAG5BG,EAAWN,EAAOO,+BACPR,EAAKQ,wBAENC,IAAMF,EAASE,aCTTC,EACtBC,EACAC,EACAC,kBAAS,kBAEHC,EAAc,UACpBD,GAAkB,KAElBF,EAASI,iBAASf,EAAMgB,OAClBC,EAAiB,GACfC,ECdK,SAAoBlB,EAAMmB,MACnB,iBAATnB,SACFE,QAAQC,OAAO,IAAIC,MAAM,yCAG9Bc,EAAKlB,EAAKkB,OAETA,EAAI,IACc,iBAAVC,SACFjB,QAAQC,OAAO,IAAIC,MAAM,qCAIlCJ,EAAKkB,GADLA,EAAKC,SAGAD,EDDME,CAAWpB,EAAMa,GAAUG,EAAI,IAEtCJ,EAASS,aAAerB,EAAKsB,QAAQV,EAASD,YAMhDM,EAAiBP,EEpBR,SAAmBV,EAAMuB,EAAUC,OAC5CC,EAAW,OAEfzB,EAAOA,EAAK0B,mBAEL1B,IACDA,EAAKsB,QAAQC,KAEbC,GAAWxB,EAAKsB,QAAQE,IAK5BC,EAASE,KAAK3B,GAEdA,EAAOA,EAAK0B,oBANV1B,EAAOA,EAAK0B,0BASTD,EFHmBG,CACpB5B,EACAY,EAASD,SACTC,EAASS,aAEyCT,EAAUM,IAGhEJ,EAAYa,KAAK,CACfT,GAAIA,EACJW,KAAM7B,EAAK8B,WAAa9B,EAAK+B,YAC7BC,UAAWjC,EAAaC,GACxBqB,YAAaJ,MAIVH,EG/BM,SAASmB,EAAUC,OAC1BC,EAAM9B,SAAS+B,cAAc,cACnCD,EAAIE,UAAY,aAChBF,EAAIG,UCLS,SAASC,EAAWL,EAAMM,mBAAY,OAE7CC,EAAY,cADHD,EAAY,SAAW,MAGhCE,EAAe,SACjBR,EACCS,aACCC,uBACgBH,4BAAmCG,kCACnCH,kBAAyBG,UAAYA,6BAE/CA,EAAKvB,aAAeuB,EAAKvB,YAAYwB,UAC9BN,EAAWK,EAAKvB,aAAa,GAChC,0BAIXyB,KAAK,iBAGI,oBACCL,mBACTC,oBDjBUH,CAAWL,GAEpBC,EELM,SAASY,EAAmBb,UACzCA,EAAKnB,iBAAQiC,OACLC,EAAa5C,SAAS6C,kBAAkBF,EAAW,IACzDA,EAAQhB,UAAYjC,EAAakD,GAE7BD,EAAQ3B,YAAYwB,SACtBG,EAAQ3B,YAAc0B,EAAmBC,EAAQ3B,gBAI9Ca,ECZM,SAASiB,EAAmBC,EAAQlB,OAC7ChB,EAAKkC,EAAOC,aAAa,cACR,MAAjBnC,EAAGoC,OAAO,KACZpC,EAAKA,EAAGqC,OAAO,IAQnB,SAASC,EAAWtB,EAAMhB,OACpBuC,EAEJvB,EAAKnB,iBAAQiC,GACPA,EAAQ9B,KAAOA,IACjBuC,EAAgBT,GAGdA,EAAQ3B,kBAAiCqC,IAAlBD,IACzBA,EAAgBD,EAAWR,EAAQ3B,YAAaH,aAI7CuC,EAlBeD,CAAWtB,EAAMhB,GAElBc,UCNvB2B,ICmBIC,EACAC,EACAC,EDrBEC,WAASC,mBAAKC,UAAKC,KAAKC,IAAIF,EAAGD,KAC/BI,WAAUJ,mBAAKC,UAAK,EAAIC,KAAKG,IAAIH,KAAKC,IAAIF,EAAI,EAAGD,MACjDM,WAAYN,mBAAKC,UACrBA,EAAI,GAAMF,EAAOC,EAAPD,CAAc,EAAJE,GAAS,EAAIG,EAAQJ,EAARI,CAAe,EAAJH,EAAQ,GAAK,EAAI,KAEzDM,EAAS,CACbC,OAAQF,EAAU,GAClBG,WAAYV,EAAO,GACnBW,YAAaN,EAAQ,GACrBO,cAAeL,EAAU,GACzBM,YAAab,EAAO,GACpBc,aAAcT,EAAQ,GACtBU,eAAgBR,EAAU,GAC1BS,YAAahB,EAAO,GACpBiB,aAAcZ,EAAQ,GACtBa,eAAgBX,EAAU,GAC1BY,YAAanB,EAAO,GACpBoB,aAAcf,EAAQ,GACtBgB,eAAgBd,EAAU,IEhBb,SAASe,EAASC,EAAgBC,UACxC,IAAIrF,iBAASsF,EAASrF,MACG,iBAAnBmF,SACFnF,EAAO,IAAIC,MAAM,uCAIC,iBAD3BmF,EAAcA,GAAe,iBAEpBpF,EAAO,IAAIC,MAAM,yCAStBqF,EANEC,EAAmBC,OAAOC,YAC1BC,EAAWP,EAAiBI,EAC5BI,ECjBK,SAAiCD,OACxCE,EAAe7B,KAAKG,IAAIwB,EAAW,UAElC3B,KAAK8B,IAAI9B,KAAK+B,IAAIF,EAAc,KAAM,MDc1BG,CAAwBL,GAEnCM,EAAY,GACdC,EAAe,YAIVC,IAEPZ,EAAYlB,EAAOgB,IADnBa,GAAgBD,GAC+BL,GAE/CH,OAAOW,OAAO,EADPb,EAAYI,EAAWH,GAG1BU,EAAeN,EACjBS,WAAWF,EAAeF,GAE1BX,EAAQG,OAAOC,aAInBS,KElCW,SAASG,EAAmBC,YAChC5C,QACDpD,EAAMkF,OAAOe,SAAWf,OAAOC,aAAevF,SAASC,KAAKqG,UAE5DC,EAAgBnG,EAA2B,GAArBkF,OAAOkB,YAC7BC,WCRcC,EAAiB7E,EAAM8E,EAAYJ,OACrDE,EAaEG,EAXN/E,EAAKnB,iBAAQiC,GACPA,EAAQhB,UAAY4E,GACjBE,GAAiB9D,EAAQhB,UAAYgF,IACxCF,EAAgB9D,GAGlB8D,EAAgB9D,IAIhB8D,GAAiBA,EAAczF,YAAYwB,SAG7CoE,EAAmBF,EACjBD,EAAczF,YACd2F,EACAJ,MAIAE,EAAgBG,UAIbH,EDnBiBC,CACpBN,EAAUvE,KAHOzB,EAKjBmG,UEXS,SAA6BE,EAAe3E,OACnD+E,EAAiB/E,EAAIe,cAAc,uBAEpC4D,OASCK,EAAYhF,EAAIe,cACpB,oBAAsB4D,EAAc5F,GAAK,KAGvCiG,GAAaA,IAAcD,IACzBA,IACFA,EAAeE,UAAUC,OAAO,4BAChCH,EAAeI,gBAAgB,mBAEjCH,EAAUC,UAAUG,IAAI,4BACxBJ,EAAUK,aAAa,kBAAkB,SAlBrCN,IACFA,EAAeE,UAAUC,OAAO,4BAChCH,EAAeI,gBAAgB,mBFQjCG,CAAoBX,EAAeL,EAAUtE,KAEtC2E,SAGTnB,OAAO+B,iBAAiB,SAAU7D,GAE3BA,EHIT,SAAS8D,EAAUC,UACVA,aAAmBC,cAyFV,CAChBC,KAvFF,SAAc9H,EAAMR,WAQboB,SAAWtB,EAPC,CACfqB,SAAU,KACVoH,aAAc/H,EACdgI,eAAgB,SAChBzC,YAAa,cACb0C,eAAe,GAEgBzI,GAG5BmI,EAAU3H,OAUXkI,KAAKtH,SAASmH,cAAiBJ,EAAUO,KAAKtH,SAASmH,iBAZnC,CAAC,SAAU,UAAW,QAAS,UAsBlCI,SAASD,KAAKtH,SAASoH,qBM5DZvB,EAC1BrD,EACAgF,ECDAC,EPuEAC,EAActI,EAAKuI,iBAAiBL,KAAKtH,SAASD,aAEnD2H,EAAYzF,mBAWZX,KAAOxB,EAAoB4H,EAAaJ,KAAKtH,eAC7CuB,IAAMF,EAAUiG,KAAKhG,MMrFpBkB,GAD0BqD,ENwFtByB,MMvFetH,SAASmH,aAGjB,YAFXK,EAAW3B,EAAU7F,SAASoH,gBAGlC5E,EAAOoF,YAAY/B,EAAUtE,KACP,YAAbiG,EACThF,EAAOqF,aAAahC,EAAUtE,IAAKiB,EAAOsF,YACpB,WAAbN,EACThF,EAAOuF,WAAWF,aAAahC,EAAUtE,IAAKiB,GACxB,UAAbgF,GACThF,EAAOuF,WAAWF,aAAahC,EAAUtE,IAAKiB,EAAOwF,aN8EvDhF,EQtFa,SAA4B6C,OACnC7F,EAAW6F,EAAU7F,kBAClBgD,EAAaiF,GACpBA,EAAMC,qBAEAC,EAAkC,IAArBpD,OAAOkB,mBAKnBxB,EAJiBlC,EAAmB0F,EAAMzF,OAAQqD,EAAUvE,MAC3B6G,EAGTnI,EAAS2E,aAAayD,gBAC/CpI,EAASqH,eACXgB,QAAQC,aAAa,GAAI,GAAIL,EAAMzF,OAAOC,aAAa,SAGrDzC,EAASuI,UACXvI,EAASuI,oBAKD1C,EAAUtE,IAAIoG,iBAAiB,KACvCxH,iBAAQqI,GACZA,EAAK1B,iBAAiB,QAAS9D,KAG1BA,ER4DQyF,CAAmBnB,MAClCrE,EAAgB2C,EAAmB0B,MACnCpE,ESzFa,SAA4B2C,YAChC3C,IACP2C,EAAUvE,KAAOa,EAAmB0D,EAAUvE,aAGhDyD,OAAO+B,iBAAiB,SAAU5D,GAE3BA,ETkFSwF,CAAmBpB,MAE/BA,KAAKtH,SAAS2I,SO5FZlB,EAAahI,SAAS+B,cAAc,QAC/BC,UAAY,aAEvBgG,EAAWb,aACT,QACC,mNAYHnH,SAASC,KAAKkI,YAAYH,IP4EtBH,KAAKtH,SAAS4I,OAAetB,KAAKtH,SAAS4I,gBAnBzCtB,KAAKtH,SAAS2I,OAEhBE,QAAQC,+DACwCxB,KAAKtH,oDAC7BZ,oBAlBtBkI,KAAKtH,SAAS2I,OAEhBE,QAAQC,mEAEJxB,KAAKtH,gEAdPsH,KAAKtH,SAAS2I,OAEhBE,QAAQC,iEAC0C1J,2CAbhDkI,KAAKtH,SAAS2I,OAEhBE,QAAQC,6DACsC1J,uCAyElD2J,QApBF,SAAiBnK,WACVoB,SAAWtB,EAAO4I,KAAKtH,SAAUpB,GUlGzB,SAA+B2C,EAAKyB,GACnCzB,EAAIoG,iBAAiB,KAC7BxH,iBAAQqI,GACZA,EAAKQ,oBAAoB,QAAShG,KViGpCiG,CAAsB3B,KAAK/F,IAAKyB,GWpGnB,SAA+BC,GAC5C8B,OAAOiE,oBAAoB,SAAU/F,GXoGrCiG,CAAsBjG,GYrGT,SAAgCC,GAC7C6B,OAAOiE,oBAAoB,SAAU9F,GZqGrCiG,CAAsBjG,QACjB3B,IAAIkF,SAELa,KAAKtH,SAASoJ,UAAW,OAAO9B,KAAKtH,SAASoJ,aAalDC,gBAVF,SAAyBzK,WAClBoB,SAAWtB,EAAO4I,KAAKtH,SAAUpB,QACjC0C,KAAOa,EAAmBmF,KAAKhG,MAEhCgG,KAAKtH,SAASsJ,kBAAmB,OAAOhC,KAAKtH,SAASsJ"} \ No newline at end of file +{"version":3,"file":"scrollnav.min.umd.js","sources":["../src/util/extend.js","../src/util/getOrSetID.js","../src/util/getYPosition.js","../src/util/nextUntil.js","../src/util/populateSectionData.js","../src/util/createList.js","../src/util/createNav.js","../src/util/insertNav.js","../src/util/updatePositionData.js","../src/util/insertVisualDebugger.js","../src/util/getTargetYPosition.js","../src/util/calculateScrollDuration.js","../src/util/easing.js","../src/scrollTo.js","../src/setupClickHandlers.js","../src/util/getActiveSection.js","../src/util/updateActiveNavItem.js","../src/setupScrollHandler.js","../src/setupResizeHandler.js","../src/teardownClickHandlers.js","../src/teardownScrollHandler.js","../src/teardownResizeHandler.js","../src/scrollnav.js"],"sourcesContent":["/* Borrowed from https://gist.github.com/cferdinandi/4f8a0e17921c5b46e6c4 */\n\nexport default function extend(defaults, options) {\n const extended = {};\n let prop;\n\n for (prop in defaults) {\n if (Object.prototype.hasOwnProperty.call(defaults, prop)) {\n extended[prop] = defaults[prop];\n }\n }\n\n for (prop in options) {\n if (Object.prototype.hasOwnProperty.call(options, prop)) {\n extended[prop] = options[prop];\n }\n }\n\n return extended;\n}\n","export default function getOrSetID(elem, setID) {\n if (typeof elem !== 'object') {\n return Promise.reject(new Error('First argument must be an object'));\n }\n\n let id = elem.id;\n\n if (!id) {\n if (typeof setID !== 'string') {\n return Promise.reject(new Error('Second argument must be a string'));\n }\n\n id = setID;\n elem.id = id;\n }\n return id;\n}\n","export default function getYPosition(elem, parent) {\n if (typeof elem !== 'object') {\n return Promise.reject(new Error('First argument must be an object'));\n }\n\n parent = parent || document.body;\n if (typeof parent !== 'object') {\n return Promise.reject(new Error('Second argument must be an object'));\n }\n\n const bodyRect = parent.getBoundingClientRect();\n const elemRect = elem.getBoundingClientRect();\n\n return elemRect.top - bodyRect.top;\n}\n","/* Borrowed from https://github.com/cferdinandi/nextUntil */\n\nexport default function nextUntil(elem, selector, filter) {\n var siblings = [];\n\n elem = elem.nextElementSibling;\n\n while (elem) {\n if (elem.matches(selector)) break;\n\n if (filter && !elem.matches(filter)) {\n elem = elem.nextElementSibling;\n continue;\n }\n\n siblings.push(elem);\n\n elem = elem.nextElementSibling;\n }\n\n return siblings;\n}\n","import getOrSetID from './getOrSetID';\nimport getYPosition from './getYPosition';\nimport nextUntil from './nextUntil';\n\nexport default function populateSectionData(\n sections,\n settings,\n prefix = 'scroll-nav'\n) {\n const sectionData = [];\n prefix = prefix + '__';\n\n sections.forEach((elem, i) => {\n let subSectionData = [];\n const id = getOrSetID(elem, prefix + (i + 1));\n\n if (settings.subSections && elem.matches(settings.sections)) {\n const subSectionDom = nextUntil(\n elem,\n settings.sections,\n settings.subSections\n );\n subSectionData = populateSectionData(subSectionDom, settings, id);\n }\n\n sectionData.push({\n id: id,\n text: elem.innerText || elem.textContent,\n offsetTop: getYPosition(elem),\n subSections: subSectionData\n });\n });\n\n return sectionData;\n}\n","export default function createList(data, isSubList = false) {\n const suffix = isSubList ? '__sub-' : '__';\n const baseClass = 'scroll-nav' + suffix;\n\n const itemsMarkup = `\n ${data\n .map(\n item =>\n `
  • \n ${item.text}\n ${\n item.subSections && item.subSections.length\n ? `${createList(item.subSections, true)}`\n : ''\n }\n
  • `\n )\n .join('')}\n `;\n\n const list = `\n
      \n ${itemsMarkup}\n
    \n `;\n\n return list;\n}\n","import createList from './createList';\n\nexport default function createNav(data) {\n const nav = document.createElement('nav');\n nav.className = 'scroll-nav';\n nav.innerHTML = createList(data);\n\n return nav;\n}\n","export default function insertNav(scrollnav) {\n const target = scrollnav.settings.insertTarget;\n const location = scrollnav.settings.insertLocation;\n\n if (location === 'append') {\n target.appendChild(scrollnav.nav);\n } else if (location === 'prepend') {\n target.insertBefore(scrollnav.nav, target.firstChild);\n } else if (location === 'before') {\n target.parentNode.insertBefore(scrollnav.nav, target);\n } else if (location === 'after') {\n target.parentNode.insertBefore(scrollnav.nav, target.nextSibling);\n }\n}\n","import getYPosition from './getYPosition';\n\nexport default function updatePositionData(data) {\n data.forEach(section => {\n const sectionDom = document.querySelector(`#${section.id}`);\n section.offsetTop = getYPosition(sectionDom);\n\n if (section.subSections.length) {\n section.subSections = updatePositionData(section.subSections);\n }\n });\n\n return data;\n}\n","export default function insertVisualDebugger() {\n const snDebugger = document.createElement('div');\n snDebugger.className = 'snDebugger';\n\n snDebugger.setAttribute(\n 'style',\n `\n position: fixed;\n top: 40%;\n height: 0px;\n border-bottom:5px solid red;\n border-top: 5px solid blue;\n width: 100%;\n opacity: .5;\n pointer-events: none;\n `\n );\n\n document.body.appendChild(snDebugger);\n}\n","export default function getTargetYPosition(target, data) {\n let id = target.getAttribute('href');\n if (id.charAt(0) === '#') {\n id = id.substr(1);\n }\n\n const targetSection = filterData(data, id);\n\n return targetSection.offsetTop;\n}\n\nfunction filterData(data, id) {\n let targetSection;\n\n data.forEach(section => {\n if (section.id === id) {\n targetSection = section;\n }\n\n if (section.subSections && targetSection === undefined) {\n targetSection = filterData(section.subSections, id);\n }\n });\n\n return targetSection;\n}\n","export default function calculateScrollDuration(distance) {\n const halfDistance = Math.abs(distance / 2);\n\n return Math.min(Math.max(halfDistance, 250), 1200);\n}\n","/* Borrowed from https://gist.github.com/gre/1650294#gistcomment-1806616 */\n\nconst easeIn = p => t => Math.pow(t, p);\nconst easeOut = p => t => 1 - Math.abs(Math.pow(t - 1, p));\nconst easeInOut = p => t =>\n t < 0.5 ? easeIn(p)(t * 2) / 2 : easeOut(p)(t * 2 - 1) / 2 + 0.5;\n\nconst easing = {\n linear: easeInOut(1),\n easeInQuad: easeIn(2),\n easeOutQuad: easeOut(2),\n easeInOutQuad: easeInOut(2),\n easeInCubic: easeIn(3),\n easeOutCubic: easeOut(3),\n easeInOutCubic: easeInOut(3),\n easeInQuart: easeIn(4),\n easeOutQuart: easeOut(4),\n easeInOutQuart: easeInOut(4),\n easeInQuint: easeIn(5),\n easeOutQuint: easeOut(5),\n easeInOutQuint: easeInOut(5)\n};\n\nexport { easing };\n","import calculateScrollDuration from './util/calculateScrollDuration';\nimport { easing } from './util/easing';\n\n/* istanbul ignore next */\nexport default function scrollTo(targetPosition, easingStyle) {\n return new Promise((resolve, reject) => {\n if (typeof targetPosition !== 'number') {\n return reject(new Error('First argument must be a number'));\n }\n\n easingStyle = easingStyle || 'linear';\n if (typeof easingStyle !== 'string') {\n return reject(new Error('Second argument must be a string'));\n }\n\n const startingPosition = window.pageYOffset;\n const distance = targetPosition - startingPosition;\n const duration = calculateScrollDuration(distance);\n const framerate = 50;\n const increment = 1000 / framerate;\n let ellapsedTime = 0;\n let easedTime;\n let next;\n\n function animateScroll() {\n ellapsedTime += increment;\n easedTime = easing[easingStyle](ellapsedTime / duration);\n next = easedTime * distance + startingPosition;\n window.scroll(0, next);\n\n if (ellapsedTime < duration) {\n setTimeout(animateScroll, increment);\n } else {\n resolve(window.pageYOffset);\n }\n }\n\n if (easingStyle == 'none') {\n window.scroll(0, targetPosition);\n } else {\n animateScroll();\n }\n });\n}\n","import getTargetYPosition from './util/getTargetYPosition';\nimport scrollTo from './scrollTo';\n\nexport default function setupClickHandlers(scrollnav) {\n const settings = scrollnav.settings;\n function clickHandler(event) {\n event.preventDefault();\n\n const activeArea = window.innerHeight * 0.39;\n const targetYPosition = getTargetYPosition(event.target, scrollnav.data);\n const scrollYTarget = targetYPosition - activeArea;\n\n /* istanbul ignore next */\n return scrollTo(scrollYTarget, settings.easingStyle).then(() => {\n if (settings.updateHistory) {\n history.replaceState({}, '', event.target.getAttribute('href'));\n }\n\n if (settings.onScroll) {\n settings.onScroll();\n }\n });\n }\n\n const links = scrollnav.nav.querySelectorAll('a');\n links.forEach(link => {\n link.addEventListener('click', clickHandler);\n });\n\n return clickHandler;\n}\n","export default function getActiveSection(data, boundryTop, boundryBottom) {\n let activeSection;\n\n data.forEach(section => {\n if (section.offsetTop > boundryBottom) {\n if (!activeSection && section.offsetTop < boundryTop) {\n activeSection = section;\n }\n } else {\n activeSection = section;\n }\n });\n\n if (activeSection && activeSection.subSections.length) {\n let activeSubSection;\n\n activeSubSection = getActiveSection(\n activeSection.subSections,\n boundryTop,\n boundryBottom\n );\n\n if (activeSubSection) {\n activeSection = activeSubSection;\n }\n }\n\n return activeSection;\n}\n","export default function updateActiveNavItem(activeSection, nav) {\n const previousActive = nav.querySelector('[data-sn-active]');\n\n if (!activeSection) {\n if (previousActive) {\n previousActive.classList.remove('scroll-nav__item--active');\n previousActive.removeAttribute('data-sn-active');\n }\n\n return;\n }\n\n const newActive = nav.querySelector(\n '[data-sn-section=' + activeSection.id + ']'\n );\n\n if (newActive && newActive !== previousActive) {\n if (previousActive) {\n previousActive.classList.remove('scroll-nav__item--active');\n previousActive.removeAttribute('data-sn-active');\n }\n newActive.classList.add('scroll-nav__item--active');\n newActive.setAttribute('data-sn-active', true);\n }\n}\n","import getActiveSection from './util/getActiveSection';\nimport updateActiveNavItem from './util/updateActiveNavItem';\n\nexport default function setupScrollHandler(scrollnav) {\n function scrollHandler() {\n const top = window.scrollY || window.pageYOffset || document.body.scrollTop;\n const boundryTop = top;\n const boundryBottom = top + window.innerHeight * 0.4;\n const activeSection = getActiveSection(\n scrollnav.data,\n boundryTop,\n boundryBottom\n );\n\n updateActiveNavItem(activeSection, scrollnav.nav);\n\n return activeSection;\n }\n\n window.addEventListener('scroll', scrollHandler);\n\n return scrollHandler;\n}\n","import updatePositionData from './util/updatePositionData';\n\nexport default function setupResizeHandler(scrollnav) {\n function resizeHandler() {\n scrollnav.data = updatePositionData(scrollnav.data);\n }\n\n window.addEventListener('resize', resizeHandler);\n\n return resizeHandler;\n}\n","export default function teardownClickHandlers(nav, clickHandler) {\n const links = nav.querySelectorAll('a');\n links.forEach(link => {\n link.removeEventListener('click', clickHandler);\n });\n}\n","export default function teardownScrollHandler(scrollHandler) {\n window.removeEventListener('scroll', scrollHandler);\n}\n","export default function teardownResizelHandler(resizeHandler) {\n window.removeEventListener('resize', resizeHandler);\n}\n","/*\n * scrollnav\n * http://scrollnav.com\n *\n * Copyright (c) 2013-2018 James Wilson\n * Licensed under the MIT license.\n */\n\nimport extend from './util/extend';\nimport populateSectionData from './util/populateSectionData';\nimport createNav from './util/createNav';\nimport insertNav from './util/insertNav';\nimport updatePositionData from './util/updatePositionData';\nimport insertVisualDebugger from './util/insertVisualDebugger';\nimport setupClickHandlers from './setupClickHandlers';\nimport setupScrollHandler from './setupScrollHandler';\nimport setupResizeHandler from './setupResizeHandler';\nimport teardownClickHandlers from './teardownClickHandlers';\nimport teardownScrollHandler from './teardownScrollHandler';\nimport teardownResizeHandler from './teardownResizeHandler';\n\nlet clickHandler;\nlet scrollHandler;\nlet resizeHandler;\n\nfunction isElement(element) {\n return element instanceof Element;\n}\n\nfunction init(elem, options) {\n const defaults = {\n sections: 'h2',\n insertTarget: elem,\n insertLocation: 'before',\n easingStyle: 'easeOutQuad',\n updateHistory: true\n };\n this.settings = extend(defaults, options);\n const locationOptions = ['append', 'prepend', 'after', 'before'];\n\n if (!isElement(elem)) {\n if (this.settings.debug) {\n // eslint-disable-next-line no-console\n console.error(`\n scrollnav build failed, content argument \"${elem}\" is not an HTML Element\n `);\n }\n return;\n }\n\n if (this.settings.insertTarget && !isElement(this.settings.insertTarget)) {\n if (this.settings.debug) {\n // eslint-disable-next-line no-console\n console.error(`\n scrollnav build failed, options.insertTarget \"${elem}\" is not an HTML Element\n `);\n }\n return;\n }\n\n if (!locationOptions.includes(this.settings.insertLocation)) {\n if (this.settings.debug) {\n // eslint-disable-next-line no-console\n console.error(`\n scrollnav build failed, options.insertLocation \"${this.settings.insertLocation}\" is not a valid option\n `);\n }\n return;\n }\n\n const sectionsDom = elem.querySelectorAll(this.settings.sections);\n\n if (!sectionsDom.length) {\n if (this.settings.debug) {\n // eslint-disable-next-line no-console\n console.error(`\n scrollnav build failed, could not find any \"${this.settings.sections}\"\n elements inside of \"${elem}\"\n `);\n }\n return;\n }\n\n this.data = populateSectionData(sectionsDom, this.settings);\n this.nav = createNav(this.data);\n\n insertNav(this);\n clickHandler = setupClickHandlers(this);\n scrollHandler = setupScrollHandler(this);\n resizeHandler = setupResizeHandler(this);\n\n if (this.settings.debug) insertVisualDebugger();\n if (this.settings.onInit) return this.settings.onInit();\n}\n\nfunction destroy(options) {\n this.settings = extend(this.settings, options);\n\n teardownClickHandlers(this.nav, clickHandler);\n teardownScrollHandler(scrollHandler);\n teardownResizeHandler(resizeHandler);\n this.nav.remove();\n\n if (this.settings.onDestroy) return this.settings.onDestroy();\n}\n\nfunction updatePositions(options) {\n this.settings = extend(this.settings, options);\n this.data = updatePositionData(this.data);\n\n if (this.settings.onUpdatePositions) return this.settings.onUpdatePositions();\n}\n\nconst scrollnav = {\n init: init,\n destroy: destroy,\n updatePositions: updatePositions\n};\n\nexport default scrollnav;\n"],"names":["extend","defaults","options","extended","prop","Object","prototype","hasOwnProperty","call","getOrSetID","elem","setID","Promise","reject","Error","id","getYPosition","parent","document","body","bodyRect","getBoundingClientRect","elemRect","top","nextUntil","selector","filter","siblings","nextElementSibling","matches","push","populateSectionData","sections","settings","prefix","sectionData","forEach","i","subSectionData","subSections","subSectionDom","text","innerText","textContent","offsetTop","createList","data","isSubList","suffix","baseClass","itemsMarkup","map","item","length","join","list","createNav","nav","createElement","className","innerHTML","insertNav","scrollnav","target","insertTarget","location","insertLocation","appendChild","insertBefore","firstChild","parentNode","nextSibling","updatePositionData","section","sectionDom","querySelector","insertVisualDebugger","snDebugger","setAttribute","getTargetYPosition","getAttribute","charAt","substr","targetSection","filterData","undefined","calculateScrollDuration","distance","halfDistance","Math","abs","min","max","easeIn","p","t","pow","easeOut","easeInOut","easing","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","scrollTo","targetPosition","easingStyle","resolve","startingPosition","window","pageYOffset","duration","framerate","increment","ellapsedTime","easedTime","next","animateScroll","scroll","setTimeout","setupClickHandlers","clickHandler","event","preventDefault","activeArea","innerHeight","targetYPosition","scrollYTarget","then","updateHistory","history","replaceState","onScroll","links","querySelectorAll","link","addEventListener","getActiveSection","boundryTop","boundryBottom","activeSection","activeSubSection","updateActiveNavItem","previousActive","classList","remove","removeAttribute","newActive","add","setupScrollHandler","scrollHandler","scrollY","scrollTop","setupResizeHandler","resizeHandler","teardownClickHandlers","removeEventListener","teardownScrollHandler","teardownResizelHandler","isElement","element","Element","init","locationOptions","debug","console","error","includes","sectionsDom","onInit","destroy","teardownResizeHandler","onDestroy","updatePositions","onUpdatePositions"],"mappings":"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"} \ No newline at end of file diff --git a/src/scrollTo.js b/src/scrollTo.js index 41bf99a..e880475 100644 --- a/src/scrollTo.js +++ b/src/scrollTo.js @@ -35,6 +35,10 @@ export default function scrollTo(targetPosition, easingStyle) { } } - animateScroll(); + if (easingStyle == 'none') { + window.scroll(0, targetPosition); + } else { + animateScroll(); + } }); } diff --git a/src/scrollnav.js b/src/scrollnav.js index 58c6125..66f291f 100644 --- a/src/scrollnav.js +++ b/src/scrollnav.js @@ -62,9 +62,7 @@ function init(elem, options) { if (this.settings.debug) { // eslint-disable-next-line no-console console.error(` - scrollnav build failed, options.insertLocation "${ - this.settings.insertLocation - }" is not a valid option + scrollnav build failed, options.insertLocation "${this.settings.insertLocation}" is not a valid option `); } return; diff --git a/test/coverage/clover.xml b/test/coverage/clover.xml index 7bd2561..1c6a827 100644 --- a/test/coverage/clover.xml +++ b/test/coverage/clover.xml @@ -1,11 +1,11 @@ - - - + + + - - - + + + @@ -25,51 +25,53 @@ - + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -81,13 +83,13 @@ - + - + @@ -98,29 +100,29 @@ - + - + - + - + - + @@ -129,14 +131,14 @@ - + - + @@ -144,7 +146,7 @@ - + @@ -155,7 +157,7 @@ - + @@ -168,7 +170,7 @@ - + @@ -180,7 +182,7 @@ - + @@ -194,7 +196,7 @@ - + @@ -205,7 +207,7 @@ - + @@ -218,14 +220,14 @@ - + - + @@ -238,7 +240,7 @@ - + @@ -251,7 +253,7 @@ - + @@ -267,7 +269,7 @@ - + diff --git a/test/coverage/coverage-final.json b/test/coverage/coverage-final.json index 4c1874d..bf573eb 100644 --- a/test/coverage/coverage-final.json +++ b/test/coverage/coverage-final.json @@ -1,24 +1,24 @@ -{"/Users/jimmyw/repos/jimmynotjim/scrollNav/src/scrollTo.js": {"path":"/Users/jimmyw/repos/jimmynotjim/scrollNav/src/scrollTo.js","statementMap":{"0":{"start":{"line":6,"column":2},"end":{"line":39,"column":5}},"1":{"start":{"line":7,"column":4},"end":{"line":9,"column":5}},"2":{"start":{"line":8,"column":6},"end":{"line":8,"column":66}},"3":{"start":{"line":11,"column":4},"end":{"line":11,"column":42}},"4":{"start":{"line":12,"column":4},"end":{"line":14,"column":5}},"5":{"start":{"line":13,"column":6},"end":{"line":13,"column":67}},"6":{"start":{"line":16,"column":29},"end":{"line":16,"column":47}},"7":{"start":{"line":17,"column":21},"end":{"line":17,"column":54}},"8":{"start":{"line":18,"column":21},"end":{"line":18,"column":54}},"9":{"start":{"line":19,"column":22},"end":{"line":19,"column":24}},"10":{"start":{"line":20,"column":22},"end":{"line":20,"column":38}},"11":{"start":{"line":21,"column":23},"end":{"line":21,"column":24}},"12":{"start":{"line":26,"column":6},"end":{"line":26,"column":32}},"13":{"start":{"line":27,"column":6},"end":{"line":27,"column":63}},"14":{"start":{"line":28,"column":6},"end":{"line":28,"column":53}},"15":{"start":{"line":29,"column":6},"end":{"line":29,"column":29}},"16":{"start":{"line":31,"column":6},"end":{"line":35,"column":7}},"17":{"start":{"line":32,"column":8},"end":{"line":32,"column":45}},"18":{"start":{"line":34,"column":8},"end":{"line":34,"column":36}},"19":{"start":{"line":38,"column":4},"end":{"line":38,"column":20}}},"fnMap":{"0":{"name":"scrollTo","decl":{"start":{"line":5,"column":24},"end":{"line":5,"column":32}},"loc":{"start":{"line":5,"column":62},"end":{"line":40,"column":1}},"line":5},"1":{"name":"(anonymous_1)","decl":{"start":{"line":6,"column":21},"end":{"line":6,"column":22}},"loc":{"start":{"line":6,"column":42},"end":{"line":39,"column":3}},"line":6},"2":{"name":"animateScroll","decl":{"start":{"line":25,"column":13},"end":{"line":25,"column":26}},"loc":{"start":{"line":25,"column":29},"end":{"line":36,"column":5}},"line":25}},"branchMap":{"0":{"loc":{"start":{"line":7,"column":4},"end":{"line":9,"column":5}},"type":"if","locations":[{"start":{"line":7,"column":4},"end":{"line":9,"column":5}},{"start":{"line":7,"column":4},"end":{"line":9,"column":5}}],"line":7},"1":{"loc":{"start":{"line":11,"column":18},"end":{"line":11,"column":41}},"type":"binary-expr","locations":[{"start":{"line":11,"column":18},"end":{"line":11,"column":29}},{"start":{"line":11,"column":33},"end":{"line":11,"column":41}}],"line":11},"2":{"loc":{"start":{"line":12,"column":4},"end":{"line":14,"column":5}},"type":"if","locations":[{"start":{"line":12,"column":4},"end":{"line":14,"column":5}},{"start":{"line":12,"column":4},"end":{"line":14,"column":5}}],"line":12},"3":{"loc":{"start":{"line":31,"column":6},"end":{"line":35,"column":7}},"type":"if","locations":[{"start":{"line":31,"column":6},"end":{"line":35,"column":7}},{"start":{"line":31,"column":6},"end":{"line":35,"column":7}}],"line":31}},"s":{"0":3,"1":3,"2":1,"3":2,"4":2,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":0,"19":1},"f":{"0":3,"1":3,"2":1},"b":{"0":[1,2],"1":[2,1],"2":[1,1],"3":[1,0]},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"45ae791fdd502a807bd19384eda0fc92d1306d28"} -,"/Users/jimmyw/repos/jimmynotjim/scrollNav/src/scrollnav.js": {"path":"/Users/jimmyw/repos/jimmynotjim/scrollNav/src/scrollnav.js","statementMap":{"0":{"start":{"line":100,"column":2},"end":{"line":100,"column":36}},"1":{"start":{"line":104,"column":19},"end":{"line":110,"column":3}},"2":{"start":{"line":111,"column":2},"end":{"line":111,"column":44}},"3":{"start":{"line":112,"column":26},"end":{"line":112,"column":66}},"4":{"start":{"line":114,"column":2},"end":{"line":122,"column":3}},"5":{"start":{"line":115,"column":4},"end":{"line":120,"column":5}},"6":{"start":{"line":117,"column":6},"end":{"line":119,"column":9}},"7":{"start":{"line":121,"column":4},"end":{"line":121,"column":11}},"8":{"start":{"line":124,"column":2},"end":{"line":132,"column":3}},"9":{"start":{"line":125,"column":4},"end":{"line":130,"column":5}},"10":{"start":{"line":127,"column":6},"end":{"line":129,"column":9}},"11":{"start":{"line":131,"column":4},"end":{"line":131,"column":11}},"12":{"start":{"line":134,"column":2},"end":{"line":144,"column":3}},"13":{"start":{"line":135,"column":4},"end":{"line":142,"column":5}},"14":{"start":{"line":137,"column":6},"end":{"line":141,"column":9}},"15":{"start":{"line":143,"column":4},"end":{"line":143,"column":11}},"16":{"start":{"line":146,"column":22},"end":{"line":146,"column":67}},"17":{"start":{"line":148,"column":2},"end":{"line":157,"column":3}},"18":{"start":{"line":149,"column":4},"end":{"line":155,"column":5}},"19":{"start":{"line":151,"column":6},"end":{"line":154,"column":9}},"20":{"start":{"line":156,"column":4},"end":{"line":156,"column":11}},"21":{"start":{"line":159,"column":2},"end":{"line":159,"column":62}},"22":{"start":{"line":160,"column":2},"end":{"line":160,"column":34}},"23":{"start":{"line":162,"column":2},"end":{"line":162,"column":18}},"24":{"start":{"line":163,"column":2},"end":{"line":163,"column":42}},"25":{"start":{"line":164,"column":2},"end":{"line":164,"column":43}},"26":{"start":{"line":165,"column":2},"end":{"line":165,"column":43}},"27":{"start":{"line":167,"column":2},"end":{"line":167,"column":50}},"28":{"start":{"line":167,"column":27},"end":{"line":167,"column":50}},"29":{"start":{"line":168,"column":2},"end":{"line":168,"column":58}},"30":{"start":{"line":168,"column":28},"end":{"line":168,"column":58}},"31":{"start":{"line":172,"column":2},"end":{"line":172,"column":49}},"32":{"start":{"line":174,"column":2},"end":{"line":174,"column":48}},"33":{"start":{"line":175,"column":2},"end":{"line":175,"column":39}},"34":{"start":{"line":176,"column":2},"end":{"line":176,"column":39}},"35":{"start":{"line":177,"column":2},"end":{"line":177,"column":20}},"36":{"start":{"line":179,"column":2},"end":{"line":179,"column":64}},"37":{"start":{"line":179,"column":31},"end":{"line":179,"column":64}},"38":{"start":{"line":183,"column":2},"end":{"line":183,"column":49}},"39":{"start":{"line":184,"column":2},"end":{"line":184,"column":44}},"40":{"start":{"line":186,"column":2},"end":{"line":186,"column":80}},"41":{"start":{"line":186,"column":39},"end":{"line":186,"column":80}},"42":{"start":{"line":189,"column":18},"end":{"line":193,"column":1}}},"fnMap":{"0":{"name":"isElement","decl":{"start":{"line":99,"column":9},"end":{"line":99,"column":18}},"loc":{"start":{"line":99,"column":28},"end":{"line":101,"column":1}},"line":99},"1":{"name":"init","decl":{"start":{"line":103,"column":9},"end":{"line":103,"column":13}},"loc":{"start":{"line":103,"column":29},"end":{"line":169,"column":1}},"line":103},"2":{"name":"destroy","decl":{"start":{"line":171,"column":9},"end":{"line":171,"column":16}},"loc":{"start":{"line":171,"column":26},"end":{"line":180,"column":1}},"line":171},"3":{"name":"updatePositions","decl":{"start":{"line":182,"column":9},"end":{"line":182,"column":24}},"loc":{"start":{"line":182,"column":34},"end":{"line":187,"column":1}},"line":182}},"branchMap":{"0":{"loc":{"start":{"line":114,"column":2},"end":{"line":122,"column":3}},"type":"if","locations":[{"start":{"line":114,"column":2},"end":{"line":122,"column":3}},{"start":{"line":114,"column":2},"end":{"line":122,"column":3}}],"line":114},"1":{"loc":{"start":{"line":115,"column":4},"end":{"line":120,"column":5}},"type":"if","locations":[{"start":{"line":115,"column":4},"end":{"line":120,"column":5}},{"start":{"line":115,"column":4},"end":{"line":120,"column":5}}],"line":115},"2":{"loc":{"start":{"line":124,"column":2},"end":{"line":132,"column":3}},"type":"if","locations":[{"start":{"line":124,"column":2},"end":{"line":132,"column":3}},{"start":{"line":124,"column":2},"end":{"line":132,"column":3}}],"line":124},"3":{"loc":{"start":{"line":124,"column":6},"end":{"line":124,"column":74}},"type":"binary-expr","locations":[{"start":{"line":124,"column":6},"end":{"line":124,"column":32}},{"start":{"line":124,"column":36},"end":{"line":124,"column":74}}],"line":124},"4":{"loc":{"start":{"line":125,"column":4},"end":{"line":130,"column":5}},"type":"if","locations":[{"start":{"line":125,"column":4},"end":{"line":130,"column":5}},{"start":{"line":125,"column":4},"end":{"line":130,"column":5}}],"line":125},"5":{"loc":{"start":{"line":134,"column":2},"end":{"line":144,"column":3}},"type":"if","locations":[{"start":{"line":134,"column":2},"end":{"line":144,"column":3}},{"start":{"line":134,"column":2},"end":{"line":144,"column":3}}],"line":134},"6":{"loc":{"start":{"line":135,"column":4},"end":{"line":142,"column":5}},"type":"if","locations":[{"start":{"line":135,"column":4},"end":{"line":142,"column":5}},{"start":{"line":135,"column":4},"end":{"line":142,"column":5}}],"line":135},"7":{"loc":{"start":{"line":148,"column":2},"end":{"line":157,"column":3}},"type":"if","locations":[{"start":{"line":148,"column":2},"end":{"line":157,"column":3}},{"start":{"line":148,"column":2},"end":{"line":157,"column":3}}],"line":148},"8":{"loc":{"start":{"line":149,"column":4},"end":{"line":155,"column":5}},"type":"if","locations":[{"start":{"line":149,"column":4},"end":{"line":155,"column":5}},{"start":{"line":149,"column":4},"end":{"line":155,"column":5}}],"line":149},"9":{"loc":{"start":{"line":167,"column":2},"end":{"line":167,"column":50}},"type":"if","locations":[{"start":{"line":167,"column":2},"end":{"line":167,"column":50}},{"start":{"line":167,"column":2},"end":{"line":167,"column":50}}],"line":167},"10":{"loc":{"start":{"line":168,"column":2},"end":{"line":168,"column":58}},"type":"if","locations":[{"start":{"line":168,"column":2},"end":{"line":168,"column":58}},{"start":{"line":168,"column":2},"end":{"line":168,"column":58}}],"line":168},"11":{"loc":{"start":{"line":179,"column":2},"end":{"line":179,"column":64}},"type":"if","locations":[{"start":{"line":179,"column":2},"end":{"line":179,"column":64}},{"start":{"line":179,"column":2},"end":{"line":179,"column":64}}],"line":179},"12":{"loc":{"start":{"line":186,"column":2},"end":{"line":186,"column":80}},"type":"if","locations":[{"start":{"line":186,"column":2},"end":{"line":186,"column":80}},{"start":{"line":186,"column":2},"end":{"line":186,"column":80}}],"line":186}},"s":{"0":50,"1":27,"2":27,"3":27,"4":27,"5":4,"6":1,"7":4,"8":23,"9":4,"10":1,"11":4,"12":19,"13":2,"14":1,"15":2,"16":17,"17":17,"18":2,"19":1,"20":2,"21":15,"22":15,"23":15,"24":15,"25":15,"26":15,"27":15,"28":7,"29":15,"30":1,"31":2,"32":2,"33":2,"34":2,"35":2,"36":2,"37":1,"38":2,"39":2,"40":2,"41":1,"42":1},"f":{"0":50,"1":27,"2":2,"3":2},"b":{"0":[4,23],"1":[1,3],"2":[4,19],"3":[23,23],"4":[1,3],"5":[2,17],"6":[1,1],"7":[2,15],"8":[1,1],"9":[7,8],"10":[1,14],"11":[1,1],"12":[1,1]},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"004d81d67aa5f9c0dbfa80699826dceb6d2daf31"} -,"/Users/jimmyw/repos/jimmynotjim/scrollNav/src/setupClickHandlers.js": {"path":"/Users/jimmyw/repos/jimmynotjim/scrollNav/src/setupClickHandlers.js","statementMap":{"0":{"start":{"line":5,"column":19},"end":{"line":5,"column":37}},"1":{"start":{"line":7,"column":4},"end":{"line":7,"column":27}},"2":{"start":{"line":9,"column":23},"end":{"line":9,"column":48}},"3":{"start":{"line":10,"column":28},"end":{"line":10,"column":76}},"4":{"start":{"line":11,"column":26},"end":{"line":11,"column":54}},"5":{"start":{"line":25,"column":16},"end":{"line":25,"column":51}},"6":{"start":{"line":26,"column":2},"end":{"line":28,"column":5}},"7":{"start":{"line":27,"column":4},"end":{"line":27,"column":49}},"8":{"start":{"line":30,"column":2},"end":{"line":30,"column":22}}},"fnMap":{"0":{"name":"setupClickHandlers","decl":{"start":{"line":4,"column":24},"end":{"line":4,"column":42}},"loc":{"start":{"line":4,"column":54},"end":{"line":31,"column":1}},"line":4},"1":{"name":"clickHandler","decl":{"start":{"line":6,"column":11},"end":{"line":6,"column":23}},"loc":{"start":{"line":6,"column":31},"end":{"line":23,"column":3}},"line":6},"2":{"name":"(anonymous_2)","decl":{"start":{"line":26,"column":16},"end":{"line":26,"column":17}},"loc":{"start":{"line":26,"column":24},"end":{"line":28,"column":3}},"line":26}},"branchMap":{},"s":{"0":17,"1":1,"2":1,"3":1,"4":1,"5":17,"6":17,"7":51,"8":17},"f":{"0":17,"1":1,"2":51},"b":{},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"7280882d156205f412cc07ef62ba891fafc9b37b"} -,"/Users/jimmyw/repos/jimmynotjim/scrollNav/src/setupResizeHandler.js": {"path":"/Users/jimmyw/repos/jimmynotjim/scrollNav/src/setupResizeHandler.js","statementMap":{"0":{"start":{"line":5,"column":4},"end":{"line":5,"column":56}},"1":{"start":{"line":8,"column":2},"end":{"line":8,"column":51}},"2":{"start":{"line":10,"column":2},"end":{"line":10,"column":23}}},"fnMap":{"0":{"name":"setupResizeHandler","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":42}},"loc":{"start":{"line":3,"column":54},"end":{"line":11,"column":1}},"line":3},"1":{"name":"resizeHandler","decl":{"start":{"line":4,"column":11},"end":{"line":4,"column":24}},"loc":{"start":{"line":4,"column":27},"end":{"line":6,"column":3}},"line":4}},"branchMap":{},"s":{"0":1,"1":17,"2":17},"f":{"0":17,"1":1},"b":{},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"b10a46c820e47da8f885b6a8bfff7466a8accf9b"} -,"/Users/jimmyw/repos/jimmynotjim/scrollNav/src/setupScrollHandler.js": {"path":"/Users/jimmyw/repos/jimmynotjim/scrollNav/src/setupScrollHandler.js","statementMap":{"0":{"start":{"line":6,"column":16},"end":{"line":6,"column":79}},"1":{"start":{"line":7,"column":23},"end":{"line":7,"column":26}},"2":{"start":{"line":8,"column":26},"end":{"line":8,"column":56}},"3":{"start":{"line":9,"column":26},"end":{"line":13,"column":5}},"4":{"start":{"line":15,"column":4},"end":{"line":15,"column":54}},"5":{"start":{"line":17,"column":4},"end":{"line":17,"column":25}},"6":{"start":{"line":20,"column":2},"end":{"line":20,"column":51}},"7":{"start":{"line":22,"column":2},"end":{"line":22,"column":23}}},"fnMap":{"0":{"name":"setupScrollHandler","decl":{"start":{"line":4,"column":24},"end":{"line":4,"column":42}},"loc":{"start":{"line":4,"column":54},"end":{"line":23,"column":1}},"line":4},"1":{"name":"scrollHandler","decl":{"start":{"line":5,"column":11},"end":{"line":5,"column":24}},"loc":{"start":{"line":5,"column":27},"end":{"line":18,"column":3}},"line":5}},"branchMap":{"0":{"loc":{"start":{"line":6,"column":16},"end":{"line":6,"column":79}},"type":"binary-expr","locations":[{"start":{"line":6,"column":16},"end":{"line":6,"column":30}},{"start":{"line":6,"column":34},"end":{"line":6,"column":52}},{"start":{"line":6,"column":56},"end":{"line":6,"column":79}}],"line":6}},"s":{"0":5,"1":5,"2":5,"3":5,"4":5,"5":5,"6":20,"7":20},"f":{"0":20,"1":5},"b":{"0":[5,5,5]},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"f5513803b632c7f1fa2d6468afb8560c1fd05292"} -,"/Users/jimmyw/repos/jimmynotjim/scrollNav/src/teardownClickHandlers.js": {"path":"/Users/jimmyw/repos/jimmynotjim/scrollNav/src/teardownClickHandlers.js","statementMap":{"0":{"start":{"line":2,"column":16},"end":{"line":2,"column":41}},"1":{"start":{"line":3,"column":2},"end":{"line":5,"column":5}},"2":{"start":{"line":4,"column":4},"end":{"line":4,"column":52}}},"fnMap":{"0":{"name":"teardownClickHandlers","decl":{"start":{"line":1,"column":24},"end":{"line":1,"column":45}},"loc":{"start":{"line":1,"column":65},"end":{"line":6,"column":1}},"line":1},"1":{"name":"(anonymous_1)","decl":{"start":{"line":3,"column":16},"end":{"line":3,"column":17}},"loc":{"start":{"line":3,"column":24},"end":{"line":5,"column":3}},"line":3}},"branchMap":{},"s":{"0":3,"1":3,"2":9},"f":{"0":3,"1":9},"b":{},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"a1dc599e90c325db4cfb41edab5830d9b8b96f7a"} -,"/Users/jimmyw/repos/jimmynotjim/scrollNav/src/teardownResizeHandler.js": {"path":"/Users/jimmyw/repos/jimmynotjim/scrollNav/src/teardownResizeHandler.js","statementMap":{"0":{"start":{"line":2,"column":2},"end":{"line":2,"column":54}}},"fnMap":{"0":{"name":"teardownResizelHandler","decl":{"start":{"line":1,"column":24},"end":{"line":1,"column":46}},"loc":{"start":{"line":1,"column":62},"end":{"line":3,"column":1}},"line":1}},"branchMap":{},"s":{"0":3},"f":{"0":3},"b":{},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"96993499519cc15772bbf22b9059fe6931009b77"} -,"/Users/jimmyw/repos/jimmynotjim/scrollNav/src/teardownScrollHandler.js": {"path":"/Users/jimmyw/repos/jimmynotjim/scrollNav/src/teardownScrollHandler.js","statementMap":{"0":{"start":{"line":2,"column":2},"end":{"line":2,"column":54}}},"fnMap":{"0":{"name":"teardownScrollHandler","decl":{"start":{"line":1,"column":24},"end":{"line":1,"column":45}},"loc":{"start":{"line":1,"column":61},"end":{"line":3,"column":1}},"line":1}},"branchMap":{},"s":{"0":4},"f":{"0":4},"b":{},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"fbc27589616360d4186988d8cb2c6e3a3bb48b17"} -,"/Users/jimmyw/repos/jimmynotjim/scrollNav/src/util/calculateScrollDuration.js": {"path":"/Users/jimmyw/repos/jimmynotjim/scrollNav/src/util/calculateScrollDuration.js","statementMap":{"0":{"start":{"line":2,"column":23},"end":{"line":2,"column":45}},"1":{"start":{"line":4,"column":2},"end":{"line":4,"column":53}}},"fnMap":{"0":{"name":"calculateScrollDuration","decl":{"start":{"line":1,"column":24},"end":{"line":1,"column":47}},"loc":{"start":{"line":1,"column":58},"end":{"line":5,"column":1}},"line":1}},"branchMap":{},"s":{"0":4,"1":4},"f":{"0":4},"b":{},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"1f16f7352e5a67fe42f56a1ec3b6a27e308f29be"} -,"/Users/jimmyw/repos/jimmynotjim/scrollNav/src/util/createList.js": {"path":"/Users/jimmyw/repos/jimmynotjim/scrollNav/src/util/createList.js","statementMap":{"0":{"start":{"line":2,"column":17},"end":{"line":2,"column":44}},"1":{"start":{"line":3,"column":20},"end":{"line":3,"column":41}},"2":{"start":{"line":5,"column":22},"end":{"line":19,"column":3}},"3":{"start":{"line":9,"column":10},"end":{"line":16,"column":16}},"4":{"start":{"line":21,"column":15},"end":{"line":25,"column":3}},"5":{"start":{"line":27,"column":2},"end":{"line":27,"column":14}}},"fnMap":{"0":{"name":"createList","decl":{"start":{"line":1,"column":24},"end":{"line":1,"column":34}},"loc":{"start":{"line":1,"column":60},"end":{"line":28,"column":1}},"line":1},"1":{"name":"(anonymous_1)","decl":{"start":{"line":8,"column":8},"end":{"line":8,"column":9}},"loc":{"start":{"line":9,"column":10},"end":{"line":16,"column":16}},"line":9}},"branchMap":{"0":{"loc":{"start":{"line":1,"column":41},"end":{"line":1,"column":58}},"type":"default-arg","locations":[{"start":{"line":1,"column":53},"end":{"line":1,"column":58}}],"line":1},"1":{"loc":{"start":{"line":2,"column":17},"end":{"line":2,"column":44}},"type":"cond-expr","locations":[{"start":{"line":2,"column":29},"end":{"line":2,"column":37}},{"start":{"line":2,"column":40},"end":{"line":2,"column":44}}],"line":2},"2":{"loc":{"start":{"line":12,"column":14},"end":{"line":14,"column":20}},"type":"cond-expr","locations":[{"start":{"line":13,"column":18},"end":{"line":13,"column":57}},{"start":{"line":14,"column":18},"end":{"line":14,"column":20}}],"line":12},"3":{"loc":{"start":{"line":12,"column":14},"end":{"line":12,"column":57}},"type":"binary-expr","locations":[{"start":{"line":12,"column":14},"end":{"line":12,"column":30}},{"start":{"line":12,"column":34},"end":{"line":12,"column":57}}],"line":12}},"s":{"0":27,"1":27,"2":27,"3":75,"4":27,"5":27},"f":{"0":27,"1":75},"b":{"0":[24],"1":[3,24],"2":[3,72],"3":[75,75]},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"5a2d04b5c839c474e31accc8a62e201f15bc0a83"} -,"/Users/jimmyw/repos/jimmynotjim/scrollNav/src/util/createNav.js": {"path":"/Users/jimmyw/repos/jimmynotjim/scrollNav/src/util/createNav.js","statementMap":{"0":{"start":{"line":4,"column":14},"end":{"line":4,"column":43}},"1":{"start":{"line":5,"column":2},"end":{"line":5,"column":31}},"2":{"start":{"line":6,"column":2},"end":{"line":6,"column":35}},"3":{"start":{"line":8,"column":2},"end":{"line":8,"column":13}}},"fnMap":{"0":{"name":"createNav","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":33}},"loc":{"start":{"line":3,"column":40},"end":{"line":9,"column":1}},"line":3}},"branchMap":{},"s":{"0":17,"1":17,"2":17,"3":17},"f":{"0":17},"b":{},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"ca339b5df66d8db860115b6b1bd14c2cabc2cd65"} -,"/Users/jimmyw/repos/jimmynotjim/scrollNav/src/util/easing.js": {"path":"/Users/jimmyw/repos/jimmynotjim/scrollNav/src/util/easing.js","statementMap":{"0":{"start":{"line":3,"column":15},"end":{"line":3,"column":39}},"1":{"start":{"line":3,"column":20},"end":{"line":3,"column":39}},"2":{"start":{"line":3,"column":25},"end":{"line":3,"column":39}},"3":{"start":{"line":4,"column":16},"end":{"line":4,"column":58}},"4":{"start":{"line":4,"column":21},"end":{"line":4,"column":58}},"5":{"start":{"line":4,"column":26},"end":{"line":4,"column":58}},"6":{"start":{"line":5,"column":18},"end":{"line":6,"column":66}},"7":{"start":{"line":5,"column":23},"end":{"line":6,"column":66}},"8":{"start":{"line":6,"column":2},"end":{"line":6,"column":66}},"9":{"start":{"line":8,"column":15},"end":{"line":22,"column":1}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":3,"column":15},"end":{"line":3,"column":16}},"loc":{"start":{"line":3,"column":20},"end":{"line":3,"column":39}},"line":3},"1":{"name":"(anonymous_1)","decl":{"start":{"line":3,"column":20},"end":{"line":3,"column":21}},"loc":{"start":{"line":3,"column":25},"end":{"line":3,"column":39}},"line":3},"2":{"name":"(anonymous_2)","decl":{"start":{"line":4,"column":16},"end":{"line":4,"column":17}},"loc":{"start":{"line":4,"column":21},"end":{"line":4,"column":58}},"line":4},"3":{"name":"(anonymous_3)","decl":{"start":{"line":4,"column":21},"end":{"line":4,"column":22}},"loc":{"start":{"line":4,"column":26},"end":{"line":4,"column":58}},"line":4},"4":{"name":"(anonymous_4)","decl":{"start":{"line":5,"column":18},"end":{"line":5,"column":19}},"loc":{"start":{"line":5,"column":23},"end":{"line":6,"column":66}},"line":5},"5":{"name":"(anonymous_5)","decl":{"start":{"line":5,"column":23},"end":{"line":5,"column":24}},"loc":{"start":{"line":6,"column":2},"end":{"line":6,"column":66}},"line":6}},"branchMap":{"0":{"loc":{"start":{"line":6,"column":2},"end":{"line":6,"column":66}},"type":"cond-expr","locations":[{"start":{"line":6,"column":12},"end":{"line":6,"column":32}},{"start":{"line":6,"column":35},"end":{"line":6,"column":66}}],"line":6}},"s":{"0":5,"1":26,"2":18,"3":5,"4":30,"5":22,"6":5,"7":25,"8":16,"9":5},"f":{"0":26,"1":18,"2":30,"3":22,"4":25,"5":16},"b":{"0":[6,10]},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"067406a9e82732cae1f75c7eb947d0fd58d54fca"} -,"/Users/jimmyw/repos/jimmynotjim/scrollNav/src/util/extend.js": {"path":"/Users/jimmyw/repos/jimmynotjim/scrollNav/src/util/extend.js","statementMap":{"0":{"start":{"line":4,"column":19},"end":{"line":4,"column":21}},"1":{"start":{"line":7,"column":2},"end":{"line":11,"column":3}},"2":{"start":{"line":8,"column":4},"end":{"line":10,"column":5}},"3":{"start":{"line":9,"column":6},"end":{"line":9,"column":38}},"4":{"start":{"line":13,"column":2},"end":{"line":17,"column":3}},"5":{"start":{"line":14,"column":4},"end":{"line":16,"column":5}},"6":{"start":{"line":15,"column":6},"end":{"line":15,"column":37}},"7":{"start":{"line":19,"column":2},"end":{"line":19,"column":18}}},"fnMap":{"0":{"name":"extend","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":30}},"loc":{"start":{"line":3,"column":50},"end":{"line":20,"column":1}},"line":3}},"branchMap":{"0":{"loc":{"start":{"line":8,"column":4},"end":{"line":10,"column":5}},"type":"if","locations":[{"start":{"line":8,"column":4},"end":{"line":10,"column":5}},{"start":{"line":8,"column":4},"end":{"line":10,"column":5}}],"line":8},"1":{"loc":{"start":{"line":14,"column":4},"end":{"line":16,"column":5}},"type":"if","locations":[{"start":{"line":14,"column":4},"end":{"line":16,"column":5}},{"start":{"line":14,"column":4},"end":{"line":16,"column":5}}],"line":14}},"s":{"0":32,"1":32,"2":160,"3":160,"4":32,"5":30,"6":30,"7":32},"f":{"0":32},"b":{"0":[160,0],"1":[30,0]},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"917b97d969dfe9dc10f60cecfc2047998240b713"} -,"/Users/jimmyw/repos/jimmynotjim/scrollNav/src/util/getActiveSection.js": {"path":"/Users/jimmyw/repos/jimmynotjim/scrollNav/src/util/getActiveSection.js","statementMap":{"0":{"start":{"line":4,"column":2},"end":{"line":12,"column":5}},"1":{"start":{"line":5,"column":4},"end":{"line":11,"column":5}},"2":{"start":{"line":6,"column":6},"end":{"line":8,"column":7}},"3":{"start":{"line":7,"column":8},"end":{"line":7,"column":32}},"4":{"start":{"line":10,"column":6},"end":{"line":10,"column":30}},"5":{"start":{"line":14,"column":2},"end":{"line":26,"column":3}},"6":{"start":{"line":17,"column":4},"end":{"line":21,"column":6}},"7":{"start":{"line":23,"column":4},"end":{"line":25,"column":5}},"8":{"start":{"line":24,"column":6},"end":{"line":24,"column":39}},"9":{"start":{"line":28,"column":2},"end":{"line":28,"column":23}}},"fnMap":{"0":{"name":"getActiveSection","decl":{"start":{"line":1,"column":24},"end":{"line":1,"column":40}},"loc":{"start":{"line":1,"column":74},"end":{"line":29,"column":1}},"line":1},"1":{"name":"(anonymous_1)","decl":{"start":{"line":4,"column":15},"end":{"line":4,"column":16}},"loc":{"start":{"line":4,"column":26},"end":{"line":12,"column":3}},"line":4}},"branchMap":{"0":{"loc":{"start":{"line":5,"column":4},"end":{"line":11,"column":5}},"type":"if","locations":[{"start":{"line":5,"column":4},"end":{"line":11,"column":5}},{"start":{"line":5,"column":4},"end":{"line":11,"column":5}}],"line":5},"1":{"loc":{"start":{"line":6,"column":6},"end":{"line":8,"column":7}},"type":"if","locations":[{"start":{"line":6,"column":6},"end":{"line":8,"column":7}},{"start":{"line":6,"column":6},"end":{"line":8,"column":7}}],"line":6},"2":{"loc":{"start":{"line":6,"column":10},"end":{"line":6,"column":58}},"type":"binary-expr","locations":[{"start":{"line":6,"column":10},"end":{"line":6,"column":24}},{"start":{"line":6,"column":28},"end":{"line":6,"column":58}}],"line":6},"3":{"loc":{"start":{"line":14,"column":2},"end":{"line":26,"column":3}},"type":"if","locations":[{"start":{"line":14,"column":2},"end":{"line":26,"column":3}},{"start":{"line":14,"column":2},"end":{"line":26,"column":3}}],"line":14},"4":{"loc":{"start":{"line":14,"column":6},"end":{"line":14,"column":55}},"type":"binary-expr","locations":[{"start":{"line":14,"column":6},"end":{"line":14,"column":19}},{"start":{"line":14,"column":23},"end":{"line":14,"column":55}}],"line":14},"5":{"loc":{"start":{"line":23,"column":4},"end":{"line":25,"column":5}},"type":"if","locations":[{"start":{"line":23,"column":4},"end":{"line":25,"column":5}},{"start":{"line":23,"column":4},"end":{"line":25,"column":5}}],"line":23}},"s":{"0":10,"1":28,"2":14,"3":0,"4":14,"5":10,"6":1,"7":1,"8":1,"9":10},"f":{"0":10,"1":28},"b":{"0":[14,14],"1":[0,14],"2":[14,3],"3":[1,9],"4":[10,9],"5":[1,0]},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"936b276bfb516c26dd36fc767cd8e09a3d2d2954"} -,"/Users/jimmyw/repos/jimmynotjim/scrollNav/src/util/getOrSetID.js": {"path":"/Users/jimmyw/repos/jimmynotjim/scrollNav/src/util/getOrSetID.js","statementMap":{"0":{"start":{"line":2,"column":2},"end":{"line":4,"column":3}},"1":{"start":{"line":3,"column":4},"end":{"line":3,"column":73}},"2":{"start":{"line":6,"column":11},"end":{"line":6,"column":18}},"3":{"start":{"line":8,"column":2},"end":{"line":15,"column":3}},"4":{"start":{"line":9,"column":4},"end":{"line":11,"column":5}},"5":{"start":{"line":10,"column":6},"end":{"line":10,"column":75}},"6":{"start":{"line":13,"column":4},"end":{"line":13,"column":15}},"7":{"start":{"line":14,"column":4},"end":{"line":14,"column":17}},"8":{"start":{"line":16,"column":2},"end":{"line":16,"column":12}}},"fnMap":{"0":{"name":"getOrSetID","decl":{"start":{"line":1,"column":24},"end":{"line":1,"column":34}},"loc":{"start":{"line":1,"column":48},"end":{"line":17,"column":1}},"line":1}},"branchMap":{"0":{"loc":{"start":{"line":2,"column":2},"end":{"line":4,"column":3}},"type":"if","locations":[{"start":{"line":2,"column":2},"end":{"line":4,"column":3}},{"start":{"line":2,"column":2},"end":{"line":4,"column":3}}],"line":2},"1":{"loc":{"start":{"line":8,"column":2},"end":{"line":15,"column":3}},"type":"if","locations":[{"start":{"line":8,"column":2},"end":{"line":15,"column":3}},{"start":{"line":8,"column":2},"end":{"line":15,"column":3}}],"line":8},"2":{"loc":{"start":{"line":9,"column":4},"end":{"line":11,"column":5}},"type":"if","locations":[{"start":{"line":9,"column":4},"end":{"line":11,"column":5}},{"start":{"line":9,"column":4},"end":{"line":11,"column":5}}],"line":9}},"s":{"0":58,"1":1,"2":57,"3":57,"4":4,"5":1,"6":3,"7":3,"8":56},"f":{"0":58},"b":{"0":[1,57],"1":[4,53],"2":[1,3]},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"5b5f5e502f5f49a7e29abdce7ab53ea7233c5f45"} -,"/Users/jimmyw/repos/jimmynotjim/scrollNav/src/util/getTargetYPosition.js": {"path":"/Users/jimmyw/repos/jimmynotjim/scrollNav/src/util/getTargetYPosition.js","statementMap":{"0":{"start":{"line":2,"column":11},"end":{"line":2,"column":38}},"1":{"start":{"line":3,"column":2},"end":{"line":5,"column":3}},"2":{"start":{"line":4,"column":4},"end":{"line":4,"column":22}},"3":{"start":{"line":7,"column":24},"end":{"line":7,"column":44}},"4":{"start":{"line":9,"column":2},"end":{"line":9,"column":33}},"5":{"start":{"line":15,"column":2},"end":{"line":23,"column":5}},"6":{"start":{"line":16,"column":4},"end":{"line":18,"column":5}},"7":{"start":{"line":17,"column":6},"end":{"line":17,"column":30}},"8":{"start":{"line":20,"column":4},"end":{"line":22,"column":5}},"9":{"start":{"line":21,"column":6},"end":{"line":21,"column":58}},"10":{"start":{"line":25,"column":2},"end":{"line":25,"column":23}}},"fnMap":{"0":{"name":"getTargetYPosition","decl":{"start":{"line":1,"column":24},"end":{"line":1,"column":42}},"loc":{"start":{"line":1,"column":57},"end":{"line":10,"column":1}},"line":1},"1":{"name":"filterData","decl":{"start":{"line":12,"column":9},"end":{"line":12,"column":19}},"loc":{"start":{"line":12,"column":30},"end":{"line":26,"column":1}},"line":12},"2":{"name":"(anonymous_2)","decl":{"start":{"line":15,"column":15},"end":{"line":15,"column":16}},"loc":{"start":{"line":15,"column":26},"end":{"line":23,"column":3}},"line":15}},"branchMap":{"0":{"loc":{"start":{"line":3,"column":2},"end":{"line":5,"column":3}},"type":"if","locations":[{"start":{"line":3,"column":2},"end":{"line":5,"column":3}},{"start":{"line":3,"column":2},"end":{"line":5,"column":3}}],"line":3},"1":{"loc":{"start":{"line":16,"column":4},"end":{"line":18,"column":5}},"type":"if","locations":[{"start":{"line":16,"column":4},"end":{"line":18,"column":5}},{"start":{"line":16,"column":4},"end":{"line":18,"column":5}}],"line":16},"2":{"loc":{"start":{"line":20,"column":4},"end":{"line":22,"column":5}},"type":"if","locations":[{"start":{"line":20,"column":4},"end":{"line":22,"column":5}},{"start":{"line":20,"column":4},"end":{"line":22,"column":5}}],"line":20},"3":{"loc":{"start":{"line":20,"column":8},"end":{"line":20,"column":58}},"type":"binary-expr","locations":[{"start":{"line":20,"column":8},"end":{"line":20,"column":27}},{"start":{"line":20,"column":31},"end":{"line":20,"column":58}}],"line":20}},"s":{"0":3,"1":3,"2":3,"3":3,"4":3,"5":5,"6":10,"7":3,"8":10,"9":2,"10":5},"f":{"0":3,"1":5,"2":10},"b":{"0":[3,0],"1":[3,7],"2":[2,8],"3":[10,10]},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"622b1d6742c8e13882708b8790d42cce52afa965"} -,"/Users/jimmyw/repos/jimmynotjim/scrollNav/src/util/getYPosition.js": {"path":"/Users/jimmyw/repos/jimmynotjim/scrollNav/src/util/getYPosition.js","statementMap":{"0":{"start":{"line":2,"column":2},"end":{"line":4,"column":3}},"1":{"start":{"line":3,"column":4},"end":{"line":3,"column":73}},"2":{"start":{"line":6,"column":2},"end":{"line":6,"column":35}},"3":{"start":{"line":7,"column":2},"end":{"line":9,"column":3}},"4":{"start":{"line":8,"column":4},"end":{"line":8,"column":74}},"5":{"start":{"line":11,"column":19},"end":{"line":11,"column":49}},"6":{"start":{"line":12,"column":19},"end":{"line":12,"column":47}},"7":{"start":{"line":14,"column":2},"end":{"line":14,"column":37}}},"fnMap":{"0":{"name":"getYPosition","decl":{"start":{"line":1,"column":24},"end":{"line":1,"column":36}},"loc":{"start":{"line":1,"column":51},"end":{"line":15,"column":1}},"line":1}},"branchMap":{"0":{"loc":{"start":{"line":2,"column":2},"end":{"line":4,"column":3}},"type":"if","locations":[{"start":{"line":2,"column":2},"end":{"line":4,"column":3}},{"start":{"line":2,"column":2},"end":{"line":4,"column":3}}],"line":2},"1":{"loc":{"start":{"line":6,"column":11},"end":{"line":6,"column":34}},"type":"binary-expr","locations":[{"start":{"line":6,"column":11},"end":{"line":6,"column":17}},{"start":{"line":6,"column":21},"end":{"line":6,"column":34}}],"line":6},"2":{"loc":{"start":{"line":7,"column":2},"end":{"line":9,"column":3}},"type":"if","locations":[{"start":{"line":7,"column":2},"end":{"line":9,"column":3}},{"start":{"line":7,"column":2},"end":{"line":9,"column":3}}],"line":7}},"s":{"0":73,"1":1,"2":72,"3":72,"4":1,"5":71,"6":71,"7":71},"f":{"0":73},"b":{"0":[1,72],"1":[72,70],"2":[1,71]},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"4415f89e1fef4ea8ddf9e4e04af4704a7ef823fc"} -,"/Users/jimmyw/repos/jimmynotjim/scrollNav/src/util/insertNav.js": {"path":"/Users/jimmyw/repos/jimmynotjim/scrollNav/src/util/insertNav.js","statementMap":{"0":{"start":{"line":2,"column":17},"end":{"line":2,"column":48}},"1":{"start":{"line":3,"column":19},"end":{"line":3,"column":52}},"2":{"start":{"line":5,"column":2},"end":{"line":13,"column":3}},"3":{"start":{"line":6,"column":4},"end":{"line":6,"column":38}},"4":{"start":{"line":7,"column":9},"end":{"line":13,"column":3}},"5":{"start":{"line":8,"column":4},"end":{"line":8,"column":58}},"6":{"start":{"line":9,"column":9},"end":{"line":13,"column":3}},"7":{"start":{"line":10,"column":4},"end":{"line":10,"column":58}},"8":{"start":{"line":11,"column":9},"end":{"line":13,"column":3}},"9":{"start":{"line":12,"column":4},"end":{"line":12,"column":70}}},"fnMap":{"0":{"name":"insertNav","decl":{"start":{"line":1,"column":24},"end":{"line":1,"column":33}},"loc":{"start":{"line":1,"column":45},"end":{"line":14,"column":1}},"line":1}},"branchMap":{"0":{"loc":{"start":{"line":5,"column":2},"end":{"line":13,"column":3}},"type":"if","locations":[{"start":{"line":5,"column":2},"end":{"line":13,"column":3}},{"start":{"line":5,"column":2},"end":{"line":13,"column":3}}],"line":5},"1":{"loc":{"start":{"line":7,"column":9},"end":{"line":13,"column":3}},"type":"if","locations":[{"start":{"line":7,"column":9},"end":{"line":13,"column":3}},{"start":{"line":7,"column":9},"end":{"line":13,"column":3}}],"line":7},"2":{"loc":{"start":{"line":9,"column":9},"end":{"line":13,"column":3}},"type":"if","locations":[{"start":{"line":9,"column":9},"end":{"line":13,"column":3}},{"start":{"line":9,"column":9},"end":{"line":13,"column":3}}],"line":9},"3":{"loc":{"start":{"line":11,"column":9},"end":{"line":13,"column":3}},"type":"if","locations":[{"start":{"line":11,"column":9},"end":{"line":13,"column":3}},{"start":{"line":11,"column":9},"end":{"line":13,"column":3}}],"line":11}},"s":{"0":19,"1":19,"2":19,"3":2,"4":17,"5":2,"6":15,"7":13,"8":2,"9":2},"f":{"0":19},"b":{"0":[2,17],"1":[2,15],"2":[13,2],"3":[2,0]},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"c50e5453ec295587540612bae77716aca951c81a"} -,"/Users/jimmyw/repos/jimmynotjim/scrollNav/src/util/insertVisualDebugger.js": {"path":"/Users/jimmyw/repos/jimmynotjim/scrollNav/src/util/insertVisualDebugger.js","statementMap":{"0":{"start":{"line":2,"column":21},"end":{"line":2,"column":50}},"1":{"start":{"line":3,"column":2},"end":{"line":3,"column":38}},"2":{"start":{"line":5,"column":2},"end":{"line":17,"column":4}},"3":{"start":{"line":19,"column":2},"end":{"line":19,"column":40}}},"fnMap":{"0":{"name":"insertVisualDebugger","decl":{"start":{"line":1,"column":24},"end":{"line":1,"column":44}},"loc":{"start":{"line":1,"column":47},"end":{"line":20,"column":1}},"line":1}},"branchMap":{},"s":{"0":8,"1":8,"2":8,"3":8},"f":{"0":8},"b":{},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"efad20857535657587edbc521ba0fa6311391171"} -,"/Users/jimmyw/repos/jimmynotjim/scrollNav/src/util/nextUntil.js": {"path":"/Users/jimmyw/repos/jimmynotjim/scrollNav/src/util/nextUntil.js","statementMap":{"0":{"start":{"line":4,"column":17},"end":{"line":4,"column":19}},"1":{"start":{"line":6,"column":2},"end":{"line":6,"column":33}},"2":{"start":{"line":8,"column":2},"end":{"line":19,"column":3}},"3":{"start":{"line":9,"column":4},"end":{"line":9,"column":38}},"4":{"start":{"line":9,"column":32},"end":{"line":9,"column":38}},"5":{"start":{"line":11,"column":4},"end":{"line":14,"column":5}},"6":{"start":{"line":12,"column":6},"end":{"line":12,"column":37}},"7":{"start":{"line":13,"column":6},"end":{"line":13,"column":15}},"8":{"start":{"line":16,"column":4},"end":{"line":16,"column":24}},"9":{"start":{"line":18,"column":4},"end":{"line":18,"column":35}},"10":{"start":{"line":21,"column":2},"end":{"line":21,"column":18}}},"fnMap":{"0":{"name":"nextUntil","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":33}},"loc":{"start":{"line":3,"column":58},"end":{"line":22,"column":1}},"line":3}},"branchMap":{"0":{"loc":{"start":{"line":9,"column":4},"end":{"line":9,"column":38}},"type":"if","locations":[{"start":{"line":9,"column":4},"end":{"line":9,"column":38}},{"start":{"line":9,"column":4},"end":{"line":9,"column":38}}],"line":9},"1":{"loc":{"start":{"line":11,"column":4},"end":{"line":14,"column":5}},"type":"if","locations":[{"start":{"line":11,"column":4},"end":{"line":14,"column":5}},{"start":{"line":11,"column":4},"end":{"line":14,"column":5}}],"line":11},"2":{"loc":{"start":{"line":11,"column":8},"end":{"line":11,"column":39}},"type":"binary-expr","locations":[{"start":{"line":11,"column":8},"end":{"line":11,"column":14}},{"start":{"line":11,"column":18},"end":{"line":11,"column":39}}],"line":11}},"s":{"0":4,"1":4,"2":4,"3":12,"4":3,"5":9,"6":7,"7":7,"8":2,"9":2,"10":4},"f":{"0":4},"b":{"0":[3,9],"1":[7,2],"2":[9,9]},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"f75504c1e2d40b4b50416c40e07a06fc7e3da426"} -,"/Users/jimmyw/repos/jimmynotjim/scrollNav/src/util/populateSectionData.js": {"path":"/Users/jimmyw/repos/jimmynotjim/scrollNav/src/util/populateSectionData.js","statementMap":{"0":{"start":{"line":10,"column":22},"end":{"line":10,"column":24}},"1":{"start":{"line":11,"column":2},"end":{"line":11,"column":25}},"2":{"start":{"line":13,"column":2},"end":{"line":32,"column":5}},"3":{"start":{"line":14,"column":25},"end":{"line":14,"column":27}},"4":{"start":{"line":15,"column":15},"end":{"line":15,"column":49}},"5":{"start":{"line":17,"column":4},"end":{"line":24,"column":5}},"6":{"start":{"line":18,"column":28},"end":{"line":22,"column":7}},"7":{"start":{"line":23,"column":6},"end":{"line":23,"column":72}},"8":{"start":{"line":26,"column":4},"end":{"line":31,"column":7}},"9":{"start":{"line":34,"column":2},"end":{"line":34,"column":21}}},"fnMap":{"0":{"name":"populateSectionData","decl":{"start":{"line":5,"column":24},"end":{"line":5,"column":43}},"loc":{"start":{"line":9,"column":2},"end":{"line":35,"column":1}},"line":9},"1":{"name":"(anonymous_1)","decl":{"start":{"line":13,"column":19},"end":{"line":13,"column":20}},"loc":{"start":{"line":13,"column":32},"end":{"line":32,"column":3}},"line":13}},"branchMap":{"0":{"loc":{"start":{"line":8,"column":2},"end":{"line":8,"column":23}},"type":"default-arg","locations":[{"start":{"line":8,"column":11},"end":{"line":8,"column":23}}],"line":8},"1":{"loc":{"start":{"line":17,"column":4},"end":{"line":24,"column":5}},"type":"if","locations":[{"start":{"line":17,"column":4},"end":{"line":24,"column":5}},{"start":{"line":17,"column":4},"end":{"line":24,"column":5}}],"line":17},"2":{"loc":{"start":{"line":17,"column":8},"end":{"line":17,"column":63}},"type":"binary-expr","locations":[{"start":{"line":17,"column":8},"end":{"line":17,"column":28}},{"start":{"line":17,"column":32},"end":{"line":17,"column":63}}],"line":17},"3":{"loc":{"start":{"line":28,"column":12},"end":{"line":28,"column":46}},"type":"binary-expr","locations":[{"start":{"line":28,"column":12},"end":{"line":28,"column":26}},{"start":{"line":28,"column":30},"end":{"line":28,"column":46}}],"line":28}},"s":{"0":20,"1":20,"2":20,"3":52,"4":52,"5":52,"6":3,"7":3,"8":52,"9":20},"f":{"0":20,"1":52},"b":{"0":[17],"1":[3,49],"2":[52,4],"3":[52,52]},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"7151509f45196e9fc46f93fefa6c76c068ab26e2"} -,"/Users/jimmyw/repos/jimmynotjim/scrollNav/src/util/updateActiveNavItem.js": {"path":"/Users/jimmyw/repos/jimmynotjim/scrollNav/src/util/updateActiveNavItem.js","statementMap":{"0":{"start":{"line":2,"column":25},"end":{"line":2,"column":62}},"1":{"start":{"line":4,"column":2},"end":{"line":11,"column":3}},"2":{"start":{"line":5,"column":4},"end":{"line":8,"column":5}},"3":{"start":{"line":6,"column":6},"end":{"line":6,"column":66}},"4":{"start":{"line":7,"column":6},"end":{"line":7,"column":55}},"5":{"start":{"line":10,"column":4},"end":{"line":10,"column":11}},"6":{"start":{"line":13,"column":20},"end":{"line":15,"column":3}},"7":{"start":{"line":17,"column":2},"end":{"line":24,"column":3}},"8":{"start":{"line":18,"column":4},"end":{"line":21,"column":5}},"9":{"start":{"line":19,"column":6},"end":{"line":19,"column":66}},"10":{"start":{"line":20,"column":6},"end":{"line":20,"column":55}},"11":{"start":{"line":22,"column":4},"end":{"line":22,"column":56}},"12":{"start":{"line":23,"column":4},"end":{"line":23,"column":51}}},"fnMap":{"0":{"name":"updateActiveNavItem","decl":{"start":{"line":1,"column":24},"end":{"line":1,"column":43}},"loc":{"start":{"line":1,"column":64},"end":{"line":25,"column":1}},"line":1}},"branchMap":{"0":{"loc":{"start":{"line":4,"column":2},"end":{"line":11,"column":3}},"type":"if","locations":[{"start":{"line":4,"column":2},"end":{"line":11,"column":3}},{"start":{"line":4,"column":2},"end":{"line":11,"column":3}}],"line":4},"1":{"loc":{"start":{"line":5,"column":4},"end":{"line":8,"column":5}},"type":"if","locations":[{"start":{"line":5,"column":4},"end":{"line":8,"column":5}},{"start":{"line":5,"column":4},"end":{"line":8,"column":5}}],"line":5},"2":{"loc":{"start":{"line":17,"column":2},"end":{"line":24,"column":3}},"type":"if","locations":[{"start":{"line":17,"column":2},"end":{"line":24,"column":3}},{"start":{"line":17,"column":2},"end":{"line":24,"column":3}}],"line":17},"3":{"loc":{"start":{"line":17,"column":6},"end":{"line":17,"column":47}},"type":"binary-expr","locations":[{"start":{"line":17,"column":6},"end":{"line":17,"column":15}},{"start":{"line":17,"column":19},"end":{"line":17,"column":47}}],"line":17},"4":{"loc":{"start":{"line":18,"column":4},"end":{"line":21,"column":5}},"type":"if","locations":[{"start":{"line":18,"column":4},"end":{"line":21,"column":5}},{"start":{"line":18,"column":4},"end":{"line":21,"column":5}}],"line":18}},"s":{"0":10,"1":10,"2":2,"3":2,"4":2,"5":2,"6":8,"7":8,"8":7,"9":3,"10":3,"11":7,"12":7},"f":{"0":10},"b":{"0":[2,8],"1":[2,0],"2":[7,1],"3":[8,8],"4":[3,4]},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"7ecd69d8f3381b77ec6f59c002cf349ab0cb58c4"} -,"/Users/jimmyw/repos/jimmynotjim/scrollNav/src/util/updatePositionData.js": {"path":"/Users/jimmyw/repos/jimmynotjim/scrollNav/src/util/updatePositionData.js","statementMap":{"0":{"start":{"line":4,"column":2},"end":{"line":11,"column":5}},"1":{"start":{"line":5,"column":23},"end":{"line":5,"column":63}},"2":{"start":{"line":6,"column":4},"end":{"line":6,"column":49}},"3":{"start":{"line":8,"column":4},"end":{"line":10,"column":5}},"4":{"start":{"line":9,"column":6},"end":{"line":9,"column":68}},"5":{"start":{"line":13,"column":2},"end":{"line":13,"column":14}}},"fnMap":{"0":{"name":"updatePositionData","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":42}},"loc":{"start":{"line":3,"column":49},"end":{"line":14,"column":1}},"line":3},"1":{"name":"(anonymous_1)","decl":{"start":{"line":4,"column":15},"end":{"line":4,"column":16}},"loc":{"start":{"line":4,"column":26},"end":{"line":11,"column":3}},"line":4}},"branchMap":{"0":{"loc":{"start":{"line":8,"column":4},"end":{"line":10,"column":5}},"type":"if","locations":[{"start":{"line":8,"column":4},"end":{"line":10,"column":5}},{"start":{"line":8,"column":4},"end":{"line":10,"column":5}}],"line":8}},"s":{"0":6,"1":16,"2":16,"3":16,"4":1,"5":6},"f":{"0":6,"1":16},"b":{"0":[1,15]},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"87872a67c610c2696731941ddd90f612e148a2a6"} +{"/home/makro/0001/scrollnav/src/scrollTo.js": {"path":"/home/makro/0001/scrollnav/src/scrollTo.js","statementMap":{"0":{"start":{"line":6,"column":2},"end":{"line":43,"column":5}},"1":{"start":{"line":7,"column":4},"end":{"line":9,"column":5}},"2":{"start":{"line":8,"column":6},"end":{"line":8,"column":66}},"3":{"start":{"line":11,"column":4},"end":{"line":11,"column":42}},"4":{"start":{"line":12,"column":4},"end":{"line":14,"column":5}},"5":{"start":{"line":13,"column":6},"end":{"line":13,"column":67}},"6":{"start":{"line":16,"column":29},"end":{"line":16,"column":47}},"7":{"start":{"line":17,"column":21},"end":{"line":17,"column":54}},"8":{"start":{"line":18,"column":21},"end":{"line":18,"column":54}},"9":{"start":{"line":19,"column":22},"end":{"line":19,"column":24}},"10":{"start":{"line":20,"column":22},"end":{"line":20,"column":38}},"11":{"start":{"line":21,"column":23},"end":{"line":21,"column":24}},"12":{"start":{"line":26,"column":6},"end":{"line":26,"column":32}},"13":{"start":{"line":27,"column":6},"end":{"line":27,"column":63}},"14":{"start":{"line":28,"column":6},"end":{"line":28,"column":53}},"15":{"start":{"line":29,"column":6},"end":{"line":29,"column":29}},"16":{"start":{"line":31,"column":6},"end":{"line":35,"column":7}},"17":{"start":{"line":32,"column":8},"end":{"line":32,"column":45}},"18":{"start":{"line":34,"column":8},"end":{"line":34,"column":36}},"19":{"start":{"line":38,"column":4},"end":{"line":42,"column":5}},"20":{"start":{"line":39,"column":6},"end":{"line":39,"column":39}},"21":{"start":{"line":41,"column":6},"end":{"line":41,"column":22}}},"fnMap":{"0":{"name":"scrollTo","decl":{"start":{"line":5,"column":24},"end":{"line":5,"column":32}},"loc":{"start":{"line":5,"column":62},"end":{"line":44,"column":1}},"line":5},"1":{"name":"(anonymous_1)","decl":{"start":{"line":6,"column":21},"end":{"line":6,"column":22}},"loc":{"start":{"line":6,"column":42},"end":{"line":43,"column":3}},"line":6},"2":{"name":"animateScroll","decl":{"start":{"line":25,"column":13},"end":{"line":25,"column":26}},"loc":{"start":{"line":25,"column":29},"end":{"line":36,"column":5}},"line":25}},"branchMap":{"0":{"loc":{"start":{"line":7,"column":4},"end":{"line":9,"column":5}},"type":"if","locations":[{"start":{"line":7,"column":4},"end":{"line":9,"column":5}},{"start":{"line":7,"column":4},"end":{"line":9,"column":5}}],"line":7},"1":{"loc":{"start":{"line":11,"column":18},"end":{"line":11,"column":41}},"type":"binary-expr","locations":[{"start":{"line":11,"column":18},"end":{"line":11,"column":29}},{"start":{"line":11,"column":33},"end":{"line":11,"column":41}}],"line":11},"2":{"loc":{"start":{"line":12,"column":4},"end":{"line":14,"column":5}},"type":"if","locations":[{"start":{"line":12,"column":4},"end":{"line":14,"column":5}},{"start":{"line":12,"column":4},"end":{"line":14,"column":5}}],"line":12},"3":{"loc":{"start":{"line":31,"column":6},"end":{"line":35,"column":7}},"type":"if","locations":[{"start":{"line":31,"column":6},"end":{"line":35,"column":7}},{"start":{"line":31,"column":6},"end":{"line":35,"column":7}}],"line":31},"4":{"loc":{"start":{"line":38,"column":4},"end":{"line":42,"column":5}},"type":"if","locations":[{"start":{"line":38,"column":4},"end":{"line":42,"column":5}},{"start":{"line":38,"column":4},"end":{"line":42,"column":5}}],"line":38}},"s":{"0":3,"1":3,"2":1,"3":2,"4":2,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":0,"19":1,"20":0,"21":1},"f":{"0":3,"1":3,"2":1},"b":{"0":[1,2],"1":[2,1],"2":[1,1],"3":[1,0],"4":[0,1]},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"1799e661b4ff3744bd5220be119e8e14a2bc20eb"} +,"/home/makro/0001/scrollnav/src/scrollnav.js": {"path":"/home/makro/0001/scrollnav/src/scrollnav.js","statementMap":{"0":{"start":{"line":27,"column":2},"end":{"line":27,"column":36}},"1":{"start":{"line":31,"column":19},"end":{"line":37,"column":3}},"2":{"start":{"line":38,"column":2},"end":{"line":38,"column":44}},"3":{"start":{"line":39,"column":26},"end":{"line":39,"column":66}},"4":{"start":{"line":41,"column":2},"end":{"line":49,"column":3}},"5":{"start":{"line":42,"column":4},"end":{"line":47,"column":5}},"6":{"start":{"line":44,"column":6},"end":{"line":46,"column":9}},"7":{"start":{"line":48,"column":4},"end":{"line":48,"column":11}},"8":{"start":{"line":51,"column":2},"end":{"line":59,"column":3}},"9":{"start":{"line":52,"column":4},"end":{"line":57,"column":5}},"10":{"start":{"line":54,"column":6},"end":{"line":56,"column":9}},"11":{"start":{"line":58,"column":4},"end":{"line":58,"column":11}},"12":{"start":{"line":61,"column":2},"end":{"line":69,"column":3}},"13":{"start":{"line":62,"column":4},"end":{"line":67,"column":5}},"14":{"start":{"line":64,"column":6},"end":{"line":66,"column":9}},"15":{"start":{"line":68,"column":4},"end":{"line":68,"column":11}},"16":{"start":{"line":71,"column":22},"end":{"line":71,"column":67}},"17":{"start":{"line":73,"column":2},"end":{"line":82,"column":3}},"18":{"start":{"line":74,"column":4},"end":{"line":80,"column":5}},"19":{"start":{"line":76,"column":6},"end":{"line":79,"column":9}},"20":{"start":{"line":81,"column":4},"end":{"line":81,"column":11}},"21":{"start":{"line":84,"column":2},"end":{"line":84,"column":62}},"22":{"start":{"line":85,"column":2},"end":{"line":85,"column":34}},"23":{"start":{"line":87,"column":2},"end":{"line":87,"column":18}},"24":{"start":{"line":88,"column":2},"end":{"line":88,"column":42}},"25":{"start":{"line":89,"column":2},"end":{"line":89,"column":43}},"26":{"start":{"line":90,"column":2},"end":{"line":90,"column":43}},"27":{"start":{"line":92,"column":2},"end":{"line":92,"column":50}},"28":{"start":{"line":92,"column":27},"end":{"line":92,"column":50}},"29":{"start":{"line":93,"column":2},"end":{"line":93,"column":58}},"30":{"start":{"line":93,"column":28},"end":{"line":93,"column":58}},"31":{"start":{"line":97,"column":2},"end":{"line":97,"column":49}},"32":{"start":{"line":99,"column":2},"end":{"line":99,"column":48}},"33":{"start":{"line":100,"column":2},"end":{"line":100,"column":39}},"34":{"start":{"line":101,"column":2},"end":{"line":101,"column":39}},"35":{"start":{"line":102,"column":2},"end":{"line":102,"column":20}},"36":{"start":{"line":104,"column":2},"end":{"line":104,"column":64}},"37":{"start":{"line":104,"column":31},"end":{"line":104,"column":64}},"38":{"start":{"line":108,"column":2},"end":{"line":108,"column":49}},"39":{"start":{"line":109,"column":2},"end":{"line":109,"column":44}},"40":{"start":{"line":111,"column":2},"end":{"line":111,"column":80}},"41":{"start":{"line":111,"column":39},"end":{"line":111,"column":80}},"42":{"start":{"line":114,"column":18},"end":{"line":118,"column":1}}},"fnMap":{"0":{"name":"isElement","decl":{"start":{"line":26,"column":9},"end":{"line":26,"column":18}},"loc":{"start":{"line":26,"column":28},"end":{"line":28,"column":1}},"line":26},"1":{"name":"init","decl":{"start":{"line":30,"column":9},"end":{"line":30,"column":13}},"loc":{"start":{"line":30,"column":29},"end":{"line":94,"column":1}},"line":30},"2":{"name":"destroy","decl":{"start":{"line":96,"column":9},"end":{"line":96,"column":16}},"loc":{"start":{"line":96,"column":26},"end":{"line":105,"column":1}},"line":96},"3":{"name":"updatePositions","decl":{"start":{"line":107,"column":9},"end":{"line":107,"column":24}},"loc":{"start":{"line":107,"column":34},"end":{"line":112,"column":1}},"line":107}},"branchMap":{"0":{"loc":{"start":{"line":41,"column":2},"end":{"line":49,"column":3}},"type":"if","locations":[{"start":{"line":41,"column":2},"end":{"line":49,"column":3}},{"start":{"line":41,"column":2},"end":{"line":49,"column":3}}],"line":41},"1":{"loc":{"start":{"line":42,"column":4},"end":{"line":47,"column":5}},"type":"if","locations":[{"start":{"line":42,"column":4},"end":{"line":47,"column":5}},{"start":{"line":42,"column":4},"end":{"line":47,"column":5}}],"line":42},"2":{"loc":{"start":{"line":51,"column":2},"end":{"line":59,"column":3}},"type":"if","locations":[{"start":{"line":51,"column":2},"end":{"line":59,"column":3}},{"start":{"line":51,"column":2},"end":{"line":59,"column":3}}],"line":51},"3":{"loc":{"start":{"line":51,"column":6},"end":{"line":51,"column":74}},"type":"binary-expr","locations":[{"start":{"line":51,"column":6},"end":{"line":51,"column":32}},{"start":{"line":51,"column":36},"end":{"line":51,"column":74}}],"line":51},"4":{"loc":{"start":{"line":52,"column":4},"end":{"line":57,"column":5}},"type":"if","locations":[{"start":{"line":52,"column":4},"end":{"line":57,"column":5}},{"start":{"line":52,"column":4},"end":{"line":57,"column":5}}],"line":52},"5":{"loc":{"start":{"line":61,"column":2},"end":{"line":69,"column":3}},"type":"if","locations":[{"start":{"line":61,"column":2},"end":{"line":69,"column":3}},{"start":{"line":61,"column":2},"end":{"line":69,"column":3}}],"line":61},"6":{"loc":{"start":{"line":62,"column":4},"end":{"line":67,"column":5}},"type":"if","locations":[{"start":{"line":62,"column":4},"end":{"line":67,"column":5}},{"start":{"line":62,"column":4},"end":{"line":67,"column":5}}],"line":62},"7":{"loc":{"start":{"line":73,"column":2},"end":{"line":82,"column":3}},"type":"if","locations":[{"start":{"line":73,"column":2},"end":{"line":82,"column":3}},{"start":{"line":73,"column":2},"end":{"line":82,"column":3}}],"line":73},"8":{"loc":{"start":{"line":74,"column":4},"end":{"line":80,"column":5}},"type":"if","locations":[{"start":{"line":74,"column":4},"end":{"line":80,"column":5}},{"start":{"line":74,"column":4},"end":{"line":80,"column":5}}],"line":74},"9":{"loc":{"start":{"line":92,"column":2},"end":{"line":92,"column":50}},"type":"if","locations":[{"start":{"line":92,"column":2},"end":{"line":92,"column":50}},{"start":{"line":92,"column":2},"end":{"line":92,"column":50}}],"line":92},"10":{"loc":{"start":{"line":93,"column":2},"end":{"line":93,"column":58}},"type":"if","locations":[{"start":{"line":93,"column":2},"end":{"line":93,"column":58}},{"start":{"line":93,"column":2},"end":{"line":93,"column":58}}],"line":93},"11":{"loc":{"start":{"line":104,"column":2},"end":{"line":104,"column":64}},"type":"if","locations":[{"start":{"line":104,"column":2},"end":{"line":104,"column":64}},{"start":{"line":104,"column":2},"end":{"line":104,"column":64}}],"line":104},"12":{"loc":{"start":{"line":111,"column":2},"end":{"line":111,"column":80}},"type":"if","locations":[{"start":{"line":111,"column":2},"end":{"line":111,"column":80}},{"start":{"line":111,"column":2},"end":{"line":111,"column":80}}],"line":111}},"s":{"0":50,"1":27,"2":27,"3":27,"4":27,"5":4,"6":1,"7":4,"8":23,"9":4,"10":1,"11":4,"12":19,"13":2,"14":1,"15":2,"16":17,"17":17,"18":2,"19":1,"20":2,"21":15,"22":15,"23":15,"24":15,"25":15,"26":15,"27":15,"28":7,"29":15,"30":1,"31":2,"32":2,"33":2,"34":2,"35":2,"36":2,"37":1,"38":2,"39":2,"40":2,"41":1,"42":1},"f":{"0":50,"1":27,"2":2,"3":2},"b":{"0":[4,23],"1":[1,3],"2":[4,19],"3":[23,23],"4":[1,3],"5":[2,17],"6":[1,1],"7":[2,15],"8":[1,1],"9":[7,8],"10":[1,14],"11":[1,1],"12":[1,1]},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"6eed9296041e0b9d525d647fcff2e69194eb1c38"} +,"/home/makro/0001/scrollnav/src/setupClickHandlers.js": {"path":"/home/makro/0001/scrollnav/src/setupClickHandlers.js","statementMap":{"0":{"start":{"line":5,"column":19},"end":{"line":5,"column":37}},"1":{"start":{"line":7,"column":4},"end":{"line":7,"column":27}},"2":{"start":{"line":9,"column":23},"end":{"line":9,"column":48}},"3":{"start":{"line":10,"column":28},"end":{"line":10,"column":76}},"4":{"start":{"line":11,"column":26},"end":{"line":11,"column":54}},"5":{"start":{"line":25,"column":16},"end":{"line":25,"column":51}},"6":{"start":{"line":26,"column":2},"end":{"line":28,"column":5}},"7":{"start":{"line":27,"column":4},"end":{"line":27,"column":49}},"8":{"start":{"line":30,"column":2},"end":{"line":30,"column":22}}},"fnMap":{"0":{"name":"setupClickHandlers","decl":{"start":{"line":4,"column":24},"end":{"line":4,"column":42}},"loc":{"start":{"line":4,"column":54},"end":{"line":31,"column":1}},"line":4},"1":{"name":"clickHandler","decl":{"start":{"line":6,"column":11},"end":{"line":6,"column":23}},"loc":{"start":{"line":6,"column":31},"end":{"line":23,"column":3}},"line":6},"2":{"name":"(anonymous_2)","decl":{"start":{"line":26,"column":16},"end":{"line":26,"column":17}},"loc":{"start":{"line":26,"column":24},"end":{"line":28,"column":3}},"line":26}},"branchMap":{},"s":{"0":17,"1":1,"2":1,"3":1,"4":1,"5":17,"6":17,"7":51,"8":17},"f":{"0":17,"1":1,"2":51},"b":{},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"88c6724a06aa96238b617b8e5b4c267540541ad1"} +,"/home/makro/0001/scrollnav/src/setupResizeHandler.js": {"path":"/home/makro/0001/scrollnav/src/setupResizeHandler.js","statementMap":{"0":{"start":{"line":5,"column":4},"end":{"line":5,"column":56}},"1":{"start":{"line":8,"column":2},"end":{"line":8,"column":51}},"2":{"start":{"line":10,"column":2},"end":{"line":10,"column":23}}},"fnMap":{"0":{"name":"setupResizeHandler","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":42}},"loc":{"start":{"line":3,"column":54},"end":{"line":11,"column":1}},"line":3},"1":{"name":"resizeHandler","decl":{"start":{"line":4,"column":11},"end":{"line":4,"column":24}},"loc":{"start":{"line":4,"column":27},"end":{"line":6,"column":3}},"line":4}},"branchMap":{},"s":{"0":1,"1":17,"2":17},"f":{"0":17,"1":1},"b":{},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"a5d8857a5104e1c881102515f6ea5feaf92575c9"} +,"/home/makro/0001/scrollnav/src/setupScrollHandler.js": {"path":"/home/makro/0001/scrollnav/src/setupScrollHandler.js","statementMap":{"0":{"start":{"line":6,"column":16},"end":{"line":6,"column":79}},"1":{"start":{"line":7,"column":23},"end":{"line":7,"column":26}},"2":{"start":{"line":8,"column":26},"end":{"line":8,"column":56}},"3":{"start":{"line":9,"column":26},"end":{"line":13,"column":5}},"4":{"start":{"line":15,"column":4},"end":{"line":15,"column":54}},"5":{"start":{"line":17,"column":4},"end":{"line":17,"column":25}},"6":{"start":{"line":20,"column":2},"end":{"line":20,"column":51}},"7":{"start":{"line":22,"column":2},"end":{"line":22,"column":23}}},"fnMap":{"0":{"name":"setupScrollHandler","decl":{"start":{"line":4,"column":24},"end":{"line":4,"column":42}},"loc":{"start":{"line":4,"column":54},"end":{"line":23,"column":1}},"line":4},"1":{"name":"scrollHandler","decl":{"start":{"line":5,"column":11},"end":{"line":5,"column":24}},"loc":{"start":{"line":5,"column":27},"end":{"line":18,"column":3}},"line":5}},"branchMap":{"0":{"loc":{"start":{"line":6,"column":16},"end":{"line":6,"column":79}},"type":"binary-expr","locations":[{"start":{"line":6,"column":16},"end":{"line":6,"column":30}},{"start":{"line":6,"column":34},"end":{"line":6,"column":52}},{"start":{"line":6,"column":56},"end":{"line":6,"column":79}}],"line":6}},"s":{"0":5,"1":5,"2":5,"3":5,"4":5,"5":5,"6":20,"7":20},"f":{"0":20,"1":5},"b":{"0":[5,5,5]},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"594873a5f3250e10ccb6c2d1f598cc9667cf464d"} +,"/home/makro/0001/scrollnav/src/teardownClickHandlers.js": {"path":"/home/makro/0001/scrollnav/src/teardownClickHandlers.js","statementMap":{"0":{"start":{"line":2,"column":16},"end":{"line":2,"column":41}},"1":{"start":{"line":3,"column":2},"end":{"line":5,"column":5}},"2":{"start":{"line":4,"column":4},"end":{"line":4,"column":52}}},"fnMap":{"0":{"name":"teardownClickHandlers","decl":{"start":{"line":1,"column":24},"end":{"line":1,"column":45}},"loc":{"start":{"line":1,"column":65},"end":{"line":6,"column":1}},"line":1},"1":{"name":"(anonymous_1)","decl":{"start":{"line":3,"column":16},"end":{"line":3,"column":17}},"loc":{"start":{"line":3,"column":24},"end":{"line":5,"column":3}},"line":3}},"branchMap":{},"s":{"0":3,"1":3,"2":9},"f":{"0":3,"1":9},"b":{},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"289b3c8a04a905f264466d997c123ca0982c7333"} +,"/home/makro/0001/scrollnav/src/teardownResizeHandler.js": {"path":"/home/makro/0001/scrollnav/src/teardownResizeHandler.js","statementMap":{"0":{"start":{"line":2,"column":2},"end":{"line":2,"column":54}}},"fnMap":{"0":{"name":"teardownResizelHandler","decl":{"start":{"line":1,"column":24},"end":{"line":1,"column":46}},"loc":{"start":{"line":1,"column":62},"end":{"line":3,"column":1}},"line":1}},"branchMap":{},"s":{"0":3},"f":{"0":3},"b":{},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"83988dcb4a2d683bc1dc60912cedc42b8d257e4f"} +,"/home/makro/0001/scrollnav/src/teardownScrollHandler.js": {"path":"/home/makro/0001/scrollnav/src/teardownScrollHandler.js","statementMap":{"0":{"start":{"line":2,"column":2},"end":{"line":2,"column":54}}},"fnMap":{"0":{"name":"teardownScrollHandler","decl":{"start":{"line":1,"column":24},"end":{"line":1,"column":45}},"loc":{"start":{"line":1,"column":61},"end":{"line":3,"column":1}},"line":1}},"branchMap":{},"s":{"0":4},"f":{"0":4},"b":{},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"dd11db4330d53cd2c7fbb1356b651eb86b29f3f9"} +,"/home/makro/0001/scrollnav/src/util/calculateScrollDuration.js": {"path":"/home/makro/0001/scrollnav/src/util/calculateScrollDuration.js","statementMap":{"0":{"start":{"line":2,"column":23},"end":{"line":2,"column":45}},"1":{"start":{"line":4,"column":2},"end":{"line":4,"column":53}}},"fnMap":{"0":{"name":"calculateScrollDuration","decl":{"start":{"line":1,"column":24},"end":{"line":1,"column":47}},"loc":{"start":{"line":1,"column":58},"end":{"line":5,"column":1}},"line":1}},"branchMap":{},"s":{"0":4,"1":4},"f":{"0":4},"b":{},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"0f3f80ab429cef6c43f7d929a19750edee3d7094"} +,"/home/makro/0001/scrollnav/src/util/createList.js": {"path":"/home/makro/0001/scrollnav/src/util/createList.js","statementMap":{"0":{"start":{"line":2,"column":17},"end":{"line":2,"column":44}},"1":{"start":{"line":3,"column":20},"end":{"line":3,"column":41}},"2":{"start":{"line":5,"column":22},"end":{"line":19,"column":3}},"3":{"start":{"line":9,"column":10},"end":{"line":16,"column":16}},"4":{"start":{"line":21,"column":15},"end":{"line":25,"column":3}},"5":{"start":{"line":27,"column":2},"end":{"line":27,"column":14}}},"fnMap":{"0":{"name":"createList","decl":{"start":{"line":1,"column":24},"end":{"line":1,"column":34}},"loc":{"start":{"line":1,"column":60},"end":{"line":28,"column":1}},"line":1},"1":{"name":"(anonymous_1)","decl":{"start":{"line":8,"column":8},"end":{"line":8,"column":9}},"loc":{"start":{"line":9,"column":10},"end":{"line":16,"column":16}},"line":9}},"branchMap":{"0":{"loc":{"start":{"line":1,"column":41},"end":{"line":1,"column":58}},"type":"default-arg","locations":[{"start":{"line":1,"column":53},"end":{"line":1,"column":58}}],"line":1},"1":{"loc":{"start":{"line":2,"column":17},"end":{"line":2,"column":44}},"type":"cond-expr","locations":[{"start":{"line":2,"column":29},"end":{"line":2,"column":37}},{"start":{"line":2,"column":40},"end":{"line":2,"column":44}}],"line":2},"2":{"loc":{"start":{"line":12,"column":14},"end":{"line":14,"column":20}},"type":"cond-expr","locations":[{"start":{"line":13,"column":18},"end":{"line":13,"column":57}},{"start":{"line":14,"column":18},"end":{"line":14,"column":20}}],"line":12},"3":{"loc":{"start":{"line":12,"column":14},"end":{"line":12,"column":57}},"type":"binary-expr","locations":[{"start":{"line":12,"column":14},"end":{"line":12,"column":30}},{"start":{"line":12,"column":34},"end":{"line":12,"column":57}}],"line":12}},"s":{"0":27,"1":27,"2":27,"3":75,"4":27,"5":27},"f":{"0":27,"1":75},"b":{"0":[24],"1":[3,24],"2":[3,72],"3":[75,75]},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"7102e7cc6fb4c4252716b5fd581c5ba9b3d081ba"} +,"/home/makro/0001/scrollnav/src/util/createNav.js": {"path":"/home/makro/0001/scrollnav/src/util/createNav.js","statementMap":{"0":{"start":{"line":4,"column":14},"end":{"line":4,"column":43}},"1":{"start":{"line":5,"column":2},"end":{"line":5,"column":31}},"2":{"start":{"line":6,"column":2},"end":{"line":6,"column":35}},"3":{"start":{"line":8,"column":2},"end":{"line":8,"column":13}}},"fnMap":{"0":{"name":"createNav","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":33}},"loc":{"start":{"line":3,"column":40},"end":{"line":9,"column":1}},"line":3}},"branchMap":{},"s":{"0":17,"1":17,"2":17,"3":17},"f":{"0":17},"b":{},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"88009f5491ef8337c00571af2ebe2dbdb82370ff"} +,"/home/makro/0001/scrollnav/src/util/easing.js": {"path":"/home/makro/0001/scrollnav/src/util/easing.js","statementMap":{"0":{"start":{"line":3,"column":15},"end":{"line":3,"column":39}},"1":{"start":{"line":3,"column":20},"end":{"line":3,"column":39}},"2":{"start":{"line":3,"column":25},"end":{"line":3,"column":39}},"3":{"start":{"line":4,"column":16},"end":{"line":4,"column":58}},"4":{"start":{"line":4,"column":21},"end":{"line":4,"column":58}},"5":{"start":{"line":4,"column":26},"end":{"line":4,"column":58}},"6":{"start":{"line":5,"column":18},"end":{"line":6,"column":66}},"7":{"start":{"line":5,"column":23},"end":{"line":6,"column":66}},"8":{"start":{"line":6,"column":2},"end":{"line":6,"column":66}},"9":{"start":{"line":8,"column":15},"end":{"line":22,"column":1}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":3,"column":15},"end":{"line":3,"column":16}},"loc":{"start":{"line":3,"column":20},"end":{"line":3,"column":39}},"line":3},"1":{"name":"(anonymous_1)","decl":{"start":{"line":3,"column":20},"end":{"line":3,"column":21}},"loc":{"start":{"line":3,"column":25},"end":{"line":3,"column":39}},"line":3},"2":{"name":"(anonymous_2)","decl":{"start":{"line":4,"column":16},"end":{"line":4,"column":17}},"loc":{"start":{"line":4,"column":21},"end":{"line":4,"column":58}},"line":4},"3":{"name":"(anonymous_3)","decl":{"start":{"line":4,"column":21},"end":{"line":4,"column":22}},"loc":{"start":{"line":4,"column":26},"end":{"line":4,"column":58}},"line":4},"4":{"name":"(anonymous_4)","decl":{"start":{"line":5,"column":18},"end":{"line":5,"column":19}},"loc":{"start":{"line":5,"column":23},"end":{"line":6,"column":66}},"line":5},"5":{"name":"(anonymous_5)","decl":{"start":{"line":5,"column":23},"end":{"line":5,"column":24}},"loc":{"start":{"line":6,"column":2},"end":{"line":6,"column":66}},"line":6}},"branchMap":{"0":{"loc":{"start":{"line":6,"column":2},"end":{"line":6,"column":66}},"type":"cond-expr","locations":[{"start":{"line":6,"column":12},"end":{"line":6,"column":32}},{"start":{"line":6,"column":35},"end":{"line":6,"column":66}}],"line":6}},"s":{"0":5,"1":26,"2":18,"3":5,"4":30,"5":22,"6":5,"7":25,"8":16,"9":5},"f":{"0":26,"1":18,"2":30,"3":22,"4":25,"5":16},"b":{"0":[6,10]},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"2e9b4109cf6e7bd54015a2fee53708d5039082ac"} +,"/home/makro/0001/scrollnav/src/util/extend.js": {"path":"/home/makro/0001/scrollnav/src/util/extend.js","statementMap":{"0":{"start":{"line":4,"column":19},"end":{"line":4,"column":21}},"1":{"start":{"line":7,"column":2},"end":{"line":11,"column":3}},"2":{"start":{"line":8,"column":4},"end":{"line":10,"column":5}},"3":{"start":{"line":9,"column":6},"end":{"line":9,"column":38}},"4":{"start":{"line":13,"column":2},"end":{"line":17,"column":3}},"5":{"start":{"line":14,"column":4},"end":{"line":16,"column":5}},"6":{"start":{"line":15,"column":6},"end":{"line":15,"column":37}},"7":{"start":{"line":19,"column":2},"end":{"line":19,"column":18}}},"fnMap":{"0":{"name":"extend","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":30}},"loc":{"start":{"line":3,"column":50},"end":{"line":20,"column":1}},"line":3}},"branchMap":{"0":{"loc":{"start":{"line":8,"column":4},"end":{"line":10,"column":5}},"type":"if","locations":[{"start":{"line":8,"column":4},"end":{"line":10,"column":5}},{"start":{"line":8,"column":4},"end":{"line":10,"column":5}}],"line":8},"1":{"loc":{"start":{"line":14,"column":4},"end":{"line":16,"column":5}},"type":"if","locations":[{"start":{"line":14,"column":4},"end":{"line":16,"column":5}},{"start":{"line":14,"column":4},"end":{"line":16,"column":5}}],"line":14}},"s":{"0":32,"1":32,"2":160,"3":160,"4":32,"5":30,"6":30,"7":32},"f":{"0":32},"b":{"0":[160,0],"1":[30,0]},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"51d16dd3d416011cacf56e630c4a21bb0d05cdc1"} +,"/home/makro/0001/scrollnav/src/util/getActiveSection.js": {"path":"/home/makro/0001/scrollnav/src/util/getActiveSection.js","statementMap":{"0":{"start":{"line":4,"column":2},"end":{"line":12,"column":5}},"1":{"start":{"line":5,"column":4},"end":{"line":11,"column":5}},"2":{"start":{"line":6,"column":6},"end":{"line":8,"column":7}},"3":{"start":{"line":7,"column":8},"end":{"line":7,"column":32}},"4":{"start":{"line":10,"column":6},"end":{"line":10,"column":30}},"5":{"start":{"line":14,"column":2},"end":{"line":26,"column":3}},"6":{"start":{"line":17,"column":4},"end":{"line":21,"column":6}},"7":{"start":{"line":23,"column":4},"end":{"line":25,"column":5}},"8":{"start":{"line":24,"column":6},"end":{"line":24,"column":39}},"9":{"start":{"line":28,"column":2},"end":{"line":28,"column":23}}},"fnMap":{"0":{"name":"getActiveSection","decl":{"start":{"line":1,"column":24},"end":{"line":1,"column":40}},"loc":{"start":{"line":1,"column":74},"end":{"line":29,"column":1}},"line":1},"1":{"name":"(anonymous_1)","decl":{"start":{"line":4,"column":15},"end":{"line":4,"column":16}},"loc":{"start":{"line":4,"column":26},"end":{"line":12,"column":3}},"line":4}},"branchMap":{"0":{"loc":{"start":{"line":5,"column":4},"end":{"line":11,"column":5}},"type":"if","locations":[{"start":{"line":5,"column":4},"end":{"line":11,"column":5}},{"start":{"line":5,"column":4},"end":{"line":11,"column":5}}],"line":5},"1":{"loc":{"start":{"line":6,"column":6},"end":{"line":8,"column":7}},"type":"if","locations":[{"start":{"line":6,"column":6},"end":{"line":8,"column":7}},{"start":{"line":6,"column":6},"end":{"line":8,"column":7}}],"line":6},"2":{"loc":{"start":{"line":6,"column":10},"end":{"line":6,"column":58}},"type":"binary-expr","locations":[{"start":{"line":6,"column":10},"end":{"line":6,"column":24}},{"start":{"line":6,"column":28},"end":{"line":6,"column":58}}],"line":6},"3":{"loc":{"start":{"line":14,"column":2},"end":{"line":26,"column":3}},"type":"if","locations":[{"start":{"line":14,"column":2},"end":{"line":26,"column":3}},{"start":{"line":14,"column":2},"end":{"line":26,"column":3}}],"line":14},"4":{"loc":{"start":{"line":14,"column":6},"end":{"line":14,"column":55}},"type":"binary-expr","locations":[{"start":{"line":14,"column":6},"end":{"line":14,"column":19}},{"start":{"line":14,"column":23},"end":{"line":14,"column":55}}],"line":14},"5":{"loc":{"start":{"line":23,"column":4},"end":{"line":25,"column":5}},"type":"if","locations":[{"start":{"line":23,"column":4},"end":{"line":25,"column":5}},{"start":{"line":23,"column":4},"end":{"line":25,"column":5}}],"line":23}},"s":{"0":10,"1":28,"2":14,"3":0,"4":14,"5":10,"6":1,"7":1,"8":1,"9":10},"f":{"0":10,"1":28},"b":{"0":[14,14],"1":[0,14],"2":[14,3],"3":[1,9],"4":[10,9],"5":[1,0]},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"acb31f3283364abdf3eb512b415ca22cce28a0c5"} +,"/home/makro/0001/scrollnav/src/util/getOrSetID.js": {"path":"/home/makro/0001/scrollnav/src/util/getOrSetID.js","statementMap":{"0":{"start":{"line":2,"column":2},"end":{"line":4,"column":3}},"1":{"start":{"line":3,"column":4},"end":{"line":3,"column":73}},"2":{"start":{"line":6,"column":11},"end":{"line":6,"column":18}},"3":{"start":{"line":8,"column":2},"end":{"line":15,"column":3}},"4":{"start":{"line":9,"column":4},"end":{"line":11,"column":5}},"5":{"start":{"line":10,"column":6},"end":{"line":10,"column":75}},"6":{"start":{"line":13,"column":4},"end":{"line":13,"column":15}},"7":{"start":{"line":14,"column":4},"end":{"line":14,"column":17}},"8":{"start":{"line":16,"column":2},"end":{"line":16,"column":12}}},"fnMap":{"0":{"name":"getOrSetID","decl":{"start":{"line":1,"column":24},"end":{"line":1,"column":34}},"loc":{"start":{"line":1,"column":48},"end":{"line":17,"column":1}},"line":1}},"branchMap":{"0":{"loc":{"start":{"line":2,"column":2},"end":{"line":4,"column":3}},"type":"if","locations":[{"start":{"line":2,"column":2},"end":{"line":4,"column":3}},{"start":{"line":2,"column":2},"end":{"line":4,"column":3}}],"line":2},"1":{"loc":{"start":{"line":8,"column":2},"end":{"line":15,"column":3}},"type":"if","locations":[{"start":{"line":8,"column":2},"end":{"line":15,"column":3}},{"start":{"line":8,"column":2},"end":{"line":15,"column":3}}],"line":8},"2":{"loc":{"start":{"line":9,"column":4},"end":{"line":11,"column":5}},"type":"if","locations":[{"start":{"line":9,"column":4},"end":{"line":11,"column":5}},{"start":{"line":9,"column":4},"end":{"line":11,"column":5}}],"line":9}},"s":{"0":58,"1":1,"2":57,"3":57,"4":4,"5":1,"6":3,"7":3,"8":56},"f":{"0":58},"b":{"0":[1,57],"1":[4,53],"2":[1,3]},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"1d9a9d68e6d84267b1d2d02d8a7276f42c196f30"} +,"/home/makro/0001/scrollnav/src/util/getTargetYPosition.js": {"path":"/home/makro/0001/scrollnav/src/util/getTargetYPosition.js","statementMap":{"0":{"start":{"line":2,"column":11},"end":{"line":2,"column":38}},"1":{"start":{"line":3,"column":2},"end":{"line":5,"column":3}},"2":{"start":{"line":4,"column":4},"end":{"line":4,"column":22}},"3":{"start":{"line":7,"column":24},"end":{"line":7,"column":44}},"4":{"start":{"line":9,"column":2},"end":{"line":9,"column":33}},"5":{"start":{"line":15,"column":2},"end":{"line":23,"column":5}},"6":{"start":{"line":16,"column":4},"end":{"line":18,"column":5}},"7":{"start":{"line":17,"column":6},"end":{"line":17,"column":30}},"8":{"start":{"line":20,"column":4},"end":{"line":22,"column":5}},"9":{"start":{"line":21,"column":6},"end":{"line":21,"column":58}},"10":{"start":{"line":25,"column":2},"end":{"line":25,"column":23}}},"fnMap":{"0":{"name":"getTargetYPosition","decl":{"start":{"line":1,"column":24},"end":{"line":1,"column":42}},"loc":{"start":{"line":1,"column":57},"end":{"line":10,"column":1}},"line":1},"1":{"name":"filterData","decl":{"start":{"line":12,"column":9},"end":{"line":12,"column":19}},"loc":{"start":{"line":12,"column":30},"end":{"line":26,"column":1}},"line":12},"2":{"name":"(anonymous_2)","decl":{"start":{"line":15,"column":15},"end":{"line":15,"column":16}},"loc":{"start":{"line":15,"column":26},"end":{"line":23,"column":3}},"line":15}},"branchMap":{"0":{"loc":{"start":{"line":3,"column":2},"end":{"line":5,"column":3}},"type":"if","locations":[{"start":{"line":3,"column":2},"end":{"line":5,"column":3}},{"start":{"line":3,"column":2},"end":{"line":5,"column":3}}],"line":3},"1":{"loc":{"start":{"line":16,"column":4},"end":{"line":18,"column":5}},"type":"if","locations":[{"start":{"line":16,"column":4},"end":{"line":18,"column":5}},{"start":{"line":16,"column":4},"end":{"line":18,"column":5}}],"line":16},"2":{"loc":{"start":{"line":20,"column":4},"end":{"line":22,"column":5}},"type":"if","locations":[{"start":{"line":20,"column":4},"end":{"line":22,"column":5}},{"start":{"line":20,"column":4},"end":{"line":22,"column":5}}],"line":20},"3":{"loc":{"start":{"line":20,"column":8},"end":{"line":20,"column":58}},"type":"binary-expr","locations":[{"start":{"line":20,"column":8},"end":{"line":20,"column":27}},{"start":{"line":20,"column":31},"end":{"line":20,"column":58}}],"line":20}},"s":{"0":3,"1":3,"2":3,"3":3,"4":3,"5":5,"6":10,"7":3,"8":10,"9":2,"10":5},"f":{"0":3,"1":5,"2":10},"b":{"0":[3,0],"1":[3,7],"2":[2,8],"3":[10,10]},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"4965a7b49a9e2c2c1defa12f18852b6fec08e0e7"} +,"/home/makro/0001/scrollnav/src/util/getYPosition.js": {"path":"/home/makro/0001/scrollnav/src/util/getYPosition.js","statementMap":{"0":{"start":{"line":2,"column":2},"end":{"line":4,"column":3}},"1":{"start":{"line":3,"column":4},"end":{"line":3,"column":73}},"2":{"start":{"line":6,"column":2},"end":{"line":6,"column":35}},"3":{"start":{"line":7,"column":2},"end":{"line":9,"column":3}},"4":{"start":{"line":8,"column":4},"end":{"line":8,"column":74}},"5":{"start":{"line":11,"column":19},"end":{"line":11,"column":49}},"6":{"start":{"line":12,"column":19},"end":{"line":12,"column":47}},"7":{"start":{"line":14,"column":2},"end":{"line":14,"column":37}}},"fnMap":{"0":{"name":"getYPosition","decl":{"start":{"line":1,"column":24},"end":{"line":1,"column":36}},"loc":{"start":{"line":1,"column":51},"end":{"line":15,"column":1}},"line":1}},"branchMap":{"0":{"loc":{"start":{"line":2,"column":2},"end":{"line":4,"column":3}},"type":"if","locations":[{"start":{"line":2,"column":2},"end":{"line":4,"column":3}},{"start":{"line":2,"column":2},"end":{"line":4,"column":3}}],"line":2},"1":{"loc":{"start":{"line":6,"column":11},"end":{"line":6,"column":34}},"type":"binary-expr","locations":[{"start":{"line":6,"column":11},"end":{"line":6,"column":17}},{"start":{"line":6,"column":21},"end":{"line":6,"column":34}}],"line":6},"2":{"loc":{"start":{"line":7,"column":2},"end":{"line":9,"column":3}},"type":"if","locations":[{"start":{"line":7,"column":2},"end":{"line":9,"column":3}},{"start":{"line":7,"column":2},"end":{"line":9,"column":3}}],"line":7}},"s":{"0":73,"1":1,"2":72,"3":72,"4":1,"5":71,"6":71,"7":71},"f":{"0":73},"b":{"0":[1,72],"1":[72,70],"2":[1,71]},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"4f35e64908308fa60fb62f2f659533467c4dbd13"} +,"/home/makro/0001/scrollnav/src/util/insertNav.js": {"path":"/home/makro/0001/scrollnav/src/util/insertNav.js","statementMap":{"0":{"start":{"line":2,"column":17},"end":{"line":2,"column":48}},"1":{"start":{"line":3,"column":19},"end":{"line":3,"column":52}},"2":{"start":{"line":5,"column":2},"end":{"line":13,"column":3}},"3":{"start":{"line":6,"column":4},"end":{"line":6,"column":38}},"4":{"start":{"line":7,"column":9},"end":{"line":13,"column":3}},"5":{"start":{"line":8,"column":4},"end":{"line":8,"column":58}},"6":{"start":{"line":9,"column":9},"end":{"line":13,"column":3}},"7":{"start":{"line":10,"column":4},"end":{"line":10,"column":58}},"8":{"start":{"line":11,"column":9},"end":{"line":13,"column":3}},"9":{"start":{"line":12,"column":4},"end":{"line":12,"column":70}}},"fnMap":{"0":{"name":"insertNav","decl":{"start":{"line":1,"column":24},"end":{"line":1,"column":33}},"loc":{"start":{"line":1,"column":45},"end":{"line":14,"column":1}},"line":1}},"branchMap":{"0":{"loc":{"start":{"line":5,"column":2},"end":{"line":13,"column":3}},"type":"if","locations":[{"start":{"line":5,"column":2},"end":{"line":13,"column":3}},{"start":{"line":5,"column":2},"end":{"line":13,"column":3}}],"line":5},"1":{"loc":{"start":{"line":7,"column":9},"end":{"line":13,"column":3}},"type":"if","locations":[{"start":{"line":7,"column":9},"end":{"line":13,"column":3}},{"start":{"line":7,"column":9},"end":{"line":13,"column":3}}],"line":7},"2":{"loc":{"start":{"line":9,"column":9},"end":{"line":13,"column":3}},"type":"if","locations":[{"start":{"line":9,"column":9},"end":{"line":13,"column":3}},{"start":{"line":9,"column":9},"end":{"line":13,"column":3}}],"line":9},"3":{"loc":{"start":{"line":11,"column":9},"end":{"line":13,"column":3}},"type":"if","locations":[{"start":{"line":11,"column":9},"end":{"line":13,"column":3}},{"start":{"line":11,"column":9},"end":{"line":13,"column":3}}],"line":11}},"s":{"0":19,"1":19,"2":19,"3":2,"4":17,"5":2,"6":15,"7":13,"8":2,"9":2},"f":{"0":19},"b":{"0":[2,17],"1":[2,15],"2":[13,2],"3":[2,0]},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"5beb8b10de4323e20c8ce232bd99173dd32196a4"} +,"/home/makro/0001/scrollnav/src/util/insertVisualDebugger.js": {"path":"/home/makro/0001/scrollnav/src/util/insertVisualDebugger.js","statementMap":{"0":{"start":{"line":2,"column":21},"end":{"line":2,"column":50}},"1":{"start":{"line":3,"column":2},"end":{"line":3,"column":38}},"2":{"start":{"line":5,"column":2},"end":{"line":17,"column":4}},"3":{"start":{"line":19,"column":2},"end":{"line":19,"column":40}}},"fnMap":{"0":{"name":"insertVisualDebugger","decl":{"start":{"line":1,"column":24},"end":{"line":1,"column":44}},"loc":{"start":{"line":1,"column":47},"end":{"line":20,"column":1}},"line":1}},"branchMap":{},"s":{"0":8,"1":8,"2":8,"3":8},"f":{"0":8},"b":{},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"1f6482b5040c9549c75785758d8c973f17cee59a"} +,"/home/makro/0001/scrollnav/src/util/nextUntil.js": {"path":"/home/makro/0001/scrollnav/src/util/nextUntil.js","statementMap":{"0":{"start":{"line":4,"column":17},"end":{"line":4,"column":19}},"1":{"start":{"line":6,"column":2},"end":{"line":6,"column":33}},"2":{"start":{"line":8,"column":2},"end":{"line":19,"column":3}},"3":{"start":{"line":9,"column":4},"end":{"line":9,"column":38}},"4":{"start":{"line":9,"column":32},"end":{"line":9,"column":38}},"5":{"start":{"line":11,"column":4},"end":{"line":14,"column":5}},"6":{"start":{"line":12,"column":6},"end":{"line":12,"column":37}},"7":{"start":{"line":13,"column":6},"end":{"line":13,"column":15}},"8":{"start":{"line":16,"column":4},"end":{"line":16,"column":24}},"9":{"start":{"line":18,"column":4},"end":{"line":18,"column":35}},"10":{"start":{"line":21,"column":2},"end":{"line":21,"column":18}}},"fnMap":{"0":{"name":"nextUntil","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":33}},"loc":{"start":{"line":3,"column":58},"end":{"line":22,"column":1}},"line":3}},"branchMap":{"0":{"loc":{"start":{"line":9,"column":4},"end":{"line":9,"column":38}},"type":"if","locations":[{"start":{"line":9,"column":4},"end":{"line":9,"column":38}},{"start":{"line":9,"column":4},"end":{"line":9,"column":38}}],"line":9},"1":{"loc":{"start":{"line":11,"column":4},"end":{"line":14,"column":5}},"type":"if","locations":[{"start":{"line":11,"column":4},"end":{"line":14,"column":5}},{"start":{"line":11,"column":4},"end":{"line":14,"column":5}}],"line":11},"2":{"loc":{"start":{"line":11,"column":8},"end":{"line":11,"column":39}},"type":"binary-expr","locations":[{"start":{"line":11,"column":8},"end":{"line":11,"column":14}},{"start":{"line":11,"column":18},"end":{"line":11,"column":39}}],"line":11}},"s":{"0":4,"1":4,"2":4,"3":12,"4":3,"5":9,"6":7,"7":7,"8":2,"9":2,"10":4},"f":{"0":4},"b":{"0":[3,9],"1":[7,2],"2":[9,9]},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"bb9aaf193526e04363e263c4e4ea268b4d2d8312"} +,"/home/makro/0001/scrollnav/src/util/populateSectionData.js": {"path":"/home/makro/0001/scrollnav/src/util/populateSectionData.js","statementMap":{"0":{"start":{"line":10,"column":22},"end":{"line":10,"column":24}},"1":{"start":{"line":11,"column":2},"end":{"line":11,"column":25}},"2":{"start":{"line":13,"column":2},"end":{"line":32,"column":5}},"3":{"start":{"line":14,"column":25},"end":{"line":14,"column":27}},"4":{"start":{"line":15,"column":15},"end":{"line":15,"column":49}},"5":{"start":{"line":17,"column":4},"end":{"line":24,"column":5}},"6":{"start":{"line":18,"column":28},"end":{"line":22,"column":7}},"7":{"start":{"line":23,"column":6},"end":{"line":23,"column":72}},"8":{"start":{"line":26,"column":4},"end":{"line":31,"column":7}},"9":{"start":{"line":34,"column":2},"end":{"line":34,"column":21}}},"fnMap":{"0":{"name":"populateSectionData","decl":{"start":{"line":5,"column":24},"end":{"line":5,"column":43}},"loc":{"start":{"line":9,"column":2},"end":{"line":35,"column":1}},"line":9},"1":{"name":"(anonymous_1)","decl":{"start":{"line":13,"column":19},"end":{"line":13,"column":20}},"loc":{"start":{"line":13,"column":32},"end":{"line":32,"column":3}},"line":13}},"branchMap":{"0":{"loc":{"start":{"line":8,"column":2},"end":{"line":8,"column":23}},"type":"default-arg","locations":[{"start":{"line":8,"column":11},"end":{"line":8,"column":23}}],"line":8},"1":{"loc":{"start":{"line":17,"column":4},"end":{"line":24,"column":5}},"type":"if","locations":[{"start":{"line":17,"column":4},"end":{"line":24,"column":5}},{"start":{"line":17,"column":4},"end":{"line":24,"column":5}}],"line":17},"2":{"loc":{"start":{"line":17,"column":8},"end":{"line":17,"column":63}},"type":"binary-expr","locations":[{"start":{"line":17,"column":8},"end":{"line":17,"column":28}},{"start":{"line":17,"column":32},"end":{"line":17,"column":63}}],"line":17},"3":{"loc":{"start":{"line":28,"column":12},"end":{"line":28,"column":46}},"type":"binary-expr","locations":[{"start":{"line":28,"column":12},"end":{"line":28,"column":26}},{"start":{"line":28,"column":30},"end":{"line":28,"column":46}}],"line":28}},"s":{"0":20,"1":20,"2":20,"3":52,"4":52,"5":52,"6":3,"7":3,"8":52,"9":20},"f":{"0":20,"1":52},"b":{"0":[17],"1":[3,49],"2":[52,4],"3":[52,52]},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"d7bd9e3f86e7c9b5fc5fe35a3ec6fd32802ee5e2"} +,"/home/makro/0001/scrollnav/src/util/updateActiveNavItem.js": {"path":"/home/makro/0001/scrollnav/src/util/updateActiveNavItem.js","statementMap":{"0":{"start":{"line":2,"column":25},"end":{"line":2,"column":62}},"1":{"start":{"line":4,"column":2},"end":{"line":11,"column":3}},"2":{"start":{"line":5,"column":4},"end":{"line":8,"column":5}},"3":{"start":{"line":6,"column":6},"end":{"line":6,"column":66}},"4":{"start":{"line":7,"column":6},"end":{"line":7,"column":55}},"5":{"start":{"line":10,"column":4},"end":{"line":10,"column":11}},"6":{"start":{"line":13,"column":20},"end":{"line":15,"column":3}},"7":{"start":{"line":17,"column":2},"end":{"line":24,"column":3}},"8":{"start":{"line":18,"column":4},"end":{"line":21,"column":5}},"9":{"start":{"line":19,"column":6},"end":{"line":19,"column":66}},"10":{"start":{"line":20,"column":6},"end":{"line":20,"column":55}},"11":{"start":{"line":22,"column":4},"end":{"line":22,"column":56}},"12":{"start":{"line":23,"column":4},"end":{"line":23,"column":51}}},"fnMap":{"0":{"name":"updateActiveNavItem","decl":{"start":{"line":1,"column":24},"end":{"line":1,"column":43}},"loc":{"start":{"line":1,"column":64},"end":{"line":25,"column":1}},"line":1}},"branchMap":{"0":{"loc":{"start":{"line":4,"column":2},"end":{"line":11,"column":3}},"type":"if","locations":[{"start":{"line":4,"column":2},"end":{"line":11,"column":3}},{"start":{"line":4,"column":2},"end":{"line":11,"column":3}}],"line":4},"1":{"loc":{"start":{"line":5,"column":4},"end":{"line":8,"column":5}},"type":"if","locations":[{"start":{"line":5,"column":4},"end":{"line":8,"column":5}},{"start":{"line":5,"column":4},"end":{"line":8,"column":5}}],"line":5},"2":{"loc":{"start":{"line":17,"column":2},"end":{"line":24,"column":3}},"type":"if","locations":[{"start":{"line":17,"column":2},"end":{"line":24,"column":3}},{"start":{"line":17,"column":2},"end":{"line":24,"column":3}}],"line":17},"3":{"loc":{"start":{"line":17,"column":6},"end":{"line":17,"column":47}},"type":"binary-expr","locations":[{"start":{"line":17,"column":6},"end":{"line":17,"column":15}},{"start":{"line":17,"column":19},"end":{"line":17,"column":47}}],"line":17},"4":{"loc":{"start":{"line":18,"column":4},"end":{"line":21,"column":5}},"type":"if","locations":[{"start":{"line":18,"column":4},"end":{"line":21,"column":5}},{"start":{"line":18,"column":4},"end":{"line":21,"column":5}}],"line":18}},"s":{"0":10,"1":10,"2":2,"3":2,"4":2,"5":2,"6":8,"7":8,"8":7,"9":3,"10":3,"11":7,"12":7},"f":{"0":10},"b":{"0":[2,8],"1":[2,0],"2":[7,1],"3":[8,8],"4":[3,4]},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"bf845f0f60e524f0bdd6a61e049ccf786b76a3f5"} +,"/home/makro/0001/scrollnav/src/util/updatePositionData.js": {"path":"/home/makro/0001/scrollnav/src/util/updatePositionData.js","statementMap":{"0":{"start":{"line":4,"column":2},"end":{"line":11,"column":5}},"1":{"start":{"line":5,"column":23},"end":{"line":5,"column":63}},"2":{"start":{"line":6,"column":4},"end":{"line":6,"column":49}},"3":{"start":{"line":8,"column":4},"end":{"line":10,"column":5}},"4":{"start":{"line":9,"column":6},"end":{"line":9,"column":68}},"5":{"start":{"line":13,"column":2},"end":{"line":13,"column":14}}},"fnMap":{"0":{"name":"updatePositionData","decl":{"start":{"line":3,"column":24},"end":{"line":3,"column":42}},"loc":{"start":{"line":3,"column":49},"end":{"line":14,"column":1}},"line":3},"1":{"name":"(anonymous_1)","decl":{"start":{"line":4,"column":15},"end":{"line":4,"column":16}},"loc":{"start":{"line":4,"column":26},"end":{"line":11,"column":3}},"line":4}},"branchMap":{"0":{"loc":{"start":{"line":8,"column":4},"end":{"line":10,"column":5}},"type":"if","locations":[{"start":{"line":8,"column":4},"end":{"line":10,"column":5}},{"start":{"line":8,"column":4},"end":{"line":10,"column":5}}],"line":8}},"s":{"0":6,"1":16,"2":16,"3":16,"4":1,"5":6},"f":{"0":6,"1":16},"b":{"0":[1,15]},"_coverageSchema":"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c","hash":"69833a99765c8faa75e9f3e8da4a2c35b97aeadf"} } diff --git a/test/coverage/lcov.info b/test/coverage/lcov.info index 2d45df4..271e230 100644 --- a/test/coverage/lcov.info +++ b/test/coverage/lcov.info @@ -1,5 +1,5 @@ TN: -SF:/Users/jimmyw/repos/jimmynotjim/scrollNav/src/scrollTo.js +SF:/home/makro/0001/scrollnav/src/scrollTo.js FN:5,scrollTo FN:6,(anonymous_1) FN:25,animateScroll @@ -28,8 +28,10 @@ DA:31,1 DA:32,1 DA:34,0 DA:38,1 -LF:20 -LH:19 +DA:39,0 +DA:41,1 +LF:22 +LH:20 BRDA:7,0,0,1 BRDA:7,0,1,2 BRDA:11,1,0,2 @@ -38,93 +40,95 @@ BRDA:12,2,0,1 BRDA:12,2,1,1 BRDA:31,3,0,1 BRDA:31,3,1,0 -BRF:8 -BRH:7 +BRDA:38,4,0,0 +BRDA:38,4,1,1 +BRF:10 +BRH:8 end_of_record TN: -SF:/Users/jimmyw/repos/jimmynotjim/scrollNav/src/scrollnav.js -FN:99,isElement -FN:103,init -FN:171,destroy -FN:182,updatePositions +SF:/home/makro/0001/scrollnav/src/scrollnav.js +FN:26,isElement +FN:30,init +FN:96,destroy +FN:107,updatePositions FNF:4 FNH:4 FNDA:50,isElement FNDA:27,init FNDA:2,destroy FNDA:2,updatePositions -DA:100,50 -DA:104,27 -DA:111,27 -DA:112,27 -DA:114,27 -DA:115,4 -DA:117,1 -DA:121,4 -DA:124,23 -DA:125,4 -DA:127,1 -DA:131,4 -DA:134,19 -DA:135,2 -DA:137,1 -DA:143,2 -DA:146,17 -DA:148,17 -DA:149,2 -DA:151,1 -DA:156,2 -DA:159,15 -DA:160,15 -DA:162,15 -DA:163,15 -DA:164,15 -DA:165,15 -DA:167,15 -DA:168,15 -DA:172,2 -DA:174,2 -DA:175,2 -DA:176,2 -DA:177,2 -DA:179,2 -DA:183,2 -DA:184,2 -DA:186,2 -DA:189,1 +DA:27,50 +DA:31,27 +DA:38,27 +DA:39,27 +DA:41,27 +DA:42,4 +DA:44,1 +DA:48,4 +DA:51,23 +DA:52,4 +DA:54,1 +DA:58,4 +DA:61,19 +DA:62,2 +DA:64,1 +DA:68,2 +DA:71,17 +DA:73,17 +DA:74,2 +DA:76,1 +DA:81,2 +DA:84,15 +DA:85,15 +DA:87,15 +DA:88,15 +DA:89,15 +DA:90,15 +DA:92,15 +DA:93,15 +DA:97,2 +DA:99,2 +DA:100,2 +DA:101,2 +DA:102,2 +DA:104,2 +DA:108,2 +DA:109,2 +DA:111,2 +DA:114,1 LF:39 LH:39 -BRDA:114,0,0,4 -BRDA:114,0,1,23 -BRDA:115,1,0,1 -BRDA:115,1,1,3 -BRDA:124,2,0,4 -BRDA:124,2,1,19 -BRDA:124,3,0,23 -BRDA:124,3,1,23 -BRDA:125,4,0,1 -BRDA:125,4,1,3 -BRDA:134,5,0,2 -BRDA:134,5,1,17 -BRDA:135,6,0,1 -BRDA:135,6,1,1 -BRDA:148,7,0,2 -BRDA:148,7,1,15 -BRDA:149,8,0,1 -BRDA:149,8,1,1 -BRDA:167,9,0,7 -BRDA:167,9,1,8 -BRDA:168,10,0,1 -BRDA:168,10,1,14 -BRDA:179,11,0,1 -BRDA:179,11,1,1 -BRDA:186,12,0,1 -BRDA:186,12,1,1 +BRDA:41,0,0,4 +BRDA:41,0,1,23 +BRDA:42,1,0,1 +BRDA:42,1,1,3 +BRDA:51,2,0,4 +BRDA:51,2,1,19 +BRDA:51,3,0,23 +BRDA:51,3,1,23 +BRDA:52,4,0,1 +BRDA:52,4,1,3 +BRDA:61,5,0,2 +BRDA:61,5,1,17 +BRDA:62,6,0,1 +BRDA:62,6,1,1 +BRDA:73,7,0,2 +BRDA:73,7,1,15 +BRDA:74,8,0,1 +BRDA:74,8,1,1 +BRDA:92,9,0,7 +BRDA:92,9,1,8 +BRDA:93,10,0,1 +BRDA:93,10,1,14 +BRDA:104,11,0,1 +BRDA:104,11,1,1 +BRDA:111,12,0,1 +BRDA:111,12,1,1 BRF:26 BRH:26 end_of_record TN: -SF:/Users/jimmyw/repos/jimmynotjim/scrollNav/src/setupClickHandlers.js +SF:/home/makro/0001/scrollnav/src/setupClickHandlers.js FN:4,setupClickHandlers FN:6,clickHandler FN:26,(anonymous_2) @@ -148,7 +152,7 @@ BRF:0 BRH:0 end_of_record TN: -SF:/Users/jimmyw/repos/jimmynotjim/scrollNav/src/setupResizeHandler.js +SF:/home/makro/0001/scrollnav/src/setupResizeHandler.js FN:3,setupResizeHandler FN:4,resizeHandler FNF:2 @@ -164,7 +168,7 @@ BRF:0 BRH:0 end_of_record TN: -SF:/Users/jimmyw/repos/jimmynotjim/scrollNav/src/setupScrollHandler.js +SF:/home/makro/0001/scrollnav/src/setupScrollHandler.js FN:4,setupScrollHandler FN:5,scrollHandler FNF:2 @@ -188,7 +192,7 @@ BRF:3 BRH:3 end_of_record TN: -SF:/Users/jimmyw/repos/jimmynotjim/scrollNav/src/teardownClickHandlers.js +SF:/home/makro/0001/scrollnav/src/teardownClickHandlers.js FN:1,teardownClickHandlers FN:3,(anonymous_1) FNF:2 @@ -204,7 +208,7 @@ BRF:0 BRH:0 end_of_record TN: -SF:/Users/jimmyw/repos/jimmynotjim/scrollNav/src/teardownResizeHandler.js +SF:/home/makro/0001/scrollnav/src/teardownResizeHandler.js FN:1,teardownResizelHandler FNF:1 FNH:1 @@ -216,7 +220,7 @@ BRF:0 BRH:0 end_of_record TN: -SF:/Users/jimmyw/repos/jimmynotjim/scrollNav/src/teardownScrollHandler.js +SF:/home/makro/0001/scrollnav/src/teardownScrollHandler.js FN:1,teardownScrollHandler FNF:1 FNH:1 @@ -228,7 +232,7 @@ BRF:0 BRH:0 end_of_record TN: -SF:/Users/jimmyw/repos/jimmynotjim/scrollNav/src/util/calculateScrollDuration.js +SF:/home/makro/0001/scrollnav/src/util/calculateScrollDuration.js FN:1,calculateScrollDuration FNF:1 FNH:1 @@ -241,7 +245,7 @@ BRF:0 BRH:0 end_of_record TN: -SF:/Users/jimmyw/repos/jimmynotjim/scrollNav/src/util/createList.js +SF:/home/makro/0001/scrollnav/src/util/createList.js FN:1,createList FN:8,(anonymous_1) FNF:2 @@ -267,7 +271,7 @@ BRF:7 BRH:7 end_of_record TN: -SF:/Users/jimmyw/repos/jimmynotjim/scrollNav/src/util/createNav.js +SF:/home/makro/0001/scrollnav/src/util/createNav.js FN:3,createNav FNF:1 FNH:1 @@ -282,7 +286,7 @@ BRF:0 BRH:0 end_of_record TN: -SF:/Users/jimmyw/repos/jimmynotjim/scrollNav/src/util/easing.js +SF:/home/makro/0001/scrollnav/src/util/easing.js FN:3,(anonymous_0) FN:3,(anonymous_1) FN:4,(anonymous_2) @@ -310,7 +314,7 @@ BRF:2 BRH:2 end_of_record TN: -SF:/Users/jimmyw/repos/jimmynotjim/scrollNav/src/util/extend.js +SF:/home/makro/0001/scrollnav/src/util/extend.js FN:3,extend FNF:1 FNH:1 @@ -333,7 +337,7 @@ BRF:4 BRH:2 end_of_record TN: -SF:/Users/jimmyw/repos/jimmynotjim/scrollNav/src/util/getActiveSection.js +SF:/home/makro/0001/scrollnav/src/util/getActiveSection.js FN:1,getActiveSection FN:4,(anonymous_1) FNF:2 @@ -368,7 +372,7 @@ BRF:12 BRH:10 end_of_record TN: -SF:/Users/jimmyw/repos/jimmynotjim/scrollNav/src/util/getOrSetID.js +SF:/home/makro/0001/scrollnav/src/util/getOrSetID.js FN:1,getOrSetID FNF:1 FNH:1 @@ -394,7 +398,7 @@ BRF:6 BRH:6 end_of_record TN: -SF:/Users/jimmyw/repos/jimmynotjim/scrollNav/src/util/getTargetYPosition.js +SF:/home/makro/0001/scrollnav/src/util/getTargetYPosition.js FN:1,getTargetYPosition FN:12,filterData FN:15,(anonymous_2) @@ -428,7 +432,7 @@ BRF:8 BRH:7 end_of_record TN: -SF:/Users/jimmyw/repos/jimmynotjim/scrollNav/src/util/getYPosition.js +SF:/home/makro/0001/scrollnav/src/util/getYPosition.js FN:1,getYPosition FNF:1 FNH:1 @@ -453,7 +457,7 @@ BRF:6 BRH:6 end_of_record TN: -SF:/Users/jimmyw/repos/jimmynotjim/scrollNav/src/util/insertNav.js +SF:/home/makro/0001/scrollnav/src/util/insertNav.js FN:1,insertNav FNF:1 FNH:1 @@ -482,7 +486,7 @@ BRF:8 BRH:7 end_of_record TN: -SF:/Users/jimmyw/repos/jimmynotjim/scrollNav/src/util/insertVisualDebugger.js +SF:/home/makro/0001/scrollnav/src/util/insertVisualDebugger.js FN:1,insertVisualDebugger FNF:1 FNH:1 @@ -497,7 +501,7 @@ BRF:0 BRH:0 end_of_record TN: -SF:/Users/jimmyw/repos/jimmynotjim/scrollNav/src/util/nextUntil.js +SF:/home/makro/0001/scrollnav/src/util/nextUntil.js FN:3,nextUntil FNF:1 FNH:1 @@ -524,7 +528,7 @@ BRF:6 BRH:6 end_of_record TN: -SF:/Users/jimmyw/repos/jimmynotjim/scrollNav/src/util/populateSectionData.js +SF:/home/makro/0001/scrollnav/src/util/populateSectionData.js FN:5,populateSectionData FN:13,(anonymous_1) FNF:2 @@ -554,7 +558,7 @@ BRF:7 BRH:7 end_of_record TN: -SF:/Users/jimmyw/repos/jimmynotjim/scrollNav/src/util/updateActiveNavItem.js +SF:/home/makro/0001/scrollnav/src/util/updateActiveNavItem.js FN:1,updateActiveNavItem FNF:1 FNH:1 @@ -588,7 +592,7 @@ BRF:10 BRH:9 end_of_record TN: -SF:/Users/jimmyw/repos/jimmynotjim/scrollNav/src/util/updatePositionData.js +SF:/home/makro/0001/scrollnav/src/util/updatePositionData.js FN:3,updatePositionData FN:4,(anonymous_1) FNF:2