{"version":3,"sources":["../js/modules/helpers.js","../js/modules/carruth-svg.js","../js/main.js"],"names":["createElement","q$1","selector","context","document","querySelector","q$","querySelectorAll","el","cl","x","undefined","className","carruthSVG","scrollToEnd","documentElement","body","animate","scrollTop","$","offset","top","createNav","navBar","readMore","innerHTML","articles","func","wait","immediate","timeout","nav","i","length","info","c","cloneNode","navItem","dataset","chapter","appendChild","parentNode","insertBefore","nextSibling","addEventListener","toggleBar","bar","window","scrollY","innerHeight","classList","remove","contains","add","args","arguments","callNow","setTimeout","apply","shareLinks","href","encodeURIComponent","location","url","navItems","re","item","match","content"],"mappings":"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","file":"main.5c43ac83.map","sourceRoot":"../src/html","sourcesContent":["/**\n * querySelector with option context (defualt is document)\n */\n\nconst q$1 = (selector, context = document) => context.querySelector(selector);\n\n/**\n * querySelectorAll with option context (defualt is document)\n */\n\nconst q$ = (selector, context = document) => context.querySelectorAll(selector);\n\n/**\n * Creates element with optional class (via className)\n */\n\nconst createElement = (el, cl) => {\n let x = document.createElement(el)\n if (cl != undefined) x.className = cl;\n return x\n}\n\nexport { q$, q$1, createElement }","export const carruthSVG = `\n \n\n \n \n \n\n\n`;","import { q$, q$1, createElement } from './modules/helpers';\nimport { carruthSVG } from './modules/carruth-svg';\n\ndocument.addEventListener('DOMContentLoaded', function() {\n let shareLinks = q$('.share-link');\n for (let i = 0; i < shareLinks.length; i++) {\n shareLinks[i].href =\n shareLinks[i].href + encodeURIComponent(window.location);\n }\n\n createNav();\n // Get active chapter\n let url = q$1('meta[name=original-source]');\n let navItems = q$('.fuse-nav-item > a');\n let re = /\\d+(?=\\.html)/;\n\n for (let item of navItems) {\n if (item.href.match(re)[0] === url.content.match(re)[0]) item.classList.add('fuse-active-item');\n }\n\n let jumpLink = q$1('.mob-read-more')\n jumpLink.addEventListener('click', scrollToEnd)\n\n});\n\nfunction scrollToEnd() {\n $([\n document.documentElement,\n document.body\n ]).animate({ scrollTop: $('.fuse-read-more').offset().top }, 500);\n}\n\nfunction createNav() {\n let navBar = createElement('div', 'fuse-nav-bar');\n let readMore = q$1('.fuse-read-more');\n navBar.innerHTML = `\n ${carruthSVG} \n \n
The series
\n `;\n\n // Clones related stories\n let articles = q$('.fuse-read-more article');\n let nav = navBar.querySelector('nav');\n for (let i = 0; i < articles.length; i++) {\n let info = articles[i].querySelector('.card-info a');\n let c = info.cloneNode(true);\n let navItem = createElement('div', 'fuse-nav-item');\n\n c.innerHTML = `Chapter ${i + 1}
${\n c.dataset.chapter\n }`;\n\n navItem.appendChild(c);\n nav.appendChild(navItem);\n }\n\n readMore.parentNode.insertBefore(navBar, readMore.nextSibling);\n\n window.addEventListener('scroll', debounce(() => toggleBar(), 50));\n\n function toggleBar() {\n let bar = navBar;\n if (window.scrollY < window.innerHeight / 2) {\n bar.classList.remove('fuse-nav-bar--visible');\n } else if (!bar.classList.contains('fuse-nav-bar--visible')) {\n bar.classList.add('fuse-nav-bar--visible');\n }\n }\n\n function debounce(func, wait, immediate) {\n var timeout;\n return function() {\n var context = this,\n args = arguments;\n var later = function() {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n var callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n }\n}\n"]}