\") : invariant(false) : void 0;\n return /*#__PURE__*/React.createElement(Component, _extends({}, remainingProps, context, {\n ref: wrappedComponentRef\n }));\n });\n };\n\n C.displayName = displayName;\n C.WrappedComponent = Component;\n\n if (process.env.NODE_ENV !== \"production\") {\n C.propTypes = {\n wrappedComponentRef: PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.object])\n };\n }\n\n return hoistStatics(C, Component);\n}\n\nvar useContext = React.useContext;\n\nfunction useHistory() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useHistory()\") : invariant(false) : void 0;\n }\n\n return useContext(historyContext);\n}\n\nfunction useLocation() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useLocation()\") : invariant(false) : void 0;\n }\n\n return useContext(context).location;\n}\n\nfunction useParams() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useParams()\") : invariant(false) : void 0;\n }\n\n var match = useContext(context).match;\n return match ? match.params : {};\n}\n\nfunction useRouteMatch(path) {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useRouteMatch()\") : invariant(false) : void 0;\n }\n\n var location = useLocation();\n var match = useContext(context).match;\n return path ? matchPath(location.pathname, path) : match;\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n if (typeof window !== \"undefined\") {\n var global = window;\n var key = \"__react_router_build__\";\n var buildNames = {\n cjs: \"CommonJS\",\n esm: \"ES modules\",\n umd: \"UMD\"\n };\n\n if (global[key] && global[key] !== \"esm\") {\n var initialBuildName = buildNames[global[key]];\n var secondaryBuildName = buildNames[\"esm\"]; // TODO: Add link to article that explains in detail how to avoid\n // loading 2 different builds.\n\n throw new Error(\"You are loading the \" + secondaryBuildName + \" build of React Router \" + (\"on a page that is already running the \" + initialBuildName + \" \") + \"build, so things won't work right.\");\n }\n\n global[key] = \"esm\";\n }\n}\n\nexport { MemoryRouter, Prompt, Redirect, Route, Router, StaticRouter, Switch, historyContext as __HistoryContext, context as __RouterContext, generatePath, matchPath, useHistory, useLocation, useParams, useRouteMatch, withRouter };","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","import moment from 'moment';\n\nexport const formatDateTime = function(datetime) {\n return moment(datetime).format('MM/DD/YYYY h:mm a')\n}\n\nexport const daysAgo = function(datetime, days) {\n return moment(datetime).subtract(days, 'days');\n}\n\nexport const formatDateForRange = function(datetime) {\n return moment(datetime).format('YYYY-MM-DD');\n}\n\nexport const formatDateFromUNIX = function(timestamp, return_type) {\n var a = new Date(timestamp * 1000);\n var months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];\n var year = a.getFullYear();\n var month = months[a.getMonth()];\n var date = a.getDate();\n var hour = a.getHours();\n var min = a.getMinutes();\n var sec = a.getSeconds();\n var time = date + ' ' + month + ' ' + year + ' ' + hour + ':' + min + ':' + sec ;\n var date_only = month + ' ' + date + ' ' + year\n return eval(return_type);\n}\n\nexport const capitalize = (s) => {\n if (typeof s !== 'string') return ''\n return s.charAt(0).toUpperCase() + s.slice(1)\n}","import React from \"react\"\nimport { Link } from \"react-router-dom\"\nimport Avatar from \"./Avatar\"\n\nclass Card extends React.Component {\n constructor(props) {\n super(props)\n }\n\n render () {\n let detail = null\n if (this.props.detail) {\n detail = (\n {this.props.detail}
\n )\n }\n let street = null\n if (this.props.street) {\n street = (\n {this.props.street}
\n )\n }\n let citystatezip = null\n if (this.props.citystatezip) {\n citystatezip = (\n {this.props.citystatezip}
\n )\n } \n let score1 = null\n if (this.props.score1) {\n score1 = (\n Completion: {this.props.score1}%
\n )\n }\n let score2 = null\n if (this.props.score2) {\n score2 = (\n On Time: {this.props.score2}%
\n )\n }\n\n let col_xl = 4, col = 6\n if (this.props.large) {\n col_xl = 8\n col = 12\n }\n return (\n \n
\n
\n
{this.props.name}\n {detail}\n {street}\n {citystatezip}\n {score1}\n {score2}\n {this.props.children}\n {this.props.avatars && this.props.avatars.map(user =>
{user.full_name ? user.full_name : user.email}
)}\n
\n
\n
\n )\n }\n}\n\nexport default Card\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.parseStartTime = parseStartTime;\nexports.parseEndTime = parseEndTime;\nexports.randomString = randomString;\nexports.queryString = queryString;\nexports.getSDK = getSDK;\nexports.getConfig = getConfig;\nexports.omit = omit;\nexports.callPlayer = callPlayer;\nexports.isMediaStream = isMediaStream;\nexports.isBlobUrl = isBlobUrl;\nexports.supportsWebKitPresentationMode = supportsWebKitPresentationMode;\n\nvar _loadScript = _interopRequireDefault(require(\"load-script\"));\n\nvar _deepmerge = _interopRequireDefault(require(\"deepmerge\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nvar MATCH_START_QUERY = /[?](?:start|t)=([0-9hms]+)/;\nvar MATCH_END_QUERY = /[?]end=([0-9hms]+)/;\nvar MATCH_START_STAMP = /(\\d+)(h|m|s)/g;\nvar MATCH_NUMERIC = /^\\d+$/; // Parse YouTube URL for a start time param, ie ?t=1h14m30s\n// and return the start time in seconds\n\nfunction parseTimeParam(url, pattern) {\n if (url instanceof Array) {\n return undefined;\n }\n\n var match = url.match(pattern);\n\n if (match) {\n var stamp = match[1];\n\n if (stamp.match(MATCH_START_STAMP)) {\n return parseTimeString(stamp);\n }\n\n if (MATCH_NUMERIC.test(stamp)) {\n return parseInt(stamp);\n }\n }\n\n return undefined;\n}\n\nfunction parseTimeString(stamp) {\n var seconds = 0;\n var array = MATCH_START_STAMP.exec(stamp);\n\n while (array !== null) {\n var _array = array,\n _array2 = _slicedToArray(_array, 3),\n count = _array2[1],\n period = _array2[2];\n\n if (period === 'h') seconds += parseInt(count, 10) * 60 * 60;\n if (period === 'm') seconds += parseInt(count, 10) * 60;\n if (period === 's') seconds += parseInt(count, 10);\n array = MATCH_START_STAMP.exec(stamp);\n }\n\n return seconds;\n}\n\nfunction parseStartTime(url) {\n return parseTimeParam(url, MATCH_START_QUERY);\n}\n\nfunction parseEndTime(url) {\n return parseTimeParam(url, MATCH_END_QUERY);\n} // http://stackoverflow.com/a/38622545\n\n\nfunction randomString() {\n return Math.random().toString(36).substr(2, 5);\n}\n\nfunction queryString(object) {\n return Object.keys(object).map(function (key) {\n return \"\".concat(key, \"=\").concat(object[key]);\n }).join('&');\n}\n\nfunction getGlobal(key) {\n if (window[key]) {\n return window[key];\n }\n\n if (window.exports && window.exports[key]) {\n return window.exports[key];\n }\n\n if (window.module && window.module.exports && window.module.exports[key]) {\n return window.module.exports[key];\n }\n\n return null;\n} // Util function to load an external SDK\n// or return the SDK if it is already loaded\n\n\nvar requests = {};\n\nfunction getSDK(url, sdkGlobal) {\n var sdkReady = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var isLoaded = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : function () {\n return true;\n };\n var fetchScript = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : _loadScript[\"default\"];\n var existingGlobal = getGlobal(sdkGlobal);\n\n if (existingGlobal && isLoaded(existingGlobal)) {\n return Promise.resolve(existingGlobal);\n }\n\n return new Promise(function (resolve, reject) {\n // If we are already loading the SDK, add the resolve and reject\n // functions to the existing array of requests\n if (requests[url]) {\n requests[url].push({\n resolve: resolve,\n reject: reject\n });\n return;\n }\n\n requests[url] = [{\n resolve: resolve,\n reject: reject\n }];\n\n var onLoaded = function onLoaded(sdk) {\n // When loaded, resolve all pending request promises\n requests[url].forEach(function (request) {\n return request.resolve(sdk);\n });\n };\n\n if (sdkReady) {\n var previousOnReady = window[sdkReady];\n\n window[sdkReady] = function () {\n if (previousOnReady) previousOnReady();\n onLoaded(getGlobal(sdkGlobal));\n };\n }\n\n fetchScript(url, function (err) {\n if (err) {\n // Loading the SDK failed – reject all requests and\n // reset the array of requests for this SDK\n requests[url].forEach(function (request) {\n return request.reject(err);\n });\n requests[url] = null;\n } else if (!sdkReady) {\n onLoaded(getGlobal(sdkGlobal));\n }\n });\n });\n}\n\nfunction getConfig(props, defaultProps) {\n return (0, _deepmerge[\"default\"])(defaultProps.config, props.config);\n}\n\nfunction omit(object) {\n var _ref;\n\n for (var _len = arguments.length, arrays = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n arrays[_key - 1] = arguments[_key];\n }\n\n var omitKeys = (_ref = []).concat.apply(_ref, arrays);\n\n var output = {};\n var keys = Object.keys(object);\n\n for (var _i2 = 0, _keys = keys; _i2 < _keys.length; _i2++) {\n var key = _keys[_i2];\n\n if (omitKeys.indexOf(key) === -1) {\n output[key] = object[key];\n }\n }\n\n return output;\n}\n\nfunction callPlayer(method) {\n var _this$player; // Util method for calling a method on this.player\n // but guard against errors and console.warn instead\n\n\n if (!this.player || !this.player[method]) {\n var message = \"ReactPlayer: \".concat(this.constructor.displayName, \" player could not call %c\").concat(method, \"%c \\u2013 \");\n\n if (!this.player) {\n message += 'The player was not available';\n } else if (!this.player[method]) {\n message += 'The method was not available';\n }\n\n console.warn(message, 'font-weight: bold', '');\n return null;\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n return (_this$player = this.player)[method].apply(_this$player, args);\n}\n\nfunction isMediaStream(url) {\n return typeof window !== 'undefined' && typeof window.MediaStream !== 'undefined' && url instanceof window.MediaStream;\n}\n\nfunction isBlobUrl(url) {\n return /^blob:/.test(url);\n}\n\nfunction supportsWebKitPresentationMode() {\n var video = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document.createElement('video'); // Check if Safari supports PiP, and is not on mobile (other than iPad)\n // iPhone safari appears to \"support\" PiP through the check, however PiP does not function\n\n var notMobile = /iPhone|iPod/.test(navigator.userAgent) === false;\n return video.webkitSupportsPresentationMode && typeof video.webkitSetPresentationMode === 'function' && notMobile;\n}","import API from './api'\n\nconst List = {\n list_url: function(location_id) {\n if (location_id) {\n return `locations/${location_id}/lists`\n } else {\n return 'lists'\n }\n },\n\n all: function(user, location_id) {\n return API.get(user, this.list_url(location_id))\n },\n\n templates: function(user, location_id) {\n return API.get(user, `${this.list_url(location_id)}?templates=true`)\n },\n\n not_templates: function(user, location_id) {\n return API.get(user, `${this.list_url(location_id)}?templates=false`)\n },\n\n find: function(user, id) {\n return API.get(user, `lists/${id}`)\n },\n\n create: function(user, location_id, list) {\n list = this.setOrderForItems(list)\n return API.post(user, this.list_url(location_id), { list })\n },\n\n update: function(user, list_id, list) {\n list = this.setOrderForItems(list)\n return API.put(user, `lists/${list_id}`, { list })\n },\n\n delete: function(user, list_id) {\n return API.delete(user, `lists/${list_id}`)\n },\n\n setOrderForItems(list) {\n if (list.items_attributes) {\n list.items_attributes.forEach((item, index) => {\n item.order = index + 1\n })\n }\n return list\n }\n}\n\nexport default List","import API from './api'\n\nconst Employee = {\n all: function(user) {\n return API.get(user, 'users')\n },\n\n find: function(user, id) {\n return API.get(user, `users/${id}`)\n },\n\n create: function(user, email, full_name, role) {\n return API.post(user, 'users', { user: { email, full_name, role } })\n },\n\n update: function(user, employee, email, full_name, role, password, password_confirmation, deactivated) {\n const data = { user: { email, full_name, role, deactivated} }\n if (user.id === employee.id) {\n data.user.password = password\n data.user.password_confirmation = password_confirmation\n }\n return API.put(user, `users/${employee.id}`, data)\n },\n\n setTimeZone: function(user, time_zone) {\n return API.put(user, `users/${user.id}`, { user: { time_zone: time_zone }})\n }\n}\n\nexport default Employee","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n} // About 1.5x faster than the two-arg version of Array#splice()\n\n\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n} // This implementation is based heavily on node's url.parse\n\n\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n var toParts = to && to.split('/') || [];\n var fromParts = from && from.split('/') || [];\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n var hasTrailingSlash;\n\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) {\n fromParts.unshift('..');\n }\n if (mustEndAbs && fromParts[0] !== '' && (!fromParts[0] || !isAbsolute(fromParts[0]))) fromParts.unshift('');\n var result = fromParts.join('/');\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n return result;\n}\n\nexport default resolvePathname;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction valueOf(obj) {\n return obj.valueOf ? obj.valueOf() : Object.prototype.valueOf.call(obj);\n}\n\nfunction valueEqual(a, b) {\n // Test for strict equality first.\n if (a === b) return true; // Otherwise, if either of them == null they are not equal.\n\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n return Array.isArray(b) && a.length === b.length && a.every(function (item, index) {\n return valueEqual(item, b[index]);\n });\n }\n\n if (_typeof(a) === 'object' || _typeof(b) === 'object') {\n var aValue = valueOf(a);\n var bValue = valueOf(b);\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n return Object.keys(Object.assign({}, a, b)).every(function (key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n\nexport default valueEqual;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\n\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\n\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\n\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\n\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\n\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\n\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\n\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(_typeof(path) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(_typeof(path) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(_typeof(path) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(_typeof(path) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.canPlay = exports.FLV_EXTENSIONS = exports.DASH_EXTENSIONS = exports.HLS_EXTENSIONS = exports.VIDEO_EXTENSIONS = exports.AUDIO_EXTENSIONS = exports.MATCH_URL_KALTURA = exports.MATCH_URL_VIDYARD = exports.MATCH_URL_MIXCLOUD = exports.MATCH_URL_DAILYMOTION = exports.MATCH_URL_TWITCH_CHANNEL = exports.MATCH_URL_TWITCH_VIDEO = exports.MATCH_URL_WISTIA = exports.MATCH_URL_STREAMABLE = exports.MATCH_URL_FACEBOOK_WATCH = exports.MATCH_URL_FACEBOOK = exports.MATCH_URL_VIMEO = exports.MATCH_URL_SOUNDCLOUD = exports.MATCH_URL_YOUTUBE = void 0;\n\nvar _utils = require(\"./utils\");\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) {\n var it;\n\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = o[Symbol.iterator]();\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nvar MATCH_URL_YOUTUBE = /(?:youtu\\.be\\/|youtube(?:-nocookie)?\\.com\\/(?:embed\\/|v\\/|watch\\/|watch\\?v=|watch\\?.+&v=))((\\w|-){11})|youtube\\.com\\/playlist\\?list=|youtube\\.com\\/user\\//;\nexports.MATCH_URL_YOUTUBE = MATCH_URL_YOUTUBE;\nvar MATCH_URL_SOUNDCLOUD = /(?:soundcloud\\.com|snd\\.sc)\\/[^.]+$/;\nexports.MATCH_URL_SOUNDCLOUD = MATCH_URL_SOUNDCLOUD;\nvar MATCH_URL_VIMEO = /vimeo\\.com\\/.+/;\nexports.MATCH_URL_VIMEO = MATCH_URL_VIMEO;\nvar MATCH_URL_FACEBOOK = /^https?:\\/\\/(www\\.)?facebook\\.com.*\\/(video(s)?|watch|story)(\\.php?|\\/).+$/;\nexports.MATCH_URL_FACEBOOK = MATCH_URL_FACEBOOK;\nvar MATCH_URL_FACEBOOK_WATCH = /^https?:\\/\\/fb\\.watch\\/.+$/;\nexports.MATCH_URL_FACEBOOK_WATCH = MATCH_URL_FACEBOOK_WATCH;\nvar MATCH_URL_STREAMABLE = /streamable\\.com\\/([a-z0-9]+)$/;\nexports.MATCH_URL_STREAMABLE = MATCH_URL_STREAMABLE;\nvar MATCH_URL_WISTIA = /(?:wistia\\.(?:com|net)|wi\\.st)\\/(?:medias|embed)\\/(?:iframe\\/)?(.*)$/;\nexports.MATCH_URL_WISTIA = MATCH_URL_WISTIA;\nvar MATCH_URL_TWITCH_VIDEO = /(?:www\\.|go\\.)?twitch\\.tv\\/videos\\/(\\d+)($|\\?)/;\nexports.MATCH_URL_TWITCH_VIDEO = MATCH_URL_TWITCH_VIDEO;\nvar MATCH_URL_TWITCH_CHANNEL = /(?:www\\.|go\\.)?twitch\\.tv\\/([a-zA-Z0-9_]+)($|\\?)/;\nexports.MATCH_URL_TWITCH_CHANNEL = MATCH_URL_TWITCH_CHANNEL;\nvar MATCH_URL_DAILYMOTION = /^(?:(?:https?):)?(?:\\/\\/)?(?:www\\.)?(?:(?:dailymotion\\.com(?:\\/embed)?\\/video)|dai\\.ly)\\/([a-zA-Z0-9]+)(?:_[\\w_-]+)?$/;\nexports.MATCH_URL_DAILYMOTION = MATCH_URL_DAILYMOTION;\nvar MATCH_URL_MIXCLOUD = /mixcloud\\.com\\/([^/]+\\/[^/]+)/;\nexports.MATCH_URL_MIXCLOUD = MATCH_URL_MIXCLOUD;\nvar MATCH_URL_VIDYARD = /vidyard.com\\/(?:watch\\/)?([a-zA-Z0-9-]+)/;\nexports.MATCH_URL_VIDYARD = MATCH_URL_VIDYARD;\nvar MATCH_URL_KALTURA = /^https?:\\/\\/[a-zA-Z]+\\.kaltura.(com|org)\\/p\\/([0-9]+)\\/sp\\/([0-9]+)00\\/embedIframeJs\\/uiconf_id\\/([0-9]+)\\/partner_id\\/([0-9]+)(.*)entry_id.([a-zA-Z0-9-_]+)$/;\nexports.MATCH_URL_KALTURA = MATCH_URL_KALTURA;\nvar AUDIO_EXTENSIONS = /\\.(m4a|mp4a|mpga|mp2|mp2a|mp3|m2a|m3a|wav|weba|aac|oga|spx)($|\\?)/i;\nexports.AUDIO_EXTENSIONS = AUDIO_EXTENSIONS;\nvar VIDEO_EXTENSIONS = /\\.(mp4|og[gv]|webm|mov|m4v)($|\\?)/i;\nexports.VIDEO_EXTENSIONS = VIDEO_EXTENSIONS;\nvar HLS_EXTENSIONS = /\\.(m3u8)($|\\?)/i;\nexports.HLS_EXTENSIONS = HLS_EXTENSIONS;\nvar DASH_EXTENSIONS = /\\.(mpd)($|\\?)/i;\nexports.DASH_EXTENSIONS = DASH_EXTENSIONS;\nvar FLV_EXTENSIONS = /\\.(flv)($|\\?)/i;\nexports.FLV_EXTENSIONS = FLV_EXTENSIONS;\n\nvar canPlayFile = function canPlayFile(url) {\n if (url instanceof Array) {\n var _iterator = _createForOfIteratorHelper(url),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var item = _step.value;\n\n if (typeof item === 'string' && canPlayFile(item)) {\n return true;\n }\n\n if (canPlayFile(item.src)) {\n return true;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return false;\n }\n\n if ((0, _utils.isMediaStream)(url) || (0, _utils.isBlobUrl)(url)) {\n return true;\n }\n\n return AUDIO_EXTENSIONS.test(url) || VIDEO_EXTENSIONS.test(url) || HLS_EXTENSIONS.test(url) || DASH_EXTENSIONS.test(url) || FLV_EXTENSIONS.test(url);\n};\n\nvar canPlay = {\n youtube: function youtube(url) {\n if (url instanceof Array) {\n return url.every(function (item) {\n return MATCH_URL_YOUTUBE.test(item);\n });\n }\n\n return MATCH_URL_YOUTUBE.test(url);\n },\n soundcloud: function soundcloud(url) {\n return MATCH_URL_SOUNDCLOUD.test(url) && !AUDIO_EXTENSIONS.test(url);\n },\n vimeo: function vimeo(url) {\n return MATCH_URL_VIMEO.test(url) && !VIDEO_EXTENSIONS.test(url) && !HLS_EXTENSIONS.test(url);\n },\n facebook: function facebook(url) {\n return MATCH_URL_FACEBOOK.test(url) || MATCH_URL_FACEBOOK_WATCH.test(url);\n },\n streamable: function streamable(url) {\n return MATCH_URL_STREAMABLE.test(url);\n },\n wistia: function wistia(url) {\n return MATCH_URL_WISTIA.test(url);\n },\n twitch: function twitch(url) {\n return MATCH_URL_TWITCH_VIDEO.test(url) || MATCH_URL_TWITCH_CHANNEL.test(url);\n },\n dailymotion: function dailymotion(url) {\n return MATCH_URL_DAILYMOTION.test(url);\n },\n mixcloud: function mixcloud(url) {\n return MATCH_URL_MIXCLOUD.test(url);\n },\n vidyard: function vidyard(url) {\n return MATCH_URL_VIDYARD.test(url);\n },\n kaltura: function kaltura(url) {\n return MATCH_URL_KALTURA.test(url);\n },\n file: canPlayFile\n};\nexports.canPlay = canPlay;","import API from './api'\n\nconst Location = {\n all: function(user) {\n return API.get(user, 'locations')\n },\n\n find: function(user, id) {\n return API.get(user, `locations/${id}`)\n },\n\n create: function(user, name, street, city, state, zip, subscriber_ids, accessor_ids) {\n return API.post(user, 'locations', { location: { name, street, city, state, zip, subscriber_ids, accessor_ids } })\n },\n\n update: function(user, location, name, street, city, state, zip, subscriber_ids, accessor_ids) {\n return API.put(user, `locations/${location.id}`, { location: { name, street, city, state, zip, subscriber_ids, accessor_ids } })\n }\n}\n\nexport default Location","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\n\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n\n if (isProduction) {\n throw new Error(prefix);\n }\n\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? prefix + \": \" + provided : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AuBankAccountElement = exports.FpxBankElement = exports.IdealBankElement = exports.IbanElement = exports.PaymentRequestButtonElement = exports.CardCVCElement = exports.CardCvcElement = exports.CardExpiryElement = exports.CardNumberElement = exports.CardElement = exports.Elements = exports.injectStripe = exports.StripeProvider = undefined;\n\nvar _Provider = require('./components/Provider');\n\nvar _Provider2 = _interopRequireDefault(_Provider);\n\nvar _inject = require('./components/inject');\n\nvar _inject2 = _interopRequireDefault(_inject);\n\nvar _Elements = require('./components/Elements');\n\nvar _Elements2 = _interopRequireDefault(_Elements);\n\nvar _Element = require('./components/Element');\n\nvar _Element2 = _interopRequireDefault(_Element);\n\nvar _PaymentRequestButtonElement = require('./components/PaymentRequestButtonElement');\n\nvar _PaymentRequestButtonElement2 = _interopRequireDefault(_PaymentRequestButtonElement);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n} // Define Elements, and register their implied token / source types for\n// automatic token / source creation.\n// Card\n\n\nvar CardElement = (0, _Element2.default)('card', {\n impliedTokenType: 'card',\n impliedSourceType: 'card',\n impliedPaymentMethodType: 'card'\n}); // Split Fields\n// Note: we only register the CardNumberElement for split fields so that we have\n// a unique Element to infer when calling `wrappedCreateToken` or `wrappedCreateSource`.\n\nvar CardNumberElement = (0, _Element2.default)('cardNumber', {\n impliedTokenType: 'card',\n impliedSourceType: 'card',\n impliedPaymentMethodType: 'card'\n});\nvar CardExpiryElement = (0, _Element2.default)('cardExpiry');\nvar CardCvcElement = (0, _Element2.default)('cardCvc');\nvar CardCVCElement = CardCvcElement; // deprecated in favor of CardCvcElement which better matches Elements API\n// IBAN\n\nvar IbanElement = (0, _Element2.default)('iban', {\n impliedTokenType: 'bank_account',\n impliedSourceType: 'sepa_debit'\n}); // iDEAL Bank\n\nvar IdealBankElement = (0, _Element2.default)('idealBank', {\n impliedSourceType: 'ideal'\n}); // fpx Bank\n\nvar FpxBankElement = (0, _Element2.default)('fpxBank'); // auBankAccount\n// Requires beta access. Contact Stripe support for more information:\n// https://support.stripe.com\n\nvar AuBankAccountElement = (0, _Element2.default)('auBankAccount');\nexports.StripeProvider = _Provider2.default;\nexports.injectStripe = _inject2.default;\nexports.Elements = _Elements2.default;\nexports.CardElement = CardElement;\nexports.CardNumberElement = CardNumberElement;\nexports.CardExpiryElement = CardExpiryElement;\nexports.CardCvcElement = CardCvcElement;\nexports.CardCVCElement = CardCVCElement;\nexports.PaymentRequestButtonElement = _PaymentRequestButtonElement2.default;\nexports.IbanElement = IbanElement;\nexports.IdealBankElement = IdealBankElement;\nexports.FpxBankElement = FpxBankElement;\nexports.AuBankAccountElement = AuBankAccountElement;","import React from \"react\"\n\nclass ListView extends React.Component {\n constructor(props) {\n super(props)\n\n this.onResponse = this.onResponse.bind(this)\n\n let values = {}\n if (props.list.items) {\n (props.list.items).forEach((item) => {\n if (item.response) {\n values[item.id] = item.response\n }\n if (!item.conditions_attributes) {\n item.conditions_attributes = item.conditions\n }\n })\n if (!props.list.items_attributes) {\n props.list.items_attributes = props.list.items\n }\n }\n\n this.state = {\n readonly: props.readonly || false,\n responses: {},\n values,\n evidences: {},\n allowEditItems: props.onEditItem || false,\n allowEditConditions: props.onEditCondition || false,\n allowDeleteItems: props.onDeleteItem || false,\n allowDeleteConditions: props.onDeleteCondition || false\n }\n }\n\n onResponse(event) {\n let { responses, values, evidences } = this.state\n\n const item_id = parseInt(event.target.name.split(\"_\")[1])\n const item = this.props.list.items.filter(item => item.id === item_id)[0]\n\n let value = event.target.value\n if (item.item_type === 'multiple_selection') {\n value = []\n document.getElementsByName(event.target.name)\n .forEach(item => item.checked && value.push(item.value))\n }\n\n if (event.target.files) {\n evidences[item_id] = event.target.files[0]\n value = values[item_id]\n }\n\n values[item_id] = value\n\n responses[item_id] = {\n config: item.config,\n id: item.id,\n item_type: item.item_type,\n prompt: item.prompt,\n requires_photo: item.requires_photo,\n created_at: item.created_at,\n updated_at: item.updated_at,\n response: value\n }\n\n this.setState({ responses, values, evidences })\n\n this.props.onResponsesUpdated && this.props.onResponsesUpdated(responses, evidences)\n }\n\n getValue(item_id, multi = false) {\n return (item_id && this.state.values && this.state.values[item_id]) || (multi ? [] : '')\n }\n\n renderItem(item) {\n if (item._destroy) {\n return null\n }\n let field = null\n switch(item.item_type) {\n case 'text':\n field = (\n \n )\n break\n case 'expanded_text':\n field = (\n \n )\n break\n case 'yes_no':\n field = (\n <>\n \n \n \n
\n \n \n \n
\n >\n )\n break\n case 'selection':\n const select_options = item.config && item.config.map((option) => {\n return (\n \n \n \n
\n )\n }) || []\n field = (\n <>\n {select_options}\n >\n )\n break\n case 'multiple_selection':\n const multi_select_options = item.config && item.config.map((option, index) => {\n return (\n <>\n \n \n \n
\n >\n )\n }) || []\n field = (\n <>\n {multi_select_options}\n
\n >\n )\n break\n case 'quantity':\n field = (\n \n )\n break\n case 'temperature':\n field = (\n \n )\n break\n }\n let photo_upload = null\n if (item.requires_photo) {\n photo_upload = (\n <>\n Photo Evidence Required
\n {this.state.readonly ? null : } \n {item.evidence ?
: null}\n
\n >\n )\n }\n let editItem = null\n if (item.id != null && this.state.allowEditItems) {\n editItem = (\n this.props.onEditItem(item)}>Edit item\n )\n }\n let deleteItem = null\n if (this.state.allowDeleteItems) {\n deleteItem = (\n this.props.onDeleteItem(item)}>Remove item\n )\n }\n let conditions = null\n if (this.state.readonly && (item.conditions || item.conditions_attributes || []).filter(c => !c._destroy).length > 0) {\n conditions = (\n <>\n Conditions\n \n {(item.conditions || item.conditions_attributes).map(condition => this.renderCondition(item, condition))}\n
\n >\n )\n }\n return (\n \n
\n {photo_upload}\n {field}\n
\n {editItem}\n
\n {deleteItem}\n
\n {conditions}\n
\n )\n }\n\n renderCondition(item, condition) {\n if (condition._destroy) {\n return null\n }\n let editCondition = null\n if (condition.id != null && this.state.allowEditConditions) {\n editCondition = (\n this.props.onEditCondition(item, condition)}>Edit condition\n )\n }\n let deleteCondition = null\n if (this.state.allowDeleteConditions) {\n deleteCondition = (\n this.props.onDeleteCondition(item, condition)}>Remove condition\n )\n }\n return (\n \n If the answer is {condition.equality} {condition.value} then add this to the punchlist:\n {condition.instructions}
\n \n {editCondition}\n
\n {deleteCondition}\n
\n \n )\n }\n\n render() {\n return this.props.list.items_attributes.map(item => this.renderItem(item))\n }\n}\n\nexport default ListView\n","import API from './api'\n\nconst Auth = {\n signIn: function(email, password) {\n return API.http(null, 'auth/sign_in', 'POST', {\n email: email,\n password: password\n }, 'application/json')\n },\n\n signUp: function(data) {\n return API.post(null, 'auth', data)\n },\n\n signOut: function(user) {\n return API.delete(null, 'auth/sign_out')\n },\n\n requestTemporaryPassword: function(email) {\n return API.post(null, 'passwords', {password: { email }})\n }\n}\n\nexport default Auth","import React from 'react'\n\nexport default function(props) {\n return (\n
\n )\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n'use strict';\n/* eslint-disable no-unused-vars */\n\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n if (val === null || val === undefined) {\n throw new TypeError('Object.assign cannot be called with null or undefined');\n }\n\n return Object(val);\n}\n\nfunction shouldUseNative() {\n try {\n if (!Object.assign) {\n return false;\n } // Detect buggy property enumeration order in older V8 versions.\n // https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\n\n var test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\n test1[5] = 'de';\n\n if (Object.getOwnPropertyNames(test1)[0] === '5') {\n return false;\n } // https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\n\n var test2 = {};\n\n for (var i = 0; i < 10; i++) {\n test2['_' + String.fromCharCode(i)] = i;\n }\n\n var order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n return test2[n];\n });\n\n if (order2.join('') !== '0123456789') {\n return false;\n } // https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\n\n var test3 = {};\n 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n test3[letter] = letter;\n });\n\n if (Object.keys(Object.assign({}, test3)).join('') !== 'abcdefghijklmnopqrst') {\n return false;\n }\n\n return true;\n } catch (err) {\n // We don't expect any of the above to throw, but better to be safe.\n return false;\n }\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n var from;\n var to = toObject(target);\n var symbols;\n\n for (var s = 1; s < arguments.length; s++) {\n from = Object(arguments[s]);\n\n for (var key in from) {\n if (hasOwnProperty.call(from, key)) {\n to[key] = from[key];\n }\n }\n\n if (getOwnPropertySymbols) {\n symbols = getOwnPropertySymbols(from);\n\n for (var i = 0; i < symbols.length; i++) {\n if (propIsEnumerable.call(from, symbols[i])) {\n to[symbols[i]] = from[symbols[i]];\n }\n }\n }\n }\n\n return to;\n};","import React from \"react\"\nimport { notify } from \"react-notify-toast\"\nimport Dropdown from 'react-dropdown'\nimport 'react-dropdown/style.css'\nimport { injectStripe, CardNumberElement, CardExpiryElement, CardCVCElement } from \"react-stripe-elements\"\nimport Pricing from \"../components/Pricing\"\nimport PageHeader from \"../components/PageHeader\"\n\nclass StripeBilling extends React.Component {\n constructor(props) {\n super(props)\n\n this.state = {\n discountCode: props.discountCode,\n planCode: props.planCode,\n myEnv: process.env.NODE_ENV,\n options: []\n }\n\n this.onDiscountCodeChanged = this.onDiscountCodeChanged.bind(this)\n this.onPlanCodeChanged = this.onPlanCodeChanged.bind(this)\n this.handleSubmit = this.handleSubmit.bind(this)\n console.log('process.env.NODE_ENV: ' + process.env.NODE_ENV)\n if (this.state.myEnv != 'production') {\n this.state.options = [\n { label: \"Monthly\", value: \"price_1JpYWCCqcX1dWQDru0s5zrDh\", className: 'planCode'},\n { label: \"Annual\", value: \"price_1JsWTCCqcX1dWQDrbfJCbdgh\", className: 'planCode'}\n ];\n } else {\n this.state.options = [ \n { label: \"Monthly\", value: \"price_1K1B6ECqcX1dWQDryxGVkD6f\", className: 'planCode'},\n { label: \"Annual\", value: \"price_1K1B6ECqcX1dWQDrYo2mVMpn\", className: 'planCode'} \n ];\n }\n\n }\n\n onDiscountCodeChanged(event) {\n this.setState({ discountCode: event.target.value })\n this.props.onDiscountCodeChanged && this.props.onDiscountCodeChanged(event)\n }\n\n onPlanCodeChanged(event) {\n this.setState({ planCode: event.value});\n this.props.onPlanCodeChanged && this.props.onPlanCodeChanged(event)\n } \n\n handleSubmit(event) {\n event.preventDefault()\n\n this.props.stripe.createToken({type: 'card'}).then((result) => {\n if (result.error) {\n notify.show(result.error.message, 'error')\n } else {\n this.props.handleStripeToken && this.props.handleStripeToken(result.token.id)\n }\n })\n }\n\n render() {\n const inputStyle = {\n base: {\n border: '1px solid #E9EEF2',\n borderRadius: '0.3rem',\n color: '#495057',\n display: 'block',\n fontSize: '.875rem',\n fontWeight: '500',\n lineHeight: '1.5',\n width: '100%'\n }\n }\n\n let planCodeDisplay = null\n if (typeof(this.state.planCode) === 'undefined' && this.state.planCode == null) { \n planCodeDisplay = (\n \n )\n }\n\n return (\n \n
\n
\n
Billing Info
\n
\n
\n
\n
\n )\n }\n}\n\nexport default injectStripe(StripeBilling)\n","import React from \"react\"\nimport { Link } from \"react-router-dom\"\n\nclass Home extends React.Component {\n constructor(props) {\n super(props)\n\n if (props.isLoggedIn) {\n props.history && props.history.push('/pricing')\n }\n }\n render () {\n return (\n <>\n Pricing
\n \n
\n
\n - Monthly
\n - 1 location: Free
\n - 2-5 locations: $20 each
\n - 6-10 locations: $19 each
\n - 11-15 locations: $18 each
\n - 16-20 locations: $17 each
\n - 21-25 locations: $16 each
\n - 26+ locations: $15 each
\n
\n
\n
\n
\n - Annual
\n - 1 location: Free
\n - 2-5 locations: $200 each
\n - 6-10 locations: $190 each
\n - 11-15 locations: $180 each
\n - 16-20 locations: $170 each
\n - 21-25 locations: $160 each
\n - 26+ locations: $150 each
\n
\n
\n
\n
\n >\n );\n }\n}\n\nexport default Home","import React from \"react\"\n\nclass CompanyFields extends React.Component {\n constructor(props) {\n super(props)\n\n this.state = {\n name: '',\n street: '',\n city: '',\n state: '',\n zip: '',\n phone: '',\n ...props.company\n }\n\n this.onChange = this.onChange.bind(this)\n }\n\n onChange(event) {\n this.setState({ [event.target.id]: event.target.value })\n this.props.onChange && this.props.onChange(event)\n }\n\n render() {\n return (\n <>\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n >\n )\n }\n}\n\nexport default CompanyFields","import React from \"react\"\nimport { Link } from \"react-router-dom\"\nimport { formatDateTime } from \"../services/utils\"\n\nclass Logs extends React.Component {\n constructor(props) {\n super(props)\n\n this.state = {\n logs: props.logs,\n isLoading: props.isLoading\n }\n }\n\n componentWillReceiveProps(props) {\n this.setState({ logs: props.logs, isLoading: props.isLoading })\n }\n\n render () {\n let logs = (\n Loading...
\n )\n if (!this.state.isLoading) {\n if (this.state.logs && this.state.logs.length > 0) {\n logs = this.state.logs.map(log => (\n \n {log.list_name} | \n {log.user.full_name} | \n {formatDateTime(log.created_at)} | \n \n View\n | \n
\n ))\n } else {\n logs = (\n Unable to find any logs for this checklist.
\n )\n }\n }\n return (\n <>\n \n \n Checklist | \n User | \n Logged at | \n | \n
\n {logs}\n
\n >\n );\n }\n}\n\nexport default Logs\n","import React from \"react\"\n\nclass UserForm extends React.Component {\n constructor(props) {\n super(props)\n\n this.state = {\n email: '',\n full_name: '',\n password: '',\n password_confirmation: '',\n role: '',\n deactivated: props.deactivated || false,\n disabled: true,\n ...this.props.employee\n }\n\n this.onEmailChanged = this.onEmailChanged.bind(this)\n this.onFullNameChanged = this.onFullNameChanged.bind(this)\n this.onPasswordChanged = this.onPasswordChanged.bind(this)\n this.onPasswordConfirmationChanged = this.onPasswordConfirmationChanged.bind(this)\n this.onRoleChanged = this.onRoleChanged.bind(this)\n this.onDeactivatedChanged = this.onDeactivatedChanged.bind(this)\n this.onSubmit = this.onSubmit.bind(this)\n this.confirmFullNameExists = this.confirmFullNameExists.bind(this)\n this.fullNameInput = React.createRef();\n this.refreshPage = this.refreshPage.bind(this)\n }\n\n onSubmit(event) {\n event.preventDefault()\n\n this.props.onSave && this.props.onSave(this.state.email, this.state.full_name, this.state.role, this.state.password, this.state.password_confirmation, this.state.deactivated)\n }\n\n onEmailChanged(event) {\n this.setState({email: event.target.value})\n }\n\n onFullNameChanged(event) {\n this.setState({full_name: event.target.value})\n }\n\n onPasswordChanged(event) {\n this.setState({password: event.target.value})\n }\n\n onPasswordConfirmationChanged(event) {\n this.setState({password_confirmation: event.target.value})\n }\n\n onRoleChanged(event) {\n this.setState({role: event.target.value})\n }\n\n onDeactivatedChanged(event) {\n this.setState({deactivated: event.target.checked})\n } \n\n refreshPage() {\n console.log(\"REFRESH PAGE\")\n window.location.reload();\n }\n\n confirmFullNameExists(event){\n console.log(\"CHECKING FULL NAME\")\n const fullnamelen = event.target.value.length \n console.log(fullnamelen)\n if (event.target.value.length == 0) {\n alert(\"The user's full name is required before continuing\");\n this.refreshPage()\n } else {\n this.setState({disabled: false})\n } \n }; \n\n render () {\n const roles = this.props.currentUser.creatable_roles.map((role) => {\n return (\n \n )\n })\n let passwordFields = null\n if (this.props.showPasswordFields) {\n passwordFields = (\n <>\n \n \n
\n \n \n
\n >\n )\n }\n return (\n \n );\n }\n}\n\nexport default UserForm\n","import React from \"react\"\nimport { Link } from \"react-router-dom\"\nimport { notify } from \"react-notify-toast\"\nimport Location from \"../services/location\"\nimport Employee from \"../services/employee\"\nimport MediaQuery from 'react-responsive'\n\nclass LocationForm extends React.Component {\n constructor(props) {\n super(props)\n\n this.state = {\n name: '',\n street: '',\n city: '',\n state: '',\n zip: '',\n subscriber_ids: (props.location && props.location.subscribers && props.location.subscribers.map(s => s.id)) || [],\n subscriber_email: '',\n accessor_ids: (props.location && props.location.accessors && props.location.accessors.map(a => a.id)) || [],\n accessor_email: '',\n employees: [],\n location: props.location,\n ...props.location\n }\n\n this.onNameChanged = this.onNameChanged.bind(this)\n this.onStreetChanged = this.onStreetChanged.bind(this)\n this.onCityChanged = this.onCityChanged.bind(this)\n this.onStateChanged = this.onStateChanged.bind(this)\n this.onZipChanged = this.onZipChanged.bind(this)\n this.onSubscriberIdsChanged = this.onSubscriberIdsChanged.bind(this)\n this.onSubscriberEmailChanged = this.onSubscriberEmailChanged.bind(this)\n this.onAccessorIdsChanged = this.onAccessorIdsChanged.bind(this)\n this.onAccessorEmailChanged = this.onAccessorEmailChanged.bind(this)\n this.onSubmit = this.onSubmit.bind(this)\n this.addSubscriber = this.addSubscriber.bind(this)\n this.addAccessor = this.addAccessor.bind(this)\n\n Employee.all(props.currentUser)\n .then((json) => {\n this.setState({employees: json})\n })\n .catch((error) => {\n console.log(\"[Employee.all] error\", error)\n })\n }\n\n addSubscriber() {\n this.addEmployee('subscriber')\n }\n\n addAccessor() {\n this.addEmployee('accessor')\n }\n\n addEmployee(selector) {\n Employee.create(this.props.currentUser, this.state[`${selector}_email`], null, 'employee')\n .then((json) => {\n const employees = this.state.employees\n employees.push(json)\n const selection_id = `${selector}_ids`;\n const selection = this.state[selection_id]\n selection.push(json.id)\n this.setState({\n employees,\n [selection_id]: selection,\n [`${selector}_email`]: ''\n })\n })\n }\n\n onSubmit(event) {\n event.preventDefault()\n\n let updates = []\n if (this.state.subscriber_email != null && this.state.subscriber_email !== '') {\n updates.push(\n Employee.create(this.props.currentUser, this.state.subscriber_email, null, 'employee')\n .then((json) => {\n notify.show('Employee created! A confirmation email has been sent to them.', 'success')\n this.setState({subscriber_id: json.id})\n }\n )\n )\n }\n\n if (this.state.accessor_email != null && this.state.accessor_email !== '') {\n updates.push(\n Employee.create(this.props.currentUser, this.state.accessor_email, null, 'employee')\n .then((json) => {\n notify.show('Employee created! A confirmation email has been sent to them.', 'success')\n this.setState({accessor_id: json.id})\n }\n ) \n )\n }\n\n Promise\n .all(updates)\n .then(() => {\n let location_save = null\n if (this.state.location && this.state.location.id) {\n location_save = Location.update(\n this.props.currentUser,\n this.state.location,\n this.state.name,\n this.state.street,\n this.state.city,\n this.state.state,\n this.state.zip,\n this.state.subscriber_ids,\n this.state.accessor_ids)\n } else {\n location_save = Location.create(\n this.props.currentUser,\n this.state.name,\n this.state.street,\n this.state.city,\n this.state.state,\n this.state.zip,\n this.state.subscriber_ids,\n this.state.accessor_ids)\n }\n location_save.then((json) => {\n this.setState({name: '', street: '', city: '', state: '', zip: '', subscriber_ids: [], subscriber_email: '', accessor_ids: [], accessor_email: ''})\n notify.show('Location saved', 'success')\n this.props.history && this.props.history.push('/locations')\n })\n .catch((error) => {\n notify.show(error.message, 'error')\n })\n })\n .catch((error) => {\n notify.show(error.message, 'error')\n })\n }\n\n onNameChanged(event) {\n this.setState({name: event.target.value})\n }\n\n onStreetChanged(event) {\n this.setState({street: event.target.value})\n }\n\n onCityChanged(event) {\n this.setState({city: event.target.value})\n }\n\n onStateChanged(event) {\n this.setState({state: event.target.value})\n }\n\n onZipChanged(event) {\n this.setState({zip: event.target.value})\n }\n\n onSubscriberIdsChanged(event) {\n this.setState({ subscriber_ids: [...event.target.selectedOptions].map(o => o.value) })\n }\n\n onSubscriberEmailChanged(event) {\n this.setState({subscriber_email: event.target.value})\n }\n\n onAccessorIdsChanged(event) {\n this.setState({ accessor_ids: [...event.target.selectedOptions].map(o => o.value) })\n }\n\n onAccessorEmailChanged(event) {\n this.setState({accessor_email: event.target.value})\n }\n\n render () {\n return (\n <>\n \n >\n );\n }\n}\n\nexport default LocationForm\n","import React from \"react\"\nimport { Link } from \"react-router-dom\"\nimport { notify } from \"react-notify-toast\"\nimport { Elements } from \"react-stripe-elements\"\nimport StripeBilling from \"./StripeBilling\"\nimport CompanyFields from \"../components/CompanyFields\"\nimport Auth from \"../services/auth\"\n\nclass SignUp extends React.Component {\n steps = {\n user: 1,\n company: 2,\n billing: 3,\n complete: 4\n }\n\n constructor(props) {\n super(props)\n\n this.state = {\n email: '',\n password: '',\n passwordConfirmation: '',\n name: '',\n street: '',\n city: '',\n state: '',\n zip: '',\n phone: '',\n fullName: '',\n step: this.steps.user\n }\n\n this.onContinue = this.onContinue.bind(this)\n this.onChange = this.onChange.bind(this)\n this.onEmailChanged = this.onEmailChanged.bind(this)\n this.onPasswordChanged = this.onPasswordChanged.bind(this)\n this.onPasswordConfirmationChanged = this.onPasswordConfirmationChanged.bind(this)\n this.onFullNameChanged = this.onFullNameChanged.bind(this)\n this.onDiscountCodeChanged = this.onDiscountCodeChanged.bind(this)\n this.onPlanCodeChanged = this.onPlanCodeChanged.bind(this)\n this.handleStripeToken = this.handleStripeToken.bind(this)\n }\n\n onContinue(event) {\n event.preventDefault()\n if (this.validateStep()) {\n let nextStep = null\n switch(this.state.step) {\n case this.steps.user:\n nextStep = this.steps.company;\n break\n case this.steps.company:\n nextStep = this.steps.billing;\n break\n }\n if (nextStep) {\n this.setState({step: nextStep})\n }\n } else {\n notify.show('Please fill out and make sure all fields are valid', 'error')\n }\n }\n\n validateStep() {\n switch(this.state.step) {\n case this.steps.user:\n return this.validateField('email') && this.validateField('password') && this.validateField('passwordConfirmation') && this.state.password == this.state.passwordConfirmation\n case this.steps.company:\n return this.validateField('name') && this.validateField('street') && this.validateField('city') && this.validateField('state') && this.validateField('zip') && this.validateField('fullName')\n }\n return true\n }\n\n validateField(name) {\n return this.state[name] != null && this.state[name] != ''\n }\n\n onChange(event) {\n this.setState({ [event.target.id]: event.target.value })\n }\n\n onEmailChanged(event) {\n this.setState({email: event.target.value})\n }\n\n onPasswordChanged(event) {\n this.setState({password: event.target.value})\n }\n\n onPasswordConfirmationChanged(event) {\n this.setState({passwordConfirmation: event.target.value})\n }\n\n onFullNameChanged(event) {\n this.setState({fullName: event.target.value})\n }\n\n onDiscountCodeChanged(event) {\n this.setState({discountCode: event.target.value})\n }\n\n onPlanCodeChanged(event) {\n this.setState({planCode: event.value})\n }\n\n handleStripeToken(token) {\n Auth.signUp({\n email: this.state.email,\n password: this.state.password,\n password_confirmation: this.state.passwordConfirmation,\n full_name: this.state.fullName,\n company_attributes: {\n name: this.state.name,\n city: this.state.city,\n street: this.state.street,\n state: this.state.state,\n zip: this.state.zip,\n phone: this.state.phone,\n stripe_token: token,\n discount_code: this.state.discountCode,\n plan_code: this.state.planCode,\n created_by_email: this.state.email\n }\n })\n .then((json) => {\n if (!!json.data && json.data.id !== null) {\n notify.show('Signed up - please check your email to confirm your user', 'success')\n this.setState({step: this.steps.complete})\n } else {\n notify.show(`Error signing up - ${json.errors.full_messages.join(', ')}`, 'error')\n }\n })\n .catch((error) => {\n notify.show(`Error signing up - ${error}`, 'error')\n })\n }\n\n renderSignedUp() {\n return (\n \n
\n
Sign up successful
\n
Check your email for a confirmation link, then login to continue setup.
\n
\n
\n )\n }\n\n renderUserFields() {\n return (\n \n
\n
Try it free for your first location.
\n
\n
\n
We will never share your email with third parties.
\n
\n
Already a user? Sign in!\n
\n
\n )\n }\n\n renderCompanyFields() {\n return (\n \n
\n
Company Info
\n
\n
\n
We will never share your email with third parties.
\n
\n
Already a user? Sign in!\n
\n
\n )\n }\n\n renderBillingFields() {\n return (\n \n
\n \n \n
All credit card data is securely processed though our partner, Stripe.
\n
By signing up, you agree to our Terms of Service.
\n
\n )\n }\n\n render () {\n let fields = null\n switch(this.state.step) {\n case this.steps.user:\n fields = this.renderUserFields()\n break\n case this.steps.company:\n fields = this.renderCompanyFields()\n break\n case this.steps.billing:\n fields = this.renderBillingFields()\n break\n case this.steps.complete:\n fields = this.renderSignedUp()\n break\n }\n return (\n <>\n \n >\n );\n }\n}\n\nexport default SignUp\n","import React from \"react\"\nimport { notify } from \"react-notify-toast\"\nimport Moment from 'react-moment';\nimport 'moment-timezone';\n\nclass ScheduleForm extends React.Component {\n constructor(props) {\n super(props)\n\n this.state = {\n schedule: (props.list.schedules && props.list.schedules[0]) || (props.list.schedules_attributes && props.list.schedules_attributes[0]) || {},\n datesAreValid: true\n }\n\n this.onScheduleTypeChanged = this.onScheduleTypeChanged.bind(this)\n this.onDaysChanged = this.onDaysChanged.bind(this)\n this.onSubmit = this.onSubmit.bind(this)\n this.checkEndsAt = this.checkEndsAt.bind(this)\n }\n\n onSubmit(event) {\n event.preventDefault()\n this.checkEndsAt()\n if (this.state.datesAreValid == false) {\n return false\n }\n if (this.validate()) {\n this.props.onSubmit && this.props.onSubmit(this.state.schedule)\n } else {\n notify.show('Please make sure all fields are filled out', 'error')\n }\n }\n\n validate() {\n return !(\n this.state.schedule.starts_at == null ||\n this.state.schedule.starts_at === '' ||\n this.state.schedule.schedule_type == null ||\n this.state.schedule.schedule_type === '' ||\n this.state.schedule.schedule_type === 'daily' && (this.state.schedule.days == null || this.state.schedule.days === '')\n )\n }\n\n onScheduleTypeChanged(event) {\n const { schedule } = this.state\n schedule.schedule_type = event.target.value\n this.setState({ schedule })\n }\n\n onDaysChanged(event) {\n const { schedule } = this.state\n schedule.days = [...$(\"input[name='days']:checked\")].map(item => item.value).join(\",\")\n this.setState({ schedule })\n }\n\n checkEndsAt(event) {\n if (typeof this.state.schedule.ends_at !== 'undefined' && this.state.schedule.ends_at !== '') {\n if (this.state.schedule.ends_at < this.state.schedule.starts_at) {\n this.setState({datesAreValid: false})\n notify.show('The Ends at date cannot be before Starts at date', 'error')\n } else {\n this.setState({datesAreValid: true})\n }\n } else {\n this.setState({datesAreValid: true})\n }\n }\n\n componentDidMount() {\n this.setupDatePickers()\n }\n\n setupDatePickers() {\n flatpickr(\"input[data-flatpickr='true']\", {\n onChange: (dates, date_str, instance) => {\n const { schedule } = this.state\n schedule[instance.element.id] = date_str\n this.setState({ schedule })\n console.log(dates)\n },\n onClose: (dates, date_str, instance) => {\n this.checkEndsAt()\n },\n onReady: function(dateObj, dateStr, instance) {\n var $cal = $(instance.calendarContainer);\n if ($cal.find('.flatpickr-clear').length < 1) {\n $cal.append('Clear
');\n $cal.find('.flatpickr-clear').on('click', function() {\n instance.clear();\n instance.close();\n });\n }\n }\n });\n }\n\n isDaySelected(day) {\n return this.state.schedule && this.state.schedule.days && this.state.schedule.days.split(',').includes(day)\n }\n\n render() {\n let days = null\n if (this.state.schedule.schedule_type === 'daily') {\n days = (\n <>\n \n \n
\n \n >\n )\n }\n return (\n <>\n \n \n
\n \n \n \n
\n \n \n \n
\n {days}\n \n >\n );\n }\n}\n\nexport default ScheduleForm\n","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar strictUriEncode = require('strict-uri-encode');\n\nvar objectAssign = require('object-assign');\n\nfunction encoderForArrayFormat(opts) {\n switch (opts.arrayFormat) {\n case 'index':\n return function (key, value, index) {\n return value === null ? [encode(key, opts), '[', index, ']'].join('') : [encode(key, opts), '[', encode(index, opts), ']=', encode(value, opts)].join('');\n };\n\n case 'bracket':\n return function (key, value) {\n return value === null ? encode(key, opts) : [encode(key, opts), '[]=', encode(value, opts)].join('');\n };\n\n default:\n return function (key, value) {\n return value === null ? encode(key, opts) : [encode(key, opts), '=', encode(value, opts)].join('');\n };\n }\n}\n\nfunction parserForArrayFormat(opts) {\n var result;\n\n switch (opts.arrayFormat) {\n case 'index':\n return function (key, value, accumulator) {\n result = /\\[(\\d*)\\]$/.exec(key);\n key = key.replace(/\\[\\d*\\]$/, '');\n\n if (!result) {\n accumulator[key] = value;\n return;\n }\n\n if (accumulator[key] === undefined) {\n accumulator[key] = {};\n }\n\n accumulator[key][result[1]] = value;\n };\n\n case 'bracket':\n return function (key, value, accumulator) {\n result = /(\\[\\])$/.exec(key);\n key = key.replace(/\\[\\]$/, '');\n\n if (!result) {\n accumulator[key] = value;\n return;\n } else if (accumulator[key] === undefined) {\n accumulator[key] = [value];\n return;\n }\n\n accumulator[key] = [].concat(accumulator[key], value);\n };\n\n default:\n return function (key, value, accumulator) {\n if (accumulator[key] === undefined) {\n accumulator[key] = value;\n return;\n }\n\n accumulator[key] = [].concat(accumulator[key], value);\n };\n }\n}\n\nfunction encode(value, opts) {\n if (opts.encode) {\n return opts.strict ? strictUriEncode(value) : encodeURIComponent(value);\n }\n\n return value;\n}\n\nfunction keysSorter(input) {\n if (Array.isArray(input)) {\n return input.sort();\n } else if (_typeof(input) === 'object') {\n return keysSorter(Object.keys(input)).sort(function (a, b) {\n return Number(a) - Number(b);\n }).map(function (key) {\n return input[key];\n });\n }\n\n return input;\n}\n\nexports.extract = function (str) {\n return str.split('?')[1] || '';\n};\n\nexports.parse = function (str, opts) {\n opts = objectAssign({\n arrayFormat: 'none'\n }, opts);\n var formatter = parserForArrayFormat(opts); // Create an object with no prototype\n // https://github.com/sindresorhus/query-string/issues/47\n\n var ret = Object.create(null);\n\n if (typeof str !== 'string') {\n return ret;\n }\n\n str = str.trim().replace(/^(\\?|#|&)/, '');\n\n if (!str) {\n return ret;\n }\n\n str.split('&').forEach(function (param) {\n var parts = param.replace(/\\+/g, ' ').split('='); // Firefox (pre 40) decodes `%3D` to `=`\n // https://github.com/sindresorhus/query-string/pull/37\n\n var key = parts.shift();\n var val = parts.length > 0 ? parts.join('=') : undefined; // missing `=` should be `null`:\n // http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\n val = val === undefined ? null : decodeURIComponent(val);\n formatter(decodeURIComponent(key), val, ret);\n });\n return Object.keys(ret).sort().reduce(function (result, key) {\n var val = ret[key];\n\n if (Boolean(val) && _typeof(val) === 'object' && !Array.isArray(val)) {\n // Sort object keys, not values\n result[key] = keysSorter(val);\n } else {\n result[key] = val;\n }\n\n return result;\n }, Object.create(null));\n};\n\nexports.stringify = function (obj, opts) {\n var defaults = {\n encode: true,\n strict: true,\n arrayFormat: 'none'\n };\n opts = objectAssign(defaults, opts);\n var formatter = encoderForArrayFormat(opts);\n return obj ? Object.keys(obj).sort().map(function (key) {\n var val = obj[key];\n\n if (val === undefined) {\n return '';\n }\n\n if (val === null) {\n return encode(key, opts);\n }\n\n if (Array.isArray(val)) {\n var result = [];\n val.slice().forEach(function (val2) {\n if (val2 === undefined) {\n return;\n }\n\n result.push(formatter(key, val2, result.length));\n });\n return result.join('&');\n }\n\n return encode(key, opts) + '=' + encode(val, opts);\n }).filter(function (x) {\n return x.length > 0;\n }).join('&') : '';\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.mergeOptions = mergeOptions;\nexports.defaults = void 0;\n\nvar _objectAssign = _interopRequireDefault(require(\"object-assign\"));\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nvar defaults = {\n wrapperId: 'notification-wrapper',\n animationDuration: 300,\n timeout: 5000,\n zIndex: 1000,\n top: 0,\n // Controls the offset from top of viewport.\n colors: {\n error: {\n color: \"#FFFFFF\",\n backgroundColor: '#E85742'\n },\n success: {\n color: \"#FFFFFF\",\n backgroundColor: '#55CA92'\n },\n warning: {\n color: \"#333333\",\n backgroundColor: '#F5E273'\n },\n info: {\n color: \"#FFFFFF\",\n backgroundColor: '#4990E2'\n }\n }\n};\nexports.defaults = defaults;\n\nfunction mergeOptions(options) {\n exports.defaults = defaults = (0, _objectAssign[\"default\"])(defaults, options);\n}","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.elementContextTypes = exports.injectContextTypes = undefined;\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _Provider = require('./Provider');\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _objectWithoutProperties(obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n}\n\nfunction _toConsumableArray(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof(call) === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar injectContextTypes = exports.injectContextTypes = {\n getRegisteredElements: _propTypes2.default.func.isRequired,\n elements: _propTypes2.default.object\n};\nvar elementContextTypes = exports.elementContextTypes = {\n addElementsLoadListener: _propTypes2.default.func.isRequired,\n registerElement: _propTypes2.default.func.isRequired,\n unregisterElement: _propTypes2.default.func.isRequired\n};\n\nvar Elements = function (_React$Component) {\n _inherits(Elements, _React$Component);\n\n function Elements(props, context) {\n _classCallCheck(this, Elements);\n\n var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context));\n\n _this._elements = null;\n\n _this.handleRegisterElement = function (element, impliedTokenType, impliedSourceType, impliedPaymentMethodType) {\n _this.setState(function (prevState) {\n return {\n registeredElements: [].concat(_toConsumableArray(prevState.registeredElements), [_extends({\n element: element\n }, impliedTokenType ? {\n impliedTokenType: impliedTokenType\n } : {}, impliedSourceType ? {\n impliedSourceType: impliedSourceType\n } : {}, impliedPaymentMethodType ? {\n impliedPaymentMethodType: impliedPaymentMethodType\n } : {})])\n };\n });\n };\n\n _this.handleUnregisterElement = function (el) {\n _this.setState(function (prevState) {\n return {\n registeredElements: prevState.registeredElements.filter(function (_ref) {\n var element = _ref.element;\n return element !== el;\n })\n };\n });\n };\n\n var _this$props = _this.props,\n children = _this$props.children,\n options = _objectWithoutProperties(_this$props, ['children']);\n\n if (_this.context.tag === 'sync') {\n _this._elements = _this.context.stripe.elements(options);\n }\n\n _this.state = {\n registeredElements: []\n };\n return _this;\n }\n\n Elements.prototype.getChildContext = function getChildContext() {\n var _this2 = this;\n\n return {\n addElementsLoadListener: function addElementsLoadListener(fn) {\n // Return the existing elements instance if we already have one.\n if (_this2.context.tag === 'sync') {\n // This is impossible, but we need to make flow happy.\n if (!_this2._elements) {\n throw new Error('Expected elements to be instantiated but it was not.');\n }\n\n fn(_this2._elements);\n } else {\n _this2.context.addStripeLoadListener(function (stripe) {\n if (_this2._elements) {\n fn(_this2._elements);\n } else {\n var _props = _this2.props,\n _children = _props.children,\n options = _objectWithoutProperties(_props, ['children']);\n\n _this2._elements = stripe.elements(options);\n fn(_this2._elements);\n }\n });\n }\n },\n registerElement: this.handleRegisterElement,\n unregisterElement: this.handleUnregisterElement,\n getRegisteredElements: function getRegisteredElements() {\n return _this2.state.registeredElements;\n },\n elements: this._elements\n };\n };\n\n Elements.prototype.render = function render() {\n return _react2.default.Children.only(this.props.children);\n };\n\n return Elements;\n}(_react2.default.Component);\n\nElements.childContextTypes = _extends({}, injectContextTypes, elementContextTypes);\nElements.contextTypes = _Provider.providerContextTypes;\nElements.defaultProps = {\n children: null\n};\nexports.default = Elements;","module.exports = function (module) {\n if (!module.webpackPolyfill) {\n module.deprecate = function () {};\n\n module.paths = []; // module.parent = undefined by default\n\n if (!module.children) module.children = [];\n Object.defineProperty(module, \"loaded\", {\n enumerable: true,\n get: function get() {\n return module.l;\n }\n });\n Object.defineProperty(module, \"id\", {\n enumerable: true,\n get: function get() {\n return module.i;\n }\n });\n module.webpackPolyfill = 1;\n }\n\n return module;\n};","import React from \"react\"\nimport { Link, withRouter } from \"react-router-dom\"\nimport { notify } from \"react-notify-toast\"\nimport Avatar from \"./Avatar\"\nimport Auth from \"../services/auth\"\n\nclass Sidebar extends React.Component {\n constructor(props) {\n super(props)\n\n this.onSignOut = this.onSignOut.bind(this)\n }\n\n onSignOut() {\n Auth.signOut(this.props.currentUser)\n .then(() => {\n this.props.setCurrentUser(null)\n notify.show('Signed out', 'success')\n this.props.history.push('/')\n })\n }\n\n renderUserAvatarDropdown(mobile = false) {\n let userAvatar = null\n if (this.props.isLoggedIn) {\n userAvatar = (\n \n
\n
\n \n \n
\n
Profile\n {this.props.currentUser.role === \"admin\" &&
Account Settings }\n
Sign out\n
\n
\n
\n )\n }\n return userAvatar\n }\n\n render () {\n let navItems = (\n <>\n Home\n Sign in\n >\n )\n if (this.props.isLoggedIn) {\n navItems = (\n <>\n Dashboard\n { this.props.currentUser.role.includes(\"admin\",\"supervisor\") && Locations }\n { this.props.currentUser.role === \"admin\" && Checklist templates }\n { this.props.currentUser.role.includes(\"admin\",\"supervisor\") && Employees }\n { this.props.currentUser.role === \"admin\" && Getting Started }\n Sign out\n >\n )\n }\n\n let currentUser = null\n if (this.props.isLoggedIn && this.props.currentUser !== null) {\n currentUser = (\n {this.props.currentUser.email}\n )\n }\n\n return (\n <>\n \n \n {this.renderUserAvatarDropdown(true)}\n
\n \n
\n {currentUser}\n - \n {navItems}\n
\n
\n
\n
\n {this.renderUserAvatarDropdown()}\n >\n );\n }\n}\n\nexport default withRouter(Sidebar)\n","import React from \"react\";\nimport { Link } from \"react-router-dom\";\n\nconst ButtonMailto = ({ mailto, label }) => {\n return (\n {\n window.location = mailto;\n e.preventDefault();\n }}\n >\n {label}\n \n );\n};\n\nexport default ButtonMailto;","import React from \"react\"\nimport { notify } from \"react-notify-toast\"\nimport { Prompt } from \"react-router\"\n\nclass ItemForm extends React.Component {\n constructor(props) {\n super(props)\n\n this.state = {\n item: props.item || {},\n didChange: false\n }\n\n this.onPromptChanged = this.onPromptChanged.bind(this)\n this.onTypeChanged = this.onTypeChanged.bind(this)\n this.onConfigChanged = this.onConfigChanged.bind(this)\n this.onRequiresPhotoChanged = this.onRequiresPhotoChanged.bind(this)\n this.onSubmit = this.onSubmit.bind(this)\n this.onSkip = this.onSkip.bind(this)\n }\n\n validate() {\n return !(\n this.state.item.prompt == null ||\n this.state.item.prompt === '' ||\n this.state.item.item_type == null ||\n this.state.item.item_type === ''\n )\n }\n\n onSubmit(event) {\n event.preventDefault()\n\n if (this.validate()) {\n this.props.onNext(this.state.item)\n } else {\n notify.show('Please check fields', 'error')\n }\n }\n\n onSkip(event) {\n event.preventDefault()\n\n this.props.onNext(null, true)\n }\n\n onPromptChanged(event) {\n const { item } = this.state\n item.prompt = event.target.value\n this.setState({ item })\n this.setState({didChange: true})\n }\n\n onTypeChanged(event) {\n const { item } = this.state\n item.item_type = event.target.value\n item.config = []\n this.setState({ item })\n this.setState({didChange: true})\n }\n\n onConfigChanged(event) {\n const { item } = this.state\n item.config = event.target.value.split('\\n')\n this.setState({ item })\n this.setState({didChange: true})\n }\n\n onRequiresPhotoChanged(event) {\n const { item } = this.state\n item.requires_photo = event.target.checked\n this.setState({ item })\n this.setState({didChange: true})\n }\n\n render () {\n let textPrompt = \"Let's create your first checklist item.\"\n if (this.props.list.items_attributes.length > 0) {\n textPrompt = \"Add a checklist item\"\n }\n let config_field = null\n switch (this.state.item.item_type) {\n case 'selection':\n case 'multiple_selection':\n config_field = (\n \n \n \n
\n )\n break\n case 'quantity':\n config_field = (\n \n \n \n
\n )\n break\n }\n return (\n <>\n \n \n >\n );\n }\n}\n\nexport default ItemForm\n","import React from \"react\"\nimport { notify } from \"react-notify-toast\"\nimport { Prompt } from \"react-router\"\n\nclass ConditionForm extends React.Component {\n constructor(props) {\n super(props)\n\n this.state = {\n item: props.item,\n condition: props.condition || {},\n didChange: false\n }\n\n this.onEqualityChanged = this.onEqualityChanged.bind(this)\n this.onValueChanged = this.onValueChanged.bind(this)\n this.onInstructionsChanged = this.onInstructionsChanged.bind(this)\n this.onSubmit = this.onSubmit.bind(this)\n this.onSubmitAndAnother = this.onSubmitAndAnother.bind(this)\n this.onSkip = this.onSkip.bind(this)\n }\n\n componentWillReceiveProps(props) {\n this.setState({\n item: props.item,\n condition: props.condition || { equality: '', value: '', instructions: '' }\n })\n }\n\n validate() {\n return !(\n this.state.condition.equality == null ||\n this.state.condition.equality === '' ||\n this.state.condition.value == null ||\n this.state.condition.value === '' ||\n this.state.condition.instructions == null ||\n this.state.condition.instructions === ''\n )\n }\n\n onAddCondition(another) {\n if (this.validate()) {\n this.props.onNext(this.state.condition, another)\n } else {\n notify.show('Please check fields', 'error')\n }\n }\n\n onSubmit(event) {\n event.preventDefault()\n this.onAddCondition(false)\n }\n\n onSubmitAndAnother(event) {\n event.preventDefault()\n this.onAddCondition(true)\n }\n\n onSkip(event) {\n event.preventDefault()\n this.props.onSkip()\n }\n\n onEqualityChanged(event) {\n const { condition } = this.state\n condition.equality = event.target.value\n this.setState({ condition })\n this.setState({didChange: true})\n }\n\n onValueChanged(event) {\n const { condition } = this.state\n condition.value = event.target.value\n this.setState({ condition })\n this.setState({didChange: true})\n }\n\n onInstructionsChanged(event) {\n const { condition } = this.state\n condition.instructions = event.target.value\n this.setState({ condition })\n this.setState({didChange: true})\n }\n\n renderSelect(items) {\n return (\n \n )\n }\n\n renderEqualitySelect(items) {\n return (\n \n )\n } \n\n render () { \n let value_selector = (\n \n )\n if (this.state.item.item_type === 'selection' || this.state.item.item_type === 'multiple_selection') {\n value_selector = this.renderSelect((this.state.item.config || []).map((c) => { return {name: c, value: c} }))\n }\n if (this.state.item.item_type === 'yes_no') {\n value_selector = this.renderSelect([{name: 'Yes', value: 'yes'}, {name: 'No', value: 'no'}])\n }\n\n let equality_selector = (\n \n )\n if (this.state.item.item_type === 'selection' || this.state.item.item_type === 'multiple_selection' || this.state.item.item_type === 'text' || this.state.item.item_type === 'expanded_text') {\n equality_selector = this.renderEqualitySelect([{name: 'Matches', value: 'matches'}, {name: 'Does not contain', value: 'does_not_contain'}])\n }\n if (this.state.item.item_type === 'yes_no') {\n equality_selector = this.renderEqualitySelect([{name: 'Matches', value: 'matches'}])\n }\n if (this.state.item.item_type === 'quantity' || this.state.item.item_type === 'temperature') {\n equality_selector = this.renderEqualitySelect([{name: 'Is less than', value: 'less_than'}, {name: 'Is greater than', value: 'greater_than'}, {name: 'Is equal to', value: 'is_equal_to'}])\n } \n\n return (\n <>\n \n \n
\n
\n \n
\n
\n
\n
Let's set up a condition.
\n
\n
\n
\n
\n
\n \n
\n
\n >\n );\n }\n}\n\nexport default ConditionForm\n","import React from \"react\"\n\nclass ItemPrompt extends React.Component {\n constructor(props) {\n super(props)\n\n this.onAnotherItem = this.onAnotherItem.bind(this)\n this.onNoMoreItems = this.onNoMoreItems.bind(this)\n }\n\n onAnotherItem(event) {\n event.preventDefault()\n\n this.props.onItemPromptResponse(true)\n }\n\n onNoMoreItems(event) {\n event.preventDefault()\n\n this.props.onItemPromptResponse(false)\n }\n\n render () {\n return (\n <>\n \n
\n
\n \n
\n
\n
\n
Would you like to add another item to your checklist?
\n \n \n
\n
\n
\n \n
\n
\n >\n );\n }\n}\n\nexport default ItemPrompt\n","import React from \"react\"\nimport ListView from \"./ListView\"\nimport { formatDateTime } from \"../services/utils\"\n\nclass ListReview extends React.Component {\n constructor(props) {\n super(props)\n\n this.onSave = this.onSave.bind(this)\n this.onEdit = this.onEdit.bind(this)\n this.onAddItem = this.onAddItem.bind(this)\n this.onEditItem = this.onEditItem.bind(this)\n this.onEditCondition = this.onEditCondition.bind(this)\n }\n\n onSave(event) {\n event.preventDefault()\n\n this.props.onSaveList()\n }\n\n onEdit(event) {\n event.preventDefault()\n\n this.props.onEditList()\n }\n\n onAddItem() {\n this.props.onAddItem()\n }\n\n onEditItem(item) {\n this.props.onEditItem(item)\n }\n\n onEditCondition(item, condition) {\n this.props.onEditCondition(item, condition)\n }\n\n renderSchedule() {\n const schedule = this.props.list.schedules_attributes && this.props.list.schedules_attributes[0]\n if (schedule) {\n let days = null\n if (schedule.schedule_type === 'daily') {\n days = (\n \n {schedule.days.split(',').map(day => - {day}
)}\n
\n )\n }\n return (\n <>\n \n Scheduled {schedule.schedule_type}, starting at {formatDateTime(schedule.starts_at)}\n
\n {days}\n >\n )\n }\n }\n\n render () {\n // display checklist\n return (\n <>\n \n
\n
\n \n
\n
\n
\n
{this.props.list.is_template ? \"Review your template.\" : \"Review your checklist.\"}
\n \n \n
\n
\n
\n \n
\n
\n >\n );\n }\n}\n\nexport default ListReview\n","import React from \"react\"\nimport { notify } from \"react-notify-toast\"\nimport List from \"../services/list\"\nimport { Prompt } from \"react-router\"\n\nclass ListForm extends React.Component {\n constructor(props) {\n super(props)\n\n this.state = {\n name: '',\n isTemplate: props.is_template || false,\n always_report: props.always_report || false,\n template_id: null,\n ...props.list,\n lists: [],\n didChange: false\n }\n\n List.templates(props.currentUser)\n .then((json) => {\n this.setState({lists: json})\n })\n .catch((error) => {\n console.log(\"[List.templates] error\", error)\n })\n\n this.onNameChanged = this.onNameChanged.bind(this)\n this.onIsTemplateChanged = this.onIsTemplateChanged.bind(this)\n this.onTemplateIdChanged = this.onTemplateIdChanged.bind(this)\n this.onAlwaysReportChanged = this.onAlwaysReportChanged.bind(this)\n this.onSubmit = this.onSubmit.bind(this)\n }\n\n validate() {\n return !(\n this.state.name == null ||\n this.state.name === ''\n )\n }\n\n onSubmit(event) {\n event.preventDefault()\n\n if (this.validate()) {\n let items = this.props.list ? this.props.list.items_attributes : []\n if (this.state.template_id) {\n if (this.state.id == null) { // Need to prevent template items from being added to existing lists\n const template = this.state.lists.filter(list => list.id === parseInt(this.state.template_id))[0]\n template.items.forEach((item) => {\n items.push({\n prompt: item.prompt,\n config: item.config,\n item_type: item.item_type,\n requires_photo: item.requires_photo,\n conditions_attributes: item.conditions.map((condition) => {\n return {\n equality: condition.equality,\n value: condition.value,\n instructions: condition.instructions\n }\n })\n })\n })\n }\n }\n\n const list = this.props.list || {}\n list.name = this.state.name\n list.is_template = this.state.isTemplate\n list.template_id = this.state.template_id\n list.always_report = this.state.always_report\n list.items_attributes = list.items = items\n this.props.onNext(list)\n } else {\n notify.show('Must specify a checklist name!', 'error')\n }\n }\n\n onNameChanged(event) {\n this.setState({name: event.target.value})\n this.setState({didChange: true})\n }\n\n onIsTemplateChanged(event) {\n this.setState({isTemplate: event.target.checked})\n this.setState({didChange: true})\n }\n\n onTemplateIdChanged(event) {\n this.setState({template_id: event.target.value})\n this.setState({didChange: true})\n }\n\n onAlwaysReportChanged(event) {\n this.setState({always_report: event.target.checked})\n this.setState({didChange: true})\n } \n\n render () {\n return (\n <>\n \n \n
\n
\n \n
\n
\n
\n
{this.state.isTemplate ? \"What is the name of this template?\" : \"What is the name of this checklist?\"}
\n
\n
\n
\n
\n
\n \n
\n
\n >\n );\n }\n}\n\nexport default ListForm\n","import React from 'react';\nimport PageHeader from \"../components/PageHeader\"\n\nconst NotFound = () => (\n\t\n\t
\n\t
\n\t
\n\t
\n\t\t\t\t
\n\t\t\t\t error_outline\n\t\t\t\t
Page Not Found
\n\t\t\t\t \n\t\t\t\t
\n\t
\n\t
\n\t
\n);\n\nexport default NotFound;","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = undefined;\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _class, _temp2;\n\nexports.confirmAlert = confirmAlert;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactDom = require('react-dom');\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof(call) === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar ReactConfirmAlert = (_temp2 = _class = function (_Component) {\n _inherits(ReactConfirmAlert, _Component);\n\n function ReactConfirmAlert() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, ReactConfirmAlert);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = ReactConfirmAlert.__proto__ || Object.getPrototypeOf(ReactConfirmAlert)).call.apply(_ref, [this].concat(args))), _this), _this.handleClickButton = function (button) {\n if (button.onClick) button.onClick();\n\n _this.close();\n }, _this.handleClickOverlay = function (e) {\n var _this$props = _this.props,\n closeOnClickOutside = _this$props.closeOnClickOutside,\n onClickOutside = _this$props.onClickOutside;\n var isClickOutside = e.target === _this.overlay;\n\n if (closeOnClickOutside && isClickOutside) {\n onClickOutside();\n\n _this.close();\n }\n }, _this.close = function () {\n var afterClose = _this.props.afterClose;\n removeBodyClass();\n removeElementReconfirm();\n removeSVGBlurReconfirm(afterClose);\n }, _this.keyboardClose = function (event) {\n var _this$props2 = _this.props,\n closeOnEscape = _this$props2.closeOnEscape,\n onKeypressEscape = _this$props2.onKeypressEscape;\n var isKeyCodeEscape = event.keyCode === 27;\n\n if (closeOnEscape && isKeyCodeEscape) {\n onKeypressEscape(event);\n\n _this.close();\n }\n }, _this.componentDidMount = function () {\n document.addEventListener('keydown', _this.keyboardClose, false);\n }, _this.componentWillUnmount = function () {\n document.removeEventListener('keydown', _this.keyboardClose, false);\n\n _this.props.willUnmount();\n }, _this.renderCustomUI = function () {\n var _this$props3 = _this.props,\n title = _this$props3.title,\n message = _this$props3.message,\n buttons = _this$props3.buttons,\n customUI = _this$props3.customUI;\n var dataCustomUI = {\n title: title,\n message: message,\n buttons: buttons,\n onClose: _this.close\n };\n return customUI(dataCustomUI);\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(ReactConfirmAlert, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props = this.props,\n title = _props.title,\n message = _props.message,\n buttons = _props.buttons,\n childrenElement = _props.childrenElement,\n customUI = _props.customUI,\n overlayClassName = _props.overlayClassName;\n return _react2.default.createElement('div', {\n className: 'react-confirm-alert-overlay ' + overlayClassName,\n ref: function ref(dom) {\n return _this2.overlay = dom;\n },\n onClick: this.handleClickOverlay\n }, _react2.default.createElement('div', {\n className: 'react-confirm-alert'\n }, customUI ? this.renderCustomUI() : _react2.default.createElement('div', {\n className: 'react-confirm-alert-body'\n }, title && _react2.default.createElement('h1', null, title), message, childrenElement(), _react2.default.createElement('div', {\n className: 'react-confirm-alert-button-group'\n }, buttons.map(function (button, i) {\n return _react2.default.createElement('button', {\n key: i,\n onClick: function onClick() {\n return _this2.handleClickButton(button);\n },\n className: button.className\n }, button.label);\n })))));\n }\n }]);\n\n return ReactConfirmAlert;\n}(_react.Component), _class.propTypes = {\n title: _propTypes2.default.string,\n message: _propTypes2.default.string,\n buttons: _propTypes2.default.array.isRequired,\n childrenElement: _propTypes2.default.func,\n customUI: _propTypes2.default.func,\n closeOnClickOutside: _propTypes2.default.bool,\n closeOnEscape: _propTypes2.default.bool,\n willUnmount: _propTypes2.default.func,\n afterClose: _propTypes2.default.func,\n onClickOutside: _propTypes2.default.func,\n onKeypressEscape: _propTypes2.default.func,\n overlayClassName: _propTypes2.default.string\n}, _class.defaultProps = {\n buttons: [{\n label: 'Cancel',\n onClick: function onClick() {\n return null;\n },\n className: null\n }, {\n label: 'Confirm',\n onClick: function onClick() {\n return null;\n },\n className: null\n }],\n childrenElement: function childrenElement() {\n return null;\n },\n closeOnClickOutside: true,\n closeOnEscape: true,\n willUnmount: function willUnmount() {\n return null;\n },\n afterClose: function afterClose() {\n return null;\n },\n onClickOutside: function onClickOutside() {\n return null;\n },\n onKeypressEscape: function onKeypressEscape() {\n return null;\n }\n}, _temp2);\nexports.default = ReactConfirmAlert;\n\nfunction createSVGBlurReconfirm() {\n // If has svg ignore to create the svg\n var svg = document.getElementById('react-confirm-alert-firm-svg');\n if (svg) return;\n var svgNS = 'http://www.w3.org/2000/svg';\n var feGaussianBlur = document.createElementNS(svgNS, 'feGaussianBlur');\n feGaussianBlur.setAttribute('stdDeviation', '0.3');\n var filter = document.createElementNS(svgNS, 'filter');\n filter.setAttribute('id', 'gaussian-blur');\n filter.appendChild(feGaussianBlur);\n var svgElem = document.createElementNS(svgNS, 'svg');\n svgElem.setAttribute('id', 'react-confirm-alert-firm-svg');\n svgElem.setAttribute('class', 'react-confirm-alert-svg');\n svgElem.appendChild(filter);\n document.body.appendChild(svgElem);\n}\n\nfunction removeSVGBlurReconfirm(afterClose) {\n var svg = document.getElementById('react-confirm-alert-firm-svg');\n\n if (svg) {\n svg.parentNode.removeChild(svg);\n }\n\n document.body.children[0].classList.remove('react-confirm-alert-blur');\n afterClose();\n}\n\nfunction createElementReconfirm(properties) {\n var divTarget = document.getElementById('react-confirm-alert');\n\n if (divTarget) {\n // Rerender - the mounted ReactConfirmAlert\n (0, _reactDom.render)(_react2.default.createElement(ReactConfirmAlert, properties), divTarget);\n } else {\n // Mount the ReactConfirmAlert component\n document.body.children[0].classList.add('react-confirm-alert-blur');\n divTarget = document.createElement('div');\n divTarget.id = 'react-confirm-alert';\n document.body.appendChild(divTarget);\n (0, _reactDom.render)(_react2.default.createElement(ReactConfirmAlert, properties), divTarget);\n }\n}\n\nfunction removeElementReconfirm() {\n var target = document.getElementById('react-confirm-alert');\n\n if (target) {\n (0, _reactDom.unmountComponentAtNode)(target);\n target.parentNode.removeChild(target);\n }\n}\n\nfunction addBodyClass() {\n document.body.classList.add('react-confirm-alert-body-element');\n}\n\nfunction removeBodyClass() {\n document.body.classList.remove('react-confirm-alert-body-element');\n}\n\nfunction confirmAlert(properties) {\n addBodyClass();\n createSVGBlurReconfirm();\n createElementReconfirm(properties);\n}","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' || typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function') {\n return;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar g; // This works in non-strict mode\n\ng = function () {\n return this;\n}();\n\ntry {\n // This works if eval is allowed (see CSP)\n g = g || new Function(\"return this\")();\n} catch (e) {\n // This works if the window reference is available\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\") g = window;\n} // g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\n\nmodule.exports = g;","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.providerContextTypes = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _objectWithoutProperties(obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof(call) === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // TODO(jez) 'sync' and 'async' are bad tag names.\n// TODO(jez) What if redux also uses this.context.tag?\n\n\nvar providerContextTypes = exports.providerContextTypes = {\n tag: _propTypes2.default.string.isRequired,\n stripe: _propTypes2.default.object,\n addStripeLoadListener: _propTypes2.default.func\n};\n\nvar getOrCreateStripe = function getOrCreateStripe(apiKey, options) {\n /**\n * Note that this is not meant to be a generic memoization solution.\n * This is specifically a solution for `StripeProvider`s being initialized\n * and destroyed regularly (with the same set of props) when users only\n * use `StripeProvider` for the subtree that contains their checkout form.\n */\n window.Stripe.__cachedInstances = window.Stripe.__cachedInstances || {};\n var cacheKey = 'key=' + apiKey + ' options=' + JSON.stringify(options);\n var stripe = window.Stripe.__cachedInstances[cacheKey] || window.Stripe(apiKey, options);\n window.Stripe.__cachedInstances[cacheKey] = stripe;\n return stripe;\n};\n\nvar ensureStripeShape = function ensureStripeShape(stripe) {\n if (stripe && stripe.elements && stripe.createSource && stripe.createToken && stripe.createPaymentMethod && stripe.handleCardPayment) {\n return stripe;\n } else {\n throw new Error(\"Please pass a valid Stripe object to StripeProvider. You can obtain a Stripe object by calling 'Stripe(...)' with your publishable key.\");\n }\n};\n\nvar Provider = function (_React$Component) {\n _inherits(Provider, _React$Component); // on the other hand: childContextTypes is *required* to use context.\n\n\n function Provider(props) {\n _classCallCheck(this, Provider);\n\n var _this = _possibleConstructorReturn(this, _React$Component.call(this, props));\n\n if (_this.props.apiKey && _this.props.stripe) {\n throw new Error(\"Please pass either 'apiKey' or 'stripe' to StripeProvider, not both.\");\n } else if (_this.props.apiKey) {\n if (!window.Stripe) {\n throw new Error(\"Please load Stripe.js (https://js.stripe.com/v3/) on this page to use react-stripe-elements. If Stripe.js isn't available yet (it's loading asynchronously, or you're using server-side rendering), see https://github.com/stripe/react-stripe-elements#advanced-integrations\");\n } else {\n var _this$props = _this.props,\n _apiKey = _this$props.apiKey,\n _children = _this$props.children,\n options = _objectWithoutProperties(_this$props, ['apiKey', 'children']);\n\n var _stripe = getOrCreateStripe(_apiKey, options);\n\n _this._meta = {\n tag: 'sync',\n stripe: _stripe\n };\n\n _this._register();\n }\n } else if (_this.props.stripe) {\n // If we already have a stripe instance (in the constructor), we can behave synchronously.\n var _stripe2 = ensureStripeShape(_this.props.stripe);\n\n _this._meta = {\n tag: 'sync',\n stripe: _stripe2\n };\n\n _this._register();\n } else if (_this.props.stripe === null) {\n _this._meta = {\n tag: 'async',\n stripe: null\n };\n } else {\n throw new Error(\"Please pass either 'apiKey' or 'stripe' to StripeProvider. If you're using 'stripe' but don't have a Stripe instance yet, pass 'null' explicitly.\");\n }\n\n _this._didWarn = false;\n _this._didWakeUpListeners = false;\n _this._listeners = [];\n return _this;\n } // Even though we're using flow, also use PropTypes so we can take advantage of developer warnings.\n\n\n Provider.prototype.getChildContext = function getChildContext() {\n var _this2 = this; // getChildContext is run after the constructor, so we WILL have access to\n // the initial state.\n //\n // However, context doesn't update in respnse to state changes like you\n // might expect: context is pulled by the child, not pushed by the parent.\n\n\n if (this._meta.tag === 'sync') {\n return {\n tag: 'sync',\n stripe: this._meta.stripe\n };\n } else {\n return {\n tag: 'async',\n addStripeLoadListener: function addStripeLoadListener(fn) {\n if (_this2._meta.stripe) {\n fn(_this2._meta.stripe);\n } else {\n _this2._listeners.push(fn);\n }\n }\n };\n }\n };\n\n Provider.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {\n var apiKeyChanged = this.props.apiKey && prevProps.apiKey && this.props.apiKey !== prevProps.apiKey;\n var stripeInstanceChanged = this.props.stripe && prevProps.stripe && this.props.stripe !== prevProps.stripe;\n\n if (!this._didWarn && (apiKeyChanged || stripeInstanceChanged) && window.console && window.console.error) {\n this._didWarn = true; // eslint-disable-next-line no-console\n\n console.error('StripeProvider does not support changing the apiKey parameter.');\n return;\n }\n\n if (!this._didWakeUpListeners && this.props.stripe) {\n // Wake up the listeners if we've finally been given a StripeShape\n this._didWakeUpListeners = true;\n\n var _stripe3 = ensureStripeShape(this.props.stripe);\n\n this._meta.stripe = _stripe3;\n\n this._register();\n\n this._listeners.forEach(function (fn) {\n fn(_stripe3);\n });\n }\n };\n\n Provider.prototype._register = function _register() {\n var stripe = this._meta.stripe;\n\n if (!stripe || !stripe._registerWrapper) {\n return;\n }\n\n stripe._registerWrapper({\n name: 'react-stripe-elements',\n version: '6.1.2' || null\n });\n };\n\n Provider.prototype.render = function render() {\n return _react2.default.Children.only(this.props.children);\n };\n\n return Provider;\n}(_react2.default.Component);\n\nProvider.propTypes = {\n apiKey: _propTypes2.default.string,\n // PropTypes.object is the only way we can accept a Stripe instance\n // eslint-disable-next-line react/forbid-prop-types\n stripe: _propTypes2.default.object,\n children: _propTypes2.default.node\n};\nProvider.childContextTypes = providerContextTypes;\nProvider.defaultProps = {\n apiKey: undefined,\n stripe: undefined,\n children: null\n};\nexports.default = Provider;","import React from \"react\"\nimport { Link } from \"react-router-dom\"\n\nclass ListAdminLinks extends React.Component {\n constructor(props) {\n super(props)\n\n }\n\n render() {\n return (\n <>\n
\n Edit checklist\n
\n Delete checklist\n
\n >\n )\n }\n}\n\nexport default ListAdminLinks","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar isarray = require('isarray');\n/**\n * Expose `pathToRegexp`.\n */\n\n\nmodule.exports = pathToRegexp;\nmodule.exports.parse = parse;\nmodule.exports.compile = compile;\nmodule.exports.tokensToFunction = tokensToFunction;\nmodule.exports.tokensToRegExp = tokensToRegExp;\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\n\nvar PATH_REGEXP = new RegExp([// Match escaped characters that would otherwise appear in future matches.\n// This allows the user to escape special characters that won't transform.\n'(\\\\\\\\.)', // Match Express-style parameters and un-named parameters with a prefix\n// and optional suffixes. Matches appear as:\n//\n// \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n// \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n// \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n'([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'].join('|'), 'g');\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\n\nfunction parse(str, options) {\n var tokens = [];\n var key = 0;\n var index = 0;\n var path = '';\n var defaultDelimiter = options && options.delimiter || '/';\n var res;\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0];\n var escaped = res[1];\n var offset = res.index;\n path += str.slice(index, offset);\n index = offset + m.length; // Ignore already escaped sequences.\n\n if (escaped) {\n path += escaped[1];\n continue;\n }\n\n var next = str[index];\n var prefix = res[2];\n var name = res[3];\n var capture = res[4];\n var group = res[5];\n var modifier = res[6];\n var asterisk = res[7]; // Push the current path onto the tokens.\n\n if (path) {\n tokens.push(path);\n path = '';\n }\n\n var partial = prefix != null && next != null && next !== prefix;\n var repeat = modifier === '+' || modifier === '*';\n var optional = modifier === '?' || modifier === '*';\n var delimiter = res[2] || defaultDelimiter;\n var pattern = capture || group;\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?'\n });\n } // Match any characters still remaining.\n\n\n if (index < str.length) {\n path += str.substr(index);\n } // If the path exists, push it onto the end.\n\n\n if (path) {\n tokens.push(path);\n }\n\n return tokens;\n}\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\n\n\nfunction compile(str, options) {\n return tokensToFunction(parse(str, options), options);\n}\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\n\n\nfunction encodeURIComponentPretty(str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase();\n });\n}\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\n\n\nfunction encodeAsterisk(str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase();\n });\n}\n/**\n * Expose a method for transforming tokens into the path function.\n */\n\n\nfunction tokensToFunction(tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length); // Compile all the patterns before compilation.\n\n for (var i = 0; i < tokens.length; i++) {\n if (_typeof(tokens[i]) === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options));\n }\n }\n\n return function (obj, opts) {\n var path = '';\n var data = obj || {};\n var options = opts || {};\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent;\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n path += token;\n continue;\n }\n\n var value = data[token.name];\n var segment;\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix;\n }\n\n continue;\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined');\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`');\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue;\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty');\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j]);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`');\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment;\n }\n\n continue;\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"');\n }\n\n path += token.prefix + segment;\n }\n\n return path;\n };\n}\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\n\n\nfunction escapeString(str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1');\n}\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\n\n\nfunction escapeGroup(group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1');\n}\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\n\n\nfunction attachKeys(re, keys) {\n re.keys = keys;\n return re;\n}\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\n\n\nfunction flags(options) {\n return options && options.sensitive ? '' : 'i';\n}\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\n\n\nfunction regexpToRegexp(path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g);\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n });\n }\n }\n\n return attachKeys(path, keys);\n}\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\n\n\nfunction arrayToRegexp(path, keys, options) {\n var parts = [];\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source);\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options));\n return attachKeys(regexp, keys);\n}\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\n\n\nfunction stringToRegexp(path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options);\n}\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\n\n\nfunction tokensToRegExp(tokens, keys, options) {\n if (!isarray(keys)) {\n options =\n /** @type {!Object} */\n keys || options;\n keys = [];\n }\n\n options = options || {};\n var strict = options.strict;\n var end = options.end !== false;\n var route = ''; // Iterate over the tokens and create our regexp string.\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n route += escapeString(token);\n } else {\n var prefix = escapeString(token.prefix);\n var capture = '(?:' + token.pattern + ')';\n keys.push(token);\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*';\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?';\n } else {\n capture = prefix + '(' + capture + ')?';\n }\n } else {\n capture = prefix + '(' + capture + ')';\n }\n\n route += capture;\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/');\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter; // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?';\n }\n\n if (end) {\n route += '$';\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)';\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys);\n}\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\n\n\nfunction pathToRegexp(path, keys, options) {\n if (!isarray(keys)) {\n options =\n /** @type {!Object} */\n keys || options;\n keys = [];\n }\n\n options = options || {};\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path,\n /** @type {!Array} */\n keys);\n }\n\n if (isarray(path)) {\n return arrayToRegexp(\n /** @type {!Array} */\n path,\n /** @type {!Array} */\n keys, options);\n }\n\n return stringToRegexp(\n /** @type {string} */\n path,\n /** @type {!Array} */\n keys, options);\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n!function (root, factory) {\n \"object\" == (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) && \"object\" == (typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) ? module.exports = factory(require(\"react\")) : \"function\" == typeof define && define.amd ? define([\"react\"], factory) : \"object\" == (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) ? exports.MediaQuery = factory(require(\"react\")) : root.MediaQuery = factory(root.React);\n}(\"undefined\" != typeof self ? self : this, function (__WEBPACK_EXTERNAL_MODULE_1__) {\n return function (modules) {\n function __webpack_require__(moduleId) {\n if (installedModules[moduleId]) return installedModules[moduleId].exports;\n var module = installedModules[moduleId] = {\n i: moduleId,\n l: !1,\n exports: {}\n };\n return modules[moduleId].call(module.exports, module, module.exports, __webpack_require__), module.l = !0, module.exports;\n }\n\n var installedModules = {};\n return __webpack_require__.m = modules, __webpack_require__.c = installedModules, __webpack_require__.d = function (exports, name, getter) {\n __webpack_require__.o(exports, name) || Object.defineProperty(exports, name, {\n configurable: !1,\n enumerable: !0,\n get: getter\n });\n }, __webpack_require__.n = function (module) {\n var getter = module && module.__esModule ? function () {\n return module.default;\n } : function () {\n return module;\n };\n return __webpack_require__.d(getter, \"a\", getter), getter;\n }, __webpack_require__.o = function (object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n }, __webpack_require__.p = \"\", __webpack_require__(__webpack_require__.s = 7);\n }([function (module, exports, __webpack_require__) {\n \"use strict\";\n\n var __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n default: mod\n };\n };\n\n Object.defineProperty(exports, \"__esModule\", {\n value: !0\n });\n\n var react_1 = __importDefault(__webpack_require__(1)),\n matchmediaquery_1 = __importDefault(__webpack_require__(8)),\n hyphenate_style_name_1 = __importDefault(__webpack_require__(2)),\n shallow_equal_1 = __webpack_require__(10),\n toQuery_1 = __importDefault(__webpack_require__(3)),\n Context_1 = __importDefault(__webpack_require__(6)),\n makeQuery = function makeQuery(settings) {\n return settings.query || (0, toQuery_1.default)(settings);\n },\n hyphenateKeys = function hyphenateKeys(obj) {\n if (!obj) return null;\n var keys = Object.keys(obj);\n return 0 === keys.length ? null : keys.reduce(function (result, key) {\n return result[(0, hyphenate_style_name_1.default)(key)] = obj[key], result;\n }, {});\n },\n useIsUpdate = function useIsUpdate() {\n var ref = react_1.default.useRef(!1);\n return react_1.default.useEffect(function () {\n ref.current = !0;\n }, []), ref.current;\n },\n useDevice = function useDevice(deviceFromProps) {\n var deviceFromContext = react_1.default.useContext(Context_1.default),\n getDevice = function getDevice() {\n return hyphenateKeys(deviceFromProps) || hyphenateKeys(deviceFromContext) || {};\n },\n _a = react_1.default.useState(getDevice),\n device = _a[0],\n setDevice = _a[1];\n\n return react_1.default.useEffect(function () {\n var newDevice = getDevice();\n (0, shallow_equal_1.shallowEqualObjects)(device, newDevice) || setDevice(newDevice);\n }, [deviceFromProps, deviceFromContext]), device;\n },\n useQuery = function useQuery(settings) {\n var getQuery = function getQuery() {\n return makeQuery(settings);\n },\n _a = react_1.default.useState(getQuery),\n query = _a[0],\n setQuery = _a[1];\n\n return react_1.default.useEffect(function () {\n var newQuery = getQuery();\n query !== newQuery && setQuery(newQuery);\n }, [settings]), query;\n },\n useMatchMedia = function useMatchMedia(query, device) {\n var getMatchMedia = function getMatchMedia() {\n return (0, matchmediaquery_1.default)(query, device);\n },\n _a = react_1.default.useState(getMatchMedia),\n mq = _a[0],\n setMq = _a[1],\n isUpdate = useIsUpdate();\n\n return react_1.default.useEffect(function () {\n if (isUpdate) {\n var newMq_1 = getMatchMedia();\n return setMq(newMq_1), function () {\n newMq_1 && newMq_1.dispose();\n };\n }\n }, [query, device]), mq;\n },\n useMatches = function useMatches(mediaQuery) {\n var _a = react_1.default.useState(mediaQuery.matches),\n matches = _a[0],\n setMatches = _a[1];\n\n return react_1.default.useEffect(function () {\n var updateMatches = function updateMatches() {\n setMatches(mediaQuery.matches);\n };\n\n return mediaQuery.addListener(updateMatches), updateMatches(), function () {\n mediaQuery.removeListener(updateMatches);\n };\n }, [mediaQuery]), matches;\n },\n useMediaQuery = function useMediaQuery(settings, device, onChange) {\n var deviceSettings = useDevice(device),\n query = useQuery(settings);\n if (!query) throw new Error(\"Invalid or missing MediaQuery!\");\n var mq = useMatchMedia(query, deviceSettings),\n matches = useMatches(mq),\n isUpdate = useIsUpdate();\n return react_1.default.useEffect(function () {\n isUpdate && onChange && onChange(matches);\n }, [matches]), react_1.default.useEffect(function () {\n return function () {\n mq && mq.dispose();\n };\n }, []), matches;\n };\n\n exports.default = useMediaQuery;\n }, function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n }, function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n function toHyphenLower(match) {\n return \"-\" + match.toLowerCase();\n }\n\n function hyphenateStyleName(name) {\n if (cache.hasOwnProperty(name)) return cache[name];\n var hName = name.replace(uppercasePattern, toHyphenLower);\n return cache[name] = msPattern.test(hName) ? \"-\" + hName : hName;\n }\n\n Object.defineProperty(__webpack_exports__, \"__esModule\", {\n value: !0\n });\n var uppercasePattern = /[A-Z]/g,\n msPattern = /^ms-/,\n cache = {};\n __webpack_exports__.default = hyphenateStyleName;\n }, function (module, exports, __webpack_require__) {\n \"use strict\";\n\n var __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n default: mod\n };\n };\n\n Object.defineProperty(exports, \"__esModule\", {\n value: !0\n });\n\n var hyphenate_style_name_1 = __importDefault(__webpack_require__(2)),\n mediaQuery_1 = __importDefault(__webpack_require__(11)),\n negate = function negate(cond) {\n return \"not \" + cond;\n },\n keyVal = function keyVal(k, v) {\n var realKey = (0, hyphenate_style_name_1.default)(k);\n return \"number\" == typeof v && (v += \"px\"), !0 === v ? realKey : !1 === v ? negate(realKey) : \"(\" + realKey + \": \" + v + \")\";\n },\n join = function join(conds) {\n return conds.join(\" and \");\n },\n toQuery = function toQuery(obj) {\n var rules = [];\n return Object.keys(mediaQuery_1.default.all).forEach(function (k) {\n var v = obj[k];\n null != v && rules.push(keyVal(k, v));\n }), join(rules);\n };\n\n exports.default = toQuery;\n }, function (module, exports, __webpack_require__) {\n \"use strict\";\n\n module.exports = __webpack_require__(13);\n }, function (module, exports, __webpack_require__) {\n \"use strict\";\n\n module.exports = \"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\";\n }, function (module, exports, __webpack_require__) {\n \"use strict\";\n\n var __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n default: mod\n };\n };\n\n Object.defineProperty(exports, \"__esModule\", {\n value: !0\n });\n\n var react_1 = __importDefault(__webpack_require__(1)),\n Context = react_1.default.createContext({});\n\n exports.default = Context;\n }, function (module, exports, __webpack_require__) {\n \"use strict\";\n\n var __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n default: mod\n };\n };\n\n Object.defineProperty(exports, \"__esModule\", {\n value: !0\n }), exports.Context = exports.toQuery = exports.useMediaQuery = exports.default = void 0;\n\n var useMediaQuery_1 = __importDefault(__webpack_require__(0));\n\n exports.useMediaQuery = useMediaQuery_1.default;\n\n var Component_1 = __importDefault(__webpack_require__(17));\n\n exports.default = Component_1.default;\n\n var toQuery_1 = __importDefault(__webpack_require__(3));\n\n exports.toQuery = toQuery_1.default;\n\n var Context_1 = __importDefault(__webpack_require__(6));\n\n exports.Context = Context_1.default;\n }, function (module, exports, __webpack_require__) {\n \"use strict\";\n\n function Mql(query, values, forceStatic) {\n function addListener(listener) {\n mql && mql.addListener(listener);\n }\n\n function removeListener(listener) {\n mql && mql.removeListener(listener);\n }\n\n function update(evt) {\n self.matches = evt.matches, self.media = evt.media;\n }\n\n function dispose() {\n mql && mql.removeListener(update);\n }\n\n var self = this;\n\n if (dynamicMatch && !forceStatic) {\n var mql = dynamicMatch.call(window, query);\n this.matches = mql.matches, this.media = mql.media, mql.addListener(update);\n } else this.matches = staticMatch(query, values), this.media = query;\n\n this.addListener = addListener, this.removeListener = removeListener, this.dispose = dispose;\n }\n\n function matchMedia(query, values, forceStatic) {\n return new Mql(query, values, forceStatic);\n }\n\n var staticMatch = __webpack_require__(9).match,\n dynamicMatch = \"undefined\" != typeof window ? window.matchMedia : null;\n\n module.exports = matchMedia;\n }, function (module, exports, __webpack_require__) {\n \"use strict\";\n\n function matchQuery(mediaQuery, values) {\n return parseQuery(mediaQuery).some(function (query) {\n var inverse = query.inverse,\n typeMatch = \"all\" === query.type || values.type === query.type;\n if (typeMatch && inverse || !typeMatch && !inverse) return !1;\n var expressionsMatch = query.expressions.every(function (expression) {\n var feature = expression.feature,\n modifier = expression.modifier,\n expValue = expression.value,\n value = values[feature];\n if (!value) return !1;\n\n switch (feature) {\n case \"orientation\":\n case \"scan\":\n return value.toLowerCase() === expValue.toLowerCase();\n\n case \"width\":\n case \"height\":\n case \"device-width\":\n case \"device-height\":\n expValue = toPx(expValue), value = toPx(value);\n break;\n\n case \"resolution\":\n expValue = toDpi(expValue), value = toDpi(value);\n break;\n\n case \"aspect-ratio\":\n case \"device-aspect-ratio\":\n case \"device-pixel-ratio\":\n expValue = toDecimal(expValue), value = toDecimal(value);\n break;\n\n case \"grid\":\n case \"color\":\n case \"color-index\":\n case \"monochrome\":\n expValue = parseInt(expValue, 10) || 1, value = parseInt(value, 10) || 0;\n }\n\n switch (modifier) {\n case \"min\":\n return value >= expValue;\n\n case \"max\":\n return value <= expValue;\n\n default:\n return value === expValue;\n }\n });\n return expressionsMatch && !inverse || !expressionsMatch && inverse;\n });\n }\n\n function parseQuery(mediaQuery) {\n return mediaQuery.split(\",\").map(function (query) {\n query = query.trim();\n var captures = query.match(RE_MEDIA_QUERY),\n modifier = captures[1],\n type = captures[2],\n expressions = captures[3] || \"\",\n parsed = {};\n return parsed.inverse = !!modifier && \"not\" === modifier.toLowerCase(), parsed.type = type ? type.toLowerCase() : \"all\", expressions = expressions.match(/\\([^\\)]+\\)/g) || [], parsed.expressions = expressions.map(function (expression) {\n var captures = expression.match(RE_MQ_EXPRESSION),\n feature = captures[1].toLowerCase().match(RE_MQ_FEATURE);\n return {\n modifier: feature[1],\n feature: feature[2],\n value: captures[2]\n };\n }), parsed;\n });\n }\n\n function toDecimal(ratio) {\n var numbers,\n decimal = Number(ratio);\n return decimal || (numbers = ratio.match(/^(\\d+)\\s*\\/\\s*(\\d+)$/), decimal = numbers[1] / numbers[2]), decimal;\n }\n\n function toDpi(resolution) {\n var value = parseFloat(resolution);\n\n switch (String(resolution).match(RE_RESOLUTION_UNIT)[1]) {\n case \"dpcm\":\n return value / 2.54;\n\n case \"dppx\":\n return 96 * value;\n\n default:\n return value;\n }\n }\n\n function toPx(length) {\n var value = parseFloat(length);\n\n switch (String(length).match(RE_LENGTH_UNIT)[1]) {\n case \"em\":\n case \"rem\":\n return 16 * value;\n\n case \"cm\":\n return 96 * value / 2.54;\n\n case \"mm\":\n return 96 * value / 2.54 / 10;\n\n case \"in\":\n return 96 * value;\n\n case \"pt\":\n return 72 * value;\n\n case \"pc\":\n return 72 * value / 12;\n\n default:\n return value;\n }\n }\n\n exports.match = matchQuery, exports.parse = parseQuery;\n var RE_MEDIA_QUERY = /(?:(only|not)?\\s*([^\\s\\(\\)]+)(?:\\s*and)?\\s*)?(.+)?/i,\n RE_MQ_EXPRESSION = /\\(\\s*([^\\s\\:\\)]+)\\s*(?:\\:\\s*([^\\s\\)]+))?\\s*\\)/,\n RE_MQ_FEATURE = /^(?:(min|max)-)?(.+)/,\n RE_LENGTH_UNIT = /(em|rem|px|cm|mm|in|pt|pc)?$/,\n RE_RESOLUTION_UNIT = /(dpi|dpcm|dppx)?$/;\n }, function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n function shallowEqualObjects(objA, objB) {\n if (objA === objB) return !0;\n if (!objA || !objB) return !1;\n var aKeys = Object.keys(objA),\n bKeys = Object.keys(objB),\n len = aKeys.length;\n if (bKeys.length !== len) return !1;\n\n for (var i = 0; i < len; i++) {\n var key = aKeys[i];\n if (objA[key] !== objB[key] || !Object.prototype.hasOwnProperty.call(objB, key)) return !1;\n }\n\n return !0;\n }\n\n function shallowEqualArrays(arrA, arrB) {\n if (arrA === arrB) return !0;\n if (!arrA || !arrB) return !1;\n var len = arrA.length;\n if (arrB.length !== len) return !1;\n\n for (var i = 0; i < len; i++) {\n if (arrA[i] !== arrB[i]) return !1;\n }\n\n return !0;\n }\n\n Object.defineProperty(__webpack_exports__, \"__esModule\", {\n value: !0\n }), __webpack_require__.d(__webpack_exports__, \"shallowEqualArrays\", function () {\n return shallowEqualArrays;\n }), __webpack_require__.d(__webpack_exports__, \"shallowEqualObjects\", function () {\n return shallowEqualObjects;\n });\n }, function (module, exports, __webpack_require__) {\n \"use strict\";\n\n var __assign = this && this.__assign || function () {\n return __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n Object.prototype.hasOwnProperty.call(s, p) && (t[p] = s[p]);\n }\n }\n\n return t;\n }, __assign.apply(this, arguments);\n },\n __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0 && (t[p] = s[p]);\n }\n\n if (null != s && \"function\" == typeof Object.getOwnPropertySymbols) for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]) && (t[p[i]] = s[p[i]]);\n }\n return t;\n },\n __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n default: mod\n };\n };\n\n Object.defineProperty(exports, \"__esModule\", {\n value: !0\n });\n\n var prop_types_1 = __importDefault(__webpack_require__(12)),\n stringOrNumber = prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number]),\n types = {\n all: prop_types_1.default.bool,\n grid: prop_types_1.default.bool,\n aural: prop_types_1.default.bool,\n braille: prop_types_1.default.bool,\n handheld: prop_types_1.default.bool,\n print: prop_types_1.default.bool,\n projection: prop_types_1.default.bool,\n screen: prop_types_1.default.bool,\n tty: prop_types_1.default.bool,\n tv: prop_types_1.default.bool,\n embossed: prop_types_1.default.bool\n },\n matchers = {\n orientation: prop_types_1.default.oneOf([\"portrait\", \"landscape\"]),\n scan: prop_types_1.default.oneOf([\"progressive\", \"interlace\"]),\n aspectRatio: prop_types_1.default.string,\n deviceAspectRatio: prop_types_1.default.string,\n height: stringOrNumber,\n deviceHeight: stringOrNumber,\n width: stringOrNumber,\n deviceWidth: stringOrNumber,\n color: prop_types_1.default.bool,\n colorIndex: prop_types_1.default.bool,\n monochrome: prop_types_1.default.bool,\n resolution: stringOrNumber,\n type: Object.keys(types)\n },\n featureMatchers = __rest(matchers, [\"type\"]),\n features = __assign({\n minAspectRatio: prop_types_1.default.string,\n maxAspectRatio: prop_types_1.default.string,\n minDeviceAspectRatio: prop_types_1.default.string,\n maxDeviceAspectRatio: prop_types_1.default.string,\n minHeight: stringOrNumber,\n maxHeight: stringOrNumber,\n minDeviceHeight: stringOrNumber,\n maxDeviceHeight: stringOrNumber,\n minWidth: stringOrNumber,\n maxWidth: stringOrNumber,\n minDeviceWidth: stringOrNumber,\n maxDeviceWidth: stringOrNumber,\n minColor: prop_types_1.default.number,\n maxColor: prop_types_1.default.number,\n minColorIndex: prop_types_1.default.number,\n maxColorIndex: prop_types_1.default.number,\n minMonochrome: prop_types_1.default.number,\n maxMonochrome: prop_types_1.default.number,\n minResolution: stringOrNumber,\n maxResolution: stringOrNumber\n }, featureMatchers),\n all = __assign(__assign({}, types), features);\n\n exports.default = {\n all: all,\n types: types,\n matchers: matchers,\n features: features\n };\n }, function (module, exports, __webpack_require__) {\n var ReactIs = __webpack_require__(4);\n\n module.exports = __webpack_require__(14)(ReactIs.isElement, !0);\n }, function (module, exports, __webpack_require__) {\n \"use strict\";\n\n !function () {\n function isValidElementType(type) {\n return \"string\" == typeof type || \"function\" == typeof type || type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || \"object\" == _typeof(type) && null !== type && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n }\n\n function typeOf(object) {\n if (\"object\" == _typeof(object) && null !== object) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n }\n\n function isAsyncMode(object) {\n return hasWarnedAboutDeprecatedIsAsyncMode || (hasWarnedAboutDeprecatedIsAsyncMode = !0, console.warn(\"The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 17+. Update your code to use ReactIs.isConcurrentMode() instead. It has the exact same API.\")), isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n }\n\n function isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n }\n\n function isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n }\n\n function isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n }\n\n function isElement(object) {\n return \"object\" == _typeof(object) && null !== object && object.$$typeof === REACT_ELEMENT_TYPE;\n }\n\n function isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n }\n\n function isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n }\n\n function isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n }\n\n function isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n }\n\n function isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n }\n\n function isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n }\n\n function isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n }\n\n function isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n }\n\n var hasSymbol = \"function\" == typeof Symbol && Symbol.for,\n REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for(\"react.element\") : 60103,\n REACT_PORTAL_TYPE = hasSymbol ? Symbol.for(\"react.portal\") : 60106,\n REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for(\"react.fragment\") : 60107,\n REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for(\"react.strict_mode\") : 60108,\n REACT_PROFILER_TYPE = hasSymbol ? Symbol.for(\"react.profiler\") : 60114,\n REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for(\"react.provider\") : 60109,\n REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for(\"react.context\") : 60110,\n REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for(\"react.async_mode\") : 60111,\n REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for(\"react.concurrent_mode\") : 60111,\n REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for(\"react.forward_ref\") : 60112,\n REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for(\"react.suspense\") : 60113,\n REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for(\"react.suspense_list\") : 60120,\n REACT_MEMO_TYPE = hasSymbol ? Symbol.for(\"react.memo\") : 60115,\n REACT_LAZY_TYPE = hasSymbol ? Symbol.for(\"react.lazy\") : 60116,\n REACT_BLOCK_TYPE = hasSymbol ? Symbol.for(\"react.block\") : 60121,\n REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for(\"react.fundamental\") : 60117,\n REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for(\"react.responder\") : 60118,\n REACT_SCOPE_TYPE = hasSymbol ? Symbol.for(\"react.scope\") : 60119,\n AsyncMode = REACT_ASYNC_MODE_TYPE,\n ConcurrentMode = REACT_CONCURRENT_MODE_TYPE,\n ContextConsumer = REACT_CONTEXT_TYPE,\n ContextProvider = REACT_PROVIDER_TYPE,\n Element = REACT_ELEMENT_TYPE,\n ForwardRef = REACT_FORWARD_REF_TYPE,\n Fragment = REACT_FRAGMENT_TYPE,\n Lazy = REACT_LAZY_TYPE,\n Memo = REACT_MEMO_TYPE,\n Portal = REACT_PORTAL_TYPE,\n Profiler = REACT_PROFILER_TYPE,\n StrictMode = REACT_STRICT_MODE_TYPE,\n Suspense = REACT_SUSPENSE_TYPE,\n hasWarnedAboutDeprecatedIsAsyncMode = !1;\n exports.AsyncMode = AsyncMode, exports.ConcurrentMode = ConcurrentMode, exports.ContextConsumer = ContextConsumer, exports.ContextProvider = ContextProvider, exports.Element = Element, exports.ForwardRef = ForwardRef, exports.Fragment = Fragment, exports.Lazy = Lazy, exports.Memo = Memo, exports.Portal = Portal, exports.Profiler = Profiler, exports.StrictMode = StrictMode, exports.Suspense = Suspense, exports.isAsyncMode = isAsyncMode, exports.isConcurrentMode = isConcurrentMode, exports.isContextConsumer = isContextConsumer, exports.isContextProvider = isContextProvider, exports.isElement = isElement, exports.isForwardRef = isForwardRef, exports.isFragment = isFragment, exports.isLazy = isLazy, exports.isMemo = isMemo, exports.isPortal = isPortal, exports.isProfiler = isProfiler, exports.isStrictMode = isStrictMode, exports.isSuspense = isSuspense, exports.isValidElementType = isValidElementType, exports.typeOf = typeOf;\n }();\n }, function (module, exports, __webpack_require__) {\n \"use strict\";\n\n function emptyFunctionThatReturnsNull() {\n return null;\n }\n\n var ReactIs = __webpack_require__(4),\n assign = __webpack_require__(15),\n ReactPropTypesSecret = __webpack_require__(5),\n checkPropTypes = __webpack_require__(16),\n has = Function.call.bind(Object.prototype.hasOwnProperty),\n printWarning = function printWarning() {};\n\n printWarning = function printWarning(text) {\n var message = \"Warning: \" + text;\n \"undefined\" != typeof console && console.error(message);\n\n try {\n throw new Error(message);\n } catch (x) {}\n }, module.exports = function (isValidElement, throwOnDirectAccess) {\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (\"function\" == typeof iteratorFn) return iteratorFn;\n }\n\n function is(x, y) {\n return x === y ? 0 !== x || 1 / x == 1 / y : x !== x && y !== y;\n }\n\n function PropTypeError(message) {\n this.message = message, this.stack = \"\";\n }\n\n function createChainableTypeChecker(validate) {\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n if (componentName = componentName || ANONYMOUS, propFullName = propFullName || propName, secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n var err = new Error(\"Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types\");\n throw err.name = \"Invariant Violation\", err;\n }\n\n if (\"undefined\" != typeof console) {\n var cacheKey = componentName + \":\" + propName;\n !manualPropTypeCallCache[cacheKey] && manualPropTypeWarningCount < 3 && (printWarning(\"You are manually calling a React.PropTypes validation function for the `\" + propFullName + \"` prop on `\" + componentName + \"`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details.\"), manualPropTypeCallCache[cacheKey] = !0, manualPropTypeWarningCount++);\n }\n }\n\n return null == props[propName] ? isRequired ? new PropTypeError(null === props[propName] ? \"The \" + location + \" `\" + propFullName + \"` is marked as required in `\" + componentName + \"`, but its value is `null`.\" : \"The \" + location + \" `\" + propFullName + \"` is marked as required in `\" + componentName + \"`, but its value is `undefined`.\") : null : validate(props, propName, componentName, location, propFullName);\n }\n\n var manualPropTypeCallCache = {},\n manualPropTypeWarningCount = 0,\n chainedCheckType = checkType.bind(null, !1);\n return chainedCheckType.isRequired = checkType.bind(null, !0), chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n if (getPropType(propValue) !== expectedType) return new PropTypeError(\"Invalid \" + location + \" `\" + propFullName + \"` of type `\" + getPreciseType(propValue) + \"` supplied to `\" + componentName + \"`, expected `\" + expectedType + \"`.\");\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (\"function\" != typeof typeChecker) return new PropTypeError(\"Property `\" + propFullName + \"` of component `\" + componentName + \"` has invalid PropType notation inside arrayOf.\");\n var propValue = props[propName];\n\n if (!Array.isArray(propValue)) {\n return new PropTypeError(\"Invalid \" + location + \" `\" + propFullName + \"` of type `\" + getPropType(propValue) + \"` supplied to `\" + componentName + \"`, expected an array.\");\n }\n\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + \"[\" + i + \"]\", ReactPropTypesSecret);\n if (error instanceof Error) return error;\n }\n\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n return new PropTypeError(\"Invalid \" + location + \" `\" + propFullName + \"` of type `\" + getClassName(props[propName]) + \"` supplied to `\" + componentName + \"`, expected instance of `\" + expectedClassName + \"`.\");\n }\n\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n function validate(props, propName, componentName, location, propFullName) {\n for (var propValue = props[propName], i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) return null;\n }\n\n var valuesString = JSON.stringify(expectedValues, function (key, value) {\n return \"symbol\" === getPreciseType(value) ? String(value) : value;\n });\n return new PropTypeError(\"Invalid \" + location + \" `\" + propFullName + \"` of value `\" + String(propValue) + \"` supplied to `\" + componentName + \"`, expected one of \" + valuesString + \".\");\n }\n\n return Array.isArray(expectedValues) ? createChainableTypeChecker(validate) : (printWarning(arguments.length > 1 ? \"Invalid arguments supplied to oneOf, expected an array, got \" + arguments.length + \" arguments. A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).\" : \"Invalid argument supplied to oneOf, expected an array.\"), emptyFunctionThatReturnsNull);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (\"function\" != typeof typeChecker) return new PropTypeError(\"Property `\" + propFullName + \"` of component `\" + componentName + \"` has invalid PropType notation inside objectOf.\");\n var propValue = props[propName],\n propType = getPropType(propValue);\n if (\"object\" !== propType) return new PropTypeError(\"Invalid \" + location + \" `\" + propFullName + \"` of type `\" + propType + \"` supplied to `\" + componentName + \"`, expected an object.\");\n\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + \".\" + key, ReactPropTypesSecret);\n if (error instanceof Error) return error;\n }\n }\n\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n if (null == (0, arrayOfTypeCheckers[i])(props, propName, componentName, location, propFullName, ReactPropTypesSecret)) return null;\n }\n\n return new PropTypeError(\"Invalid \" + location + \" `\" + propFullName + \"` supplied to `\" + componentName + \"`.\");\n }\n\n if (!Array.isArray(arrayOfTypeCheckers)) return printWarning(\"Invalid argument supplied to oneOfType, expected an instance of array.\"), emptyFunctionThatReturnsNull;\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (\"function\" != typeof checker) return printWarning(\"Invalid argument supplied to oneOfType. Expected an array of check functions, but received \" + getPostfixForTypeWarning(checker) + \" at index \" + i + \".\"), emptyFunctionThatReturnsNull;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName],\n propType = getPropType(propValue);\n if (\"object\" !== propType) return new PropTypeError(\"Invalid \" + location + \" `\" + propFullName + \"` of type `\" + propType + \"` supplied to `\" + componentName + \"`, expected `object`.\");\n\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n\n if (checker) {\n var error = checker(propValue, key, componentName, location, propFullName + \".\" + key, ReactPropTypesSecret);\n if (error) return error;\n }\n }\n\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName],\n propType = getPropType(propValue);\n if (\"object\" !== propType) return new PropTypeError(\"Invalid \" + location + \" `\" + propFullName + \"` of type `\" + propType + \"` supplied to `\" + componentName + \"`, expected `object`.\");\n var allKeys = assign({}, props[propName], shapeTypes);\n\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) return new PropTypeError(\"Invalid \" + location + \" `\" + propFullName + \"` key `\" + key + \"` supplied to `\" + componentName + \"`.\\nBad object: \" + JSON.stringify(props[propName], null, \" \") + \"\\nValid keys: \" + JSON.stringify(Object.keys(shapeTypes), null, \" \"));\n var error = checker(propValue, key, componentName, location, propFullName + \".\" + key, ReactPropTypesSecret);\n if (error) return error;\n }\n\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (_typeof(propValue)) {\n case \"number\":\n case \"string\":\n case \"undefined\":\n return !0;\n\n case \"boolean\":\n return !propValue;\n\n case \"object\":\n if (Array.isArray(propValue)) return propValue.every(isNode);\n if (null === propValue || isValidElement(propValue)) return !0;\n var iteratorFn = getIteratorFn(propValue);\n if (!iteratorFn) return !1;\n var step,\n iterator = iteratorFn.call(propValue);\n\n if (iteratorFn !== propValue.entries) {\n for (; !(step = iterator.next()).done;) {\n if (!isNode(step.value)) return !1;\n }\n } else for (; !(step = iterator.next()).done;) {\n var entry = step.value;\n if (entry && !isNode(entry[1])) return !1;\n }\n\n return !0;\n\n default:\n return !1;\n }\n }\n\n function isSymbol(propType, propValue) {\n return \"symbol\" === propType || !!propValue && (\"Symbol\" === propValue[\"@@toStringTag\"] || \"function\" == typeof Symbol && propValue instanceof Symbol);\n }\n\n function getPropType(propValue) {\n var propType = _typeof(propValue);\n\n return Array.isArray(propValue) ? \"array\" : propValue instanceof RegExp ? \"object\" : isSymbol(propType, propValue) ? \"symbol\" : propType;\n }\n\n function getPreciseType(propValue) {\n if (void 0 === propValue || null === propValue) return \"\" + propValue;\n var propType = getPropType(propValue);\n\n if (\"object\" === propType) {\n if (propValue instanceof Date) return \"date\";\n if (propValue instanceof RegExp) return \"regexp\";\n }\n\n return propType;\n }\n\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n\n switch (type) {\n case \"array\":\n case \"object\":\n return \"an \" + type;\n\n case \"boolean\":\n case \"date\":\n case \"regexp\":\n return \"a \" + type;\n\n default:\n return type;\n }\n }\n\n function getClassName(propValue) {\n return propValue.constructor && propValue.constructor.name ? propValue.constructor.name : ANONYMOUS;\n }\n\n var ITERATOR_SYMBOL = \"function\" == typeof Symbol && Symbol.iterator,\n FAUX_ITERATOR_SYMBOL = \"@@iterator\",\n ANONYMOUS = \"<>\",\n ReactPropTypes = {\n array: createPrimitiveTypeChecker(\"array\"),\n bool: createPrimitiveTypeChecker(\"boolean\"),\n func: createPrimitiveTypeChecker(\"function\"),\n number: createPrimitiveTypeChecker(\"number\"),\n object: createPrimitiveTypeChecker(\"object\"),\n string: createPrimitiveTypeChecker(\"string\"),\n symbol: createPrimitiveTypeChecker(\"symbol\"),\n any: function () {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }(),\n arrayOf: createArrayOfTypeChecker,\n element: function () {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n\n if (!isValidElement(propValue)) {\n return new PropTypeError(\"Invalid \" + location + \" `\" + propFullName + \"` of type `\" + getPropType(propValue) + \"` supplied to `\" + componentName + \"`, expected a single ReactElement.\");\n }\n\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }(),\n elementType: function () {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n\n if (!ReactIs.isValidElementType(propValue)) {\n return new PropTypeError(\"Invalid \" + location + \" `\" + propFullName + \"` of type `\" + getPropType(propValue) + \"` supplied to `\" + componentName + \"`, expected a single ReactElement type.\");\n }\n\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }(),\n instanceOf: createInstanceTypeChecker,\n node: function () {\n function validate(props, propName, componentName, location, propFullName) {\n return isNode(props[propName]) ? null : new PropTypeError(\"Invalid \" + location + \" `\" + propFullName + \"` supplied to `\" + componentName + \"`, expected a ReactNode.\");\n }\n\n return createChainableTypeChecker(validate);\n }(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker\n };\n return PropTypeError.prototype = Error.prototype, ReactPropTypes.checkPropTypes = checkPropTypes, ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache, ReactPropTypes.PropTypes = ReactPropTypes, ReactPropTypes;\n };\n }, function (module, exports, __webpack_require__) {\n \"use strict\";\n\n function toObject(val) {\n if (null === val || void 0 === val) throw new TypeError(\"Object.assign cannot be called with null or undefined\");\n return Object(val);\n }\n /*\n object-assign\n (c) Sindre Sorhus\n @license MIT\n */\n\n\n var getOwnPropertySymbols = Object.getOwnPropertySymbols,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n propIsEnumerable = Object.prototype.propertyIsEnumerable;\n module.exports = function () {\n try {\n if (!Object.assign) return !1;\n var test1 = new String(\"abc\");\n if (test1[5] = \"de\", \"5\" === Object.getOwnPropertyNames(test1)[0]) return !1;\n\n for (var test2 = {}, i = 0; i < 10; i++) {\n test2[\"_\" + String.fromCharCode(i)] = i;\n }\n\n if (\"0123456789\" !== Object.getOwnPropertyNames(test2).map(function (n) {\n return test2[n];\n }).join(\"\")) return !1;\n var test3 = {};\n return \"abcdefghijklmnopqrst\".split(\"\").forEach(function (letter) {\n test3[letter] = letter;\n }), \"abcdefghijklmnopqrst\" === Object.keys(Object.assign({}, test3)).join(\"\");\n } catch (err) {\n return !1;\n }\n }() ? Object.assign : function (target, source) {\n for (var from, symbols, to = toObject(target), s = 1; s < arguments.length; s++) {\n from = Object(arguments[s]);\n\n for (var key in from) {\n hasOwnProperty.call(from, key) && (to[key] = from[key]);\n }\n\n if (getOwnPropertySymbols) {\n symbols = getOwnPropertySymbols(from);\n\n for (var i = 0; i < symbols.length; i++) {\n propIsEnumerable.call(from, symbols[i]) && (to[symbols[i]] = from[symbols[i]]);\n }\n }\n }\n\n return to;\n };\n }, function (module, exports, __webpack_require__) {\n \"use strict\";\n\n function checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n\n try {\n if (\"function\" != typeof typeSpecs[typeSpecName]) {\n var err = Error((componentName || \"React class\") + \": \" + location + \" type `\" + typeSpecName + \"` is invalid; it must be a function, usually from the `prop-types` package, but received `\" + _typeof(typeSpecs[typeSpecName]) + \"`.\");\n throw err.name = \"Invariant Violation\", err;\n }\n\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n\n if (!error || error instanceof Error || printWarning((componentName || \"React class\") + \": type specification of \" + location + \" `\" + typeSpecName + \"` is invalid; the type checker function must return `null` or an `Error` but returned a \" + _typeof(error) + \". You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\"), error instanceof Error && !(error.message in loggedTypeFailures)) {\n loggedTypeFailures[error.message] = !0;\n var stack = getStack ? getStack() : \"\";\n printWarning(\"Failed \" + location + \" type: \" + error.message + (null != stack ? stack : \"\"));\n }\n }\n }\n }\n\n var printWarning = function printWarning() {},\n ReactPropTypesSecret = __webpack_require__(5),\n loggedTypeFailures = {},\n has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n printWarning = function printWarning(text) {\n var message = \"Warning: \" + text;\n \"undefined\" != typeof console && console.error(message);\n\n try {\n throw new Error(message);\n } catch (x) {}\n }, checkPropTypes.resetWarningCache = function () {\n loggedTypeFailures = {};\n }, module.exports = checkPropTypes;\n }, function (module, exports, __webpack_require__) {\n \"use strict\";\n\n var __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0 && (t[p] = s[p]);\n }\n\n if (null != s && \"function\" == typeof Object.getOwnPropertySymbols) for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]) && (t[p[i]] = s[p[i]]);\n }\n return t;\n },\n __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n default: mod\n };\n };\n\n Object.defineProperty(exports, \"__esModule\", {\n value: !0\n });\n\n var useMediaQuery_1 = __importDefault(__webpack_require__(0)),\n MediaQuery = function MediaQuery(_a) {\n var children = _a.children,\n device = _a.device,\n onChange = _a.onChange,\n settings = __rest(_a, [\"children\", \"device\", \"onChange\"]),\n matches = (0, useMediaQuery_1.default)(settings, device, onChange);\n\n return \"function\" == typeof children ? children(matches) : matches ? children : null;\n };\n\n exports.default = MediaQuery;\n }]);\n});","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}","/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n","\"use strict\";\n\nvar isOldIE = function isOldIE() {\n var memo;\n return function memorize() {\n if (typeof memo === 'undefined') {\n // Test for IE <= 9 as proposed by Browserhacks\n // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n // Tests for existence of standard globals is to allow style-loader\n // to operate correctly into non-standard environments\n // @see https://github.com/webpack-contrib/style-loader/issues/177\n memo = Boolean(window && document && document.all && !window.atob);\n }\n\n return memo;\n };\n}();\n\nvar getTarget = function getTarget() {\n var memo = {};\n return function memorize(target) {\n if (typeof memo[target] === 'undefined') {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n };\n}();\n\nvar stylesInDom = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDom.length; i++) {\n if (stylesInDom[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var index = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3]\n };\n\n if (index !== -1) {\n stylesInDom[index].references++;\n stylesInDom[index].updater(obj);\n } else {\n stylesInDom.push({\n identifier: identifier,\n updater: addStyle(obj, options),\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction insertStyleElement(options) {\n var style = document.createElement('style');\n var attributes = options.attributes || {};\n\n if (typeof attributes.nonce === 'undefined') {\n var nonce = typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\n\n if (nonce) {\n attributes.nonce = nonce;\n }\n }\n\n Object.keys(attributes).forEach(function (key) {\n style.setAttribute(key, attributes[key]);\n });\n\n if (typeof options.insert === 'function') {\n options.insert(style);\n } else {\n var target = getTarget(options.insert || 'head');\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n }\n\n return style;\n}\n\nfunction removeStyleElement(style) {\n // istanbul ignore if\n if (style.parentNode === null) {\n return false;\n }\n\n style.parentNode.removeChild(style);\n}\n/* istanbul ignore next */\n\n\nvar replaceText = function replaceText() {\n var textStore = [];\n return function replace(index, replacement) {\n textStore[index] = replacement;\n return textStore.filter(Boolean).join('\\n');\n };\n}();\n\nfunction applyToSingletonTag(style, index, remove, obj) {\n var css = remove ? '' : obj.media ? \"@media \".concat(obj.media, \" {\").concat(obj.css, \"}\") : obj.css; // For old IE\n\n /* istanbul ignore if */\n\n if (style.styleSheet) {\n style.styleSheet.cssText = replaceText(index, css);\n } else {\n var cssNode = document.createTextNode(css);\n var childNodes = style.childNodes;\n\n if (childNodes[index]) {\n style.removeChild(childNodes[index]);\n }\n\n if (childNodes.length) {\n style.insertBefore(cssNode, childNodes[index]);\n } else {\n style.appendChild(cssNode);\n }\n }\n}\n\nfunction applyToTag(style, options, obj) {\n var css = obj.css;\n var media = obj.media;\n var sourceMap = obj.sourceMap;\n\n if (media) {\n style.setAttribute('media', media);\n } else {\n style.removeAttribute('media');\n }\n\n if (sourceMap && typeof btoa !== 'undefined') {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n while (style.firstChild) {\n style.removeChild(style.firstChild);\n }\n\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar singleton = null;\nvar singletonCounter = 0;\n\nfunction addStyle(obj, options) {\n var style;\n var update;\n var remove;\n\n if (options.singleton) {\n var styleIndex = singletonCounter++;\n style = singleton || (singleton = insertStyleElement(options));\n update = applyToSingletonTag.bind(null, style, styleIndex, false);\n remove = applyToSingletonTag.bind(null, style, styleIndex, true);\n } else {\n style = insertStyleElement(options);\n update = applyToTag.bind(null, style, options);\n\n remove = function remove() {\n removeStyleElement(style);\n };\n }\n\n update(obj);\n return function updateStyle(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {\n return;\n }\n\n update(obj = newObj);\n } else {\n remove();\n }\n };\n}\n\nmodule.exports = function (list, options) {\n options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of