{"version":3,"file":"982.js","mappings":"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","sources":["webpack:///../src/js/lib/Breakpoints.js","webpack:///../src/js/lib/WidgetSticky.js","webpack:///../src/js/scripts/stickyfill.js","webpack:///../node_modules/stickyfill/index.js"],"sourcesContent":["export const Breakpoints = [\n {\n name: 'xs',\n value: 480\n },\n {\n name: 'sm',\n value: 768\n },\n {\n name: 'md',\n value: 992\n },\n {\n name: 'lg',\n value: 1200\n }\n];\n","import Sticky from 'stickyfill';\nimport { Breakpoints } from './Breakpoints';\n\nconst StickyFill = Sticky();\nwindow.StickyFill = StickyFill;\n\nexport class WidgetSticky {\n constructor() {\n if (window.matchMedia) {\n window.addEventListener('resize', this.checkBreakpoints);\n window.addEventListener('orientationchange', this.checkBreakpoints);\n window.setTimeout(this.checkBreakpoints, 1000);\n }\n }\n \n checkBreakpoints() {\n Breakpoints.forEach((breakpoint) => {\n const elements = document.getElementsByClassName(`is-sticky-${breakpoint.name}`);\n const action = (window.matchMedia(`(min-width: ${breakpoint.value}px)`).matches) ? 'add' : 'remove';\n\n for (let i = elements.length - 1; i >= 0; i--) {\n StickyFill[action](elements[i]);\n }\n });\n }\n}\n","import { WidgetSticky } from '../lib/WidgetSticky';\nnew WidgetSticky();\n","/*!\n * Stickyfill -- `position: sticky` polyfill\n * v. 1.1.1 | https://github.com/wilddeer/stickyfill\n * Copyright Oleg Korsunsky | http://wd.dizaina.net/\n *\n * MIT License\n */\n\nmodule.exports = (function(doc, win) {\n if (!doc) {\n doc = document;\n }\n\n if (!win) {\n win = window;\n }\n \n var watchArray = [],\n scroll,\n initialized = false,\n html = doc.documentElement,\n noop = function() {},\n checkTimer,\n\n //visibility API strings\n hiddenPropertyName = 'hidden',\n visibilityChangeEventName = 'visibilitychange';\n\n //fallback to prefixed names in old webkit browsers\n if (doc.webkitHidden !== undefined) {\n hiddenPropertyName = 'webkitHidden';\n visibilityChangeEventName = 'webkitvisibilitychange';\n }\n\n //test getComputedStyle\n if (!win.getComputedStyle) {\n seppuku();\n }\n\n //test for native support\n var prefixes = ['', '-webkit-', '-moz-', '-ms-'],\n block = document.createElement('div');\n\n for (var i = prefixes.length - 1; i >= 0; i--) {\n try {\n block.style.position = prefixes[i] + 'sticky';\n }\n catch(e) {}\n if (block.style.position != '') {\n seppuku();\n }\n }\n\n updateScrollPos();\n\n //commit seppuku!\n function seppuku() {\n init = add = rebuild = pause = stop = kill = noop;\n }\n\n function mergeObjects(targetObj, sourceObject) {\n for (key in sourceObject) {\n if (sourceObject.hasOwnProperty(key)) {\n targetObj[key] = sourceObject[key];\n }\n }\n }\n\n function parseNumeric(val) {\n return parseFloat(val) || 0;\n }\n\n function updateScrollPos() {\n scroll = {\n top: win.pageYOffset,\n left: win.pageXOffset\n };\n }\n\n function onScroll() {\n if (win.pageXOffset != scroll.left) {\n updateScrollPos();\n rebuild();\n return;\n }\n \n if (win.pageYOffset != scroll.top) {\n updateScrollPos();\n recalcAllPos();\n }\n }\n\n //fixes flickering\n function onWheel(event) {\n setTimeout(function() {\n if (win.pageYOffset != scroll.top) {\n scroll.top = win.pageYOffset;\n recalcAllPos();\n }\n }, 0);\n }\n\n function recalcAllPos() {\n for (var i = watchArray.length - 1; i >= 0; i--) {\n recalcElementPos(watchArray[i]);\n }\n }\n\n function recalcElementPos(el) {\n if (!el.inited) return;\n\n var currentMode = (scroll.top <= el.limit.start? 0: scroll.top >= el.limit.end? 2: 1);\n\n if (el.mode != currentMode) {\n switchElementMode(el, currentMode);\n }\n }\n\n //checks whether stickies start or stop positions have changed\n function fastCheck() {\n for (var i = watchArray.length - 1; i >= 0; i--) {\n if (!watchArray[i].inited) continue;\n\n var deltaTop = Math.abs(getDocOffsetTop(watchArray[i].clone) - watchArray[i].docOffsetTop),\n deltaHeight = Math.abs(watchArray[i].parent.node.offsetHeight - watchArray[i].parent.height);\n\n if (deltaTop >= 2 || deltaHeight >= 2) return false;\n }\n return true;\n }\n\n function initElement(el) {\n if (isNaN(parseFloat(el.computed.top)) || el.isCell) return;\n\n el.inited = true;\n\n if (!el.clone) clone(el);\n if (el.parent.computed.position != 'absolute' &&\n el.parent.computed.position != 'relative') el.parent.node.style.position = 'relative';\n\n recalcElementPos(el);\n\n el.parent.height = el.parent.node.offsetHeight;\n el.docOffsetTop = getDocOffsetTop(el.clone);\n }\n\n function deinitElement(el) {\n var deinitParent = true;\n\n el.clone && killClone(el);\n mergeObjects(el.node.style, el.css);\n\n //check whether element's parent is used by other stickies\n for (var i = watchArray.length - 1; i >= 0; i--) {\n if (watchArray[i].node !== el.node && watchArray[i].parent.node === el.parent.node) {\n deinitParent = false;\n break;\n }\n };\n\n if (deinitParent) el.parent.node.style.position = el.parent.css.position;\n el.mode = -1;\n }\n\n function initAll() {\n for (var i = watchArray.length - 1; i >= 0; i--) {\n initElement(watchArray[i]);\n }\n }\n\n function deinitAll() {\n for (var i = watchArray.length - 1; i >= 0; i--) {\n deinitElement(watchArray[i]);\n }\n }\n\n function switchElementMode(el, mode) {\n var nodeStyle = el.node.style;\n\n switch (mode) {\n case 0:\n nodeStyle.position = 'absolute';\n nodeStyle.left = el.offset.left + 'px';\n nodeStyle.right = el.offset.right + 'px';\n nodeStyle.top = el.offset.top + 'px';\n nodeStyle.bottom = 'auto';\n nodeStyle.width = 'auto';\n nodeStyle.marginLeft = 0;\n nodeStyle.marginRight = 0;\n nodeStyle.marginTop = 0;\n break;\n\n case 1:\n nodeStyle.position = 'fixed';\n nodeStyle.left = el.box.left + 'px';\n nodeStyle.right = el.box.right + 'px';\n nodeStyle.top = el.css.top;\n nodeStyle.bottom = 'auto';\n nodeStyle.width = 'auto';\n nodeStyle.marginLeft = 0;\n nodeStyle.marginRight = 0;\n nodeStyle.marginTop = 0;\n break;\n\n case 2:\n nodeStyle.position = 'absolute';\n nodeStyle.left = el.offset.left + 'px';\n nodeStyle.right = el.offset.right + 'px';\n nodeStyle.top = 'auto';\n nodeStyle.bottom = 0;\n nodeStyle.width = 'auto';\n nodeStyle.marginLeft = 0;\n nodeStyle.marginRight = 0;\n break;\n }\n\n el.mode = mode;\n }\n\n function clone(el) {\n el.clone = document.createElement('div');\n\n var refElement = el.node.nextSibling || el.node,\n cloneStyle = el.clone.style;\n\n cloneStyle.height = el.height + 'px';\n cloneStyle.width = el.width + 'px';\n cloneStyle.marginTop = el.computed.marginTop;\n cloneStyle.marginBottom = el.computed.marginBottom;\n cloneStyle.marginLeft = el.computed.marginLeft;\n cloneStyle.marginRight = el.computed.marginRight;\n cloneStyle.padding = cloneStyle.border = cloneStyle.borderSpacing = 0;\n cloneStyle.fontSize = '1em';\n cloneStyle.position = 'static';\n cloneStyle.cssFloat = el.computed.cssFloat;\n\n el.node.parentNode.insertBefore(el.clone, refElement);\n }\n\n function killClone(el) {\n el.clone.parentNode.removeChild(el.clone);\n el.clone = undefined;\n }\n\n function getElementParams(node) {\n var computedStyle = getComputedStyle(node),\n parentNode = node.parentNode,\n parentComputedStyle = getComputedStyle(parentNode),\n cachedPosition = node.style.position;\n\n node.style.position = 'relative';\n\n var computed = {\n top: computedStyle.top,\n marginTop: computedStyle.marginTop,\n marginBottom: computedStyle.marginBottom,\n marginLeft: computedStyle.marginLeft,\n marginRight: computedStyle.marginRight,\n cssFloat: computedStyle.cssFloat\n },\n numeric = {\n top: parseNumeric(computedStyle.top),\n marginBottom: parseNumeric(computedStyle.marginBottom),\n paddingLeft: parseNumeric(computedStyle.paddingLeft),\n paddingRight: parseNumeric(computedStyle.paddingRight),\n borderLeftWidth: parseNumeric(computedStyle.borderLeftWidth),\n borderRightWidth: parseNumeric(computedStyle.borderRightWidth)\n };\n\n node.style.position = cachedPosition;\n\n var css = {\n position: node.style.position,\n top: node.style.top,\n bottom: node.style.bottom,\n left: node.style.left,\n right: node.style.right,\n width: node.style.width,\n marginTop: node.style.marginTop,\n marginLeft: node.style.marginLeft,\n marginRight: node.style.marginRight\n },\n nodeOffset = getElementOffset(node),\n parentOffset = getElementOffset(parentNode),\n \n parent = {\n node: parentNode,\n css: {\n position: parentNode.style.position\n },\n computed: {\n position: parentComputedStyle.position\n },\n numeric: {\n borderLeftWidth: parseNumeric(parentComputedStyle.borderLeftWidth),\n borderRightWidth: parseNumeric(parentComputedStyle.borderRightWidth),\n borderTopWidth: parseNumeric(parentComputedStyle.borderTopWidth),\n borderBottomWidth: parseNumeric(parentComputedStyle.borderBottomWidth)\n }\n },\n\n el = {\n node: node,\n box: {\n left: nodeOffset.win.left,\n right: html.clientWidth - nodeOffset.win.right\n },\n offset: {\n top: nodeOffset.win.top - parentOffset.win.top - parent.numeric.borderTopWidth,\n left: nodeOffset.win.left - parentOffset.win.left - parent.numeric.borderLeftWidth,\n right: -nodeOffset.win.right + parentOffset.win.right - parent.numeric.borderRightWidth\n },\n css: css,\n isCell: computedStyle.display == 'table-cell',\n computed: computed,\n numeric: numeric,\n width: nodeOffset.win.right - nodeOffset.win.left,\n height: nodeOffset.win.bottom - nodeOffset.win.top,\n mode: -1,\n inited: false,\n parent: parent,\n limit: {\n start: nodeOffset.doc.top - numeric.top,\n end: parentOffset.doc.top + parentNode.offsetHeight - parent.numeric.borderBottomWidth -\n node.offsetHeight - numeric.top - numeric.marginBottom\n }\n };\n\n return el;\n }\n\n function getDocOffsetTop(node) {\n var docOffsetTop = 0;\n\n while (node) {\n docOffsetTop += node.offsetTop;\n node = node.offsetParent;\n }\n\n return docOffsetTop;\n }\n\n function getElementOffset(node) {\n var box = node.getBoundingClientRect();\n\n return {\n doc: {\n top: box.top + win.pageYOffset,\n left: box.left + win.pageXOffset\n },\n win: box\n };\n }\n\n function startFastCheckTimer() {\n checkTimer = setInterval(function() {\n !fastCheck() && rebuild();\n }, 500);\n }\n\n function stopFastCheckTimer() {\n clearInterval(checkTimer);\n }\n\n function handlePageVisibilityChange() {\n if (!initialized) return;\n\n if (document[hiddenPropertyName]) {\n stopFastCheckTimer();\n }\n else {\n startFastCheckTimer();\n }\n }\n\n function init() {\n if (initialized) return;\n\n updateScrollPos();\n initAll();\n\n win.addEventListener('scroll', onScroll);\n win.addEventListener('wheel', onWheel);\n\n //watch for width changes\n win.addEventListener('resize', rebuild);\n win.addEventListener('orientationchange', rebuild);\n\n //watch for page visibility\n doc.addEventListener(visibilityChangeEventName, handlePageVisibilityChange);\n\n startFastCheckTimer();\n\n initialized = true;\n }\n\n function rebuild() {\n if (!initialized) return;\n\n deinitAll();\n \n for (var i = watchArray.length - 1; i >= 0; i--) {\n watchArray[i] = getElementParams(watchArray[i].node);\n }\n \n initAll();\n }\n\n function pause() {\n win.removeEventListener('scroll', onScroll);\n win.removeEventListener('wheel', onWheel);\n win.removeEventListener('resize', rebuild);\n win.removeEventListener('orientationchange', rebuild);\n doc.removeEventListener(visibilityChangeEventName, handlePageVisibilityChange);\n\n stopFastCheckTimer();\n\n initialized = false;\n }\n\n function stop() {\n pause();\n deinitAll(); \n }\n\n function kill() {\n stop();\n\n //empty the array without loosing the references,\n //the most performant method according to http://jsperf.com/empty-javascript-array\n while (watchArray.length) {\n watchArray.pop();\n }\n }\n\n function add(node) {\n //check if Stickyfill is already applied to the node\n for (var i = watchArray.length - 1; i >= 0; i--) {\n if (watchArray[i].node === node) return;\n };\n\n var el = getElementParams(node);\n\n watchArray.push(el);\n\n if (!initialized) {\n init();\n }\n else {\n initElement(el);\n }\n }\n\n function remove(node) {\n for (var i = watchArray.length - 1; i >= 0; i--) {\n if (watchArray[i].node === node) {\n deinitElement(watchArray[i]);\n watchArray.splice(i, 1);\n }\n };\n }\n\n //expose Stickyfill\n return {\n stickies: watchArray,\n add: add,\n remove: remove,\n init: init,\n rebuild: rebuild,\n pause: pause,\n stop: stop,\n kill: kill\n };\n})"],"names":["Breakpoints","name","value","StickyFill","Sticky","window","WidgetSticky","_classCallCheck","matchMedia","addEventListener","this","checkBreakpoints","setTimeout","key","forEach","breakpoint","elements","document","getElementsByClassName","concat","action","matches","i","length","module","exports","doc","win","scroll","checkTimer","watchArray","initialized","html","documentElement","noop","hiddenPropertyName","visibilityChangeEventName","undefined","webkitHidden","getComputedStyle","seppuku","prefixes","block","createElement","style","position","e","init","add","rebuild","pause","stop","kill","parseNumeric","val","parseFloat","updateScrollPos","top","pageYOffset","left","pageXOffset","onScroll","recalcAllPos","onWheel","event","recalcElementPos","el","inited","currentMode","limit","start","end","mode","nodeStyle","node","offset","right","bottom","width","marginLeft","marginRight","marginTop","box","css","switchElementMode","initElement","isNaN","computed","isCell","clone","refElement","nextSibling","cloneStyle","height","marginBottom","padding","border","borderSpacing","fontSize","cssFloat","parentNode","insertBefore","parent","offsetHeight","docOffsetTop","getDocOffsetTop","deinitElement","deinitParent","removeChild","killClone","targetObj","sourceObject","hasOwnProperty","mergeObjects","initAll","deinitAll","getElementParams","computedStyle","parentComputedStyle","cachedPosition","numeric","paddingLeft","paddingRight","borderLeftWidth","borderRightWidth","nodeOffset","getElementOffset","parentOffset","borderTopWidth","borderBottomWidth","clientWidth","display","offsetTop","offsetParent","getBoundingClientRect","startFastCheckTimer","setInterval","deltaTop","Math","abs","deltaHeight","fastCheck","stopFastCheckTimer","clearInterval","handlePageVisibilityChange","removeEventListener","pop","push","stickies","remove","splice"],"sourceRoot":""}