{"version":3,"sources":["utils.js"],"names":["initDESKPaper","paper","fillColor","width","height","yPos","scrollTop","percent","deskOffset","deskOffsetStart","path","canvas","document","getElementById","setup","Path","pathHeight","view","size","pushDown","window","pageYOffset","documentElement","getBoundingClientRect","top","segments","add","bounds","bottomLeft","i","point","Point","bottomRight","onscroll","map","repaintOnce","onFrame","event","sinSeed","count","sinHeight","Math","sin","y","smooth","type","onResize","Number","prototype","in_min","in_max","out_min","out_max","this","initPaper","canvasElement","button","mouseInside","isRunning","initializePath","onmouseout","onmouseover","$","ready","$searchField","isIndexing","$searchForm","removeClass","IMAGE_SIZES","xxs","xs","s","m","l","xl","STATIC_IMAGE_URL_PREFIX","imageSizeHelper","imagePath","prefixIfPresent","prefix","string","imgBlogUrl","imageName","split","sizeDirectoryName","join","isSafari","ua","navigator","userAgent","toLowerCase","indexOf","disableScroll","body","style","overflow","closeSearch","val","html","clear","addClass","ghostHunter","results","onPageLoad","displaySearchInfo","result_template","before","console","log","search_text","item_preprocessor","item","title","feature_image","ret","featureImageRendered","indexing_start","prop","indexing_end","callback","ms","timer","focus","keyup","e","trigger","context","args","arguments","clearTimeout","setTimeout","apply","onComplete","length","click","scrollTo","value","on","keyCode","hasClass","offset","screenWidth","innerWidth","wrapperWidth","computedLeft","css","blogArticle","nav","querySelector","navToggle","lastScrollY","scrollY","ticking","update","myOffset","triggerOffset","offsetHeight","classList","remove","addEventListener","requestAnimationFrame","requestTick","passive","slides","querySelectorAll","currentSlide","setInterval","moveToNext","className","baseHeader","headerGradient","fadeContent","contentHolder","componentToHex","c","hex","parseInt","toString","rgbToHex","r","g","b","getContrastYIQ","hexcolor","replace","substr","dynamicHeaderColors","contains","display","fadeColor","getComputedStyle","getPropertyValue","rgb","substring","background","threshold","toggle","bottomOfContent","offsetTop","banners","getRandomInt","min","max","ceil","floor","random","num"],"mappings":"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","file":"utils.js","sourcesContent":["'use strict';\n\nfunction initDESKPaper(paper, fillColor) {\n var width, height, yPos, scrollTop, percent, deskOffset, deskOffsetStart, fillColor, path;\n var points = 20;\n var canvas = document.getElementById('wavecanvas-desk');\n\n paper.setup(canvas);\n\n path = new paper.Path();\n path.fillColor = fillColor || 'rgb(0,0,0)';\n\n var pathHeight = paper.view.size.height / 6;\n\n var speed = 22;\n var amplitude = 5;\n var pushDown = 1000;\n\n paper.view.setup = function () {\n scrollTop = window.pageYOffset || document.documentElement.scrollTop;\n deskOffset = canvas.getBoundingClientRect().top;\n width = paper.view.size.width;\n height = paper.view.size.height / 2;\n path.segments = [];\n path.add(paper.view.bounds.bottomLeft);\n\n for (var i = 1; i < points; i++) {\n var point = new paper.Point(width / points * i, pathHeight + pushDown);\n path.add(point);\n }\n path.add(paper.view.bounds.bottomRight);\n }\n\n paper.view.setup();\n\n window.onscroll = function () {\n scrollTop = window.pageYOffset || document.documentElement.scrollTop;\n deskOffset = document.getElementById('wavecanvas-desk').getBoundingClientRect().top;\n deskOffsetStart = scrollTop + deskOffset;\n pushDown = 2.5 - deskOffset.map(0, deskOffsetStart, 3, 0);\n percent = scrollTop.map(0, deskOffsetStart * 0.95, 0, 1);\n };\n\n var repaintOnce = false;\n\n paper.view.onFrame = function (event) {\n if (percent >= 0) {\n repaintOnce = false;\n\n for (var i = 1; i < points; i++) {\n var sinSeed = event.count + (i + i % 10) * amplitude;\n var sinHeight = Math.sin(sinSeed / speed) * pathHeight;\n yPos = sinHeight + pushDown;\n path.segments[i].point.y = yPos + height * pushDown;\n }\n path.smooth({ type: 'continuous' });\n } else if (!repaintOnce) {\n for (var i = 1; i < points; i++) {\n var sinSeed = event.count + (i + i % 10) * amplitude;\n var sinHeight = Math.sin(sinSeed / speed) * pathHeight;\n yPos = sinHeight + pushDown;\n path.segments[i].point.y = yPos + height * pushDown;\n }\n repaintOnce = true;\n }\n }\n\n // Reposition the path whenever the window is resized:\n paper.view.onResize = function (event) {\n paper.view.onFrame(event);\n }\n\n Number.prototype.map = function (in_min, in_max, out_min, out_max) {\n return (this - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;\n }\n}\n\nfunction initPaper(paper, canvasElement, button, fillColor) {\n paper.setup(canvasElement);\n\n var width, yPos;\n var points = 8;\n var path = new paper.Path();\n\n var mouseInside = false;\n var isRunning = false;\n var pushDown = 160;\n var pathHeight = paper.view.size.height / 6;\n\n path.fillColor = fillColor;\n\n paper.view.initializePath = function () {\n width = paper.view.size.width;\n path.segments = [];\n path.add(paper.view.bounds.bottomLeft);\n\n for (var i = 1; i < points; i++) {\n var point = new paper.Point(width / points * i, pathHeight + pushDown);\n path.add(point);\n }\n path.add(paper.view.bounds.bottomRight);\n }\n\n paper.view.initializePath();\n\n paper.view.onFrame = function (event) {\n if ((mouseInside || !mouseInside & pushDown < 180)) {\n for (var i = 1; i < points; i++) {\n var sinSeed = event.count + (i + i % 10) * 5;\n var sinHeight = Math.sin(sinSeed / 11) * pathHeight;\n\n if (mouseInside & pushDown > 0) {\n isRunning = true;\n pushDown -= 1.75;\n } else if (!mouseInside & pushDown < 180) {\n isRunning = true;\n pushDown += 1.75;\n } else {\n isRunning = false;\n }\n\n if (isRunning) {\n yPos = sinHeight + pushDown;\n path.segments[i].point.y = yPos;\n }\n }\n path.smooth({ type: 'continuous' });\n }\n }\n\n button.onmouseout = function () {\n mouseInside = false;\n }\n button.onmouseover = function () {\n mouseInside = true;\n }\n}\n\n$(document).ready(function () {\n var isIndexing = false;\n var scrollTop = 0;\n var $searchForm = $('.js-layout--searchform');\n var $searchField;\n\n // fade animation on series pages\n $('.fade').removeClass('fade-hidden');\n\n /**\n * Image sizes config\n * This is currently a duplicate of the config in package.json\n */\n const IMAGE_SIZES = {\n xxs: {\n width: 30,\n },\n xs: {\n width: 100,\n },\n s: {\n width: 300,\n },\n m: {\n width: 600,\n },\n l: {\n width: 1200,\n },\n xl: {\n width: 2000,\n },\n };\n\n // The default path to access images from Ghost storage\n const STATIC_IMAGE_URL_PREFIX = 'content/images';\n\n /**\n * Image Size helper\n * Creates the correct path to Ghost's image directory for the required size\n */\n const imageSizeHelper = (imagePath, size) => {\n const prefixIfPresent = (prefix, string) => (string ? prefix + string : '');\n const { width, height } = IMAGE_SIZES[size];\n const [imgBlogUrl, imageName] = imagePath.split(STATIC_IMAGE_URL_PREFIX);\n\n const sizeDirectoryName = prefixIfPresent('w', width) + prefixIfPresent('h', height);\n\n return [imgBlogUrl, STATIC_IMAGE_URL_PREFIX, `/size/${sizeDirectoryName}`, imageName].join('');\n };\n\n const renderFeatureImage = (title, feature_image) => {\n if (!feature_image) {\n return '';\n }\n return `\n