{"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","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","length","isClass","test","Function","toString","isPrimitive","isPromise","isThenable","then","isIterable","iterator"],"mappings":"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","file":"polyfill.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","import 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","'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":""}