{"version":3,"sources":["webpack://@elegantstack/gatsby-starter-flexiblog-education/../node_modules/@babel/runtime/regenerator/index.js","webpack://@elegantstack/gatsby-starter-flexiblog-education/../node_modules/dedupe/index.js","webpack://@elegantstack/gatsby-starter-flexiblog-education/../node_modules/email-validator/index.js","webpack://@elegantstack/gatsby-starter-flexiblog-education/../node_modules/jsonp/index.js","webpack://@elegantstack/gatsby-starter-flexiblog-education/../node_modules/jsonp/node_modules/debug/src/browser.js","webpack://@elegantstack/gatsby-starter-flexiblog-education/../node_modules/jsonp/node_modules/debug/src/debug.js","webpack://@elegantstack/gatsby-starter-flexiblog-education/../node_modules/jsonp/node_modules/ms/index.js","webpack://@elegantstack/gatsby-starter-flexiblog-education/../node_modules/gatsby-plugin-mailchimp/index.js","webpack://@elegantstack/gatsby-starter-flexiblog-education/../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://@elegantstack/gatsby-starter-flexiblog-education/../packages/common/gatsby-common-helpers/src/useMailChimp.jsx","webpack://@elegantstack/gatsby-starter-flexiblog-education/../packages/flow-ui/flow-ui-components/src/CardList/CardList.Slider.Styles.js","webpack://@elegantstack/gatsby-starter-flexiblog-education/../packages/flow-ui/flow-ui-components/src/CardList/CardList.Slider.jsx","webpack://@elegantstack/gatsby-starter-flexiblog-education/../packages/flow-ui/flow-ui-components/src/CardList/CardList.jsx","webpack://@elegantstack/gatsby-starter-flexiblog-education/../packages/flow-ui/flow-ui-components/src/utils/reduceArray.js","webpack://@elegantstack/gatsby-starter-flexiblog-education/../packages/flow-ui/flow-ui-components/src/NewsletterForm/NewsletterForm.jsx","webpack://@elegantstack/gatsby-starter-flexiblog-education/../node_modules/regenerator-runtime/runtime.js"],"names":["module","exports","client","hasher","JSON","stringify","clone","lookup","i","length","elem","hashed","push","tester","validate","email","test","parts","split","some","part","debug","url","opts","fn","script","timer","prefix","id","name","count","param","timeout","enc","encodeURIComponent","target","document","getElementsByTagName","head","setTimeout","cleanup","Error","parentNode","removeChild","window","noop","clearTimeout","data","indexOf","replace","createElement","src","insertBefore","load","r","storage","e","process","DEBUG","log","console","Function","prototype","apply","call","arguments","formatArgs","args","useColors","this","namespace","humanize","diff","c","color","splice","index","lastC","match","save","namespaces","removeItem","type","documentElement","style","WebkitAppearance","firebug","exception","table","navigator","userAgent","toLowerCase","parseInt","RegExp","$1","chrome","local","localStorage","localstorage","colors","formatters","j","v","err","message","enable","prevTime","createDebug","enabled","self","curr","Date","ms","prev","Array","coerce","unshift","format","formatter","val","logFn","bind","hash","charCodeAt","Math","abs","selectColor","init","stack","disable","names","skips","len","substr","s","m","h","d","y","plural","n","floor","ceil","options","str","String","exec","parseFloat","parse","isNaN","long","round","fmtShort","obj","_jsonp","require","__esModule","default","_emailValidator","subscribeEmailToMailchimp","_ref","Promise","resolve","reject","convertListFields","fields","queryParams","field","Object","hasOwnProperty","fieldTransformed","substring","toUpperCase","concat","_default","endpointOverride","isEmailValid","emailEncoded","result","msg","endpoint","__GATSBY_PLUGIN_MAILCHIMP_ADDRESS__","__GATSBY_PLUGIN_MAILCHIMP_TIMEOUT__","asyncGeneratorStep","gen","_next","_throw","key","arg","info","value","error","done","then","useState","setResult","submitting","setSubmitting","handleSubmit","preventDefault","FormData","get","addToMailchimp","undefined","success","canSubmit","slide","width","transition","opacity","transform","transformOrigin","left","fade","display","alignItems","controlBottom","top","bottom","ml","textAlign","verticalAlign","controlCenter","right","controlOver","p","bg","Slider","loadable","CardListSlider","React","props","ref","columns","slidesToScroll","smoothAutoScroll","autoPlay","autoplaySpeed","dots","arrows","centerMode","centerPadding","controlPosition","beforeChange","children","context","useThemeUI","animationSettings","autoplay","cssEase","mobileSettings","swipeToSlide","responsiveSettings","theme","breakpoints","map","breakpoint","rSlidesToShow","rSlidesToScroll","settings","slidesToShow","speed","infinite","responsive","css","styles","prevArrow","sx","nextArrow","loadableFallback","slice","fallback","defaultProps","rows","CardList","nodes","variant","title","withTitleLink","limit","skip","distinct","slider","aside","asNavFor","loading","rest","reducedNodes","array","newArray","dedupe","node","reduceArray","titleLink","category","slug","sectionKey","hashCode","join","cardListVariant","buildResponsiveVariant","changeSlide","current","slickPause","slickGoTo","cards","Card","onMouseOver","onFocus","Section","mb","button","mx","onSubmit","dangerouslySetInnerHTML","__html","placeholder","aria-label","required","disabled","size","runtime","Op","hasOwn","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","defineProperty","enumerable","configurable","writable","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","create","Context","_invoke","state","GenStateSuspendedStart","method","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","TypeError","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","constructor","displayName","isGeneratorFunction","genFun","ctor","mark","setPrototypeOf","__proto__","awrap","async","iter","toString","keys","object","reverse","pop","skipTempReset","charAt","stop","rootRecord","rval","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode"],"mappings":"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","file":"51c6a129561072cdca8b6b2f5e9f47ba0105f6ae-ba50638429532892875b.js","sourcesContent":["module.exports = require(\"regenerator-runtime\");\n","'use strict';\n\nfunction dedupe(client, hasher) {\n hasher = hasher || JSON.stringify;\n var clone = [];\n var lookup = {};\n\n for (var i = 0; i < client.length; i++) {\n var elem = client[i];\n var hashed = hasher(elem);\n\n if (!lookup[hashed]) {\n clone.push(elem);\n lookup[hashed] = true;\n }\n }\n\n return clone;\n}\n\nmodule.exports = dedupe;","\"use strict\";\n\nvar tester = /^[-!#$%&'*+\\/0-9=?A-Z^_a-z{|}~](\\.?[-!#$%&'*+\\/0-9=?A-Z^_a-z`{|}~])*@[a-zA-Z0-9](-*\\.?[a-zA-Z0-9])*\\.[a-zA-Z](-?[a-zA-Z0-9])+$/; // Thanks to:\n// http://fightingforalostcause.net/misc/2006/compare-email-regex.php\n// http://thedailywtf.com/Articles/Validating_Email_Addresses.aspx\n// http://stackoverflow.com/questions/201323/what-is-the-best-regular-expression-for-validating-email-addresses/201378#201378\n\nexports.validate = function (email) {\n if (!email) return false;\n if (email.length > 254) return false;\n var valid = tester.test(email);\n if (!valid) return false; // Further checking of some things regex can't handle\n\n var parts = email.split(\"@\");\n if (parts[0].length > 64) return false;\n var domainParts = parts[1].split(\".\");\n if (domainParts.some(function (part) {\n return part.length > 63;\n })) return false;\n return true;\n};","/**\n * Module dependencies\n */\nvar debug = require('debug')('jsonp');\n/**\n * Module exports.\n */\n\n\nmodule.exports = jsonp;\n/**\n * Callback index.\n */\n\nvar count = 0;\n/**\n * Noop function.\n */\n\nfunction noop() {}\n/**\n * JSONP handler\n *\n * Options:\n * - param {String} qs parameter (`callback`)\n * - prefix {String} qs parameter (`__jp`)\n * - name {String} qs parameter (`prefix` + incr)\n * - timeout {Number} how long after a timeout error is emitted (`60000`)\n *\n * @param {String} url\n * @param {Object|Function} optional options / callback\n * @param {Function} optional callback\n */\n\n\nfunction jsonp(url, opts, fn) {\n if ('function' == typeof opts) {\n fn = opts;\n opts = {};\n }\n\n if (!opts) opts = {};\n var prefix = opts.prefix || '__jp'; // use the callback name that was passed if one was provided.\n // otherwise generate a unique name by incrementing our counter.\n\n var id = opts.name || prefix + count++;\n var param = opts.param || 'callback';\n var timeout = null != opts.timeout ? opts.timeout : 60000;\n var enc = encodeURIComponent;\n var target = document.getElementsByTagName('script')[0] || document.head;\n var script;\n var timer;\n\n if (timeout) {\n timer = setTimeout(function () {\n cleanup();\n if (fn) fn(new Error('Timeout'));\n }, timeout);\n }\n\n function cleanup() {\n if (script.parentNode) script.parentNode.removeChild(script);\n window[id] = noop;\n if (timer) clearTimeout(timer);\n }\n\n function cancel() {\n if (window[id]) {\n cleanup();\n }\n }\n\n window[id] = function (data) {\n debug('jsonp got', data);\n cleanup();\n if (fn) fn(null, data);\n }; // add qs component\n\n\n url += (~url.indexOf('?') ? '&' : '?') + param + '=' + enc(id);\n url = url.replace('?&', '?');\n debug('jsonp req \"%s\"', url); // create script\n\n script = document.createElement('script');\n script.src = url;\n target.parentNode.insertBefore(script, target);\n return cancel;\n}","/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\nexports = module.exports = require('./debug');\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome && 'undefined' != typeof chrome.storage ? chrome.storage.local : localstorage();\n/**\n * Colors.\n */\n\nexports.colors = ['lightseagreen', 'forestgreen', 'goldenrod', 'dodgerblue', 'darkorchid', 'crimson'];\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {\n return true;\n } // is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\n\n return typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || // is firebug? http://stackoverflow.com/a/398120/376773\n typeof window !== 'undefined' && window.console && (window.console.firebug || window.console.exception && window.console.table) || // is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31 || // double check webkit in userAgent just in case we are in a worker\n typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/);\n}\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\n\nexports.formatters.j = function (v) {\n try {\n return JSON.stringify(v);\n } catch (err) {\n return '[UnexpectedJSONParseError]: ' + err.message;\n }\n};\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\n\nfunction formatArgs(args) {\n var useColors = this.useColors;\n args[0] = (useColors ? '%c' : '') + this.namespace + (useColors ? ' %c' : ' ') + args[0] + (useColors ? '%c ' : ' ') + '+' + exports.humanize(this.diff);\n if (!useColors) return;\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit'); // the final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function (match) {\n if ('%%' === match) return;\n index++;\n\n if ('%c' === match) {\n // we only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n args.splice(lastC, 0, c);\n}\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\n\nfunction log() {\n // this hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return 'object' === typeof console && console.log && Function.prototype.apply.call(console.log, console, arguments);\n}\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\n\nfunction save(namespaces) {\n try {\n if (null == namespaces) {\n exports.storage.removeItem('debug');\n } else {\n exports.storage.debug = namespaces;\n }\n } catch (e) {}\n}\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\n\nfunction load() {\n var r;\n\n try {\n r = exports.storage.debug;\n } catch (e) {} // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\n\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = process.env.DEBUG;\n }\n\n return r;\n}\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\n\nexports.enable(load());\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n try {\n return window.localStorage;\n } catch (e) {}\n}","/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */\nexports = module.exports = createDebug.debug = createDebug['default'] = createDebug;\nexports.coerce = coerce;\nexports.disable = disable;\nexports.enable = enable;\nexports.enabled = enabled;\nexports.humanize = require('ms');\n/**\n * The currently active debug mode names, and names to skip.\n */\n\nexports.names = [];\nexports.skips = [];\n/**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\nexports.formatters = {};\n/**\n * Previous log timestamp.\n */\n\nvar prevTime;\n/**\n * Select a color.\n * @param {String} namespace\n * @return {Number}\n * @api private\n */\n\nfunction selectColor(namespace) {\n var hash = 0,\n i;\n\n for (i in namespace) {\n hash = (hash << 5) - hash + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n\n return exports.colors[Math.abs(hash) % exports.colors.length];\n}\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\n\nfunction createDebug(namespace) {\n function debug() {\n // disabled?\n if (!debug.enabled) return;\n var self = debug; // set `diff` timestamp\n\n var curr = +new Date();\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr; // turn the `arguments` into a proper Array\n\n var args = new Array(arguments.length);\n\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n args[0] = exports.coerce(args[0]);\n\n if ('string' !== typeof args[0]) {\n // anything else let's inspect with %O\n args.unshift('%O');\n } // apply any `formatters` transformations\n\n\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function (match, format) {\n // if we encounter an escaped % then don't increase the array index\n if (match === '%%') return match;\n index++;\n var formatter = exports.formatters[format];\n\n if ('function' === typeof formatter) {\n var val = args[index];\n match = formatter.call(self, val); // now we need to remove `args[index]` since it's inlined in the `format`\n\n args.splice(index, 1);\n index--;\n }\n\n return match;\n }); // apply env-specific formatting (colors, etc.)\n\n exports.formatArgs.call(self, args);\n var logFn = debug.log || exports.log || console.log.bind(console);\n logFn.apply(self, args);\n }\n\n debug.namespace = namespace;\n debug.enabled = exports.enabled(namespace);\n debug.useColors = exports.useColors();\n debug.color = selectColor(namespace); // env-specific initialization logic for debug instances\n\n if ('function' === typeof exports.init) {\n exports.init(debug);\n }\n\n return debug;\n}\n/**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\n\nfunction enable(namespaces) {\n exports.save(namespaces);\n exports.names = [];\n exports.skips = [];\n var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n var len = split.length;\n\n for (var i = 0; i < len; i++) {\n if (!split[i]) continue; // ignore empty strings\n\n namespaces = split[i].replace(/\\*/g, '.*?');\n\n if (namespaces[0] === '-') {\n exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n exports.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n}\n/**\n * Disable debug output.\n *\n * @api public\n */\n\n\nfunction disable() {\n exports.enable('');\n}\n/**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\n\nfunction enabled(name) {\n var i, len;\n\n for (i = 0, len = exports.skips.length; i < len; i++) {\n if (exports.skips[i].test(name)) {\n return false;\n }\n }\n\n for (i = 0, len = exports.names.length; i < len; i++) {\n if (exports.names[i].test(name)) {\n return true;\n }\n }\n\n return false;\n}\n/**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\n\nfunction coerce(val) {\n if (val instanceof Error) return val.stack || val.message;\n return val;\n}","/**\n * Helpers.\n */\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar y = d * 365.25;\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function (val, options) {\n options = options || {};\n var type = typeof val;\n\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isNaN(val) === false) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n\n throw new Error('val is not a non-empty string or a valid number. val=' + JSON.stringify(val));\n};\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\n\nfunction parse(str) {\n str = String(str);\n\n if (str.length > 100) {\n return;\n }\n\n var match = /^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(str);\n\n if (!match) {\n return;\n }\n\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n\n default:\n return undefined;\n }\n}\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\n\nfunction fmtShort(ms) {\n if (ms >= d) {\n return Math.round(ms / d) + 'd';\n }\n\n if (ms >= h) {\n return Math.round(ms / h) + 'h';\n }\n\n if (ms >= m) {\n return Math.round(ms / m) + 'm';\n }\n\n if (ms >= s) {\n return Math.round(ms / s) + 's';\n }\n\n return ms + 'ms';\n}\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\n\nfunction fmtLong(ms) {\n return plural(ms, d, 'day') || plural(ms, h, 'hour') || plural(ms, m, 'minute') || plural(ms, s, 'second') || ms + ' ms';\n}\n/**\n * Pluralization helper.\n */\n\n\nfunction plural(ms, n, name) {\n if (ms < n) {\n return;\n }\n\n if (ms < n * 1.5) {\n return Math.floor(ms / n) + ' ' + name;\n }\n\n return Math.ceil(ms / n) + ' ' + name + 's';\n}","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true,\n});\nexports['default'] = void 0;\n\nvar _jsonp = _interopRequireDefault(require('jsonp'));\n\nvar _emailValidator = require('email-validator');\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\n\n/**\n * Make a jsonp request to user's mailchimp list\n * `param` object avoids CORS issues\n * timeout to 3.5s so user isn't waiting forever\n * usually occurs w/ privacy plugins enabled\n * 3.5s is a bit longer than the time it would take on a Slow 3G connection\n *\n * @param {String} url - concatenated string of user's gatsby-config.js\n * options, along with any MC list fields as query params.\n *\n * @return {Promise} - a promise that resolves a data object\n * or rejects an error object\n */\nvar subscribeEmailToMailchimp = function subscribeEmailToMailchimp(_ref) {\n var url = _ref.url,\n timeout = _ref.timeout;\n return new Promise(function(resolve, reject) {\n return (0, _jsonp['default'])(\n url,\n {\n param: 'c',\n timeout: timeout,\n },\n function(err, data) {\n if (err) reject(err);\n if (data) resolve(data);\n },\n );\n });\n};\n/**\n * Build a query string of MC list fields\n *\n * @param {Object} fields - a list of mailchimp audience field labels\n * and their values. We uppercase because that's what MC requires.\n * NOTE: GROUPS stay as lowercase (ex: MC uses group field names as `group[21269]`)\n *\n * @return {String} - `&FIELD1=value1&FIELD2=value2&group[21265][2]=group1`\n */\n\nvar convertListFields = function convertListFields(fields) {\n var queryParams = '';\n\n for (var field in fields) {\n if (Object.prototype.hasOwnProperty.call(fields, field)) {\n // If this is a list group, not user field then keep lowercase, as per MC reqs\n // https://github.com/benjaminhoffman/gatsby-plugin-mailchimp/blob/master/README.md#groups\n var fieldTransformed = field.substring(0, 6) === 'group[' ? field : field.toUpperCase();\n queryParams = queryParams.concat(\n '&'.concat(fieldTransformed, '=').concat(fields[field]),\n );\n }\n }\n\n return queryParams;\n};\n/**\n * Subscribe an email address to a Mailchimp email list.\n * We use ES5 function syntax (instead of arrow) because we need `arguments.length`\n *\n * @param {String} email - required; the email address you want to subscribe\n * @param {Object} fields - optional; add'l info (columns) you want included w/ this subscriber\n * @param {String} endpointOverride - optional; if you want to override the default MC mailing list\n * that's listed in your gatsby-config, pass the list in here\n *\n * @return {Object} -\n * {\n * result: (`success` || `error`)\n * msg: (`Thank you for subscribing!` || `The email you entered is not valid.`),\n * }\n */\n\nvar addToMailchimp = function addToMailchimp(email, fields, endpointOverride) {\n var isEmailValid = (0, _emailValidator.validate)(email);\n var emailEncoded = encodeURIComponent(email);\n\n if (!isEmailValid) {\n return Promise.resolve({\n result: 'error',\n msg: 'The email you entered is not valid.',\n });\n }\n\n var endpoint = __GATSBY_PLUGIN_MAILCHIMP_ADDRESS__; // eslint-disable-line no-undef\n\n var timeout = __GATSBY_PLUGIN_MAILCHIMP_TIMEOUT__; // eslint-disable-line no-undef\n // The following tests for whether you passed in a `fields` object. If\n // there are only two params and the second is a string, then we can safely\n // assume the second param is a MC mailing list, and not a fields object.\n\n if (arguments.length < 3 && typeof fields === 'string') {\n endpoint = fields;\n } else if (typeof endpointOverride === 'string') {\n endpoint = endpointOverride;\n } // Generates MC endpoint for our jsonp request. We have to\n // change `/post` to `/post-json` otherwise, MC returns an error\n\n endpoint = endpoint.replace(/\\/post/g, '/post-json');\n var queryParams = '&EMAIL='.concat(emailEncoded).concat(convertListFields(fields));\n var url = ''.concat(endpoint).concat(queryParams);\n return subscribeEmailToMailchimp({\n url: url,\n timeout: timeout,\n });\n};\n\nvar _default = addToMailchimp;\nexports['default'] = _default;\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","import { useState } from 'react'\nimport addToMailchimp from 'gatsby-plugin-mailchimp'\n\nconst useMailChimp = () => {\n const [result, setResult] = useState()\n const [submitting, setSubmitting] = useState(false)\n\n const handleSubmit = async e => {\n e.preventDefault()\n setSubmitting(true)\n const data = new FormData(e.target)\n const email = data.get('email')\n const result = await addToMailchimp(email)\n setResult(result)\n setSubmitting(false)\n }\n\n const success = result && result.result === 'success'\n const error = result && result.result !== 'success'\n const canSubmit = !result || error\n const message = result && result.msg\n\n return {\n handleSubmit,\n canSubmit,\n submitting,\n message,\n success,\n error\n }\n}\n\nexport default useMailChimp\n","export default {\n slide: {\n width: `full`,\n '.slick-slide': {\n transition: `all 600ms ease`,\n opacity: 1,\n transform: [null, `scale(1)`],\n transformOrigin: `left`\n },\n '.slick-slide.slick-active + :not(.slick-active)': {\n opacity: [null, 0],\n transform: [null, `scale(0.7)`]\n },\n '.slick-track': {\n left: `0 !important`\n }\n },\n fade: {\n width: `full`,\n '.slick-slide:not(.slick-active)': {\n left: `-9999px !important` //fix overlapping slides in fade mode\n },\n '.slick-track': {\n display: `flex`,\n alignItems: `center`,\n left: `0 !important`\n }\n },\n controlBottom: {\n '.slick-prev, .slick-next': {\n top: `auto`,\n bottom: 3,\n left: `50%`,\n transform: `translate(-125%, 0)`\n },\n '.slick-next': {\n ml: 5\n },\n '.slick-dots': {\n textAlign: `center`,\n width: [`full`, `auto`],\n top: [`100%`, `auto`],\n bottom: 0\n },\n '.slick-dots li': {\n verticalAlign: `middle`\n }\n },\n controlCenter: {\n '.slick-prev, .slick-next': {\n top: `50%`,\n left: `50%`,\n transform: `translate(-125%, -50%)`\n },\n '.slick-next': {\n ml: 5\n },\n '.slick-dots': {\n textAlign: `center`,\n width: [`full`, `auto`],\n top: [`100%`, `auto`],\n bottom: 4,\n right: 4\n }\n },\n controlOver: {\n width: `full`,\n '.slick-prev, .slick-next': {\n top: `auto`,\n bottom: [-2, 3],\n left: [4, 6]\n },\n '.slick-next': {\n ml: 5\n },\n '.slick-dots': {\n textAlign: `center`,\n width: `auto`,\n top: [`auto`, 5],\n bottom: [3, `auto`],\n left: [2, 4],\n p: 0,\n ml: 3\n },\n '.slick-dots li': {\n display: [`inline-block`, `block`]\n },\n '.slick-dots li.slick-active button': {\n bg: `alpha`\n }\n }\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { IconButton, css, useThemeUI } from 'theme-ui'\nimport { FaChevronLeft, FaChevronRight } from 'react-icons/fa'\nimport 'slick-carousel/slick/slick.css'\nimport './CardList.Slider.css'\nimport styles from './CardList.Slider.Styles'\n\nimport loadable from '@loadable/component'\nconst Slider = loadable(() =>\n import(\n /* webpackChunkName: 'react-slick' */ /* webpackPrefetch: true */ 'react-slick'\n )\n)\n\nconst CardListSlider = React.forwardRef((props, ref) => {\n const {\n columns,\n slidesToScroll,\n smoothAutoScroll,\n autoPlay,\n autoplaySpeed,\n fade,\n dots,\n arrows,\n centerMode,\n centerPadding,\n controlPosition,\n beforeChange,\n children\n } = props\n\n const context = useThemeUI()\n\n const animationSettings = {\n slidesToScroll: 1,\n autoplay: true,\n cssEase: 'linear'\n }\n\n const mobileSettings = {\n centerMode: fade ? false : true,\n centerPadding: '40px',\n swipeToSlide: true,\n arrows: false,\n dots: dots && fade ? true : false\n }\n\n const responsiveSettings = context.theme.breakpoints.map(\n (breakpoint, index) => {\n const rSlidesToShow =\n columns[index >= columns.length ? columns.length - 1 : index]\n const rSlidesToScroll =\n slidesToScroll[\n index >= slidesToScroll.length ? slidesToScroll.length - 1 : index\n ]\n return {\n breakpoint: parseInt(breakpoint),\n settings: {\n slidesToShow: rSlidesToShow,\n slidesToScroll: rSlidesToScroll,\n ...(index === 0 ? mobileSettings : {})\n }\n }\n }\n )\n let settings = {\n ref,\n beforeChange,\n slidesToShow: columns[columns.length - 1],\n slidesToScroll: slidesToScroll[slidesToScroll.length - 1],\n speed: 800,\n dots,\n arrows,\n centerMode,\n centerPadding,\n infinite: true,\n cssEase: fade ? 'ease-out' : 'cubic-bezier(0.23, 1, 0.32, 1)',\n fade,\n responsive: responsiveSettings,\n css: css({\n ...(fade ? styles.fade : styles.slide),\n ...(controlPosition === 'bottom' && styles.controlBottom),\n ...(controlPosition === 'center' && styles.controlCenter),\n ...(controlPosition === 'over' && styles.controlOver)\n }),\n prevArrow: (\n \n \n \n ),\n nextArrow: (\n \n \n \n )\n }\n\n if (smoothAutoScroll) {\n settings = {\n ...settings,\n ...animationSettings,\n speed: 10000,\n autoplaySpeed: 0,\n arrows: false,\n dots: false\n }\n }\n\n if (!smoothAutoScroll && autoPlay) {\n settings = {\n ...settings,\n ...animationSettings,\n speed: 300,\n autoplaySpeed\n }\n }\n\n const loadableFallback = children.slice(0, columns[columns.length - 1])\n\n return (\n \n {children}\n \n )\n})\n\nexport default CardListSlider\n\nCardListSlider.defaultProps = {\n fade: false,\n dots: true,\n arrows: true,\n centerMode: false,\n centerPadding: '50px',\n autoPlay: false,\n autoplaySpeed: 3000,\n smoothAutoScroll: false,\n slidesToScroll: [1],\n rows: 1,\n controlPosition: 'sides'\n}\n\nCardListSlider.propTypes = {\n fade: PropTypes.bool,\n dots: PropTypes.bool,\n arrows: PropTypes.bool,\n centerMode: PropTypes.bool,\n centerPadding: PropTypes.string,\n autoPlay: PropTypes.bool,\n autoplaySpeed: PropTypes.number,\n smoothAutoScroll: PropTypes.bool,\n columns: PropTypes.arrayOf(PropTypes.number),\n slidesToScroll: PropTypes.arrayOf(PropTypes.number),\n controlPosition: PropTypes.oneOf(['bottom', 'over', 'sides', 'center'])\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { Box } from 'theme-ui'\nimport buildResponsiveVariant from '@components/utils/buildResponsiveVariant'\nimport hashCode from '@components/utils/hashCode'\nimport reduceArray from '@components/utils/reduceArray'\nimport Section from '@components/Section'\nimport CardListSlider from './CardList.Slider'\nimport Card from '@components/Card'\n\nconst SLIDER_VARIANT_GROUP = 'lists.cards.slider'\nconst FIXED_VARIANT_GROUP = 'lists.cards.fixed'\n\nconst CardList = React.forwardRef((props, ref) => {\n const {\n nodes,\n variant,\n title,\n withTitleLink,\n limit,\n skip,\n distinct,\n slider,\n aside,\n asNavFor,\n loading,\n ...rest\n } = props\n\n const reducedNodes = reduceArray(nodes, { distinct, limit, skip })\n if (!reducedNodes || !reducedNodes.length) return null\n\n //Section title link for viewing more posts from same category\n const titleLink = withTitleLink\n ? reducedNodes[0].category && reducedNodes[0].category.slug\n : ''\n\n //Unique key for section\n const sectionKey =\n title && `${hashCode(reducedNodes.map(node => node.id).join())}`\n\n //Build responsive variant for card list\n const cardListVariant = buildResponsiveVariant(\n slider ? SLIDER_VARIANT_GROUP : FIXED_VARIANT_GROUP,\n variant\n )\n\n const changeSlide = index => {\n if (asNavFor && asNavFor.current) {\n asNavFor.current.slickPause()\n asNavFor.current.slickGoTo(index)\n }\n }\n\n //Array of cards\n const cards = reducedNodes.map((node, index) => (\n changeSlide(index)}\n onFocus={() => changeSlide(index)}\n //In sliders with fade effect apply loading to the first card only\n loading={props.fade ? (index === 0 ? loading : undefined) : loading}\n {...node}\n {...rest}\n />\n ))\n\n //Cards List (Fixed or Slider)\n const CardList = () => (\n \n {slider ? (\n changeSlide(index)}\n {...rest}\n >\n {cards}\n \n ) : (\n cards\n )}\n \n )\n\n return title ? (\n
\n \n
\n ) : (\n \n )\n})\n\nexport default CardList\n\nCardList.defaultProps = {\n variant: 'vertical',\n columns: [1],\n aside: false\n}\n\nCardList.propTypes = {\n variant: PropTypes.oneOfType([\n PropTypes.array,\n PropTypes.oneOf([\n 'horizontal',\n 'horizontal-aside',\n 'horizontal-md',\n 'horizontal-lg',\n 'horizontal-cover',\n 'horizontal-cover-hero',\n 'horizontal-cover-wide',\n 'horizontal-hero',\n 'vertical-cover',\n 'vertical',\n 'search'\n ])\n ]),\n loading: PropTypes.oneOf(['lazy', 'auto', 'eager']),\n columns: PropTypes.array,\n title: PropTypes.string,\n withTitleLink: PropTypes.bool,\n nodes: PropTypes.array,\n distinct: PropTypes.bool,\n limit: PropTypes.number,\n skip: PropTypes.number,\n aside: PropTypes.bool\n}\n","import dedupe from 'dedupe'\n\nexport default (array, { limit, skip, distinct }) => {\n if (!array) return null\n\n if (!limit && !skip && !distinct) return array\n\n let newArray = array\n\n //Remove duplicate array\n if (distinct) {\n newArray = dedupe(newArray, node => node.id)\n }\n\n // Skip specified number of first elements\n if (skip) {\n newArray = newArray.slice(skip)\n }\n\n //Limit total number of array\n if (limit) {\n newArray = newArray.slice(0, limit)\n }\n\n return newArray\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { Box, Input, Button, Message, Spinner } from 'theme-ui'\n\nconst styles = {\n msg: {\n mb: 0\n },\n button: {\n display: `block`,\n mx: `auto`\n }\n}\n\nconst NewsletterForm = ({\n handleSubmit,\n canSubmit,\n submitting,\n message,\n success\n}) => (\n
\n {message && (\n \n )}\n {canSubmit && (\n <>\n \n \n \n \n Subscribe {submitting && }\n \n \n )}\n \n)\n\nexport default NewsletterForm\n\nNewsletterForm.propTypes = {\n handleSubmit: PropTypes.func,\n canSubmit: PropTypes.bool,\n submitting: PropTypes.bool,\n message: PropTypes.string,\n success: PropTypes.bool\n}\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n"],"sourceRoot":""}