{"version":3,"sources":["webpack:///blog.js","webpack:///webpack/bootstrap f4ea89b5571314f7dd7d","webpack:///./assets/js/utils.js","webpack:///./node_modules/domready/ready.js","webpack:///./assets/js/blog.js","webpack:///./node_modules/colcade/colcade.js","webpack:///./assets/js/hamburger.js"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","i","l","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","0","value","doc","document","the","querySelector","bind","all","querySelectorAll","animation","window","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","msRequestAnimationFrame","oRequestAnimationFrame","callback","setTimeout","getElemOffset","elem","height","offsetHeight","top","isNaN","offsetTop","offsetParent","isMobile","Android","navigator","userAgent","match","BlackBerry","iOS","Opera","Windows","any","1","Symbol","iterator","definition","listener","fns","hack","documentElement","doScroll","loaded","test","readyState","addEventListener","removeEventListener","shift","fn","push","15","_interopRequireDefault","obj","default","_utils","_colcade","_colcade2","_domready","_domready2","_hamburger","_hamburger2","allPosts","classList","add","columns","items","forEach","lazy","src","dataset","16","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_RESULT__","factory","undefined","Colcade","element","options","getQueryElement","colcadeGUID","instance","instances","option","this","create","htmlInit","attr","getAttribute","attrParts","split","part","pair","key","trim","extend","a","b","prop","makeArray","ary","Array","isArray","length","querySelect","selector","proto","GUID","errorCheck","guid","reload","_windowResizeHandler","onWindowResize","_loadHandler","onLoad","errors","Error","join","updateColumns","updateItems","layout","getActiveColumns","filter","column","getComputedStyle","display","activeColumns","_layout","columnHeights","map","layoutItems","layoutItem","item","minHeight","Math","min","apply","index","indexOf","appendChild","append","elems","getQueryItems","concat","prepend","fragment","createDocumentFragment","measureColumnHeight","boundingRect","getBoundingClientRect","contains","lastChildRect","lastElementChild","bottom","clearTimeout","resizeTimeout","onDebouncedResize","isSameLength","isSameColumns","event","target","destroy","onReady","data","id","makeJQueryPlugin","$","methodCall","$elems","methodName","args","returnValue","each","colcade","plainCall","jQuery","arg0","slice","arguments","17","header","_","toggle"],"mappings":"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","file":"blog.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 15);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ 0:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar doc = document;\nvar the = doc.querySelector.bind(doc);\nvar all = doc.querySelectorAll.bind(doc);\n\n// Detect request animation frame\nvar animation = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.msRequestAnimationFrame || window.oRequestAnimationFrame ||\n// IE Fallback, you can even fallback to onscroll\nfunction (callback) {\n window.setTimeout(callback, 1000 / 60);\n};\n\nvar getElemOffset = function getElemOffset(elem) {\n\n // Width and height of container or element\n /// const width = elem.offsetWidth\n var height = elem.offsetHeight;\n\n // Default top and left position of container or element\n var top = 0;\n //let left = 0\n\n // Get total distance of container or element to document's top and left origin\n do {\n if (!isNaN(elem.offsetTop)) {\n top += elem.offsetTop;\n }\n // if (!isNaN(elem.offsetLeft)) {\n // left += elem.offsetLeft\n // }\n } while ((elem = elem.offsetParent) !== null);\n\n // Return dimensions and position\n return { height: height, top: top };\n};\n\n/**\n * @desc Check if is mobile or not\n */\nvar isMobile = {\n Android: function Android() {\n return navigator.userAgent.match(/Android/i);\n },\n BlackBerry: function BlackBerry() {\n return navigator.userAgent.match(/BlackBerry/i);\n },\n iOS: function iOS() {\n return navigator.userAgent.match(/iPhone|iPad|iPod/i);\n },\n Opera: function Opera() {\n return navigator.userAgent.match(/Opera Mini/i);\n },\n Windows: function Windows() {\n return navigator.userAgent.match(/IEMobile/i) || navigator.userAgent.match(/WPDesktop/i);\n },\n any: function any() {\n return isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Opera() || isMobile.Windows();\n }\n};\n\nexports.doc = doc;\nexports.the = the;\nexports.all = all;\nexports.animation = animation;\nexports.getElemOffset = getElemOffset;\nexports.isMobile = isMobile;\n\n/***/ }),\n\n/***/ 1:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/*!\n * domready (c) Dustin Diaz 2014 - License MIT\n */\n!function (name, definition) {\n\n if (true) module.exports = definition();else if (typeof define == 'function' && _typeof(define.amd) == 'object') define(definition);else this[name] = definition();\n}('domready', function () {\n\n var fns = [],\n _listener,\n doc = document,\n hack = doc.documentElement.doScroll,\n domContentLoaded = 'DOMContentLoaded',\n loaded = (hack ? /^loaded|^c/ : /^loaded|^i|^c/).test(doc.readyState);\n\n if (!loaded) doc.addEventListener(domContentLoaded, _listener = function listener() {\n doc.removeEventListener(domContentLoaded, _listener);\n loaded = 1;\n while (_listener = fns.shift()) {\n _listener();\n }\n });\n\n return function (fn) {\n loaded ? setTimeout(fn, 0) : fns.push(fn);\n };\n});\n\n/***/ }),\n\n/***/ 15:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _utils = __webpack_require__(0);\n\nvar _colcade = __webpack_require__(16);\n\nvar _colcade2 = _interopRequireDefault(_colcade);\n\nvar _domready = __webpack_require__(1);\n\nvar _domready2 = _interopRequireDefault(_domready);\n\nvar _hamburger = __webpack_require__(17);\n\nvar _hamburger2 = _interopRequireDefault(_hamburger);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// import imagesloaded from 'imagesloaded'\n\n(0, _domready2.default)(function () {\n\n (0, _hamburger2.default)();\n\n var allPosts = (0, _utils.the)('.all-posts');\n\n setTimeout(function () {\n\n allPosts.classList.add('loaded');\n\n new _colcade2.default('.all-posts .grid', {\n columns: '.grid-col',\n items: '.blog'\n });\n }, 100);\n\n setTimeout(function () {\n\n var lazys = (0, _utils.all)('.lazy');\n lazys.forEach(function (lazy) {\n return lazy.src = lazy.dataset.src;\n });\n }, 300);\n});\n\n/***/ }),\n\n/***/ 16:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/*!\n * Colcade v0.2.0\n * Lightweight masonry layout\n * by David DeSandro\n * MIT license\n */\n\n/*jshint browser: true, undef: true, unused: true */\n\n(function (window, factory) {\n // universal module definition\n /*jshint strict: false */\n /*global define: false, module: false */\n if (true) {\n // AMD\n !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\n\t\t\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else if ((typeof module === 'undefined' ? 'undefined' : _typeof(module)) == 'object' && module.exports) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.Colcade = factory();\n }\n})(window, function factory() {\n\n // -------------------------- Colcade -------------------------- //\n\n function Colcade(element, options) {\n element = getQueryElement(element);\n\n // do not initialize twice on same element\n if (element && element.colcadeGUID) {\n var instance = instances[element.colcadeGUID];\n instance.option(options);\n return instance;\n }\n\n this.element = element;\n // options\n this.options = {};\n this.option(options);\n // kick things off\n this.create();\n }\n\n var proto = Colcade.prototype;\n\n proto.option = function (options) {\n this.options = extend(this.options, options);\n };\n\n // globally unique identifiers\n var GUID = 0;\n // internal store of all Colcade intances\n var instances = {};\n\n proto.create = function () {\n this.errorCheck();\n // add guid for Colcade.data\n var guid = this.guid = ++GUID;\n this.element.colcadeGUID = guid;\n instances[guid] = this; // associate via id\n // update initial properties & layout\n this.reload();\n // events\n this._windowResizeHandler = this.onWindowResize.bind(this);\n this._loadHandler = this.onLoad.bind(this);\n window.addEventListener('resize', this._windowResizeHandler);\n this.element.addEventListener('load', this._loadHandler, true);\n };\n\n proto.errorCheck = function () {\n var errors = [];\n if (!this.element) {\n errors.push('Bad element: ' + this.element);\n }\n if (!this.options.columns) {\n errors.push('columns option required: ' + this.options.columns);\n }\n if (!this.options.items) {\n errors.push('items option required: ' + this.options.items);\n }\n\n if (errors.length) {\n throw new Error('[Colcade error] ' + errors.join('. '));\n }\n };\n\n // update properties and do layout\n proto.reload = function () {\n this.updateColumns();\n this.updateItems();\n this.layout();\n };\n\n proto.updateColumns = function () {\n this.columns = querySelect(this.options.columns, this.element);\n };\n\n proto.updateItems = function () {\n this.items = querySelect(this.options.items, this.element);\n };\n\n proto.getActiveColumns = function () {\n return this.columns.filter(function (column) {\n var style = getComputedStyle(column);\n return style.display != 'none';\n });\n };\n\n // ----- layout ----- //\n\n // public, updates activeColumns\n proto.layout = function () {\n this.activeColumns = this.getActiveColumns();\n this._layout();\n };\n\n // private, does not update activeColumns\n proto._layout = function () {\n // reset column heights\n this.columnHeights = this.activeColumns.map(function () {\n return 0;\n });\n // layout all items\n this.layoutItems(this.items);\n };\n\n proto.layoutItems = function (items) {\n items.forEach(this.layoutItem, this);\n };\n\n proto.layoutItem = function (item) {\n // layout item by appending to column\n var minHeight = Math.min.apply(Math, this.columnHeights);\n var index = this.columnHeights.indexOf(minHeight);\n this.activeColumns[index].appendChild(item);\n // at least 1px, if item hasn't loaded\n // Not exactly accurate, but it's cool\n this.columnHeights[index] += item.offsetHeight || 1;\n };\n\n // ----- adding items ----- //\n\n proto.append = function (elems) {\n var items = this.getQueryItems(elems);\n // add items to collection\n this.items = this.items.concat(items);\n // lay them out\n this.layoutItems(items);\n };\n\n proto.prepend = function (elems) {\n var items = this.getQueryItems(elems);\n // add items to collection\n this.items = items.concat(this.items);\n // lay out everything\n this._layout();\n };\n\n proto.getQueryItems = function (elems) {\n elems = makeArray(elems);\n var fragment = document.createDocumentFragment();\n elems.forEach(function (elem) {\n fragment.appendChild(elem);\n });\n return querySelect(this.options.items, fragment);\n };\n\n // ----- measure column height ----- //\n\n proto.measureColumnHeight = function (elem) {\n var boundingRect = this.element.getBoundingClientRect();\n this.activeColumns.forEach(function (column, i) {\n // if elem, measure only that column\n // if no elem, measure all columns\n if (!elem || column.contains(elem)) {\n var lastChildRect = column.lastElementChild.getBoundingClientRect();\n // not an exact calculation as it includes top border, and excludes item bottom margin\n this.columnHeights[i] = lastChildRect.bottom - boundingRect.top;\n }\n }, this);\n };\n\n // ----- events ----- //\n\n proto.onWindowResize = function () {\n clearTimeout(this.resizeTimeout);\n this.resizeTimeout = setTimeout(function () {\n this.onDebouncedResize();\n }.bind(this), 100);\n };\n\n proto.onDebouncedResize = function () {\n var activeColumns = this.getActiveColumns();\n // check if columns changed\n var isSameLength = activeColumns.length == this.activeColumns.length;\n var isSameColumns = true;\n this.activeColumns.forEach(function (column, i) {\n isSameColumns = isSameColumns && column == activeColumns[i];\n });\n if (isSameLength && isSameColumns) {\n return;\n }\n // activeColumns changed\n this.activeColumns = activeColumns;\n this._layout();\n };\n\n proto.onLoad = function (event) {\n this.measureColumnHeight(event.target);\n };\n\n // ----- destroy ----- //\n\n proto.destroy = function () {\n // move items back to container\n this.items.forEach(function (item) {\n this.element.appendChild(item);\n }, this);\n // remove events\n window.removeEventListener('resize', this._windowResizeHandler);\n this.element.removeEventListener('load', this._loadHandler, true);\n // remove data\n delete this.element.colcadeGUID;\n delete instances[this.guid];\n };\n\n // -------------------------- HTML init -------------------------- //\n\n docReady(function () {\n var dataElems = querySelect('[data-colcade]');\n dataElems.forEach(htmlInit);\n });\n\n function htmlInit(elem) {\n // convert attribute \"foo: bar, qux: baz\" into object\n var attr = elem.getAttribute('data-colcade');\n var attrParts = attr.split(',');\n var options = {};\n attrParts.forEach(function (part) {\n var pair = part.split(':');\n var key = pair[0].trim();\n var value = pair[1].trim();\n options[key] = value;\n });\n\n new Colcade(elem, options);\n }\n\n Colcade.data = function (elem) {\n elem = getQueryElement(elem);\n var id = elem && elem.colcadeGUID;\n return id && instances[id];\n };\n\n // -------------------------- jQuery -------------------------- //\n\n Colcade.makeJQueryPlugin = function ($) {\n $ = $ || window.jQuery;\n if (!$) {\n return;\n }\n\n $.fn.colcade = function (arg0 /*, arg1 */) {\n // method call $().colcade( 'method', { options } )\n if (typeof arg0 == 'string') {\n // shift arguments by 1\n var args = Array.prototype.slice.call(arguments, 1);\n return methodCall(this, arg0, args);\n }\n // just $().colcade({ options })\n plainCall(this, arg0);\n return this;\n };\n\n function methodCall($elems, methodName, args) {\n var returnValue;\n $elems.each(function (i, elem) {\n // get instance\n var colcade = $.data(elem, 'colcade');\n if (!colcade) {\n return;\n }\n // apply method, get return value\n var value = colcade[methodName].apply(colcade, args);\n // set return value if value is returned, use only first value\n returnValue = returnValue === undefined ? value : returnValue;\n });\n return returnValue !== undefined ? returnValue : $elems;\n }\n\n function plainCall($elems, options) {\n $elems.each(function (i, elem) {\n var colcade = $.data(elem, 'colcade');\n if (colcade) {\n // set options & init\n colcade.option(options);\n colcade.layout();\n } else {\n // initialize new instance\n colcade = new Colcade(elem, options);\n $.data(elem, 'colcade', colcade);\n }\n });\n }\n };\n\n // try making plugin\n Colcade.makeJQueryPlugin();\n\n // -------------------------- utils -------------------------- //\n\n function extend(a, b) {\n for (var prop in b) {\n a[prop] = b[prop];\n }\n return a;\n }\n\n // turn element or nodeList into an array\n function makeArray(obj) {\n var ary = [];\n if (Array.isArray(obj)) {\n // use object if already an array\n ary = obj;\n } else if (obj && typeof obj.length == 'number') {\n // convert nodeList to array\n for (var i = 0; i < obj.length; i++) {\n ary.push(obj[i]);\n }\n } else {\n // array of single index\n ary.push(obj);\n }\n return ary;\n }\n\n // get array of elements\n function querySelect(selector, elem) {\n elem = elem || document;\n var elems = elem.querySelectorAll(selector);\n return makeArray(elems);\n }\n\n function getQueryElement(elem) {\n if (typeof elem == 'string') {\n elem = document.querySelector(elem);\n }\n return elem;\n }\n\n function docReady(onReady) {\n if (document.readyState == 'complete') {\n onReady();\n return;\n }\n document.addEventListener('DOMContentLoaded', onReady);\n }\n\n // -------------------------- end -------------------------- //\n\n return Colcade;\n});\n\n/***/ }),\n\n/***/ 17:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function () {\n var header = (0, _utils.the)('#header');\n var hamburger = (0, _utils.the)('#hamburger');\n\n hamburger.addEventListener('click', function (_) {\n header.classList.toggle('menu-open');\n });\n};\n\nvar _utils = __webpack_require__(0);\n\n/***/ })\n\n/******/ });\n\n\n// WEBPACK FOOTER //\n// blog.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 15);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap f4ea89b5571314f7dd7d","const doc = document\nconst the = doc.querySelector.bind(doc)\nconst all = doc.querySelectorAll.bind(doc)\n\n// Detect request animation frame\nconst animation = window.requestAnimationFrame ||\n window.webkitRequestAnimationFrame ||\n window.mozRequestAnimationFrame ||\n window.msRequestAnimationFrame ||\n window.oRequestAnimationFrame ||\n // IE Fallback, you can even fallback to onscroll\n function(callback) {\n window.setTimeout(callback, 1000 / 60)\n }\n\n\nconst getElemOffset = elem => {\n\n // Width and height of container or element\n /// const width = elem.offsetWidth\n const height = elem.offsetHeight\n\n // Default top and left position of container or element\n let top = 0\n //let left = 0\n\n // Get total distance of container or element to document's top and left origin\n do {\n if (!isNaN(elem.offsetTop)) {\n top += elem.offsetTop\n }\n // if (!isNaN(elem.offsetLeft)) {\n // left += elem.offsetLeft\n // }\n } while ((elem = elem.offsetParent) !== null)\n\n // Return dimensions and position\n return {height,top}\n\n}\n\n\n/**\n * @desc Check if is mobile or not\n */\nconst isMobile = {\n Android: function () {\n return navigator.userAgent.match(/Android/i);\n },\n BlackBerry: function () {\n return navigator.userAgent.match(/BlackBerry/i);\n },\n iOS: function () {\n return navigator.userAgent.match(/iPhone|iPad|iPod/i);\n },\n Opera: function () {\n return navigator.userAgent.match(/Opera Mini/i);\n },\n Windows: function () {\n return navigator.userAgent.match(/IEMobile/i) || navigator.userAgent.match(/WPDesktop/i);\n },\n any: function () {\n return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Opera() || isMobile.Windows());\n }\n}\n\nexport { doc, the, all, animation, getElemOffset, isMobile}\n\n\n\n// WEBPACK FOOTER //\n// ./assets/js/utils.js","/*!\n * domready (c) Dustin Diaz 2014 - License MIT\n */\n!function (name, definition) {\n\n if (typeof module != 'undefined') module.exports = definition()\n else if (typeof define == 'function' && typeof define.amd == 'object') define(definition)\n else this[name] = definition()\n\n}('domready', function () {\n\n var fns = [], listener\n , doc = document\n , hack = doc.documentElement.doScroll\n , domContentLoaded = 'DOMContentLoaded'\n , loaded = (hack ? /^loaded|^c/ : /^loaded|^i|^c/).test(doc.readyState)\n\n\n if (!loaded)\n doc.addEventListener(domContentLoaded, listener = function () {\n doc.removeEventListener(domContentLoaded, listener)\n loaded = 1\n while (listener = fns.shift()) listener()\n })\n\n return function (fn) {\n loaded ? setTimeout(fn, 0) : fns.push(fn)\n }\n\n});\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/domready/ready.js","import { the, all, doc } from './utils'\nimport Colcade from 'colcade'\nimport domready from 'domready'\nimport hamburger from './hamburger'\n// import imagesloaded from 'imagesloaded'\n\ndomready(() => {\n\n hamburger()\n\n const allPosts = the('.all-posts')\n\n setTimeout( () => { \n\n allPosts.classList.add('loaded')\n\n new Colcade('.all-posts .grid', {\n columns: '.grid-col',\n items: '.blog'\n })\n\n }, 100)\n\n setTimeout(() => { \n\n const lazys = all('.lazy')\n lazys.forEach(lazy => lazy.src = lazy.dataset.src)\n\n }, 300)\n\n})\n\n\n\n// WEBPACK FOOTER //\n// ./assets/js/blog.js","/*!\n * Colcade v0.2.0\n * Lightweight masonry layout\n * by David DeSandro\n * MIT license\n */\n\n/*jshint browser: true, undef: true, unused: true */\n\n( function( window, factory ) {\n // universal module definition\n /*jshint strict: false */\n /*global define: false, module: false */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.Colcade = factory();\n }\n\n}( window, function factory() {\n\n// -------------------------- Colcade -------------------------- //\n\nfunction Colcade( element, options ) {\n element = getQueryElement( element );\n\n // do not initialize twice on same element\n if ( element && element.colcadeGUID ) {\n var instance = instances[ element.colcadeGUID ];\n instance.option( options );\n return instance;\n }\n\n this.element = element;\n // options\n this.options = {};\n this.option( options );\n // kick things off\n this.create();\n}\n\nvar proto = Colcade.prototype;\n\nproto.option = function( options ) {\n this.options = extend( this.options, options );\n};\n\n// globally unique identifiers\nvar GUID = 0;\n// internal store of all Colcade intances\nvar instances = {};\n\nproto.create = function() {\n this.errorCheck();\n // add guid for Colcade.data\n var guid = this.guid = ++GUID;\n this.element.colcadeGUID = guid;\n instances[ guid ] = this; // associate via id\n // update initial properties & layout\n this.reload();\n // events\n this._windowResizeHandler = this.onWindowResize.bind( this );\n this._loadHandler = this.onLoad.bind( this );\n window.addEventListener( 'resize', this._windowResizeHandler );\n this.element.addEventListener( 'load', this._loadHandler, true );\n};\n\nproto.errorCheck = function() {\n var errors = [];\n if ( !this.element ) {\n errors.push( 'Bad element: ' + this.element );\n }\n if ( !this.options.columns ) {\n errors.push( 'columns option required: ' + this.options.columns );\n }\n if ( !this.options.items ) {\n errors.push( 'items option required: ' + this.options.items );\n }\n\n if ( errors.length ) {\n throw new Error( '[Colcade error] ' + errors.join('. ') );\n }\n};\n\n// update properties and do layout\nproto.reload = function() {\n this.updateColumns();\n this.updateItems();\n this.layout();\n};\n\nproto.updateColumns = function() {\n this.columns = querySelect( this.options.columns, this.element );\n};\n\nproto.updateItems = function() {\n this.items = querySelect( this.options.items, this.element );\n};\n\nproto.getActiveColumns = function() {\n return this.columns.filter( function( column ) {\n var style = getComputedStyle( column );\n return style.display != 'none';\n });\n};\n\n// ----- layout ----- //\n\n// public, updates activeColumns\nproto.layout = function() {\n this.activeColumns = this.getActiveColumns();\n this._layout();\n};\n\n// private, does not update activeColumns\nproto._layout = function() {\n // reset column heights\n this.columnHeights = this.activeColumns.map( function() {\n return 0;\n });\n // layout all items\n this.layoutItems( this.items );\n};\n\nproto.layoutItems = function( items ) {\n items.forEach( this.layoutItem, this );\n};\n\nproto.layoutItem = function( item ) {\n // layout item by appending to column\n var minHeight = Math.min.apply( Math, this.columnHeights );\n var index = this.columnHeights.indexOf( minHeight );\n this.activeColumns[ index ].appendChild( item );\n // at least 1px, if item hasn't loaded\n // Not exactly accurate, but it's cool\n this.columnHeights[ index ] += item.offsetHeight || 1;\n};\n\n// ----- adding items ----- //\n\nproto.append = function( elems ) {\n var items = this.getQueryItems( elems );\n // add items to collection\n this.items = this.items.concat( items );\n // lay them out\n this.layoutItems( items );\n};\n\nproto.prepend = function( elems ) {\n var items = this.getQueryItems( elems );\n // add items to collection\n this.items = items.concat( this.items );\n // lay out everything\n this._layout();\n};\n\nproto.getQueryItems = function( elems ) {\n elems = makeArray( elems );\n var fragment = document.createDocumentFragment();\n elems.forEach( function( elem ) {\n fragment.appendChild( elem );\n });\n return querySelect( this.options.items, fragment );\n};\n\n// ----- measure column height ----- //\n\nproto.measureColumnHeight = function( elem ) {\n var boundingRect = this.element.getBoundingClientRect();\n this.activeColumns.forEach( function( column, i ) {\n // if elem, measure only that column\n // if no elem, measure all columns\n if ( !elem || column.contains( elem ) ) {\n var lastChildRect = column.lastElementChild.getBoundingClientRect();\n // not an exact calculation as it includes top border, and excludes item bottom margin\n this.columnHeights[ i ] = lastChildRect.bottom - boundingRect.top;\n }\n }, this );\n};\n\n// ----- events ----- //\n\nproto.onWindowResize = function() {\n clearTimeout( this.resizeTimeout );\n this.resizeTimeout = setTimeout( function() {\n this.onDebouncedResize();\n }.bind( this ), 100 );\n};\n\nproto.onDebouncedResize = function() {\n var activeColumns = this.getActiveColumns();\n // check if columns changed\n var isSameLength = activeColumns.length == this.activeColumns.length;\n var isSameColumns = true;\n this.activeColumns.forEach( function( column, i ) {\n isSameColumns = isSameColumns && column == activeColumns[i];\n });\n if ( isSameLength && isSameColumns ) {\n return;\n }\n // activeColumns changed\n this.activeColumns = activeColumns;\n this._layout();\n};\n\nproto.onLoad = function( event ) {\n this.measureColumnHeight( event.target );\n};\n\n// ----- destroy ----- //\n\nproto.destroy = function() {\n // move items back to container\n this.items.forEach( function( item ) {\n this.element.appendChild( item );\n }, this );\n // remove events\n window.removeEventListener( 'resize', this._windowResizeHandler );\n this.element.removeEventListener( 'load', this._loadHandler, true );\n // remove data\n delete this.element.colcadeGUID;\n delete instances[ this.guid ];\n};\n\n// -------------------------- HTML init -------------------------- //\n\ndocReady( function() {\n var dataElems = querySelect('[data-colcade]');\n dataElems.forEach( htmlInit );\n});\n\nfunction htmlInit( elem ) {\n // convert attribute \"foo: bar, qux: baz\" into object\n var attr = elem.getAttribute('data-colcade');\n var attrParts = attr.split(',');\n var options = {};\n attrParts.forEach( function( part ) {\n var pair = part.split(':');\n var key = pair[0].trim();\n var value = pair[1].trim();\n options[ key ] = value;\n });\n\n new Colcade( elem, options );\n}\n\nColcade.data = function( elem ) {\n elem = getQueryElement( elem );\n var id = elem && elem.colcadeGUID;\n return id && instances[ id ];\n};\n\n// -------------------------- jQuery -------------------------- //\n\nColcade.makeJQueryPlugin = function( $ ) {\n $ = $ || window.jQuery;\n if ( !$ ) {\n return;\n }\n\n $.fn.colcade = function( arg0 /*, arg1 */) {\n // method call $().colcade( 'method', { options } )\n if ( typeof arg0 == 'string' ) {\n // shift arguments by 1\n var args = Array.prototype.slice.call( arguments, 1 );\n return methodCall( this, arg0, args );\n }\n // just $().colcade({ options })\n plainCall( this, arg0 );\n return this;\n };\n\n function methodCall( $elems, methodName, args ) {\n var returnValue;\n $elems.each( function( i, elem ) {\n // get instance\n var colcade = $.data( elem, 'colcade' );\n if ( !colcade ) {\n return;\n }\n // apply method, get return value\n var value = colcade[ methodName ].apply( colcade, args );\n // set return value if value is returned, use only first value\n returnValue = returnValue === undefined ? value : returnValue;\n });\n return returnValue !== undefined ? returnValue : $elems;\n }\n\n function plainCall( $elems, options ) {\n $elems.each( function( i, elem ) {\n var colcade = $.data( elem, 'colcade' );\n if ( colcade ) {\n // set options & init\n colcade.option( options );\n colcade.layout();\n } else {\n // initialize new instance\n colcade = new Colcade( elem, options );\n $.data( elem, 'colcade', colcade );\n }\n });\n }\n};\n\n// try making plugin\nColcade.makeJQueryPlugin();\n\n// -------------------------- utils -------------------------- //\n\nfunction extend( a, b ) {\n for ( var prop in b ) {\n a[ prop ] = b[ prop ];\n }\n return a;\n}\n\n// turn element or nodeList into an array\nfunction makeArray( obj ) {\n var ary = [];\n if ( Array.isArray( obj ) ) {\n // use object if already an array\n ary = obj;\n } else if ( obj && typeof obj.length == 'number' ) {\n // convert nodeList to array\n for ( var i=0; i < obj.length; i++ ) {\n ary.push( obj[i] );\n }\n } else {\n // array of single index\n ary.push( obj );\n }\n return ary;\n}\n\n// get array of elements\nfunction querySelect( selector, elem ) {\n elem = elem || document;\n var elems = elem.querySelectorAll( selector );\n return makeArray( elems );\n}\n\nfunction getQueryElement( elem ) {\n if ( typeof elem == 'string' ) {\n elem = document.querySelector( elem );\n }\n return elem;\n}\n\nfunction docReady( onReady ) {\n if ( document.readyState == 'complete' ) {\n onReady();\n return;\n }\n document.addEventListener( 'DOMContentLoaded', onReady );\n}\n\n// -------------------------- end -------------------------- //\n\nreturn Colcade;\n\n}));\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/colcade/colcade.js","import { the, all, doc } from './utils'\n\nexport default function(){\n const header = the('#header')\n const hamburger = the('#hamburger')\n\n hamburger.addEventListener('click', _ => {\n header.classList.toggle('menu-open')\n })\n \n}\n\n\n\n// WEBPACK FOOTER //\n// ./assets/js/hamburger.js"],"sourceRoot":""}