{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./assets/src/js/polyfill.js","webpack:///./node_modules/feature-detect-es6/index.js","webpack:///./node_modules/array-back/lib/array-back.js","webpack:///./node_modules/typical/lib/typical.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","detect","fetch","eval","err","polyfillScript","document","getElementById","all","babelPolyfillScript","createElement","src","body","insertBefore","fetchScript","Event","event","eventParams","params","bubbles","cancelable","detail","evt","createEvent","initCustomEvent","documentElement","style","imgs","querySelectorAll","length","wrapper","img","getElementsByTagName","imgUrl","getAttribute","setAttribute","encodeURI","classList","add","arrayify","evaluates","statement","class","arrowFunction","let","const","newArrayFeatures","Array","find","findIndex","from","of","entries","keys","copyWithin","fill","newObjectFeatures","assign","setPrototypeOf","getOwnPropertySymbols","is","collections","Map","WeakMap","Set","WeakSet","generators","promises","Promise","templateStrings","symbols","for","destructuring","spread","defaultParamValues","asyncFunctions","arguments","every","testName","method","Error","input","undefined","isArrayLike","slice","isArray","isObject","isDefined","isFunction","isNumber","isNaN","parseFloat","isFinite","isString","isBoolean","isPlainObject","constructor","isClass","test","Function","toString","isPrimitive","isPromise","isThenable","then","isIterable","iterator"],"mappings":"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","file":"polyfill.v1.0-1.min.js","sourcesContent":[" \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, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\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\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","/* eslint-disable no-console */\nimport detect from 'feature-detect-es6';\n\ndetect.fetch = () => {\n try {\n eval('fetch'); /* eslint-disable-line no-eval */\n return true;\n } catch (err) {\n return false;\n }\n};\n\nconst polyfillScript = document.getElementById('polyfill-script');\n\nif (!detect.all('class', 'spread', 'destructuring', 'let', 'const', 'arrowFunction', 'generators', 'defaultParamValues', 'templateStrings', 'collections', 'newArrayFeatures', 'promises', 'fetch')) {\n const babelPolyfillScript = document.createElement('script');\n babelPolyfillScript.src = '/assets/dist/js/babel-polyfill.min.js';\n document.body.insertBefore(babelPolyfillScript, polyfillScript);\n const fetchScript = document.createElement('script');\n fetchScript.src = 'https://cdnjs.cloudflare.com/ajax/libs/fetch/2.0.3/fetch.min.js';\n document.body.insertBefore(fetchScript, polyfillScript);\n}\n\n// Event constructor\nconst Event = (event, eventParams) => { /* eslint-disable-line no-unused-vars */\n const params = eventParams || { bubbles: false, cancelable: false, detail: undefined };\n const evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n};\n\n\n// object-fit fallback\nif ('objectFit' in document.documentElement.style === false) {\n const imgs = document.querySelectorAll('.object-fit');\n for (let i = 0; i < imgs.length; i++) { /* eslint-disable-line no-plusplus */\n const wrapper = imgs[i];\n const img = wrapper.getElementsByTagName('img')[0];\n let imgUrl = img.src;\n if (imgUrl === null || imgUrl === '') {\n imgUrl = img.getAttribute('data-src');\n }\n if (imgUrl === null || imgUrl === '') {\n imgUrl = img.getAttribute('data-src-ie11');\n }\n if (imgUrl) {\n wrapper.setAttribute('style', `background-image:url(${encodeURI(imgUrl)});`);\n wrapper.classList.add('compat-object-fit');\n }\n }\n}\n/* eslint-enable no-console */\n","'use strict'\nvar arrayify = require('array-back')\n\n/**\n * Detect which ES6 (ES2015 and above) features are available.\n *\n * @module feature-detect-es6\n * @typicalname detect\n * @example\n * var detect = require('feature-detect-es6')\n *\n * if (detect.all('class', 'spread', 'let', 'arrowFunction')){\n * // safe to run ES6 code natively..\n * } else {\n * // run your transpiled ES5..\n * }\n */\n\n/**\n * Returns true if the `class` statement is available.\n *\n * @returns {boolean}\n */\nexports.class = function () {\n return evaluates('class Something {}')\n}\n\n/**\n * Returns true if the arrow functions available.\n *\n * @returns {boolean}\n */\nexports.arrowFunction = function () {\n return evaluates('var f = x => 1')\n}\n\n/**\n * Returns true if the `let` statement is available.\n *\n * @returns {boolean}\n */\nexports.let = function () {\n return evaluates('let a = 1')\n}\n\n/**\n * Returns true if the `const` statement is available.\n *\n * @returns {boolean}\n */\nexports.const = function () {\n return evaluates('const a = 1')\n}\n\n/**\n * Returns true if the [new Array features](http://exploringjs.com/es6/ch_arrays.html) are available (exluding `Array.prototype.values` which has zero support anywhere).\n *\n * @returns {boolean}\n */\nexports.newArrayFeatures = function () {\n return typeof Array.prototype.find !== 'undefined' &&\n typeof Array.prototype.findIndex !== 'undefined' &&\n typeof Array.from !== 'undefined' &&\n typeof Array.of !== 'undefined' &&\n typeof Array.prototype.entries !== 'undefined' &&\n typeof Array.prototype.keys !== 'undefined' &&\n typeof Array.prototype.copyWithin !== 'undefined' &&\n typeof Array.prototype.fill !== 'undefined'\n}\n\n/**\n * Returns true if the new functions of Object are available.\n *\n * @returns {boolean}\n */\nexports.newObjectFeatures = function () {\n return typeof Object.assign !== 'undefined' &&\n typeof Object.setPrototypeOf !== 'undefined' &&\n typeof Object.getOwnPropertySymbols !== 'undefined' &&\n typeof Object.is !== 'undefined'\n}\n\n/**\n * Returns true if `Map`, `WeakMap`, `Set` and `WeakSet` are available.\n *\n * @returns {boolean}\n */\nexports.collections = function () {\n return typeof Map !== 'undefined' &&\n typeof WeakMap !== 'undefined' &&\n typeof Set !== 'undefined' &&\n typeof WeakSet !== 'undefined'\n}\n\n/**\n * Returns true if generators are available.\n *\n * @returns {boolean}\n */\nexports.generators = function () {\n return evaluates('function* test() {}')\n}\n\n/**\n * Returns true if `Promise` is available.\n *\n * @returns {boolean}\n */\nexports.promises = function () {\n return typeof Promise !== 'undefined'\n}\n\n/**\n * Returns true if template strings are available.\n *\n * @returns {boolean}\n */\nexports.templateStrings = function () {\n return evaluates('var a = `a`')\n}\n\n/**\n * Returns true if `Symbol` is available.\n *\n * @returns {boolean}\n */\nexports.symbols = function () {\n return typeof Symbol !== 'undefined' && typeof Symbol.for === 'function'\n}\n\n/**\n * Returns true if destructuring is available.\n *\n * @returns {boolean}\n */\nexports.destructuring = function () {\n return evaluates(\"var { first: f, last: l } = { first: 'Jane', last: 'Doe' }\")\n}\n\n/**\n * Returns true if the spread operator (`...`) is available.\n *\n * @returns {boolean}\n */\nexports.spread = function () {\n return evaluates('Math.max(...[ 5, 10 ])')\n}\n\n/**\n * Returns true if default parameter values are available.\n *\n * @returns {boolean}\n */\nexports.defaultParamValues = function () {\n return evaluates('function test (one = 1) {}')\n}\n\n/**\n * Returns true if async functions are available.\n *\n * @returns {boolean}\n */\nexports.asyncFunctions = function () {\n return evaluates('async function test () {}')\n}\n\nfunction evaluates (statement) {\n try {\n eval(statement)\n return true\n } catch (err) {\n return false\n }\n}\n\n/**\n * Returns true if *all* specified features are detected.\n *\n * @returns {boolean}\n * @param [...feature] {string} - the features to detect.\n * @example\n * var result = detect.all('class', 'spread', 'let', 'arrowFunction')\n */\nexports.all = function () {\n return arrayify(arguments).every(function (testName) {\n var method = exports[testName]\n if (method && typeof method === 'function') {\n return method()\n } else {\n throw new Error('no detection available by this name: ' + testName)\n }\n })\n}\n","'use strict'\nvar t = require('typical')\n\n/**\n * @module array-back\n * @example\n * var arrayify = require(\"array-back\")\n */\nmodule.exports = arrayify\n\n/**\n * Takes any input and guarantees an array back.\n *\n * - converts array-like objects (e.g. `arguments`) to a real array\n * - converts `undefined` to an empty array\n * - converts any another other, singular value (including `null`) into an array containing that value\n * - ignores input which is already an array\n *\n * @param {*} - the input value to convert to an array\n * @returns {Array}\n * @alias module:array-back\n * @example\n * > a.arrayify(undefined)\n * []\n *\n * > a.arrayify(null)\n * [ null ]\n *\n * > a.arrayify(0)\n * [ 0 ]\n *\n * > a.arrayify([ 1, 2 ])\n * [ 1, 2 ]\n *\n * > function f(){ return a.arrayify(arguments); }\n * > f(1,2,3)\n * [ 1, 2, 3 ]\n */\nfunction arrayify (input) {\n if (input === undefined) {\n return []\n } else if (t.isArrayLike(input)) {\n return Array.prototype.slice.call(input)\n } else {\n return Array.isArray(input) ? input : [ input ]\n }\n}\n","'use strict'\n\n/**\n * For type-checking Javascript values.\n * @module typical\n * @typicalname t\n * @example\n * const t = require('typical')\n */\nexports.isNumber = isNumber\nexports.isString = isString\nexports.isBoolean = isBoolean\nexports.isPlainObject = isPlainObject\nexports.isArrayLike = isArrayLike\nexports.isObject = isObject\nexports.isDefined = isDefined\nexports.isFunction = isFunction\nexports.isClass = isClass\nexports.isPrimitive = isPrimitive\nexports.isPromise = isPromise\nexports.isIterable = isIterable\n\n/**\n * Returns true if input is a number\n * @param {*} - the input to test\n * @returns {boolean}\n * @static\n * @example\n * > t.isNumber(0)\n * true\n * > t.isNumber(1)\n * true\n * > t.isNumber(1.1)\n * true\n * > t.isNumber(0xff)\n * true\n * > t.isNumber(0644)\n * true\n * > t.isNumber(6.2e5)\n * true\n * > t.isNumber(NaN)\n * false\n * > t.isNumber(Infinity)\n * false\n */\nfunction isNumber (n) {\n return !isNaN(parseFloat(n)) && isFinite(n)\n}\n\n/**\n * A plain object is a simple object literal, it is not an instance of a class. Returns true if the input `typeof` is `object` and directly decends from `Object`.\n *\n * @param {*} - the input to test\n * @returns {boolean}\n * @static\n * @example\n * > t.isPlainObject({ clive: 'hater' })\n * true\n * > t.isPlainObject(new Date())\n * false\n * > t.isPlainObject([ 0, 1 ])\n * false\n * > t.isPlainObject(1)\n * false\n * > t.isPlainObject(/test/)\n * false\n */\nfunction isPlainObject (input) {\n return input !== null && typeof input === 'object' && input.constructor === Object\n}\n\n/**\n * An array-like value has all the properties of an array, but is not an array instance. Examples in the `arguments` object. Returns true if the input value is an object, not null and has a `length` property with a numeric value.\n *\n * @param {*} - the input to test\n * @returns {boolean}\n * @static\n * @example\n * function sum(x, y){\n * console.log(t.isArrayLike(arguments))\n * // prints `true`\n * }\n */\nfunction isArrayLike (input) {\n return isObject(input) && typeof input.length === 'number'\n}\n\n/**\n * returns true if the typeof input is `'object'`, but not null!\n * @param {*} - the input to test\n * @returns {boolean}\n * @static\n */\nfunction isObject (input) {\n return typeof input === 'object' && input !== null\n}\n\n/**\n * Returns true if the input value is defined\n * @param {*} - the input to test\n * @returns {boolean}\n * @static\n */\nfunction isDefined (input) {\n return typeof input !== 'undefined'\n}\n\n/**\n * Returns true if the input value is a string\n * @param {*} - the input to test\n * @returns {boolean}\n * @static\n */\nfunction isString (input) {\n return typeof input === 'string'\n}\n\n/**\n * Returns true if the input value is a boolean\n * @param {*} - the input to test\n * @returns {boolean}\n * @static\n */\nfunction isBoolean (input) {\n return typeof input === 'boolean'\n}\n\n/**\n * Returns true if the input value is a function\n * @param {*} - the input to test\n * @returns {boolean}\n * @static\n */\nfunction isFunction (input) {\n return typeof input === 'function'\n}\n\n/**\n * Returns true if the input value is an es2015 `class`.\n * @param {*} - the input to test\n * @returns {boolean}\n * @static\n */\nfunction isClass (input) {\n if (isFunction(input)) {\n return /^class /.test(Function.prototype.toString.call(input))\n } else {\n return false\n }\n}\n\n/**\n * Returns true if the input is a string, number, symbol, boolean, null or undefined value.\n * @param {*} - the input to test\n * @returns {boolean}\n * @static\n */\nfunction isPrimitive (input) {\n if (input === null) return true\n switch (typeof input) {\n case \"string\":\n case \"number\":\n case \"symbol\":\n case \"undefined\":\n case \"boolean\":\n return true\n default:\n return false\n }\n}\n\n/**\n * Returns true if the input is a Promise.\n * @param {*} - the input to test\n * @returns {boolean}\n * @static\n */\nfunction isPromise (input) {\n if (input) {\n var isPromise = isDefined(Promise) && input instanceof Promise\n var isThenable = input.then && typeof input.then === 'function'\n return isPromise || isThenable ? true : false\n } else {\n return false\n }\n}\n\n/**\n * Returns true if the input is an iterable (`Map`, `Set`, `Array` etc.).\n * @param {*} - the input to test\n * @returns {boolean}\n * @static\n */\nfunction isIterable (input) {\n if (input === null || !isDefined(input)) {\n return false\n } else {\n return typeof input[Symbol.iterator] === 'function'\n }\n}\n"],"sourceRoot":""}