{"version":3,"file":"respweb/mntv-vend-default.2f1f8638.js","mappings":"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","sources":["/app/apps/respweb/node_modules/@wry/equality/lib/equality.esm.js","/app/apps/respweb/node_modules/allsettled-polyfill/index.js","/app/apps/respweb/node_modules/apollo-cache/lib/bundle.esm.js","/app/apps/respweb/node_modules/@wry/context/lib/context.esm.js","/app/apps/respweb/node_modules/optimism/lib/bundle.esm.js","/app/apps/respweb/node_modules/apollo-cache-inmemory/lib/bundle.esm.js","/app/apps/respweb/node_modules/apollo-client/bundle.esm.js","/app/apps/respweb/node_modules/apollo-link-http-common/lib/bundle.esm.js","/app/apps/respweb/node_modules/apollo-link-batch/lib/bundle.esm.js","/app/apps/respweb/node_modules/apollo-link-batch-http/lib/bundle.esm.js","/app/apps/respweb/node_modules/apollo-utilities/lib/bundle.esm.js","/app/apps/respweb/node_modules/bowser/es5.js","/app/apps/respweb/node_modules/classnames/index.js","/app/apps/respweb/node_modules/cookie-storage/lib/cookie-storage.js","/app/apps/respweb/node_modules/cookie-storage/lib/format-cookie.js","/app/apps/respweb/node_modules/cookie-storage/lib/index.js","/app/apps/respweb/node_modules/cookie-storage/lib/parse-cookies.js","/app/apps/respweb/node_modules/selector-set/selector-set.next.js","/app/apps/respweb/node_modules/delegated-events/dist/index.js","/app/apps/respweb/node_modules/dompurify/dist/purify.js","/app/apps/respweb/node_modules/graphql/jsutils/inspect.js","/app/apps/respweb/node_modules/graphql/jsutils/nodejsCustomInspectSymbol.js","/app/apps/respweb/node_modules/graphql/language/blockString.js","/app/apps/respweb/node_modules/graphql/language/printer.js","/app/apps/respweb/node_modules/graphql/language/visitor.js","/app/apps/respweb/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","/app/apps/respweb/node_modules/intl-messageformat/index.js","/app/apps/respweb/node_modules/intl-messageformat/lib/compiler.js","/app/apps/respweb/node_modules/intl-messageformat/lib/core.js","/app/apps/respweb/node_modules/intl-messageformat/lib/en.js","/app/apps/respweb/node_modules/intl-messageformat/lib/es5.js","/app/apps/respweb/node_modules/intl-messageformat/lib/main.js","/app/apps/respweb/node_modules/intl-messageformat/lib/utils.js","/app/apps/respweb/node_modules/intl-relativeformat/index.js","/app/apps/respweb/node_modules/intl-relativeformat/lib/core.js","/app/apps/respweb/node_modules/intl-relativeformat/lib/diff.js","/app/apps/respweb/node_modules/intl-relativeformat/lib/en.js","/app/apps/respweb/node_modules/intl-relativeformat/lib/es5.js","/app/apps/respweb/node_modules/intl-relativeformat/lib/main.js","/app/apps/respweb/node_modules/is-ip/index.js","/app/apps/respweb/node_modules/js-cookie/src/js.cookie.js","/app/apps/respweb/node_modules/json2mq/index.js","/app/apps/respweb/node_modules/lodash.merge/index.js","/app/apps/respweb/node_modules/lodash.unescape/index.js","/app/apps/respweb/node_modules/mixpanel-browser/dist/mixpanel.cjs.js","/app/apps/respweb/node_modules/parse-domain/build-cjs/src/from-url.js","/app/apps/respweb/node_modules/parse-domain/build-cjs/src/main.js","/app/apps/respweb/node_modules/parse-domain/build-cjs/src/parse-domain.js","/app/apps/respweb/node_modules/parse-domain/build-cjs/src/sanitize.js","/app/apps/respweb/node_modules/parse-domain/build-cjs/src/serialized-tries.js","/app/apps/respweb/node_modules/parse-domain/build-cjs/src/trie/characters.js","/app/apps/respweb/node_modules/parse-domain/build-cjs/src/trie/look-up.js","/app/apps/respweb/node_modules/parse-domain/build-cjs/src/trie/nodes.js","/app/apps/respweb/node_modules/parse-domain/build-cjs/src/trie/parse-trie.js","/app/apps/respweb/node_modules/polished/dist/polished.esm.js","/app/apps/respweb/node_modules/react-content-loader/dist/react-content-loader.es.js","/app/apps/respweb/node_modules/react-facebook-pixel/dist/fb-pixel.js","/app/apps/respweb/node_modules/react-fast-compare/index.js","/app/apps/respweb/node_modules/react-helmet-async/lib/index.module.js","/app/apps/respweb/node_modules/theming/dist/theming.esm.js","/app/apps/respweb/node_modules/is-in-browser/dist/module.js","/app/apps/respweb/node_modules/tiny-warning/dist/tiny-warning.esm.js","/app/apps/respweb/node_modules/jss/dist/jss.esm.js","/app/apps/respweb/node_modules/jss-plugin-rule-value-function/dist/jss-plugin-rule-value-function.esm.js","/app/apps/respweb/node_modules/jss-plugin-rule-value-observable/dist/jss-plugin-rule-value-observable.esm.js","/app/apps/respweb/node_modules/jss-plugin-template/dist/jss-plugin-template.esm.js","/app/apps/respweb/node_modules/jss-plugin-global/dist/jss-plugin-global.esm.js","/app/apps/respweb/node_modules/jss-plugin-extend/dist/jss-plugin-extend.esm.js","/app/apps/respweb/node_modules/jss-plugin-nested/dist/jss-plugin-nested.esm.js","/app/apps/respweb/node_modules/jss-plugin-compose/dist/jss-plugin-compose.esm.js","/app/apps/respweb/node_modules/hyphenate-style-name/index.js","/app/apps/respweb/node_modules/jss-plugin-camel-case/dist/jss-plugin-camel-case.esm.js","/app/apps/respweb/node_modules/jss-plugin-default-unit/dist/jss-plugin-default-unit.esm.js","/app/apps/respweb/node_modules/jss-plugin-expand/dist/jss-plugin-expand.esm.js","/app/apps/respweb/node_modules/css-vendor/dist/css-vendor.esm.js","/app/apps/respweb/node_modules/jss-plugin-vendor-prefixer/dist/jss-plugin-vendor-prefixer.esm.js","/app/apps/respweb/node_modules/jss-plugin-props-sort/dist/jss-plugin-props-sort.esm.js","/app/apps/respweb/node_modules/jss-preset-default/dist/jss-preset-default.esm.js","/app/apps/respweb/node_modules/shallow-equal/dist/index.esm.js","/app/apps/respweb/node_modules/@emotion/memoize/dist/memoize.browser.esm.js","/app/apps/respweb/node_modules/@emotion/is-prop-valid/dist/is-prop-valid.browser.esm.js","/app/apps/respweb/node_modules/css-jss/dist/css-jss.esm.js","/app/apps/respweb/node_modules/react-jss/dist/react-jss.esm.js","/app/apps/respweb/node_modules/react-media/esm/react-media.js","/app/apps/respweb/node_modules/react-router/node_modules/history/esm/history.js","/app/apps/respweb/node_modules/mini-create-react-context/dist/esm/index.js","/app/apps/respweb/node_modules/react-router/esm/react-router.js","/app/apps/respweb/node_modules/react-s3-uploader/s3upload.js","/app/apps/respweb/node_modules/resolve-pathname/esm/resolve-pathname.js","/app/apps/respweb/node_modules/shallowequal/index.js","/app/apps/respweb/node_modules/string-convert/camel2hyphen.js","/app/apps/respweb/node_modules/symbol-observable/es/index.js","/app/apps/respweb/node_modules/symbol-observable/es/ponyfill.js","/app/apps/respweb/node_modules/tiny-invariant/dist/tiny-invariant.esm.js","/app/apps/respweb/node_modules/ts-invariant/lib/invariant.esm.js","/app/apps/respweb/node_modules/value-equal/esm/value-equal.js","/app/apps/respweb/node_modules/zen-observable-ts/lib/bundle.esm.js","/app/apps/respweb/node_modules/zen-observable/index.js","/app/apps/respweb/node_modules/zen-observable/lib/Observable.js"],"sourcesContent":["var _a = Object.prototype,\n toString = _a.toString,\n hasOwnProperty = _a.hasOwnProperty;\nvar previousComparisons = new Map();\n/**\r\n * Performs a deep equality check on two JavaScript values, tolerating cycles.\r\n */\n\nfunction equal(a, b) {\n try {\n return check(a, b);\n } finally {\n previousComparisons.clear();\n }\n}\n\nfunction check(a, b) {\n // If the two values are strictly equal, our job is easy.\n if (a === b) {\n return true;\n } // Object.prototype.toString returns a representation of the runtime type of\n // the given value that is considerably more precise than typeof.\n\n\n var aTag = toString.call(a);\n var bTag = toString.call(b); // If the runtime types of a and b are different, they could maybe be equal\n // under some interpretation of equality, but for simplicity and performance\n // we just return false instead.\n\n if (aTag !== bTag) {\n return false;\n }\n\n switch (aTag) {\n case '[object Array]':\n // Arrays are a lot like other objects, but we can cheaply compare their\n // lengths as a short-cut before comparing their elements.\n if (a.length !== b.length) return false;\n // Fall through to object case...\n\n case '[object Object]':\n {\n if (previouslyCompared(a, b)) return true;\n var aKeys = Object.keys(a);\n var bKeys = Object.keys(b); // If `a` and `b` have a different number of enumerable keys, they\n // must be different.\n\n var keyCount = aKeys.length;\n if (keyCount !== bKeys.length) return false; // Now make sure they have the same keys.\n\n for (var k = 0; k < keyCount; ++k) {\n if (!hasOwnProperty.call(b, aKeys[k])) {\n return false;\n }\n } // Finally, check deep equality of all child properties.\n\n\n for (var k = 0; k < keyCount; ++k) {\n var key = aKeys[k];\n\n if (!check(a[key], b[key])) {\n return false;\n }\n }\n\n return true;\n }\n\n case '[object Error]':\n return a.name === b.name && a.message === b.message;\n\n case '[object Number]':\n // Handle NaN, which is !== itself.\n if (a !== a) return b !== b;\n // Fall through to shared +a === +b case...\n\n case '[object Boolean]':\n case '[object Date]':\n return +a === +b;\n\n case '[object RegExp]':\n case '[object String]':\n return a == \"\" + b;\n\n case '[object Map]':\n case '[object Set]':\n {\n if (a.size !== b.size) return false;\n if (previouslyCompared(a, b)) return true;\n var aIterator = a.entries();\n var isMap = aTag === '[object Map]';\n\n while (true) {\n var info = aIterator.next();\n if (info.done) break; // If a instanceof Set, aValue === aKey.\n\n var _a = info.value,\n aKey = _a[0],\n aValue = _a[1]; // So this works the same way for both Set and Map.\n\n if (!b.has(aKey)) {\n return false;\n } // However, we care about deep equality of values only when dealing\n // with Map structures.\n\n\n if (isMap && !check(aValue, b.get(aKey))) {\n return false;\n }\n }\n\n return true;\n }\n } // Otherwise the values are not equal.\n\n\n return false;\n}\n\nfunction previouslyCompared(a, b) {\n // Though cyclic references can make an object graph appear infinite from the\n // perspective of a depth-first traversal, the graph still contains a finite\n // number of distinct object references. We use the previousComparisons cache\n // to avoid comparing the same pair of object references more than once, which\n // guarantees termination (even if we end up comparing every object in one\n // graph to every object in the other graph, which is extremely unlikely),\n // while still allowing weird isomorphic structures (like rings with different\n // lengths) a chance to pass the equality test.\n var bSet = previousComparisons.get(a);\n\n if (bSet) {\n // Return true here because we can be sure false will be returned somewhere\n // else if the objects are not equivalent.\n if (bSet.has(b)) return true;\n } else {\n previousComparisons.set(a, bSet = new Set());\n }\n\n bSet.add(b);\n return false;\n}\n\nexport default equal;\nexport { equal };","Promise.allSettled = Promise.allSettled || function (promises) {\n return Promise.all(promises.map(function (p) {\n return p.then(function (v) {\n return {\n status: 'fulfilled',\n value: v\n };\n })[\"catch\"](function (e) {\n return {\n status: 'rejected',\n reason: e\n };\n });\n }));\n};","import { getFragmentQueryDocument } from 'apollo-utilities';\n\nfunction queryFromPojo(obj) {\n var op = {\n kind: 'OperationDefinition',\n operation: 'query',\n name: {\n kind: 'Name',\n value: 'GeneratedClientQuery'\n },\n selectionSet: selectionSetFromObj(obj)\n };\n var out = {\n kind: 'Document',\n definitions: [op]\n };\n return out;\n}\n\nfunction fragmentFromPojo(obj, typename) {\n var frag = {\n kind: 'FragmentDefinition',\n typeCondition: {\n kind: 'NamedType',\n name: {\n kind: 'Name',\n value: typename || '__FakeType'\n }\n },\n name: {\n kind: 'Name',\n value: 'GeneratedClientQuery'\n },\n selectionSet: selectionSetFromObj(obj)\n };\n var out = {\n kind: 'Document',\n definitions: [frag]\n };\n return out;\n}\n\nfunction selectionSetFromObj(obj) {\n if (typeof obj === 'number' || typeof obj === 'boolean' || typeof obj === 'string' || typeof obj === 'undefined' || obj === null) {\n return null;\n }\n\n if (Array.isArray(obj)) {\n return selectionSetFromObj(obj[0]);\n }\n\n var selections = [];\n Object.keys(obj).forEach(function (key) {\n var nestedSelSet = selectionSetFromObj(obj[key]);\n var field = {\n kind: 'Field',\n name: {\n kind: 'Name',\n value: key\n },\n selectionSet: nestedSelSet || undefined\n };\n selections.push(field);\n });\n var selectionSet = {\n kind: 'SelectionSet',\n selections: selections\n };\n return selectionSet;\n}\n\nvar justTypenameQuery = {\n kind: 'Document',\n definitions: [{\n kind: 'OperationDefinition',\n operation: 'query',\n name: null,\n variableDefinitions: null,\n directives: [],\n selectionSet: {\n kind: 'SelectionSet',\n selections: [{\n kind: 'Field',\n alias: null,\n name: {\n kind: 'Name',\n value: '__typename'\n },\n arguments: [],\n directives: [],\n selectionSet: null\n }]\n }\n }]\n};\n\nvar ApolloCache = function () {\n function ApolloCache() {}\n\n ApolloCache.prototype.transformDocument = function (document) {\n return document;\n };\n\n ApolloCache.prototype.transformForLink = function (document) {\n return document;\n };\n\n ApolloCache.prototype.readQuery = function (options, optimistic) {\n if (optimistic === void 0) {\n optimistic = false;\n }\n\n return this.read({\n query: options.query,\n variables: options.variables,\n optimistic: optimistic\n });\n };\n\n ApolloCache.prototype.readFragment = function (options, optimistic) {\n if (optimistic === void 0) {\n optimistic = false;\n }\n\n return this.read({\n query: getFragmentQueryDocument(options.fragment, options.fragmentName),\n variables: options.variables,\n rootId: options.id,\n optimistic: optimistic\n });\n };\n\n ApolloCache.prototype.writeQuery = function (options) {\n this.write({\n dataId: 'ROOT_QUERY',\n result: options.data,\n query: options.query,\n variables: options.variables\n });\n };\n\n ApolloCache.prototype.writeFragment = function (options) {\n this.write({\n dataId: options.id,\n result: options.data,\n variables: options.variables,\n query: getFragmentQueryDocument(options.fragment, options.fragmentName)\n });\n };\n\n ApolloCache.prototype.writeData = function (_a) {\n var id = _a.id,\n data = _a.data;\n\n if (typeof id !== 'undefined') {\n var typenameResult = null;\n\n try {\n typenameResult = this.read({\n rootId: id,\n optimistic: false,\n query: justTypenameQuery\n });\n } catch (e) {}\n\n var __typename = typenameResult && typenameResult.__typename || '__ClientData';\n\n var dataToWrite = Object.assign({\n __typename: __typename\n }, data);\n this.writeFragment({\n id: id,\n fragment: fragmentFromPojo(dataToWrite, __typename),\n data: dataToWrite\n });\n } else {\n this.writeQuery({\n query: queryFromPojo(data),\n data: data\n });\n }\n };\n\n return ApolloCache;\n}();\n\nvar Cache;\n\n(function (Cache) {})(Cache || (Cache = {}));\n\nexport { ApolloCache, Cache };","// This currentContext variable will only be used if the makeSlotClass\n// function is called, which happens only if this is the first copy of the\n// @wry/context package to be imported.\nvar currentContext = null; // This unique internal object is used to denote the absence of a value\n// for a given Slot, and is never exposed to outside code.\n\nvar MISSING_VALUE = {};\nvar idCounter = 1; // Although we can't do anything about the cost of duplicated code from\n// accidentally bundling multiple copies of the @wry/context package, we can\n// avoid creating the Slot class more than once using makeSlotClass.\n\nvar makeSlotClass = function makeSlotClass() {\n return (\n /** @class */\n function () {\n function Slot() {\n // If you have a Slot object, you can find out its slot.id, but you cannot\n // guess the slot.id of a Slot you don't have access to, thanks to the\n // randomized suffix.\n this.id = [\"slot\", idCounter++, Date.now(), Math.random().toString(36).slice(2)].join(\":\");\n }\n\n Slot.prototype.hasValue = function () {\n for (var context_1 = currentContext; context_1; context_1 = context_1.parent) {\n // We use the Slot object iself as a key to its value, which means the\n // value cannot be obtained without a reference to the Slot object.\n if (this.id in context_1.slots) {\n var value = context_1.slots[this.id];\n if (value === MISSING_VALUE) break;\n\n if (context_1 !== currentContext) {\n // Cache the value in currentContext.slots so the next lookup will\n // be faster. This caching is safe because the tree of contexts and\n // the values of the slots are logically immutable.\n currentContext.slots[this.id] = value;\n }\n\n return true;\n }\n }\n\n if (currentContext) {\n // If a value was not found for this Slot, it's never going to be found\n // no matter how many times we look it up, so we might as well cache\n // the absence of the value, too.\n currentContext.slots[this.id] = MISSING_VALUE;\n }\n\n return false;\n };\n\n Slot.prototype.getValue = function () {\n if (this.hasValue()) {\n return currentContext.slots[this.id];\n }\n };\n\n Slot.prototype.withValue = function (value, callback, // Given the prevalence of arrow functions, specifying arguments is likely\n // to be much more common than specifying `this`, hence this ordering:\n args, thisArg) {\n var _a;\n\n var slots = (_a = {\n __proto__: null\n }, _a[this.id] = value, _a);\n var parent = currentContext;\n currentContext = {\n parent: parent,\n slots: slots\n };\n\n try {\n // Function.prototype.apply allows the arguments array argument to be\n // omitted or undefined, so args! is fine here.\n return callback.apply(thisArg, args);\n } finally {\n currentContext = parent;\n }\n }; // Capture the current context and wrap a callback function so that it\n // reestablishes the captured context when called.\n\n\n Slot.bind = function (callback) {\n var context = currentContext;\n return function () {\n var saved = currentContext;\n\n try {\n currentContext = context;\n return callback.apply(this, arguments);\n } finally {\n currentContext = saved;\n }\n };\n }; // Immediately run a callback function without any captured context.\n\n\n Slot.noContext = function (callback, // Given the prevalence of arrow functions, specifying arguments is likely\n // to be much more common than specifying `this`, hence this ordering:\n args, thisArg) {\n if (currentContext) {\n var saved = currentContext;\n\n try {\n currentContext = null; // Function.prototype.apply allows the arguments array argument to be\n // omitted or undefined, so args! is fine here.\n\n return callback.apply(thisArg, args);\n } finally {\n currentContext = saved;\n }\n } else {\n return callback.apply(thisArg, args);\n }\n };\n\n return Slot;\n }()\n );\n}; // We store a single global implementation of the Slot class as a permanent\n// non-enumerable symbol property of the Array constructor. This obfuscation\n// does nothing to prevent access to the Slot class, but at least it ensures\n// the implementation (i.e. currentContext) cannot be tampered with, and all\n// copies of the @wry/context package (hopefully just one) will share the\n// same Slot implementation. Since the first copy of the @wry/context package\n// to be imported wins, this technique imposes a very high cost for any\n// future breaking changes to the Slot class.\n\n\nvar globalKey = \"@wry/context:Slot\";\nvar host = Array;\n\nvar Slot = host[globalKey] || function () {\n var Slot = makeSlotClass();\n\n try {\n Object.defineProperty(host, globalKey, {\n value: host[globalKey] = Slot,\n enumerable: false,\n writable: false,\n configurable: false\n });\n } finally {\n return Slot;\n }\n}();\n\nvar bind = Slot.bind,\n noContext = Slot.noContext;\n\nfunction setTimeoutWithContext(callback, delay) {\n return setTimeout(bind(callback), delay);\n} // Turn any generator function into an async function (using yield instead\n// of await), with context automatically preserved across yields.\n\n\nfunction asyncFromGen(genFn) {\n return function () {\n var gen = genFn.apply(this, arguments);\n var boundNext = bind(gen.next);\n var boundThrow = bind(gen[\"throw\"]);\n return new Promise(function (resolve, reject) {\n function invoke(method, argument) {\n try {\n var result = method.call(gen, argument);\n } catch (error) {\n return reject(error);\n }\n\n var next = result.done ? resolve : invokeNext;\n\n if (isPromiseLike(result.value)) {\n result.value.then(next, result.done ? reject : invokeThrow);\n } else {\n next(result.value);\n }\n }\n\n var invokeNext = function invokeNext(value) {\n return invoke(boundNext, value);\n };\n\n var invokeThrow = function invokeThrow(error) {\n return invoke(boundThrow, error);\n };\n\n invokeNext();\n });\n };\n}\n\nfunction isPromiseLike(value) {\n return value && typeof value.then === \"function\";\n} // If you use the fibers npm package to implement coroutines in Node.js,\n// you should call this function at least once to ensure context management\n// remains coherent across any yields.\n\n\nvar wrappedFibers = [];\n\nfunction wrapYieldingFiberMethods(Fiber) {\n // There can be only one implementation of Fiber per process, so this array\n // should never grow longer than one element.\n if (wrappedFibers.indexOf(Fiber) < 0) {\n var wrap = function wrap(obj, method) {\n var fn = obj[method];\n\n obj[method] = function () {\n return noContext(fn, arguments, this);\n };\n }; // These methods can yield, according to\n // https://github.com/laverdet/node-fibers/blob/ddebed9b8ae3883e57f822e2108e6943e5c8d2a8/fibers.js#L97-L100\n\n\n wrap(Fiber, \"yield\");\n wrap(Fiber.prototype, \"run\");\n wrap(Fiber.prototype, \"throwInto\");\n wrappedFibers.push(Fiber);\n }\n\n return Fiber;\n}\n\nexport { Slot, asyncFromGen, bind, noContext, setTimeoutWithContext as setTimeout, wrapYieldingFiberMethods };","import _typeof from \"/app/scripts/smweb-scripts/node_modules/@babel/runtime/helpers/typeof\";\nimport { Slot } from '@wry/context';\nexport { asyncFromGen, bind as bindContext, noContext, setTimeout } from '@wry/context';\n\nfunction defaultDispose() {}\n\nvar Cache =\n/** @class */\nfunction () {\n function Cache(max, dispose) {\n if (max === void 0) {\n max = Infinity;\n }\n\n if (dispose === void 0) {\n dispose = defaultDispose;\n }\n\n this.max = max;\n this.dispose = dispose;\n this.map = new Map();\n this.newest = null;\n this.oldest = null;\n }\n\n Cache.prototype.has = function (key) {\n return this.map.has(key);\n };\n\n Cache.prototype.get = function (key) {\n var entry = this.getEntry(key);\n return entry && entry.value;\n };\n\n Cache.prototype.getEntry = function (key) {\n var entry = this.map.get(key);\n\n if (entry && entry !== this.newest) {\n var older = entry.older,\n newer = entry.newer;\n\n if (newer) {\n newer.older = older;\n }\n\n if (older) {\n older.newer = newer;\n }\n\n entry.older = this.newest;\n entry.older.newer = entry;\n entry.newer = null;\n this.newest = entry;\n\n if (entry === this.oldest) {\n this.oldest = newer;\n }\n }\n\n return entry;\n };\n\n Cache.prototype.set = function (key, value) {\n var entry = this.getEntry(key);\n\n if (entry) {\n return entry.value = value;\n }\n\n entry = {\n key: key,\n value: value,\n newer: null,\n older: this.newest\n };\n\n if (this.newest) {\n this.newest.newer = entry;\n }\n\n this.newest = entry;\n this.oldest = this.oldest || entry;\n this.map.set(key, entry);\n return entry.value;\n };\n\n Cache.prototype.clean = function () {\n while (this.oldest && this.map.size > this.max) {\n this[\"delete\"](this.oldest.key);\n }\n };\n\n Cache.prototype[\"delete\"] = function (key) {\n var entry = this.map.get(key);\n\n if (entry) {\n if (entry === this.newest) {\n this.newest = entry.older;\n }\n\n if (entry === this.oldest) {\n this.oldest = entry.newer;\n }\n\n if (entry.newer) {\n entry.newer.older = entry.older;\n }\n\n if (entry.older) {\n entry.older.newer = entry.newer;\n }\n\n this.map[\"delete\"](key);\n this.dispose(entry.value, key);\n return true;\n }\n\n return false;\n };\n\n return Cache;\n}();\n\nvar parentEntrySlot = new Slot();\nvar reusableEmptyArray = [];\nvar emptySetPool = [];\nvar POOL_TARGET_SIZE = 100; // Since this package might be used browsers, we should avoid using the\n// Node built-in assert module.\n\nfunction assert(condition, optionalMessage) {\n if (!condition) {\n throw new Error(optionalMessage || \"assertion failure\");\n }\n}\n\nfunction valueIs(a, b) {\n var len = a.length;\n return (// Unknown values are not equal to each other.\n len > 0 && // Both values must be ordinary (or both exceptional) to be equal.\n len === b.length && // The underlying value or exception must be the same.\n a[len - 1] === b[len - 1]\n );\n}\n\nfunction valueGet(value) {\n switch (value.length) {\n case 0:\n throw new Error(\"unknown value\");\n\n case 1:\n return value[0];\n\n case 2:\n throw value[1];\n }\n}\n\nfunction valueCopy(value) {\n return value.slice(0);\n}\n\nvar Entry =\n/** @class */\nfunction () {\n function Entry(fn, args) {\n this.fn = fn;\n this.args = args;\n this.parents = new Set();\n this.childValues = new Map(); // When this Entry has children that are dirty, this property becomes\n // a Set containing other Entry objects, borrowed from emptySetPool.\n // When the set becomes empty, it gets recycled back to emptySetPool.\n\n this.dirtyChildren = null;\n this.dirty = true;\n this.recomputing = false;\n this.value = [];\n ++Entry.count;\n } // This is the most important method of the Entry API, because it\n // determines whether the cached this.value can be returned immediately,\n // or must be recomputed. The overall performance of the caching system\n // depends on the truth of the following observations: (1) this.dirty is\n // usually false, (2) this.dirtyChildren is usually null/empty, and thus\n // (3) valueGet(this.value) is usually returned without recomputation.\n\n\n Entry.prototype.recompute = function () {\n assert(!this.recomputing, \"already recomputing\");\n\n if (!rememberParent(this) && maybeReportOrphan(this)) {\n // The recipient of the entry.reportOrphan callback decided to dispose\n // of this orphan entry by calling entry.dispose(), so we don't need to\n // (and should not) proceed with the recomputation.\n return void 0;\n }\n\n return mightBeDirty(this) ? reallyRecompute(this) : valueGet(this.value);\n };\n\n Entry.prototype.setDirty = function () {\n if (this.dirty) return;\n this.dirty = true;\n this.value.length = 0;\n reportDirty(this); // We can go ahead and unsubscribe here, since any further dirty\n // notifications we receive will be redundant, and unsubscribing may\n // free up some resources, e.g. file watchers.\n\n maybeUnsubscribe(this);\n };\n\n Entry.prototype.dispose = function () {\n var _this = this;\n\n forgetChildren(this).forEach(maybeReportOrphan);\n maybeUnsubscribe(this); // Because this entry has been kicked out of the cache (in index.js),\n // we've lost the ability to find out if/when this entry becomes dirty,\n // whether that happens through a subscription, because of a direct call\n // to entry.setDirty(), or because one of its children becomes dirty.\n // Because of this loss of future information, we have to assume the\n // worst (that this entry might have become dirty very soon), so we must\n // immediately mark this entry's parents as dirty. Normally we could\n // just call entry.setDirty() rather than calling parent.setDirty() for\n // each parent, but that would leave this entry in parent.childValues\n // and parent.dirtyChildren, which would prevent the child from being\n // truly forgotten.\n\n this.parents.forEach(function (parent) {\n parent.setDirty();\n forgetChild(parent, _this);\n });\n };\n\n Entry.count = 0;\n return Entry;\n}();\n\nfunction rememberParent(child) {\n var parent = parentEntrySlot.getValue();\n\n if (parent) {\n child.parents.add(parent);\n\n if (!parent.childValues.has(child)) {\n parent.childValues.set(child, []);\n }\n\n if (mightBeDirty(child)) {\n reportDirtyChild(parent, child);\n } else {\n reportCleanChild(parent, child);\n }\n\n return parent;\n }\n}\n\nfunction reallyRecompute(entry) {\n // Since this recomputation is likely to re-remember some of this\n // entry's children, we forget our children here but do not call\n // maybeReportOrphan until after the recomputation finishes.\n var originalChildren = forgetChildren(entry); // Set entry as the parent entry while calling recomputeNewValue(entry).\n\n parentEntrySlot.withValue(entry, recomputeNewValue, [entry]);\n\n if (maybeSubscribe(entry)) {\n // If we successfully recomputed entry.value and did not fail to\n // (re)subscribe, then this Entry is no longer explicitly dirty.\n setClean(entry);\n } // Now that we've had a chance to re-remember any children that were\n // involved in the recomputation, we can safely report any orphan\n // children that remain.\n\n\n originalChildren.forEach(maybeReportOrphan);\n return valueGet(entry.value);\n}\n\nfunction recomputeNewValue(entry) {\n entry.recomputing = true; // Set entry.value as unknown.\n\n entry.value.length = 0;\n\n try {\n // If entry.fn succeeds, entry.value will become a normal Value.\n entry.value[0] = entry.fn.apply(null, entry.args);\n } catch (e) {\n // If entry.fn throws, entry.value will become exceptional.\n entry.value[1] = e;\n } // Either way, this line is always reached.\n\n\n entry.recomputing = false;\n}\n\nfunction mightBeDirty(entry) {\n return entry.dirty || !!(entry.dirtyChildren && entry.dirtyChildren.size);\n}\n\nfunction setClean(entry) {\n entry.dirty = false;\n\n if (mightBeDirty(entry)) {\n // This Entry may still have dirty children, in which case we can't\n // let our parents know we're clean just yet.\n return;\n }\n\n reportClean(entry);\n}\n\nfunction reportDirty(child) {\n child.parents.forEach(function (parent) {\n return reportDirtyChild(parent, child);\n });\n}\n\nfunction reportClean(child) {\n child.parents.forEach(function (parent) {\n return reportCleanChild(parent, child);\n });\n} // Let a parent Entry know that one of its children may be dirty.\n\n\nfunction reportDirtyChild(parent, child) {\n // Must have called rememberParent(child) before calling\n // reportDirtyChild(parent, child).\n assert(parent.childValues.has(child));\n assert(mightBeDirty(child));\n\n if (!parent.dirtyChildren) {\n parent.dirtyChildren = emptySetPool.pop() || new Set();\n } else if (parent.dirtyChildren.has(child)) {\n // If we already know this child is dirty, then we must have already\n // informed our own parents that we are dirty, so we can terminate\n // the recursion early.\n return;\n }\n\n parent.dirtyChildren.add(child);\n reportDirty(parent);\n} // Let a parent Entry know that one of its children is no longer dirty.\n\n\nfunction reportCleanChild(parent, child) {\n // Must have called rememberChild(child) before calling\n // reportCleanChild(parent, child).\n assert(parent.childValues.has(child));\n assert(!mightBeDirty(child));\n var childValue = parent.childValues.get(child);\n\n if (childValue.length === 0) {\n parent.childValues.set(child, valueCopy(child.value));\n } else if (!valueIs(childValue, child.value)) {\n parent.setDirty();\n }\n\n removeDirtyChild(parent, child);\n\n if (mightBeDirty(parent)) {\n return;\n }\n\n reportClean(parent);\n}\n\nfunction removeDirtyChild(parent, child) {\n var dc = parent.dirtyChildren;\n\n if (dc) {\n dc[\"delete\"](child);\n\n if (dc.size === 0) {\n if (emptySetPool.length < POOL_TARGET_SIZE) {\n emptySetPool.push(dc);\n }\n\n parent.dirtyChildren = null;\n }\n }\n} // If the given entry has a reportOrphan method, and no remaining parents,\n// call entry.reportOrphan and return true iff it returns true. The\n// reportOrphan function should return true to indicate entry.dispose()\n// has been called, and the entry has been removed from any other caches\n// (see index.js for the only current example).\n\n\nfunction maybeReportOrphan(entry) {\n return entry.parents.size === 0 && typeof entry.reportOrphan === \"function\" && entry.reportOrphan() === true;\n} // Removes all children from this entry and returns an array of the\n// removed children.\n\n\nfunction forgetChildren(parent) {\n var children = reusableEmptyArray;\n\n if (parent.childValues.size > 0) {\n children = [];\n parent.childValues.forEach(function (_value, child) {\n forgetChild(parent, child);\n children.push(child);\n });\n } // After we forget all our children, this.dirtyChildren must be empty\n // and therefore must have been reset to null.\n\n\n assert(parent.dirtyChildren === null);\n return children;\n}\n\nfunction forgetChild(parent, child) {\n child.parents[\"delete\"](parent);\n parent.childValues[\"delete\"](child);\n removeDirtyChild(parent, child);\n}\n\nfunction maybeSubscribe(entry) {\n if (typeof entry.subscribe === \"function\") {\n try {\n maybeUnsubscribe(entry); // Prevent double subscriptions.\n\n entry.unsubscribe = entry.subscribe.apply(null, entry.args);\n } catch (e) {\n // If this Entry has a subscribe function and it threw an exception\n // (or an unsubscribe function it previously returned now throws),\n // return false to indicate that we were not able to subscribe (or\n // unsubscribe), and this Entry should remain dirty.\n entry.setDirty();\n return false;\n }\n } // Returning true indicates either that there was no entry.subscribe\n // function or that it succeeded.\n\n\n return true;\n}\n\nfunction maybeUnsubscribe(entry) {\n var unsubscribe = entry.unsubscribe;\n\n if (typeof unsubscribe === \"function\") {\n entry.unsubscribe = void 0;\n unsubscribe();\n }\n} // A trie data structure that holds object keys weakly, yet can also hold\n// non-object keys, unlike the native `WeakMap`.\n\n\nvar KeyTrie =\n/** @class */\nfunction () {\n function KeyTrie(weakness) {\n this.weakness = weakness;\n }\n\n KeyTrie.prototype.lookup = function () {\n var array = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n array[_i] = arguments[_i];\n }\n\n return this.lookupArray(array);\n };\n\n KeyTrie.prototype.lookupArray = function (array) {\n var node = this;\n array.forEach(function (key) {\n return node = node.getChildTrie(key);\n });\n return node.data || (node.data = Object.create(null));\n };\n\n KeyTrie.prototype.getChildTrie = function (key) {\n var map = this.weakness && isObjRef(key) ? this.weak || (this.weak = new WeakMap()) : this.strong || (this.strong = new Map());\n var child = map.get(key);\n if (!child) map.set(key, child = new KeyTrie(this.weakness));\n return child;\n };\n\n return KeyTrie;\n}();\n\nfunction isObjRef(value) {\n switch (_typeof(value)) {\n case \"object\":\n if (value === null) break;\n // Fall through to return true...\n\n case \"function\":\n return true;\n }\n\n return false;\n} // The defaultMakeCacheKey function is remarkably powerful, because it gives\n// a unique object for any shallow-identical list of arguments. If you need\n// to implement a custom makeCacheKey function, you may find it helpful to\n// delegate the final work to defaultMakeCacheKey, which is why we export it\n// here. However, you may want to avoid defaultMakeCacheKey if your runtime\n// does not support WeakMap, or you have the ability to return a string key.\n// In those cases, just write your own custom makeCacheKey functions.\n\n\nvar keyTrie = new KeyTrie(typeof WeakMap === \"function\");\n\nfunction defaultMakeCacheKey() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n return keyTrie.lookupArray(args);\n}\n\nvar caches = new Set();\n\nfunction wrap(originalFunction, options) {\n if (options === void 0) {\n options = Object.create(null);\n }\n\n var cache = new Cache(options.max || Math.pow(2, 16), function (entry) {\n return entry.dispose();\n });\n var disposable = !!options.disposable;\n var makeCacheKey = options.makeCacheKey || defaultMakeCacheKey;\n\n function optimistic() {\n if (disposable && !parentEntrySlot.hasValue()) {\n // If there's no current parent computation, and this wrapped\n // function is disposable (meaning we don't care about entry.value,\n // just dependency tracking), then we can short-cut everything else\n // in this function, because entry.recompute() is going to recycle\n // the entry object without recomputing anything, anyway.\n return void 0;\n }\n\n var key = makeCacheKey.apply(null, arguments);\n\n if (key === void 0) {\n return originalFunction.apply(null, arguments);\n }\n\n var args = Array.prototype.slice.call(arguments);\n var entry = cache.get(key);\n\n if (entry) {\n entry.args = args;\n } else {\n entry = new Entry(originalFunction, args);\n cache.set(key, entry);\n entry.subscribe = options.subscribe;\n\n if (disposable) {\n entry.reportOrphan = function () {\n return cache[\"delete\"](key);\n };\n }\n }\n\n var value = entry.recompute(); // Move this entry to the front of the least-recently used queue,\n // since we just finished computing its value.\n\n cache.set(key, entry);\n caches.add(cache); // Clean up any excess entries in the cache, but only if there is no\n // active parent entry, meaning we're not in the middle of a larger\n // computation that might be flummoxed by the cleaning.\n\n if (!parentEntrySlot.hasValue()) {\n caches.forEach(function (cache) {\n return cache.clean();\n });\n caches.clear();\n } // If options.disposable is truthy, the caller of wrap is telling us\n // they don't care about the result of entry.recompute(), so we should\n // avoid returning the value, so it won't be accidentally used.\n\n\n return disposable ? void 0 : value;\n }\n\n optimistic.dirty = function () {\n var key = makeCacheKey.apply(null, arguments);\n var child = key !== void 0 && cache.get(key);\n\n if (child) {\n child.setDirty();\n }\n };\n\n return optimistic;\n}\n\nexport { KeyTrie, defaultMakeCacheKey, wrap };","import _typeof from \"/app/scripts/smweb-scripts/node_modules/@babel/runtime/helpers/typeof\";\nimport { __assign, __extends } from 'tslib';\nimport { ApolloCache } from 'apollo-cache';\nimport { isTest, getQueryDefinition, assign, getDefaultValues, isEqual, getMainDefinition, getFragmentDefinitions, createFragmentMap, shouldInclude, isField, resultKeyNameFromField, isInlineFragment, mergeDeepArray, argumentsObjectFromField, getDirectiveInfoFromField, maybeDeepFreeze, isIdValue, getStoreKeyName, toIdValue, isJsonValue, canUseWeakMap, getOperationDefinition, isProduction, storeKeyNameFromField, addTypenameToDocument } from 'apollo-utilities';\nimport { wrap, KeyTrie } from 'optimism';\nimport { invariant, InvariantError } from 'ts-invariant';\nvar haveWarned = false;\n\nfunction shouldWarn() {\n var answer = !haveWarned;\n\n if (!isTest()) {\n haveWarned = true;\n }\n\n return answer;\n}\n\nvar HeuristicFragmentMatcher = function () {\n function HeuristicFragmentMatcher() {}\n\n HeuristicFragmentMatcher.prototype.ensureReady = function () {\n return Promise.resolve();\n };\n\n HeuristicFragmentMatcher.prototype.canBypassInit = function () {\n return true;\n };\n\n HeuristicFragmentMatcher.prototype.match = function (idValue, typeCondition, context) {\n var obj = context.store.get(idValue.id);\n var isRootQuery = idValue.id === 'ROOT_QUERY';\n\n if (!obj) {\n return isRootQuery;\n }\n\n var _a = obj.__typename,\n __typename = _a === void 0 ? isRootQuery && 'Query' : _a;\n\n if (!__typename) {\n if (shouldWarn()) {\n process.env.NODE_ENV === \"production\" || invariant.warn(\"You're using fragments in your queries, but either don't have the addTypename:\\n true option set in Apollo Client, or you are trying to write a fragment to the store without the __typename.\\n Please turn on the addTypename option and include __typename when writing fragments so that Apollo Client\\n can accurately match fragments.\");\n process.env.NODE_ENV === \"production\" || invariant.warn('Could not find __typename on Fragment ', typeCondition, obj);\n process.env.NODE_ENV === \"production\" || invariant.warn(\"DEPRECATION WARNING: using fragments without __typename is unsupported behavior \" + \"and will be removed in future versions of Apollo client. You should fix this and set addTypename to true now.\");\n }\n\n return 'heuristic';\n }\n\n if (__typename === typeCondition) {\n return true;\n }\n\n if (shouldWarn()) {\n process.env.NODE_ENV === \"production\" || invariant.error('You are using the simple (heuristic) fragment matcher, but your ' + 'queries contain union or interface types. Apollo Client will not be ' + 'able to accurately map fragments. To make this error go away, use ' + 'the `IntrospectionFragmentMatcher` as described in the docs: ' + 'https://www.apollographql.com/docs/react/advanced/fragments.html#fragment-matcher');\n }\n\n return 'heuristic';\n };\n\n return HeuristicFragmentMatcher;\n}();\n\nvar IntrospectionFragmentMatcher = function () {\n function IntrospectionFragmentMatcher(options) {\n if (options && options.introspectionQueryResultData) {\n this.possibleTypesMap = this.parseIntrospectionResult(options.introspectionQueryResultData);\n this.isReady = true;\n } else {\n this.isReady = false;\n }\n\n this.match = this.match.bind(this);\n }\n\n IntrospectionFragmentMatcher.prototype.match = function (idValue, typeCondition, context) {\n process.env.NODE_ENV === \"production\" ? invariant(this.isReady, 1) : invariant(this.isReady, 'FragmentMatcher.match() was called before FragmentMatcher.init()');\n var obj = context.store.get(idValue.id);\n var isRootQuery = idValue.id === 'ROOT_QUERY';\n\n if (!obj) {\n return isRootQuery;\n }\n\n var _a = obj.__typename,\n __typename = _a === void 0 ? isRootQuery && 'Query' : _a;\n\n process.env.NODE_ENV === \"production\" ? invariant(__typename, 2) : invariant(__typename, \"Cannot match fragment because __typename property is missing: \" + JSON.stringify(obj));\n\n if (__typename === typeCondition) {\n return true;\n }\n\n var implementingTypes = this.possibleTypesMap[typeCondition];\n\n if (__typename && implementingTypes && implementingTypes.indexOf(__typename) > -1) {\n return true;\n }\n\n return false;\n };\n\n IntrospectionFragmentMatcher.prototype.parseIntrospectionResult = function (introspectionResultData) {\n var typeMap = {};\n\n introspectionResultData.__schema.types.forEach(function (type) {\n if (type.kind === 'UNION' || type.kind === 'INTERFACE') {\n typeMap[type.name] = type.possibleTypes.map(function (implementingType) {\n return implementingType.name;\n });\n }\n });\n\n return typeMap;\n };\n\n return IntrospectionFragmentMatcher;\n}();\n\nvar hasOwn = Object.prototype.hasOwnProperty;\n\nvar DepTrackingCache = function () {\n function DepTrackingCache(data) {\n var _this = this;\n\n if (data === void 0) {\n data = Object.create(null);\n }\n\n this.data = data;\n this.depend = wrap(function (dataId) {\n return _this.data[dataId];\n }, {\n disposable: true,\n makeCacheKey: function makeCacheKey(dataId) {\n return dataId;\n }\n });\n }\n\n DepTrackingCache.prototype.toObject = function () {\n return this.data;\n };\n\n DepTrackingCache.prototype.get = function (dataId) {\n this.depend(dataId);\n return this.data[dataId];\n };\n\n DepTrackingCache.prototype.set = function (dataId, value) {\n var oldValue = this.data[dataId];\n\n if (value !== oldValue) {\n this.data[dataId] = value;\n this.depend.dirty(dataId);\n }\n };\n\n DepTrackingCache.prototype[\"delete\"] = function (dataId) {\n if (hasOwn.call(this.data, dataId)) {\n delete this.data[dataId];\n this.depend.dirty(dataId);\n }\n };\n\n DepTrackingCache.prototype.clear = function () {\n this.replace(null);\n };\n\n DepTrackingCache.prototype.replace = function (newData) {\n var _this = this;\n\n if (newData) {\n Object.keys(newData).forEach(function (dataId) {\n _this.set(dataId, newData[dataId]);\n });\n Object.keys(this.data).forEach(function (dataId) {\n if (!hasOwn.call(newData, dataId)) {\n _this[\"delete\"](dataId);\n }\n });\n } else {\n Object.keys(this.data).forEach(function (dataId) {\n _this[\"delete\"](dataId);\n });\n }\n };\n\n return DepTrackingCache;\n}();\n\nfunction defaultNormalizedCacheFactory(seed) {\n return new DepTrackingCache(seed);\n}\n\nvar StoreReader = function () {\n function StoreReader(_a) {\n var _this = this;\n\n var _b = _a === void 0 ? {} : _a,\n _c = _b.cacheKeyRoot,\n cacheKeyRoot = _c === void 0 ? new KeyTrie(canUseWeakMap) : _c,\n _d = _b.freezeResults,\n freezeResults = _d === void 0 ? false : _d;\n\n var _e = this,\n executeStoreQuery = _e.executeStoreQuery,\n executeSelectionSet = _e.executeSelectionSet,\n executeSubSelectedArray = _e.executeSubSelectedArray;\n\n this.freezeResults = freezeResults;\n this.executeStoreQuery = wrap(function (options) {\n return executeStoreQuery.call(_this, options);\n }, {\n makeCacheKey: function makeCacheKey(_a) {\n var query = _a.query,\n rootValue = _a.rootValue,\n contextValue = _a.contextValue,\n variableValues = _a.variableValues,\n fragmentMatcher = _a.fragmentMatcher;\n\n if (contextValue.store instanceof DepTrackingCache) {\n return cacheKeyRoot.lookup(contextValue.store, query, fragmentMatcher, JSON.stringify(variableValues), rootValue.id);\n }\n }\n });\n this.executeSelectionSet = wrap(function (options) {\n return executeSelectionSet.call(_this, options);\n }, {\n makeCacheKey: function makeCacheKey(_a) {\n var selectionSet = _a.selectionSet,\n rootValue = _a.rootValue,\n execContext = _a.execContext;\n\n if (execContext.contextValue.store instanceof DepTrackingCache) {\n return cacheKeyRoot.lookup(execContext.contextValue.store, selectionSet, execContext.fragmentMatcher, JSON.stringify(execContext.variableValues), rootValue.id);\n }\n }\n });\n this.executeSubSelectedArray = wrap(function (options) {\n return executeSubSelectedArray.call(_this, options);\n }, {\n makeCacheKey: function makeCacheKey(_a) {\n var field = _a.field,\n array = _a.array,\n execContext = _a.execContext;\n\n if (execContext.contextValue.store instanceof DepTrackingCache) {\n return cacheKeyRoot.lookup(execContext.contextValue.store, field, array, JSON.stringify(execContext.variableValues));\n }\n }\n });\n }\n\n StoreReader.prototype.readQueryFromStore = function (options) {\n return this.diffQueryAgainstStore(__assign(__assign({}, options), {\n returnPartialData: false\n })).result;\n };\n\n StoreReader.prototype.diffQueryAgainstStore = function (_a) {\n var store = _a.store,\n query = _a.query,\n variables = _a.variables,\n previousResult = _a.previousResult,\n _b = _a.returnPartialData,\n returnPartialData = _b === void 0 ? true : _b,\n _c = _a.rootId,\n rootId = _c === void 0 ? 'ROOT_QUERY' : _c,\n fragmentMatcherFunction = _a.fragmentMatcherFunction,\n config = _a.config;\n var queryDefinition = getQueryDefinition(query);\n variables = assign({}, getDefaultValues(queryDefinition), variables);\n var context = {\n store: store,\n dataIdFromObject: config && config.dataIdFromObject,\n cacheRedirects: config && config.cacheRedirects || {}\n };\n var execResult = this.executeStoreQuery({\n query: query,\n rootValue: {\n type: 'id',\n id: rootId,\n generated: true,\n typename: 'Query'\n },\n contextValue: context,\n variableValues: variables,\n fragmentMatcher: fragmentMatcherFunction\n });\n var hasMissingFields = execResult.missing && execResult.missing.length > 0;\n\n if (hasMissingFields && !returnPartialData) {\n execResult.missing.forEach(function (info) {\n if (info.tolerable) return;\n throw process.env.NODE_ENV === \"production\" ? new InvariantError(8) : new InvariantError(\"Can't find field \" + info.fieldName + \" on object \" + JSON.stringify(info.object, null, 2) + \".\");\n });\n }\n\n if (previousResult) {\n if (isEqual(previousResult, execResult.result)) {\n execResult.result = previousResult;\n }\n }\n\n return {\n result: execResult.result,\n complete: !hasMissingFields\n };\n };\n\n StoreReader.prototype.executeStoreQuery = function (_a) {\n var query = _a.query,\n rootValue = _a.rootValue,\n contextValue = _a.contextValue,\n variableValues = _a.variableValues,\n _b = _a.fragmentMatcher,\n fragmentMatcher = _b === void 0 ? defaultFragmentMatcher : _b;\n var mainDefinition = getMainDefinition(query);\n var fragments = getFragmentDefinitions(query);\n var fragmentMap = createFragmentMap(fragments);\n var execContext = {\n query: query,\n fragmentMap: fragmentMap,\n contextValue: contextValue,\n variableValues: variableValues,\n fragmentMatcher: fragmentMatcher\n };\n return this.executeSelectionSet({\n selectionSet: mainDefinition.selectionSet,\n rootValue: rootValue,\n execContext: execContext\n });\n };\n\n StoreReader.prototype.executeSelectionSet = function (_a) {\n var _this = this;\n\n var selectionSet = _a.selectionSet,\n rootValue = _a.rootValue,\n execContext = _a.execContext;\n var fragmentMap = execContext.fragmentMap,\n contextValue = execContext.contextValue,\n variables = execContext.variableValues;\n var finalResult = {\n result: null\n };\n var objectsToMerge = [];\n var object = contextValue.store.get(rootValue.id);\n var typename = object && object.__typename || rootValue.id === 'ROOT_QUERY' && 'Query' || void 0;\n\n function handleMissing(result) {\n var _a;\n\n if (result.missing) {\n finalResult.missing = finalResult.missing || [];\n\n (_a = finalResult.missing).push.apply(_a, result.missing);\n }\n\n return result.result;\n }\n\n selectionSet.selections.forEach(function (selection) {\n var _a;\n\n if (!shouldInclude(selection, variables)) {\n return;\n }\n\n if (isField(selection)) {\n var fieldResult = handleMissing(_this.executeField(object, typename, selection, execContext));\n\n if (typeof fieldResult !== 'undefined') {\n objectsToMerge.push((_a = {}, _a[resultKeyNameFromField(selection)] = fieldResult, _a));\n }\n } else {\n var fragment = void 0;\n\n if (isInlineFragment(selection)) {\n fragment = selection;\n } else {\n fragment = fragmentMap[selection.name.value];\n\n if (!fragment) {\n throw process.env.NODE_ENV === \"production\" ? new InvariantError(9) : new InvariantError(\"No fragment named \" + selection.name.value);\n }\n }\n\n var typeCondition = fragment.typeCondition && fragment.typeCondition.name.value;\n var match = !typeCondition || execContext.fragmentMatcher(rootValue, typeCondition, contextValue);\n\n if (match) {\n var fragmentExecResult = _this.executeSelectionSet({\n selectionSet: fragment.selectionSet,\n rootValue: rootValue,\n execContext: execContext\n });\n\n if (match === 'heuristic' && fragmentExecResult.missing) {\n fragmentExecResult = __assign(__assign({}, fragmentExecResult), {\n missing: fragmentExecResult.missing.map(function (info) {\n return __assign(__assign({}, info), {\n tolerable: true\n });\n })\n });\n }\n\n objectsToMerge.push(handleMissing(fragmentExecResult));\n }\n }\n });\n finalResult.result = mergeDeepArray(objectsToMerge);\n\n if (this.freezeResults && process.env.NODE_ENV !== 'production') {\n Object.freeze(finalResult.result);\n }\n\n return finalResult;\n };\n\n StoreReader.prototype.executeField = function (object, typename, field, execContext) {\n var variables = execContext.variableValues,\n contextValue = execContext.contextValue;\n var fieldName = field.name.value;\n var args = argumentsObjectFromField(field, variables);\n var info = {\n resultKey: resultKeyNameFromField(field),\n directives: getDirectiveInfoFromField(field, variables)\n };\n var readStoreResult = readStoreResolver(object, typename, fieldName, args, contextValue, info);\n\n if (Array.isArray(readStoreResult.result)) {\n return this.combineExecResults(readStoreResult, this.executeSubSelectedArray({\n field: field,\n array: readStoreResult.result,\n execContext: execContext\n }));\n }\n\n if (!field.selectionSet) {\n assertSelectionSetForIdValue(field, readStoreResult.result);\n\n if (this.freezeResults && process.env.NODE_ENV !== 'production') {\n maybeDeepFreeze(readStoreResult);\n }\n\n return readStoreResult;\n }\n\n if (readStoreResult.result == null) {\n return readStoreResult;\n }\n\n return this.combineExecResults(readStoreResult, this.executeSelectionSet({\n selectionSet: field.selectionSet,\n rootValue: readStoreResult.result,\n execContext: execContext\n }));\n };\n\n StoreReader.prototype.combineExecResults = function () {\n var execResults = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n execResults[_i] = arguments[_i];\n }\n\n var missing;\n execResults.forEach(function (execResult) {\n if (execResult.missing) {\n missing = missing || [];\n missing.push.apply(missing, execResult.missing);\n }\n });\n return {\n result: execResults.pop().result,\n missing: missing\n };\n };\n\n StoreReader.prototype.executeSubSelectedArray = function (_a) {\n var _this = this;\n\n var field = _a.field,\n array = _a.array,\n execContext = _a.execContext;\n var missing;\n\n function handleMissing(childResult) {\n if (childResult.missing) {\n missing = missing || [];\n missing.push.apply(missing, childResult.missing);\n }\n\n return childResult.result;\n }\n\n array = array.map(function (item) {\n if (item === null) {\n return null;\n }\n\n if (Array.isArray(item)) {\n return handleMissing(_this.executeSubSelectedArray({\n field: field,\n array: item,\n execContext: execContext\n }));\n }\n\n if (field.selectionSet) {\n return handleMissing(_this.executeSelectionSet({\n selectionSet: field.selectionSet,\n rootValue: item,\n execContext: execContext\n }));\n }\n\n assertSelectionSetForIdValue(field, item);\n return item;\n });\n\n if (this.freezeResults && process.env.NODE_ENV !== 'production') {\n Object.freeze(array);\n }\n\n return {\n result: array,\n missing: missing\n };\n };\n\n return StoreReader;\n}();\n\nfunction assertSelectionSetForIdValue(field, value) {\n if (!field.selectionSet && isIdValue(value)) {\n throw process.env.NODE_ENV === \"production\" ? new InvariantError(10) : new InvariantError(\"Missing selection set for object of type \" + value.typename + \" returned for query field \" + field.name.value);\n }\n}\n\nfunction defaultFragmentMatcher() {\n return true;\n}\n\nfunction assertIdValue(idValue) {\n process.env.NODE_ENV === \"production\" ? invariant(isIdValue(idValue), 11) : invariant(isIdValue(idValue), \"Encountered a sub-selection on the query, but the store doesn't have an object reference. This should never happen during normal use unless you have custom code that is directly manipulating the store; please file an issue.\");\n}\n\nfunction readStoreResolver(object, typename, fieldName, args, context, _a) {\n var resultKey = _a.resultKey,\n directives = _a.directives;\n var storeKeyName = fieldName;\n\n if (args || directives) {\n storeKeyName = getStoreKeyName(storeKeyName, args, directives);\n }\n\n var fieldValue = void 0;\n\n if (object) {\n fieldValue = object[storeKeyName];\n\n if (typeof fieldValue === 'undefined' && context.cacheRedirects && typeof typename === 'string') {\n var type = context.cacheRedirects[typename];\n\n if (type) {\n var resolver = type[fieldName];\n\n if (resolver) {\n fieldValue = resolver(object, args, {\n getCacheKey: function getCacheKey(storeObj) {\n var id = context.dataIdFromObject(storeObj);\n return id && toIdValue({\n id: id,\n typename: storeObj.__typename\n });\n }\n });\n }\n }\n }\n }\n\n if (typeof fieldValue === 'undefined') {\n return {\n result: fieldValue,\n missing: [{\n object: object,\n fieldName: storeKeyName,\n tolerable: false\n }]\n };\n }\n\n if (isJsonValue(fieldValue)) {\n fieldValue = fieldValue.json;\n }\n\n return {\n result: fieldValue\n };\n}\n\nvar ObjectCache = function () {\n function ObjectCache(data) {\n if (data === void 0) {\n data = Object.create(null);\n }\n\n this.data = data;\n }\n\n ObjectCache.prototype.toObject = function () {\n return this.data;\n };\n\n ObjectCache.prototype.get = function (dataId) {\n return this.data[dataId];\n };\n\n ObjectCache.prototype.set = function (dataId, value) {\n this.data[dataId] = value;\n };\n\n ObjectCache.prototype[\"delete\"] = function (dataId) {\n this.data[dataId] = void 0;\n };\n\n ObjectCache.prototype.clear = function () {\n this.data = Object.create(null);\n };\n\n ObjectCache.prototype.replace = function (newData) {\n this.data = newData || Object.create(null);\n };\n\n return ObjectCache;\n}();\n\nfunction defaultNormalizedCacheFactory$1(seed) {\n return new ObjectCache(seed);\n}\n\nvar WriteError = function (_super) {\n __extends(WriteError, _super);\n\n function WriteError() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.type = 'WriteError';\n return _this;\n }\n\n return WriteError;\n}(Error);\n\nfunction enhanceErrorWithDocument(error, document) {\n var enhancedError = new WriteError(\"Error writing result to store for query:\\n \" + JSON.stringify(document));\n enhancedError.message += '\\n' + error.message;\n enhancedError.stack = error.stack;\n return enhancedError;\n}\n\nvar StoreWriter = function () {\n function StoreWriter() {}\n\n StoreWriter.prototype.writeQueryToStore = function (_a) {\n var query = _a.query,\n result = _a.result,\n _b = _a.store,\n store = _b === void 0 ? defaultNormalizedCacheFactory() : _b,\n variables = _a.variables,\n dataIdFromObject = _a.dataIdFromObject,\n fragmentMatcherFunction = _a.fragmentMatcherFunction;\n return this.writeResultToStore({\n dataId: 'ROOT_QUERY',\n result: result,\n document: query,\n store: store,\n variables: variables,\n dataIdFromObject: dataIdFromObject,\n fragmentMatcherFunction: fragmentMatcherFunction\n });\n };\n\n StoreWriter.prototype.writeResultToStore = function (_a) {\n var dataId = _a.dataId,\n result = _a.result,\n document = _a.document,\n _b = _a.store,\n store = _b === void 0 ? defaultNormalizedCacheFactory() : _b,\n variables = _a.variables,\n dataIdFromObject = _a.dataIdFromObject,\n fragmentMatcherFunction = _a.fragmentMatcherFunction;\n var operationDefinition = getOperationDefinition(document);\n\n try {\n return this.writeSelectionSetToStore({\n result: result,\n dataId: dataId,\n selectionSet: operationDefinition.selectionSet,\n context: {\n store: store,\n processedData: {},\n variables: assign({}, getDefaultValues(operationDefinition), variables),\n dataIdFromObject: dataIdFromObject,\n fragmentMap: createFragmentMap(getFragmentDefinitions(document)),\n fragmentMatcherFunction: fragmentMatcherFunction\n }\n });\n } catch (e) {\n throw enhanceErrorWithDocument(e, document);\n }\n };\n\n StoreWriter.prototype.writeSelectionSetToStore = function (_a) {\n var _this = this;\n\n var result = _a.result,\n dataId = _a.dataId,\n selectionSet = _a.selectionSet,\n context = _a.context;\n var variables = context.variables,\n store = context.store,\n fragmentMap = context.fragmentMap;\n selectionSet.selections.forEach(function (selection) {\n var _a;\n\n if (!shouldInclude(selection, variables)) {\n return;\n }\n\n if (isField(selection)) {\n var resultFieldKey = resultKeyNameFromField(selection);\n var value = result[resultFieldKey];\n\n if (typeof value !== 'undefined') {\n _this.writeFieldToStore({\n dataId: dataId,\n value: value,\n field: selection,\n context: context\n });\n } else {\n var isDefered = false;\n var isClient = false;\n\n if (selection.directives && selection.directives.length) {\n isDefered = selection.directives.some(function (directive) {\n return directive.name && directive.name.value === 'defer';\n });\n isClient = selection.directives.some(function (directive) {\n return directive.name && directive.name.value === 'client';\n });\n }\n\n if (!isDefered && !isClient && context.fragmentMatcherFunction) {\n process.env.NODE_ENV === \"production\" || invariant.warn(\"Missing field \" + resultFieldKey + \" in \" + JSON.stringify(result, null, 2).substring(0, 100));\n }\n }\n } else {\n var fragment = void 0;\n\n if (isInlineFragment(selection)) {\n fragment = selection;\n } else {\n fragment = (fragmentMap || {})[selection.name.value];\n process.env.NODE_ENV === \"production\" ? invariant(fragment, 3) : invariant(fragment, \"No fragment named \" + selection.name.value + \".\");\n }\n\n var matches = true;\n\n if (context.fragmentMatcherFunction && fragment.typeCondition) {\n var id = dataId || 'self';\n var idValue = toIdValue({\n id: id,\n typename: undefined\n });\n var fakeContext = {\n store: new ObjectCache((_a = {}, _a[id] = result, _a)),\n cacheRedirects: {}\n };\n var match = context.fragmentMatcherFunction(idValue, fragment.typeCondition.name.value, fakeContext);\n\n if (!isProduction() && match === 'heuristic') {\n process.env.NODE_ENV === \"production\" || invariant.error('WARNING: heuristic fragment matching going on!');\n }\n\n matches = !!match;\n }\n\n if (matches) {\n _this.writeSelectionSetToStore({\n result: result,\n selectionSet: fragment.selectionSet,\n dataId: dataId,\n context: context\n });\n }\n }\n });\n return store;\n };\n\n StoreWriter.prototype.writeFieldToStore = function (_a) {\n var _b;\n\n var field = _a.field,\n value = _a.value,\n dataId = _a.dataId,\n context = _a.context;\n var variables = context.variables,\n dataIdFromObject = context.dataIdFromObject,\n store = context.store;\n var storeValue;\n var storeObject;\n var storeFieldName = storeKeyNameFromField(field, variables);\n\n if (!field.selectionSet || value === null) {\n storeValue = value != null && _typeof(value) === 'object' ? {\n type: 'json',\n json: value\n } : value;\n } else if (Array.isArray(value)) {\n var generatedId = dataId + \".\" + storeFieldName;\n storeValue = this.processArrayValue(value, generatedId, field.selectionSet, context);\n } else {\n var valueDataId = dataId + \".\" + storeFieldName;\n var generated = true;\n\n if (!isGeneratedId(valueDataId)) {\n valueDataId = '$' + valueDataId;\n }\n\n if (dataIdFromObject) {\n var semanticId = dataIdFromObject(value);\n process.env.NODE_ENV === \"production\" ? invariant(!semanticId || !isGeneratedId(semanticId), 4) : invariant(!semanticId || !isGeneratedId(semanticId), 'IDs returned by dataIdFromObject cannot begin with the \"$\" character.');\n\n if (semanticId || typeof semanticId === 'number' && semanticId === 0) {\n valueDataId = semanticId;\n generated = false;\n }\n }\n\n if (!isDataProcessed(valueDataId, field, context.processedData)) {\n this.writeSelectionSetToStore({\n dataId: valueDataId,\n result: value,\n selectionSet: field.selectionSet,\n context: context\n });\n }\n\n var typename = value.__typename;\n storeValue = toIdValue({\n id: valueDataId,\n typename: typename\n }, generated);\n storeObject = store.get(dataId);\n var escapedId = storeObject && storeObject[storeFieldName];\n\n if (escapedId !== storeValue && isIdValue(escapedId)) {\n var hadTypename = escapedId.typename !== undefined;\n var hasTypename = typename !== undefined;\n var typenameChanged = hadTypename && hasTypename && escapedId.typename !== typename;\n process.env.NODE_ENV === \"production\" ? invariant(!generated || escapedId.generated || typenameChanged, 5) : invariant(!generated || escapedId.generated || typenameChanged, \"Store error: the application attempted to write an object with no provided id but the store already contains an id of \" + escapedId.id + \" for this object. The selectionSet that was trying to be written is:\\n\" + JSON.stringify(field));\n process.env.NODE_ENV === \"production\" ? invariant(!hadTypename || hasTypename, 6) : invariant(!hadTypename || hasTypename, \"Store error: the application attempted to write an object with no provided typename but the store already contains an object with typename of \" + escapedId.typename + \" for the object of id \" + escapedId.id + \". The selectionSet that was trying to be written is:\\n\" + JSON.stringify(field));\n\n if (escapedId.generated) {\n if (typenameChanged) {\n if (!generated) {\n store[\"delete\"](escapedId.id);\n }\n } else {\n mergeWithGenerated(escapedId.id, storeValue.id, store);\n }\n }\n }\n }\n\n storeObject = store.get(dataId);\n\n if (!storeObject || !isEqual(storeValue, storeObject[storeFieldName])) {\n store.set(dataId, __assign(__assign({}, storeObject), (_b = {}, _b[storeFieldName] = storeValue, _b)));\n }\n };\n\n StoreWriter.prototype.processArrayValue = function (value, generatedId, selectionSet, context) {\n var _this = this;\n\n return value.map(function (item, index) {\n if (item === null) {\n return null;\n }\n\n var itemDataId = generatedId + \".\" + index;\n\n if (Array.isArray(item)) {\n return _this.processArrayValue(item, itemDataId, selectionSet, context);\n }\n\n var generated = true;\n\n if (context.dataIdFromObject) {\n var semanticId = context.dataIdFromObject(item);\n\n if (semanticId) {\n itemDataId = semanticId;\n generated = false;\n }\n }\n\n if (!isDataProcessed(itemDataId, selectionSet, context.processedData)) {\n _this.writeSelectionSetToStore({\n dataId: itemDataId,\n result: item,\n selectionSet: selectionSet,\n context: context\n });\n }\n\n return toIdValue({\n id: itemDataId,\n typename: item.__typename\n }, generated);\n });\n };\n\n return StoreWriter;\n}();\n\nfunction isGeneratedId(id) {\n return id[0] === '$';\n}\n\nfunction mergeWithGenerated(generatedKey, realKey, cache) {\n if (generatedKey === realKey) {\n return false;\n }\n\n var generated = cache.get(generatedKey);\n var real = cache.get(realKey);\n var madeChanges = false;\n Object.keys(generated).forEach(function (key) {\n var value = generated[key];\n var realValue = real[key];\n\n if (isIdValue(value) && isGeneratedId(value.id) && isIdValue(realValue) && !isEqual(value, realValue) && mergeWithGenerated(value.id, realValue.id, cache)) {\n madeChanges = true;\n }\n });\n cache[\"delete\"](generatedKey);\n\n var newRealValue = __assign(__assign({}, generated), real);\n\n if (isEqual(newRealValue, real)) {\n return madeChanges;\n }\n\n cache.set(realKey, newRealValue);\n return true;\n}\n\nfunction isDataProcessed(dataId, field, processedData) {\n if (!processedData) {\n return false;\n }\n\n if (processedData[dataId]) {\n if (processedData[dataId].indexOf(field) >= 0) {\n return true;\n } else {\n processedData[dataId].push(field);\n }\n } else {\n processedData[dataId] = [field];\n }\n\n return false;\n}\n\nvar defaultConfig = {\n fragmentMatcher: new HeuristicFragmentMatcher(),\n dataIdFromObject: defaultDataIdFromObject,\n addTypename: true,\n resultCaching: true,\n freezeResults: false\n};\n\nfunction defaultDataIdFromObject(result) {\n if (result.__typename) {\n if (result.id !== undefined) {\n return result.__typename + \":\" + result.id;\n }\n\n if (result._id !== undefined) {\n return result.__typename + \":\" + result._id;\n }\n }\n\n return null;\n}\n\nvar hasOwn$1 = Object.prototype.hasOwnProperty;\n\nvar OptimisticCacheLayer = function (_super) {\n __extends(OptimisticCacheLayer, _super);\n\n function OptimisticCacheLayer(optimisticId, parent, transaction) {\n var _this = _super.call(this, Object.create(null)) || this;\n\n _this.optimisticId = optimisticId;\n _this.parent = parent;\n _this.transaction = transaction;\n return _this;\n }\n\n OptimisticCacheLayer.prototype.toObject = function () {\n return __assign(__assign({}, this.parent.toObject()), this.data);\n };\n\n OptimisticCacheLayer.prototype.get = function (dataId) {\n return hasOwn$1.call(this.data, dataId) ? this.data[dataId] : this.parent.get(dataId);\n };\n\n return OptimisticCacheLayer;\n}(ObjectCache);\n\nvar InMemoryCache = function (_super) {\n __extends(InMemoryCache, _super);\n\n function InMemoryCache(config) {\n if (config === void 0) {\n config = {};\n }\n\n var _this = _super.call(this) || this;\n\n _this.watches = new Set();\n _this.typenameDocumentCache = new Map();\n _this.cacheKeyRoot = new KeyTrie(canUseWeakMap);\n _this.silenceBroadcast = false;\n _this.config = __assign(__assign({}, defaultConfig), config);\n\n if (_this.config.customResolvers) {\n process.env.NODE_ENV === \"production\" || invariant.warn('customResolvers have been renamed to cacheRedirects. Please update your config as we will be deprecating customResolvers in the next major version.');\n _this.config.cacheRedirects = _this.config.customResolvers;\n }\n\n if (_this.config.cacheResolvers) {\n process.env.NODE_ENV === \"production\" || invariant.warn('cacheResolvers have been renamed to cacheRedirects. Please update your config as we will be deprecating cacheResolvers in the next major version.');\n _this.config.cacheRedirects = _this.config.cacheResolvers;\n }\n\n _this.addTypename = !!_this.config.addTypename;\n _this.data = _this.config.resultCaching ? new DepTrackingCache() : new ObjectCache();\n _this.optimisticData = _this.data;\n _this.storeWriter = new StoreWriter();\n _this.storeReader = new StoreReader({\n cacheKeyRoot: _this.cacheKeyRoot,\n freezeResults: config.freezeResults\n });\n var cache = _this;\n var maybeBroadcastWatch = cache.maybeBroadcastWatch;\n _this.maybeBroadcastWatch = wrap(function (c) {\n return maybeBroadcastWatch.call(_this, c);\n }, {\n makeCacheKey: function makeCacheKey(c) {\n if (c.optimistic) {\n return;\n }\n\n if (c.previousResult) {\n return;\n }\n\n if (cache.data instanceof DepTrackingCache) {\n return cache.cacheKeyRoot.lookup(c.query, JSON.stringify(c.variables));\n }\n }\n });\n return _this;\n }\n\n InMemoryCache.prototype.restore = function (data) {\n if (data) this.data.replace(data);\n return this;\n };\n\n InMemoryCache.prototype.extract = function (optimistic) {\n if (optimistic === void 0) {\n optimistic = false;\n }\n\n return (optimistic ? this.optimisticData : this.data).toObject();\n };\n\n InMemoryCache.prototype.read = function (options) {\n if (typeof options.rootId === 'string' && typeof this.data.get(options.rootId) === 'undefined') {\n return null;\n }\n\n var fragmentMatcher = this.config.fragmentMatcher;\n var fragmentMatcherFunction = fragmentMatcher && fragmentMatcher.match;\n return this.storeReader.readQueryFromStore({\n store: options.optimistic ? this.optimisticData : this.data,\n query: this.transformDocument(options.query),\n variables: options.variables,\n rootId: options.rootId,\n fragmentMatcherFunction: fragmentMatcherFunction,\n previousResult: options.previousResult,\n config: this.config\n }) || null;\n };\n\n InMemoryCache.prototype.write = function (write) {\n var fragmentMatcher = this.config.fragmentMatcher;\n var fragmentMatcherFunction = fragmentMatcher && fragmentMatcher.match;\n this.storeWriter.writeResultToStore({\n dataId: write.dataId,\n result: write.result,\n variables: write.variables,\n document: this.transformDocument(write.query),\n store: this.data,\n dataIdFromObject: this.config.dataIdFromObject,\n fragmentMatcherFunction: fragmentMatcherFunction\n });\n this.broadcastWatches();\n };\n\n InMemoryCache.prototype.diff = function (query) {\n var fragmentMatcher = this.config.fragmentMatcher;\n var fragmentMatcherFunction = fragmentMatcher && fragmentMatcher.match;\n return this.storeReader.diffQueryAgainstStore({\n store: query.optimistic ? this.optimisticData : this.data,\n query: this.transformDocument(query.query),\n variables: query.variables,\n returnPartialData: query.returnPartialData,\n previousResult: query.previousResult,\n fragmentMatcherFunction: fragmentMatcherFunction,\n config: this.config\n });\n };\n\n InMemoryCache.prototype.watch = function (watch) {\n var _this = this;\n\n this.watches.add(watch);\n return function () {\n _this.watches[\"delete\"](watch);\n };\n };\n\n InMemoryCache.prototype.evict = function (query) {\n throw process.env.NODE_ENV === \"production\" ? new InvariantError(7) : new InvariantError(\"eviction is not implemented on InMemory Cache\");\n };\n\n InMemoryCache.prototype.reset = function () {\n this.data.clear();\n this.broadcastWatches();\n return Promise.resolve();\n };\n\n InMemoryCache.prototype.removeOptimistic = function (idToRemove) {\n var toReapply = [];\n var removedCount = 0;\n var layer = this.optimisticData;\n\n while (layer instanceof OptimisticCacheLayer) {\n if (layer.optimisticId === idToRemove) {\n ++removedCount;\n } else {\n toReapply.push(layer);\n }\n\n layer = layer.parent;\n }\n\n if (removedCount > 0) {\n this.optimisticData = layer;\n\n while (toReapply.length > 0) {\n var layer_1 = toReapply.pop();\n this.performTransaction(layer_1.transaction, layer_1.optimisticId);\n }\n\n this.broadcastWatches();\n }\n };\n\n InMemoryCache.prototype.performTransaction = function (transaction, optimisticId) {\n var _a = this,\n data = _a.data,\n silenceBroadcast = _a.silenceBroadcast;\n\n this.silenceBroadcast = true;\n\n if (typeof optimisticId === 'string') {\n this.data = this.optimisticData = new OptimisticCacheLayer(optimisticId, this.optimisticData, transaction);\n }\n\n try {\n transaction(this);\n } finally {\n this.silenceBroadcast = silenceBroadcast;\n this.data = data;\n }\n\n this.broadcastWatches();\n };\n\n InMemoryCache.prototype.recordOptimisticTransaction = function (transaction, id) {\n return this.performTransaction(transaction, id);\n };\n\n InMemoryCache.prototype.transformDocument = function (document) {\n if (this.addTypename) {\n var result = this.typenameDocumentCache.get(document);\n\n if (!result) {\n result = addTypenameToDocument(document);\n this.typenameDocumentCache.set(document, result);\n this.typenameDocumentCache.set(result, result);\n }\n\n return result;\n }\n\n return document;\n };\n\n InMemoryCache.prototype.broadcastWatches = function () {\n var _this = this;\n\n if (!this.silenceBroadcast) {\n this.watches.forEach(function (c) {\n return _this.maybeBroadcastWatch(c);\n });\n }\n };\n\n InMemoryCache.prototype.maybeBroadcastWatch = function (c) {\n c.callback(this.diff({\n query: c.query,\n variables: c.variables,\n previousResult: c.previousResult && c.previousResult(),\n optimistic: c.optimistic\n }));\n };\n\n return InMemoryCache;\n}(ApolloCache);\n\nexport { HeuristicFragmentMatcher, InMemoryCache, IntrospectionFragmentMatcher, ObjectCache, StoreReader, StoreWriter, WriteError, assertIdValue, defaultDataIdFromObject, defaultNormalizedCacheFactory$1 as defaultNormalizedCacheFactory, enhanceErrorWithDocument };","import { __extends, __assign, __awaiter, __generator } from 'tslib';\nimport { getOperationDefinition, isEqual, tryFunctionOrLogError, cloneDeep, mergeDeep, hasDirectives, removeClientSetsFromDocument, buildQueryFromSelectionSet, getMainDefinition, getFragmentDefinitions, createFragmentMap, mergeDeepArray, resultKeyNameFromField, argumentsObjectFromField, shouldInclude, isField, isInlineFragment, canUseWeakMap, graphQLResultHasError, removeConnectionDirectiveFromDocument, hasClientExports, getDefaultValues, getOperationName } from 'apollo-utilities';\nimport { Observable as Observable$1, execute, ApolloLink } from 'apollo-link';\nimport $$observable from 'symbol-observable';\nimport { InvariantError, invariant } from 'ts-invariant';\nimport { visit, BREAK } from 'graphql/language/visitor';\nvar NetworkStatus;\n\n(function (NetworkStatus) {\n NetworkStatus[NetworkStatus[\"loading\"] = 1] = \"loading\";\n NetworkStatus[NetworkStatus[\"setVariables\"] = 2] = \"setVariables\";\n NetworkStatus[NetworkStatus[\"fetchMore\"] = 3] = \"fetchMore\";\n NetworkStatus[NetworkStatus[\"refetch\"] = 4] = \"refetch\";\n NetworkStatus[NetworkStatus[\"poll\"] = 6] = \"poll\";\n NetworkStatus[NetworkStatus[\"ready\"] = 7] = \"ready\";\n NetworkStatus[NetworkStatus[\"error\"] = 8] = \"error\";\n})(NetworkStatus || (NetworkStatus = {}));\n\nfunction isNetworkRequestInFlight(networkStatus) {\n return networkStatus < 7;\n}\n\nvar Observable = function (_super) {\n __extends(Observable, _super);\n\n function Observable() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n Observable.prototype[$$observable] = function () {\n return this;\n };\n\n Observable.prototype['@@observable'] = function () {\n return this;\n };\n\n return Observable;\n}(Observable$1);\n\nfunction isNonEmptyArray(value) {\n return Array.isArray(value) && value.length > 0;\n}\n\nfunction isApolloError(err) {\n return err.hasOwnProperty('graphQLErrors');\n}\n\nvar generateErrorMessage = function generateErrorMessage(err) {\n var message = '';\n\n if (isNonEmptyArray(err.graphQLErrors)) {\n err.graphQLErrors.forEach(function (graphQLError) {\n var errorMessage = graphQLError ? graphQLError.message : 'Error message not found.';\n message += \"GraphQL error: \" + errorMessage + \"\\n\";\n });\n }\n\n if (err.networkError) {\n message += 'Network error: ' + err.networkError.message + '\\n';\n }\n\n message = message.replace(/\\n$/, '');\n return message;\n};\n\nvar ApolloError = function (_super) {\n __extends(ApolloError, _super);\n\n function ApolloError(_a) {\n var graphQLErrors = _a.graphQLErrors,\n networkError = _a.networkError,\n errorMessage = _a.errorMessage,\n extraInfo = _a.extraInfo;\n\n var _this = _super.call(this, errorMessage) || this;\n\n _this.graphQLErrors = graphQLErrors || [];\n _this.networkError = networkError || null;\n\n if (!errorMessage) {\n _this.message = generateErrorMessage(_this);\n } else {\n _this.message = errorMessage;\n }\n\n _this.extraInfo = extraInfo;\n _this.__proto__ = ApolloError.prototype;\n return _this;\n }\n\n return ApolloError;\n}(Error);\n\nvar FetchType;\n\n(function (FetchType) {\n FetchType[FetchType[\"normal\"] = 1] = \"normal\";\n FetchType[FetchType[\"refetch\"] = 2] = \"refetch\";\n FetchType[FetchType[\"poll\"] = 3] = \"poll\";\n})(FetchType || (FetchType = {}));\n\nvar hasError = function hasError(storeValue, policy) {\n if (policy === void 0) {\n policy = 'none';\n }\n\n return storeValue && (storeValue.networkError || policy === 'none' && isNonEmptyArray(storeValue.graphQLErrors));\n};\n\nvar ObservableQuery = function (_super) {\n __extends(ObservableQuery, _super);\n\n function ObservableQuery(_a) {\n var queryManager = _a.queryManager,\n options = _a.options,\n _b = _a.shouldSubscribe,\n shouldSubscribe = _b === void 0 ? true : _b;\n\n var _this = _super.call(this, function (observer) {\n return _this.onSubscribe(observer);\n }) || this;\n\n _this.observers = new Set();\n _this.subscriptions = new Set();\n _this.isTornDown = false;\n _this.options = options;\n _this.variables = options.variables || {};\n _this.queryId = queryManager.generateQueryId();\n _this.shouldSubscribe = shouldSubscribe;\n var opDef = getOperationDefinition(options.query);\n _this.queryName = opDef && opDef.name && opDef.name.value;\n _this.queryManager = queryManager;\n return _this;\n }\n\n ObservableQuery.prototype.result = function () {\n var _this = this;\n\n return new Promise(function (resolve, reject) {\n var observer = {\n next: function next(result) {\n resolve(result);\n\n _this.observers[\"delete\"](observer);\n\n if (!_this.observers.size) {\n _this.queryManager.removeQuery(_this.queryId);\n }\n\n setTimeout(function () {\n subscription.unsubscribe();\n }, 0);\n },\n error: reject\n };\n\n var subscription = _this.subscribe(observer);\n });\n };\n\n ObservableQuery.prototype.currentResult = function () {\n var result = this.getCurrentResult();\n\n if (result.data === undefined) {\n result.data = {};\n }\n\n return result;\n };\n\n ObservableQuery.prototype.getCurrentResult = function () {\n if (this.isTornDown) {\n var lastResult = this.lastResult;\n return {\n data: !this.lastError && lastResult && lastResult.data || void 0,\n error: this.lastError,\n loading: false,\n networkStatus: NetworkStatus.error\n };\n }\n\n var _a = this.queryManager.getCurrentQueryResult(this),\n data = _a.data,\n partial = _a.partial;\n\n var queryStoreValue = this.queryManager.queryStore.get(this.queryId);\n var result;\n var fetchPolicy = this.options.fetchPolicy;\n var isNetworkFetchPolicy = fetchPolicy === 'network-only' || fetchPolicy === 'no-cache';\n\n if (queryStoreValue) {\n var networkStatus = queryStoreValue.networkStatus;\n\n if (hasError(queryStoreValue, this.options.errorPolicy)) {\n return {\n data: void 0,\n loading: false,\n networkStatus: networkStatus,\n error: new ApolloError({\n graphQLErrors: queryStoreValue.graphQLErrors,\n networkError: queryStoreValue.networkError\n })\n };\n }\n\n if (queryStoreValue.variables) {\n this.options.variables = __assign(__assign({}, this.options.variables), queryStoreValue.variables);\n this.variables = this.options.variables;\n }\n\n result = {\n data: data,\n loading: isNetworkRequestInFlight(networkStatus),\n networkStatus: networkStatus\n };\n\n if (queryStoreValue.graphQLErrors && this.options.errorPolicy === 'all') {\n result.errors = queryStoreValue.graphQLErrors;\n }\n } else {\n var loading = isNetworkFetchPolicy || partial && fetchPolicy !== 'cache-only';\n result = {\n data: data,\n loading: loading,\n networkStatus: loading ? NetworkStatus.loading : NetworkStatus.ready\n };\n }\n\n if (!partial) {\n this.updateLastResult(__assign(__assign({}, result), {\n stale: false\n }));\n }\n\n return __assign(__assign({}, result), {\n partial: partial\n });\n };\n\n ObservableQuery.prototype.isDifferentFromLastResult = function (newResult) {\n var snapshot = this.lastResultSnapshot;\n return !(snapshot && newResult && snapshot.networkStatus === newResult.networkStatus && snapshot.stale === newResult.stale && isEqual(snapshot.data, newResult.data));\n };\n\n ObservableQuery.prototype.getLastResult = function () {\n return this.lastResult;\n };\n\n ObservableQuery.prototype.getLastError = function () {\n return this.lastError;\n };\n\n ObservableQuery.prototype.resetLastResults = function () {\n delete this.lastResult;\n delete this.lastResultSnapshot;\n delete this.lastError;\n this.isTornDown = false;\n };\n\n ObservableQuery.prototype.resetQueryStoreErrors = function () {\n var queryStore = this.queryManager.queryStore.get(this.queryId);\n\n if (queryStore) {\n queryStore.networkError = null;\n queryStore.graphQLErrors = [];\n }\n };\n\n ObservableQuery.prototype.refetch = function (variables) {\n var fetchPolicy = this.options.fetchPolicy;\n\n if (fetchPolicy === 'cache-only') {\n return Promise.reject(process.env.NODE_ENV === \"production\" ? new InvariantError(1) : new InvariantError('cache-only fetchPolicy option should not be used together with query refetch.'));\n }\n\n if (fetchPolicy !== 'no-cache' && fetchPolicy !== 'cache-and-network') {\n fetchPolicy = 'network-only';\n }\n\n if (!isEqual(this.variables, variables)) {\n this.variables = __assign(__assign({}, this.variables), variables);\n }\n\n if (!isEqual(this.options.variables, this.variables)) {\n this.options.variables = __assign(__assign({}, this.options.variables), this.variables);\n }\n\n return this.queryManager.fetchQuery(this.queryId, __assign(__assign({}, this.options), {\n fetchPolicy: fetchPolicy\n }), FetchType.refetch);\n };\n\n ObservableQuery.prototype.fetchMore = function (fetchMoreOptions) {\n var _this = this;\n\n process.env.NODE_ENV === \"production\" ? invariant(fetchMoreOptions.updateQuery, 2) : invariant(fetchMoreOptions.updateQuery, 'updateQuery option is required. This function defines how to update the query data with the new results.');\n\n var combinedOptions = __assign(__assign({}, fetchMoreOptions.query ? fetchMoreOptions : __assign(__assign(__assign({}, this.options), fetchMoreOptions), {\n variables: __assign(__assign({}, this.variables), fetchMoreOptions.variables)\n })), {\n fetchPolicy: 'network-only'\n });\n\n var qid = this.queryManager.generateQueryId();\n return this.queryManager.fetchQuery(qid, combinedOptions, FetchType.normal, this.queryId).then(function (fetchMoreResult) {\n _this.updateQuery(function (previousResult) {\n return fetchMoreOptions.updateQuery(previousResult, {\n fetchMoreResult: fetchMoreResult.data,\n variables: combinedOptions.variables\n });\n });\n\n _this.queryManager.stopQuery(qid);\n\n return fetchMoreResult;\n }, function (error) {\n _this.queryManager.stopQuery(qid);\n\n throw error;\n });\n };\n\n ObservableQuery.prototype.subscribeToMore = function (options) {\n var _this = this;\n\n var subscription = this.queryManager.startGraphQLSubscription({\n query: options.document,\n variables: options.variables\n }).subscribe({\n next: function next(subscriptionData) {\n var updateQuery = options.updateQuery;\n\n if (updateQuery) {\n _this.updateQuery(function (previous, _a) {\n var variables = _a.variables;\n return updateQuery(previous, {\n subscriptionData: subscriptionData,\n variables: variables\n });\n });\n }\n },\n error: function error(err) {\n if (options.onError) {\n options.onError(err);\n return;\n }\n\n process.env.NODE_ENV === \"production\" || invariant.error('Unhandled GraphQL subscription error', err);\n }\n });\n this.subscriptions.add(subscription);\n return function () {\n if (_this.subscriptions[\"delete\"](subscription)) {\n subscription.unsubscribe();\n }\n };\n };\n\n ObservableQuery.prototype.setOptions = function (opts) {\n var oldFetchPolicy = this.options.fetchPolicy;\n this.options = __assign(__assign({}, this.options), opts);\n\n if (opts.pollInterval) {\n this.startPolling(opts.pollInterval);\n } else if (opts.pollInterval === 0) {\n this.stopPolling();\n }\n\n var fetchPolicy = opts.fetchPolicy;\n return this.setVariables(this.options.variables, oldFetchPolicy !== fetchPolicy && (oldFetchPolicy === 'cache-only' || oldFetchPolicy === 'standby' || fetchPolicy === 'network-only'), opts.fetchResults);\n };\n\n ObservableQuery.prototype.setVariables = function (variables, tryFetch, fetchResults) {\n if (tryFetch === void 0) {\n tryFetch = false;\n }\n\n if (fetchResults === void 0) {\n fetchResults = true;\n }\n\n this.isTornDown = false;\n variables = variables || this.variables;\n\n if (!tryFetch && isEqual(variables, this.variables)) {\n return this.observers.size && fetchResults ? this.result() : Promise.resolve();\n }\n\n this.variables = this.options.variables = variables;\n\n if (!this.observers.size) {\n return Promise.resolve();\n }\n\n return this.queryManager.fetchQuery(this.queryId, this.options);\n };\n\n ObservableQuery.prototype.updateQuery = function (mapFn) {\n var queryManager = this.queryManager;\n\n var _a = queryManager.getQueryWithPreviousResult(this.queryId),\n previousResult = _a.previousResult,\n variables = _a.variables,\n document = _a.document;\n\n var newResult = tryFunctionOrLogError(function () {\n return mapFn(previousResult, {\n variables: variables\n });\n });\n\n if (newResult) {\n queryManager.dataStore.markUpdateQueryResult(document, variables, newResult);\n queryManager.broadcastQueries();\n }\n };\n\n ObservableQuery.prototype.stopPolling = function () {\n this.queryManager.stopPollingQuery(this.queryId);\n this.options.pollInterval = undefined;\n };\n\n ObservableQuery.prototype.startPolling = function (pollInterval) {\n assertNotCacheFirstOrOnly(this);\n this.options.pollInterval = pollInterval;\n this.queryManager.startPollingQuery(this.options, this.queryId);\n };\n\n ObservableQuery.prototype.updateLastResult = function (newResult) {\n var previousResult = this.lastResult;\n this.lastResult = newResult;\n this.lastResultSnapshot = this.queryManager.assumeImmutableResults ? newResult : cloneDeep(newResult);\n return previousResult;\n };\n\n ObservableQuery.prototype.onSubscribe = function (observer) {\n var _this = this;\n\n try {\n var subObserver = observer._subscription._observer;\n\n if (subObserver && !subObserver.error) {\n subObserver.error = defaultSubscriptionObserverErrorCallback;\n }\n } catch (_a) {}\n\n var first = !this.observers.size;\n this.observers.add(observer);\n if (observer.next && this.lastResult) observer.next(this.lastResult);\n if (observer.error && this.lastError) observer.error(this.lastError);\n\n if (first) {\n this.setUpQuery();\n }\n\n return function () {\n if (_this.observers[\"delete\"](observer) && !_this.observers.size) {\n _this.tearDownQuery();\n }\n };\n };\n\n ObservableQuery.prototype.setUpQuery = function () {\n var _this = this;\n\n var _a = this,\n queryManager = _a.queryManager,\n queryId = _a.queryId;\n\n if (this.shouldSubscribe) {\n queryManager.addObservableQuery(queryId, this);\n }\n\n if (this.options.pollInterval) {\n assertNotCacheFirstOrOnly(this);\n queryManager.startPollingQuery(this.options, queryId);\n }\n\n var onError = function onError(error) {\n _this.updateLastResult(__assign(__assign({}, _this.lastResult), {\n errors: error.graphQLErrors,\n networkStatus: NetworkStatus.error,\n loading: false\n }));\n\n iterateObserversSafely(_this.observers, 'error', _this.lastError = error);\n };\n\n queryManager.observeQuery(queryId, this.options, {\n next: function next(result) {\n if (_this.lastError || _this.isDifferentFromLastResult(result)) {\n var previousResult_1 = _this.updateLastResult(result);\n\n var _a = _this.options,\n query_1 = _a.query,\n variables = _a.variables,\n fetchPolicy_1 = _a.fetchPolicy;\n\n if (queryManager.transform(query_1).hasClientExports) {\n queryManager.getLocalState().addExportedVariables(query_1, variables).then(function (variables) {\n var previousVariables = _this.variables;\n _this.variables = _this.options.variables = variables;\n\n if (!result.loading && previousResult_1 && fetchPolicy_1 !== 'cache-only' && queryManager.transform(query_1).serverQuery && !isEqual(previousVariables, variables)) {\n _this.refetch();\n } else {\n iterateObserversSafely(_this.observers, 'next', result);\n }\n });\n } else {\n iterateObserversSafely(_this.observers, 'next', result);\n }\n }\n },\n error: onError\n })[\"catch\"](onError);\n };\n\n ObservableQuery.prototype.tearDownQuery = function () {\n var queryManager = this.queryManager;\n this.isTornDown = true;\n queryManager.stopPollingQuery(this.queryId);\n this.subscriptions.forEach(function (sub) {\n return sub.unsubscribe();\n });\n this.subscriptions.clear();\n queryManager.removeObservableQuery(this.queryId);\n queryManager.stopQuery(this.queryId);\n this.observers.clear();\n };\n\n return ObservableQuery;\n}(Observable);\n\nfunction defaultSubscriptionObserverErrorCallback(error) {\n process.env.NODE_ENV === \"production\" || invariant.error('Unhandled error', error.message, error.stack);\n}\n\nfunction iterateObserversSafely(observers, method, argument) {\n var observersWithMethod = [];\n observers.forEach(function (obs) {\n return obs[method] && observersWithMethod.push(obs);\n });\n observersWithMethod.forEach(function (obs) {\n return obs[method](argument);\n });\n}\n\nfunction assertNotCacheFirstOrOnly(obsQuery) {\n var fetchPolicy = obsQuery.options.fetchPolicy;\n process.env.NODE_ENV === \"production\" ? invariant(fetchPolicy !== 'cache-first' && fetchPolicy !== 'cache-only', 3) : invariant(fetchPolicy !== 'cache-first' && fetchPolicy !== 'cache-only', 'Queries that specify the cache-first and cache-only fetchPolicies cannot also be polling queries.');\n}\n\nvar MutationStore = function () {\n function MutationStore() {\n this.store = {};\n }\n\n MutationStore.prototype.getStore = function () {\n return this.store;\n };\n\n MutationStore.prototype.get = function (mutationId) {\n return this.store[mutationId];\n };\n\n MutationStore.prototype.initMutation = function (mutationId, mutation, variables) {\n this.store[mutationId] = {\n mutation: mutation,\n variables: variables || {},\n loading: true,\n error: null\n };\n };\n\n MutationStore.prototype.markMutationError = function (mutationId, error) {\n var mutation = this.store[mutationId];\n\n if (mutation) {\n mutation.loading = false;\n mutation.error = error;\n }\n };\n\n MutationStore.prototype.markMutationResult = function (mutationId) {\n var mutation = this.store[mutationId];\n\n if (mutation) {\n mutation.loading = false;\n mutation.error = null;\n }\n };\n\n MutationStore.prototype.reset = function () {\n this.store = {};\n };\n\n return MutationStore;\n}();\n\nvar QueryStore = function () {\n function QueryStore() {\n this.store = {};\n }\n\n QueryStore.prototype.getStore = function () {\n return this.store;\n };\n\n QueryStore.prototype.get = function (queryId) {\n return this.store[queryId];\n };\n\n QueryStore.prototype.initQuery = function (query) {\n var previousQuery = this.store[query.queryId];\n process.env.NODE_ENV === \"production\" ? invariant(!previousQuery || previousQuery.document === query.document || isEqual(previousQuery.document, query.document), 19) : invariant(!previousQuery || previousQuery.document === query.document || isEqual(previousQuery.document, query.document), 'Internal Error: may not update existing query string in store');\n var isSetVariables = false;\n var previousVariables = null;\n\n if (query.storePreviousVariables && previousQuery && previousQuery.networkStatus !== NetworkStatus.loading) {\n if (!isEqual(previousQuery.variables, query.variables)) {\n isSetVariables = true;\n previousVariables = previousQuery.variables;\n }\n }\n\n var networkStatus;\n\n if (isSetVariables) {\n networkStatus = NetworkStatus.setVariables;\n } else if (query.isPoll) {\n networkStatus = NetworkStatus.poll;\n } else if (query.isRefetch) {\n networkStatus = NetworkStatus.refetch;\n } else {\n networkStatus = NetworkStatus.loading;\n }\n\n var graphQLErrors = [];\n\n if (previousQuery && previousQuery.graphQLErrors) {\n graphQLErrors = previousQuery.graphQLErrors;\n }\n\n this.store[query.queryId] = {\n document: query.document,\n variables: query.variables,\n previousVariables: previousVariables,\n networkError: null,\n graphQLErrors: graphQLErrors,\n networkStatus: networkStatus,\n metadata: query.metadata\n };\n\n if (typeof query.fetchMoreForQueryId === 'string' && this.store[query.fetchMoreForQueryId]) {\n this.store[query.fetchMoreForQueryId].networkStatus = NetworkStatus.fetchMore;\n }\n };\n\n QueryStore.prototype.markQueryResult = function (queryId, result, fetchMoreForQueryId) {\n if (!this.store || !this.store[queryId]) return;\n this.store[queryId].networkError = null;\n this.store[queryId].graphQLErrors = isNonEmptyArray(result.errors) ? result.errors : [];\n this.store[queryId].previousVariables = null;\n this.store[queryId].networkStatus = NetworkStatus.ready;\n\n if (typeof fetchMoreForQueryId === 'string' && this.store[fetchMoreForQueryId]) {\n this.store[fetchMoreForQueryId].networkStatus = NetworkStatus.ready;\n }\n };\n\n QueryStore.prototype.markQueryError = function (queryId, error, fetchMoreForQueryId) {\n if (!this.store || !this.store[queryId]) return;\n this.store[queryId].networkError = error;\n this.store[queryId].networkStatus = NetworkStatus.error;\n\n if (typeof fetchMoreForQueryId === 'string') {\n this.markQueryResultClient(fetchMoreForQueryId, true);\n }\n };\n\n QueryStore.prototype.markQueryResultClient = function (queryId, complete) {\n var storeValue = this.store && this.store[queryId];\n\n if (storeValue) {\n storeValue.networkError = null;\n storeValue.previousVariables = null;\n\n if (complete) {\n storeValue.networkStatus = NetworkStatus.ready;\n }\n }\n };\n\n QueryStore.prototype.stopQuery = function (queryId) {\n delete this.store[queryId];\n };\n\n QueryStore.prototype.reset = function (observableQueryIds) {\n var _this = this;\n\n Object.keys(this.store).forEach(function (queryId) {\n if (observableQueryIds.indexOf(queryId) < 0) {\n _this.stopQuery(queryId);\n } else {\n _this.store[queryId].networkStatus = NetworkStatus.loading;\n }\n });\n };\n\n return QueryStore;\n}();\n\nfunction capitalizeFirstLetter(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\n\nvar LocalState = function () {\n function LocalState(_a) {\n var cache = _a.cache,\n client = _a.client,\n resolvers = _a.resolvers,\n fragmentMatcher = _a.fragmentMatcher;\n this.cache = cache;\n\n if (client) {\n this.client = client;\n }\n\n if (resolvers) {\n this.addResolvers(resolvers);\n }\n\n if (fragmentMatcher) {\n this.setFragmentMatcher(fragmentMatcher);\n }\n }\n\n LocalState.prototype.addResolvers = function (resolvers) {\n var _this = this;\n\n this.resolvers = this.resolvers || {};\n\n if (Array.isArray(resolvers)) {\n resolvers.forEach(function (resolverGroup) {\n _this.resolvers = mergeDeep(_this.resolvers, resolverGroup);\n });\n } else {\n this.resolvers = mergeDeep(this.resolvers, resolvers);\n }\n };\n\n LocalState.prototype.setResolvers = function (resolvers) {\n this.resolvers = {};\n this.addResolvers(resolvers);\n };\n\n LocalState.prototype.getResolvers = function () {\n return this.resolvers || {};\n };\n\n LocalState.prototype.runResolvers = function (_a) {\n var document = _a.document,\n remoteResult = _a.remoteResult,\n context = _a.context,\n variables = _a.variables,\n _b = _a.onlyRunForcedResolvers,\n onlyRunForcedResolvers = _b === void 0 ? false : _b;\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_c) {\n if (document) {\n return [2, this.resolveDocument(document, remoteResult.data, context, variables, this.fragmentMatcher, onlyRunForcedResolvers).then(function (localResult) {\n return __assign(__assign({}, remoteResult), {\n data: localResult.result\n });\n })];\n }\n\n return [2, remoteResult];\n });\n });\n };\n\n LocalState.prototype.setFragmentMatcher = function (fragmentMatcher) {\n this.fragmentMatcher = fragmentMatcher;\n };\n\n LocalState.prototype.getFragmentMatcher = function () {\n return this.fragmentMatcher;\n };\n\n LocalState.prototype.clientQuery = function (document) {\n if (hasDirectives(['client'], document)) {\n if (this.resolvers) {\n return document;\n }\n\n process.env.NODE_ENV === \"production\" || invariant.warn('Found @client directives in a query but no ApolloClient resolvers ' + 'were specified. This means ApolloClient local resolver handling ' + 'has been disabled, and @client directives will be passed through ' + 'to your link chain.');\n }\n\n return null;\n };\n\n LocalState.prototype.serverQuery = function (document) {\n return this.resolvers ? removeClientSetsFromDocument(document) : document;\n };\n\n LocalState.prototype.prepareContext = function (context) {\n if (context === void 0) {\n context = {};\n }\n\n var cache = this.cache;\n\n var newContext = __assign(__assign({}, context), {\n cache: cache,\n getCacheKey: function getCacheKey(obj) {\n if (cache.config) {\n return cache.config.dataIdFromObject(obj);\n } else {\n process.env.NODE_ENV === \"production\" ? invariant(false, 6) : invariant(false, 'To use context.getCacheKey, you need to use a cache that has ' + 'a configurable dataIdFromObject, like apollo-cache-inmemory.');\n }\n }\n });\n\n return newContext;\n };\n\n LocalState.prototype.addExportedVariables = function (document, variables, context) {\n if (variables === void 0) {\n variables = {};\n }\n\n if (context === void 0) {\n context = {};\n }\n\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n if (document) {\n return [2, this.resolveDocument(document, this.buildRootValueFromCache(document, variables) || {}, this.prepareContext(context), variables).then(function (data) {\n return __assign(__assign({}, variables), data.exportedVariables);\n })];\n }\n\n return [2, __assign({}, variables)];\n });\n });\n };\n\n LocalState.prototype.shouldForceResolvers = function (document) {\n var forceResolvers = false;\n visit(document, {\n Directive: {\n enter: function enter(node) {\n if (node.name.value === 'client' && node.arguments) {\n forceResolvers = node.arguments.some(function (arg) {\n return arg.name.value === 'always' && arg.value.kind === 'BooleanValue' && arg.value.value === true;\n });\n\n if (forceResolvers) {\n return BREAK;\n }\n }\n }\n }\n });\n return forceResolvers;\n };\n\n LocalState.prototype.buildRootValueFromCache = function (document, variables) {\n return this.cache.diff({\n query: buildQueryFromSelectionSet(document),\n variables: variables,\n returnPartialData: true,\n optimistic: false\n }).result;\n };\n\n LocalState.prototype.resolveDocument = function (document, rootValue, context, variables, fragmentMatcher, onlyRunForcedResolvers) {\n if (context === void 0) {\n context = {};\n }\n\n if (variables === void 0) {\n variables = {};\n }\n\n if (fragmentMatcher === void 0) {\n fragmentMatcher = function fragmentMatcher() {\n return true;\n };\n }\n\n if (onlyRunForcedResolvers === void 0) {\n onlyRunForcedResolvers = false;\n }\n\n return __awaiter(this, void 0, void 0, function () {\n var mainDefinition, fragments, fragmentMap, definitionOperation, defaultOperationType, _a, cache, client, execContext;\n\n return __generator(this, function (_b) {\n mainDefinition = getMainDefinition(document);\n fragments = getFragmentDefinitions(document);\n fragmentMap = createFragmentMap(fragments);\n definitionOperation = mainDefinition.operation;\n defaultOperationType = definitionOperation ? capitalizeFirstLetter(definitionOperation) : 'Query';\n _a = this, cache = _a.cache, client = _a.client;\n execContext = {\n fragmentMap: fragmentMap,\n context: __assign(__assign({}, context), {\n cache: cache,\n client: client\n }),\n variables: variables,\n fragmentMatcher: fragmentMatcher,\n defaultOperationType: defaultOperationType,\n exportedVariables: {},\n onlyRunForcedResolvers: onlyRunForcedResolvers\n };\n return [2, this.resolveSelectionSet(mainDefinition.selectionSet, rootValue, execContext).then(function (result) {\n return {\n result: result,\n exportedVariables: execContext.exportedVariables\n };\n })];\n });\n });\n };\n\n LocalState.prototype.resolveSelectionSet = function (selectionSet, rootValue, execContext) {\n return __awaiter(this, void 0, void 0, function () {\n var fragmentMap, context, variables, resultsToMerge, execute;\n\n var _this = this;\n\n return __generator(this, function (_a) {\n fragmentMap = execContext.fragmentMap, context = execContext.context, variables = execContext.variables;\n resultsToMerge = [rootValue];\n\n execute = function execute(selection) {\n return __awaiter(_this, void 0, void 0, function () {\n var fragment, typeCondition;\n return __generator(this, function (_a) {\n if (!shouldInclude(selection, variables)) {\n return [2];\n }\n\n if (isField(selection)) {\n return [2, this.resolveField(selection, rootValue, execContext).then(function (fieldResult) {\n var _a;\n\n if (typeof fieldResult !== 'undefined') {\n resultsToMerge.push((_a = {}, _a[resultKeyNameFromField(selection)] = fieldResult, _a));\n }\n })];\n }\n\n if (isInlineFragment(selection)) {\n fragment = selection;\n } else {\n fragment = fragmentMap[selection.name.value];\n process.env.NODE_ENV === \"production\" ? invariant(fragment, 7) : invariant(fragment, \"No fragment named \" + selection.name.value);\n }\n\n if (fragment && fragment.typeCondition) {\n typeCondition = fragment.typeCondition.name.value;\n\n if (execContext.fragmentMatcher(rootValue, typeCondition, context)) {\n return [2, this.resolveSelectionSet(fragment.selectionSet, rootValue, execContext).then(function (fragmentResult) {\n resultsToMerge.push(fragmentResult);\n })];\n }\n }\n\n return [2];\n });\n });\n };\n\n return [2, Promise.all(selectionSet.selections.map(execute)).then(function () {\n return mergeDeepArray(resultsToMerge);\n })];\n });\n });\n };\n\n LocalState.prototype.resolveField = function (field, rootValue, execContext) {\n return __awaiter(this, void 0, void 0, function () {\n var variables, fieldName, aliasedFieldName, aliasUsed, defaultResult, resultPromise, resolverType, resolverMap, resolve;\n\n var _this = this;\n\n return __generator(this, function (_a) {\n variables = execContext.variables;\n fieldName = field.name.value;\n aliasedFieldName = resultKeyNameFromField(field);\n aliasUsed = fieldName !== aliasedFieldName;\n defaultResult = rootValue[aliasedFieldName] || rootValue[fieldName];\n resultPromise = Promise.resolve(defaultResult);\n\n if (!execContext.onlyRunForcedResolvers || this.shouldForceResolvers(field)) {\n resolverType = rootValue.__typename || execContext.defaultOperationType;\n resolverMap = this.resolvers && this.resolvers[resolverType];\n\n if (resolverMap) {\n resolve = resolverMap[aliasUsed ? fieldName : aliasedFieldName];\n\n if (resolve) {\n resultPromise = Promise.resolve(resolve(rootValue, argumentsObjectFromField(field, variables), execContext.context, {\n field: field,\n fragmentMap: execContext.fragmentMap\n }));\n }\n }\n }\n\n return [2, resultPromise.then(function (result) {\n if (result === void 0) {\n result = defaultResult;\n }\n\n if (field.directives) {\n field.directives.forEach(function (directive) {\n if (directive.name.value === 'export' && directive.arguments) {\n directive.arguments.forEach(function (arg) {\n if (arg.name.value === 'as' && arg.value.kind === 'StringValue') {\n execContext.exportedVariables[arg.value.value] = result;\n }\n });\n }\n });\n }\n\n if (!field.selectionSet) {\n return result;\n }\n\n if (result == null) {\n return result;\n }\n\n if (Array.isArray(result)) {\n return _this.resolveSubSelectedArray(field, result, execContext);\n }\n\n if (field.selectionSet) {\n return _this.resolveSelectionSet(field.selectionSet, result, execContext);\n }\n })];\n });\n });\n };\n\n LocalState.prototype.resolveSubSelectedArray = function (field, result, execContext) {\n var _this = this;\n\n return Promise.all(result.map(function (item) {\n if (item === null) {\n return null;\n }\n\n if (Array.isArray(item)) {\n return _this.resolveSubSelectedArray(field, item, execContext);\n }\n\n if (field.selectionSet) {\n return _this.resolveSelectionSet(field.selectionSet, item, execContext);\n }\n }));\n };\n\n return LocalState;\n}();\n\nfunction multiplex(inner) {\n var observers = new Set();\n var sub = null;\n return new Observable(function (observer) {\n observers.add(observer);\n sub = sub || inner.subscribe({\n next: function next(value) {\n observers.forEach(function (obs) {\n return obs.next && obs.next(value);\n });\n },\n error: function error(_error) {\n observers.forEach(function (obs) {\n return obs.error && obs.error(_error);\n });\n },\n complete: function complete() {\n observers.forEach(function (obs) {\n return obs.complete && obs.complete();\n });\n }\n });\n return function () {\n if (observers[\"delete\"](observer) && !observers.size && sub) {\n sub.unsubscribe();\n sub = null;\n }\n };\n });\n}\n\nfunction asyncMap(observable, mapFn) {\n return new Observable(function (observer) {\n var _next = observer.next,\n _error2 = observer.error,\n _complete = observer.complete;\n var activeNextCount = 0;\n var completed = false;\n var handler = {\n next: function next(value) {\n ++activeNextCount;\n new Promise(function (resolve) {\n resolve(mapFn(value));\n }).then(function (result) {\n --activeNextCount;\n _next && _next.call(observer, result);\n completed && handler.complete();\n }, function (e) {\n --activeNextCount;\n _error2 && _error2.call(observer, e);\n });\n },\n error: function error(e) {\n _error2 && _error2.call(observer, e);\n },\n complete: function complete() {\n completed = true;\n\n if (!activeNextCount) {\n _complete && _complete.call(observer);\n }\n }\n };\n var sub = observable.subscribe(handler);\n return function () {\n return sub.unsubscribe();\n };\n });\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar QueryManager = function () {\n function QueryManager(_a) {\n var link = _a.link,\n _b = _a.queryDeduplication,\n queryDeduplication = _b === void 0 ? false : _b,\n store = _a.store,\n _c = _a.onBroadcast,\n onBroadcast = _c === void 0 ? function () {\n return undefined;\n } : _c,\n _d = _a.ssrMode,\n ssrMode = _d === void 0 ? false : _d,\n _e = _a.clientAwareness,\n clientAwareness = _e === void 0 ? {} : _e,\n localState = _a.localState,\n assumeImmutableResults = _a.assumeImmutableResults;\n this.mutationStore = new MutationStore();\n this.queryStore = new QueryStore();\n this.clientAwareness = {};\n this.idCounter = 1;\n this.queries = new Map();\n this.fetchQueryRejectFns = new Map();\n this.transformCache = new (canUseWeakMap ? WeakMap : Map)();\n this.inFlightLinkObservables = new Map();\n this.pollingInfoByQueryId = new Map();\n this.link = link;\n this.queryDeduplication = queryDeduplication;\n this.dataStore = store;\n this.onBroadcast = onBroadcast;\n this.clientAwareness = clientAwareness;\n this.localState = localState || new LocalState({\n cache: store.getCache()\n });\n this.ssrMode = ssrMode;\n this.assumeImmutableResults = !!assumeImmutableResults;\n }\n\n QueryManager.prototype.stop = function () {\n var _this = this;\n\n this.queries.forEach(function (_info, queryId) {\n _this.stopQueryNoBroadcast(queryId);\n });\n this.fetchQueryRejectFns.forEach(function (reject) {\n reject(process.env.NODE_ENV === \"production\" ? new InvariantError(8) : new InvariantError('QueryManager stopped while query was in flight'));\n });\n };\n\n QueryManager.prototype.mutate = function (_a) {\n var mutation = _a.mutation,\n variables = _a.variables,\n optimisticResponse = _a.optimisticResponse,\n updateQueriesByName = _a.updateQueries,\n _b = _a.refetchQueries,\n refetchQueries = _b === void 0 ? [] : _b,\n _c = _a.awaitRefetchQueries,\n awaitRefetchQueries = _c === void 0 ? false : _c,\n updateWithProxyFn = _a.update,\n _d = _a.errorPolicy,\n errorPolicy = _d === void 0 ? 'none' : _d,\n fetchPolicy = _a.fetchPolicy,\n _e = _a.context,\n context = _e === void 0 ? {} : _e;\n return __awaiter(this, void 0, void 0, function () {\n var mutationId, generateUpdateQueriesInfo, self;\n\n var _this = this;\n\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0:\n process.env.NODE_ENV === \"production\" ? invariant(mutation, 9) : invariant(mutation, 'mutation option is required. You must specify your GraphQL document in the mutation option.');\n process.env.NODE_ENV === \"production\" ? invariant(!fetchPolicy || fetchPolicy === 'no-cache', 10) : invariant(!fetchPolicy || fetchPolicy === 'no-cache', \"Mutations only support a 'no-cache' fetchPolicy. If you don't want to disable the cache, remove your fetchPolicy setting to proceed with the default mutation behavior.\");\n mutationId = this.generateQueryId();\n mutation = this.transform(mutation).document;\n this.setQuery(mutationId, function () {\n return {\n document: mutation\n };\n });\n variables = this.getVariables(mutation, variables);\n if (!this.transform(mutation).hasClientExports) return [3, 2];\n return [4, this.localState.addExportedVariables(mutation, variables, context)];\n\n case 1:\n variables = _f.sent();\n _f.label = 2;\n\n case 2:\n generateUpdateQueriesInfo = function generateUpdateQueriesInfo() {\n var ret = {};\n\n if (updateQueriesByName) {\n _this.queries.forEach(function (_a, queryId) {\n var observableQuery = _a.observableQuery;\n\n if (observableQuery) {\n var queryName = observableQuery.queryName;\n\n if (queryName && hasOwnProperty.call(updateQueriesByName, queryName)) {\n ret[queryId] = {\n updater: updateQueriesByName[queryName],\n query: _this.queryStore.get(queryId)\n };\n }\n }\n });\n }\n\n return ret;\n };\n\n this.mutationStore.initMutation(mutationId, mutation, variables);\n this.dataStore.markMutationInit({\n mutationId: mutationId,\n document: mutation,\n variables: variables,\n updateQueries: generateUpdateQueriesInfo(),\n update: updateWithProxyFn,\n optimisticResponse: optimisticResponse\n });\n this.broadcastQueries();\n self = this;\n return [2, new Promise(function (resolve, reject) {\n var storeResult;\n var error;\n self.getObservableFromLink(mutation, __assign(__assign({}, context), {\n optimisticResponse: optimisticResponse\n }), variables, false).subscribe({\n next: function next(result) {\n if (graphQLResultHasError(result) && errorPolicy === 'none') {\n error = new ApolloError({\n graphQLErrors: result.errors\n });\n return;\n }\n\n self.mutationStore.markMutationResult(mutationId);\n\n if (fetchPolicy !== 'no-cache') {\n self.dataStore.markMutationResult({\n mutationId: mutationId,\n result: result,\n document: mutation,\n variables: variables,\n updateQueries: generateUpdateQueriesInfo(),\n update: updateWithProxyFn\n });\n }\n\n storeResult = result;\n },\n error: function error(err) {\n self.mutationStore.markMutationError(mutationId, err);\n self.dataStore.markMutationComplete({\n mutationId: mutationId,\n optimisticResponse: optimisticResponse\n });\n self.broadcastQueries();\n self.setQuery(mutationId, function () {\n return {\n document: null\n };\n });\n reject(new ApolloError({\n networkError: err\n }));\n },\n complete: function complete() {\n if (error) {\n self.mutationStore.markMutationError(mutationId, error);\n }\n\n self.dataStore.markMutationComplete({\n mutationId: mutationId,\n optimisticResponse: optimisticResponse\n });\n self.broadcastQueries();\n\n if (error) {\n reject(error);\n return;\n }\n\n if (typeof refetchQueries === 'function') {\n refetchQueries = refetchQueries(storeResult);\n }\n\n var refetchQueryPromises = [];\n\n if (isNonEmptyArray(refetchQueries)) {\n refetchQueries.forEach(function (refetchQuery) {\n if (typeof refetchQuery === 'string') {\n self.queries.forEach(function (_a) {\n var observableQuery = _a.observableQuery;\n\n if (observableQuery && observableQuery.queryName === refetchQuery) {\n refetchQueryPromises.push(observableQuery.refetch());\n }\n });\n } else {\n var queryOptions = {\n query: refetchQuery.query,\n variables: refetchQuery.variables,\n fetchPolicy: 'network-only'\n };\n\n if (refetchQuery.context) {\n queryOptions.context = refetchQuery.context;\n }\n\n refetchQueryPromises.push(self.query(queryOptions));\n }\n });\n }\n\n Promise.all(awaitRefetchQueries ? refetchQueryPromises : []).then(function () {\n self.setQuery(mutationId, function () {\n return {\n document: null\n };\n });\n\n if (errorPolicy === 'ignore' && storeResult && graphQLResultHasError(storeResult)) {\n delete storeResult.errors;\n }\n\n resolve(storeResult);\n });\n }\n });\n })];\n }\n });\n });\n };\n\n QueryManager.prototype.fetchQuery = function (queryId, options, fetchType, fetchMoreForQueryId) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, metadata, _b, fetchPolicy, _c, context, query, variables, storeResult, isNetworkOnly, needToFetch, _d, complete, result, shouldFetch, requestId, cancel, networkResult;\n\n var _this = this;\n\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n _a = options.metadata, metadata = _a === void 0 ? null : _a, _b = options.fetchPolicy, fetchPolicy = _b === void 0 ? 'cache-first' : _b, _c = options.context, context = _c === void 0 ? {} : _c;\n query = this.transform(options.query).document;\n variables = this.getVariables(query, options.variables);\n if (!this.transform(query).hasClientExports) return [3, 2];\n return [4, this.localState.addExportedVariables(query, variables, context)];\n\n case 1:\n variables = _e.sent();\n _e.label = 2;\n\n case 2:\n options = __assign(__assign({}, options), {\n variables: variables\n });\n isNetworkOnly = fetchPolicy === 'network-only' || fetchPolicy === 'no-cache';\n needToFetch = isNetworkOnly;\n\n if (!isNetworkOnly) {\n _d = this.dataStore.getCache().diff({\n query: query,\n variables: variables,\n returnPartialData: true,\n optimistic: false\n }), complete = _d.complete, result = _d.result;\n needToFetch = !complete || fetchPolicy === 'cache-and-network';\n storeResult = result;\n }\n\n shouldFetch = needToFetch && fetchPolicy !== 'cache-only' && fetchPolicy !== 'standby';\n if (hasDirectives(['live'], query)) shouldFetch = true;\n requestId = this.idCounter++;\n cancel = fetchPolicy !== 'no-cache' ? this.updateQueryWatch(queryId, query, options) : undefined;\n this.setQuery(queryId, function () {\n return {\n document: query,\n lastRequestId: requestId,\n invalidated: true,\n cancel: cancel\n };\n });\n this.invalidate(fetchMoreForQueryId);\n this.queryStore.initQuery({\n queryId: queryId,\n document: query,\n storePreviousVariables: shouldFetch,\n variables: variables,\n isPoll: fetchType === FetchType.poll,\n isRefetch: fetchType === FetchType.refetch,\n metadata: metadata,\n fetchMoreForQueryId: fetchMoreForQueryId\n });\n this.broadcastQueries();\n\n if (shouldFetch) {\n networkResult = this.fetchRequest({\n requestId: requestId,\n queryId: queryId,\n document: query,\n options: options,\n fetchMoreForQueryId: fetchMoreForQueryId\n })[\"catch\"](function (error) {\n if (isApolloError(error)) {\n throw error;\n } else {\n if (requestId >= _this.getQuery(queryId).lastRequestId) {\n _this.queryStore.markQueryError(queryId, error, fetchMoreForQueryId);\n\n _this.invalidate(queryId);\n\n _this.invalidate(fetchMoreForQueryId);\n\n _this.broadcastQueries();\n }\n\n throw new ApolloError({\n networkError: error\n });\n }\n });\n\n if (fetchPolicy !== 'cache-and-network') {\n return [2, networkResult];\n }\n\n networkResult[\"catch\"](function () {});\n }\n\n this.queryStore.markQueryResultClient(queryId, !shouldFetch);\n this.invalidate(queryId);\n this.invalidate(fetchMoreForQueryId);\n\n if (this.transform(query).hasForcedResolvers) {\n return [2, this.localState.runResolvers({\n document: query,\n remoteResult: {\n data: storeResult\n },\n context: context,\n variables: variables,\n onlyRunForcedResolvers: true\n }).then(function (result) {\n _this.markQueryResult(queryId, result, options, fetchMoreForQueryId);\n\n _this.broadcastQueries();\n\n return result;\n })];\n }\n\n this.broadcastQueries();\n return [2, {\n data: storeResult\n }];\n }\n });\n });\n };\n\n QueryManager.prototype.markQueryResult = function (queryId, result, _a, fetchMoreForQueryId) {\n var fetchPolicy = _a.fetchPolicy,\n variables = _a.variables,\n errorPolicy = _a.errorPolicy;\n\n if (fetchPolicy === 'no-cache') {\n this.setQuery(queryId, function () {\n return {\n newData: {\n result: result.data,\n complete: true\n }\n };\n });\n } else {\n this.dataStore.markQueryResult(result, this.getQuery(queryId).document, variables, fetchMoreForQueryId, errorPolicy === 'ignore' || errorPolicy === 'all');\n }\n };\n\n QueryManager.prototype.queryListenerForObserver = function (queryId, options, observer) {\n var _this = this;\n\n function invoke(method, argument) {\n if (observer[method]) {\n try {\n observer[method](argument);\n } catch (e) {\n process.env.NODE_ENV === \"production\" || invariant.error(e);\n }\n } else if (method === 'error') {\n process.env.NODE_ENV === \"production\" || invariant.error(argument);\n }\n }\n\n return function (queryStoreValue, newData) {\n _this.invalidate(queryId, false);\n\n if (!queryStoreValue) return;\n\n var _a = _this.getQuery(queryId),\n observableQuery = _a.observableQuery,\n document = _a.document;\n\n var fetchPolicy = observableQuery ? observableQuery.options.fetchPolicy : options.fetchPolicy;\n if (fetchPolicy === 'standby') return;\n var loading = isNetworkRequestInFlight(queryStoreValue.networkStatus);\n var lastResult = observableQuery && observableQuery.getLastResult();\n var networkStatusChanged = !!(lastResult && lastResult.networkStatus !== queryStoreValue.networkStatus);\n var shouldNotifyIfLoading = options.returnPartialData || !newData && queryStoreValue.previousVariables || networkStatusChanged && options.notifyOnNetworkStatusChange || fetchPolicy === 'cache-only' || fetchPolicy === 'cache-and-network';\n\n if (loading && !shouldNotifyIfLoading) {\n return;\n }\n\n var hasGraphQLErrors = isNonEmptyArray(queryStoreValue.graphQLErrors);\n var errorPolicy = observableQuery && observableQuery.options.errorPolicy || options.errorPolicy || 'none';\n\n if (errorPolicy === 'none' && hasGraphQLErrors || queryStoreValue.networkError) {\n return invoke('error', new ApolloError({\n graphQLErrors: queryStoreValue.graphQLErrors,\n networkError: queryStoreValue.networkError\n }));\n }\n\n try {\n var data = void 0;\n var isMissing = void 0;\n\n if (newData) {\n if (fetchPolicy !== 'no-cache' && fetchPolicy !== 'network-only') {\n _this.setQuery(queryId, function () {\n return {\n newData: null\n };\n });\n }\n\n data = newData.result;\n isMissing = !newData.complete;\n } else {\n var lastError = observableQuery && observableQuery.getLastError();\n var errorStatusChanged = errorPolicy !== 'none' && (lastError && lastError.graphQLErrors) !== queryStoreValue.graphQLErrors;\n\n if (lastResult && lastResult.data && !errorStatusChanged) {\n data = lastResult.data;\n isMissing = false;\n } else {\n var diffResult = _this.dataStore.getCache().diff({\n query: document,\n variables: queryStoreValue.previousVariables || queryStoreValue.variables,\n returnPartialData: true,\n optimistic: true\n });\n\n data = diffResult.result;\n isMissing = !diffResult.complete;\n }\n }\n\n var stale = isMissing && !(options.returnPartialData || fetchPolicy === 'cache-only');\n var resultFromStore = {\n data: stale ? lastResult && lastResult.data : data,\n loading: loading,\n networkStatus: queryStoreValue.networkStatus,\n stale: stale\n };\n\n if (errorPolicy === 'all' && hasGraphQLErrors) {\n resultFromStore.errors = queryStoreValue.graphQLErrors;\n }\n\n invoke('next', resultFromStore);\n } catch (networkError) {\n invoke('error', new ApolloError({\n networkError: networkError\n }));\n }\n };\n };\n\n QueryManager.prototype.transform = function (document) {\n var transformCache = this.transformCache;\n\n if (!transformCache.has(document)) {\n var cache = this.dataStore.getCache();\n var transformed = cache.transformDocument(document);\n var forLink = removeConnectionDirectiveFromDocument(cache.transformForLink(transformed));\n var clientQuery = this.localState.clientQuery(transformed);\n var serverQuery = this.localState.serverQuery(forLink);\n var cacheEntry_1 = {\n document: transformed,\n hasClientExports: hasClientExports(transformed),\n hasForcedResolvers: this.localState.shouldForceResolvers(transformed),\n clientQuery: clientQuery,\n serverQuery: serverQuery,\n defaultVars: getDefaultValues(getOperationDefinition(transformed))\n };\n\n var add = function add(doc) {\n if (doc && !transformCache.has(doc)) {\n transformCache.set(doc, cacheEntry_1);\n }\n };\n\n add(document);\n add(transformed);\n add(clientQuery);\n add(serverQuery);\n }\n\n return transformCache.get(document);\n };\n\n QueryManager.prototype.getVariables = function (document, variables) {\n return __assign(__assign({}, this.transform(document).defaultVars), variables);\n };\n\n QueryManager.prototype.watchQuery = function (options, shouldSubscribe) {\n if (shouldSubscribe === void 0) {\n shouldSubscribe = true;\n }\n\n process.env.NODE_ENV === \"production\" ? invariant(options.fetchPolicy !== 'standby', 11) : invariant(options.fetchPolicy !== 'standby', 'client.watchQuery cannot be called with fetchPolicy set to \"standby\"');\n options.variables = this.getVariables(options.query, options.variables);\n\n if (typeof options.notifyOnNetworkStatusChange === 'undefined') {\n options.notifyOnNetworkStatusChange = false;\n }\n\n var transformedOptions = __assign({}, options);\n\n return new ObservableQuery({\n queryManager: this,\n options: transformedOptions,\n shouldSubscribe: shouldSubscribe\n });\n };\n\n QueryManager.prototype.query = function (options) {\n var _this = this;\n\n process.env.NODE_ENV === \"production\" ? invariant(options.query, 12) : invariant(options.query, 'query option is required. You must specify your GraphQL document ' + 'in the query option.');\n process.env.NODE_ENV === \"production\" ? invariant(options.query.kind === 'Document', 13) : invariant(options.query.kind === 'Document', 'You must wrap the query string in a \"gql\" tag.');\n process.env.NODE_ENV === \"production\" ? invariant(!options.returnPartialData, 14) : invariant(!options.returnPartialData, 'returnPartialData option only supported on watchQuery.');\n process.env.NODE_ENV === \"production\" ? invariant(!options.pollInterval, 15) : invariant(!options.pollInterval, 'pollInterval option only supported on watchQuery.');\n return new Promise(function (resolve, reject) {\n var watchedQuery = _this.watchQuery(options, false);\n\n _this.fetchQueryRejectFns.set(\"query:\" + watchedQuery.queryId, reject);\n\n watchedQuery.result().then(resolve, reject).then(function () {\n return _this.fetchQueryRejectFns[\"delete\"](\"query:\" + watchedQuery.queryId);\n });\n });\n };\n\n QueryManager.prototype.generateQueryId = function () {\n return String(this.idCounter++);\n };\n\n QueryManager.prototype.stopQueryInStore = function (queryId) {\n this.stopQueryInStoreNoBroadcast(queryId);\n this.broadcastQueries();\n };\n\n QueryManager.prototype.stopQueryInStoreNoBroadcast = function (queryId) {\n this.stopPollingQuery(queryId);\n this.queryStore.stopQuery(queryId);\n this.invalidate(queryId);\n };\n\n QueryManager.prototype.addQueryListener = function (queryId, listener) {\n this.setQuery(queryId, function (_a) {\n var listeners = _a.listeners;\n listeners.add(listener);\n return {\n invalidated: false\n };\n });\n };\n\n QueryManager.prototype.updateQueryWatch = function (queryId, document, options) {\n var _this = this;\n\n var cancel = this.getQuery(queryId).cancel;\n if (cancel) cancel();\n\n var previousResult = function previousResult() {\n var previousResult = null;\n\n var observableQuery = _this.getQuery(queryId).observableQuery;\n\n if (observableQuery) {\n var lastResult = observableQuery.getLastResult();\n\n if (lastResult) {\n previousResult = lastResult.data;\n }\n }\n\n return previousResult;\n };\n\n return this.dataStore.getCache().watch({\n query: document,\n variables: options.variables,\n optimistic: true,\n previousResult: previousResult,\n callback: function callback(newData) {\n _this.setQuery(queryId, function () {\n return {\n invalidated: true,\n newData: newData\n };\n });\n }\n });\n };\n\n QueryManager.prototype.addObservableQuery = function (queryId, observableQuery) {\n this.setQuery(queryId, function () {\n return {\n observableQuery: observableQuery\n };\n });\n };\n\n QueryManager.prototype.removeObservableQuery = function (queryId) {\n var cancel = this.getQuery(queryId).cancel;\n this.setQuery(queryId, function () {\n return {\n observableQuery: null\n };\n });\n if (cancel) cancel();\n };\n\n QueryManager.prototype.clearStore = function () {\n this.fetchQueryRejectFns.forEach(function (reject) {\n reject(process.env.NODE_ENV === \"production\" ? new InvariantError(16) : new InvariantError('Store reset while query was in flight (not completed in link chain)'));\n });\n var resetIds = [];\n this.queries.forEach(function (_a, queryId) {\n var observableQuery = _a.observableQuery;\n if (observableQuery) resetIds.push(queryId);\n });\n this.queryStore.reset(resetIds);\n this.mutationStore.reset();\n return this.dataStore.reset();\n };\n\n QueryManager.prototype.resetStore = function () {\n var _this = this;\n\n return this.clearStore().then(function () {\n return _this.reFetchObservableQueries();\n });\n };\n\n QueryManager.prototype.reFetchObservableQueries = function (includeStandby) {\n var _this = this;\n\n if (includeStandby === void 0) {\n includeStandby = false;\n }\n\n var observableQueryPromises = [];\n this.queries.forEach(function (_a, queryId) {\n var observableQuery = _a.observableQuery;\n\n if (observableQuery) {\n var fetchPolicy = observableQuery.options.fetchPolicy;\n observableQuery.resetLastResults();\n\n if (fetchPolicy !== 'cache-only' && (includeStandby || fetchPolicy !== 'standby')) {\n observableQueryPromises.push(observableQuery.refetch());\n }\n\n _this.setQuery(queryId, function () {\n return {\n newData: null\n };\n });\n\n _this.invalidate(queryId);\n }\n });\n this.broadcastQueries();\n return Promise.all(observableQueryPromises);\n };\n\n QueryManager.prototype.observeQuery = function (queryId, options, observer) {\n this.addQueryListener(queryId, this.queryListenerForObserver(queryId, options, observer));\n return this.fetchQuery(queryId, options);\n };\n\n QueryManager.prototype.startQuery = function (queryId, options, listener) {\n process.env.NODE_ENV === \"production\" || invariant.warn(\"The QueryManager.startQuery method has been deprecated\");\n this.addQueryListener(queryId, listener);\n this.fetchQuery(queryId, options)[\"catch\"](function () {\n return undefined;\n });\n return queryId;\n };\n\n QueryManager.prototype.startGraphQLSubscription = function (_a) {\n var _this = this;\n\n var query = _a.query,\n fetchPolicy = _a.fetchPolicy,\n variables = _a.variables;\n query = this.transform(query).document;\n variables = this.getVariables(query, variables);\n\n var makeObservable = function makeObservable(variables) {\n return _this.getObservableFromLink(query, {}, variables, false).map(function (result) {\n if (!fetchPolicy || fetchPolicy !== 'no-cache') {\n _this.dataStore.markSubscriptionResult(result, query, variables);\n\n _this.broadcastQueries();\n }\n\n if (graphQLResultHasError(result)) {\n throw new ApolloError({\n graphQLErrors: result.errors\n });\n }\n\n return result;\n });\n };\n\n if (this.transform(query).hasClientExports) {\n var observablePromise_1 = this.localState.addExportedVariables(query, variables).then(makeObservable);\n return new Observable(function (observer) {\n var sub = null;\n observablePromise_1.then(function (observable) {\n return sub = observable.subscribe(observer);\n }, observer.error);\n return function () {\n return sub && sub.unsubscribe();\n };\n });\n }\n\n return makeObservable(variables);\n };\n\n QueryManager.prototype.stopQuery = function (queryId) {\n this.stopQueryNoBroadcast(queryId);\n this.broadcastQueries();\n };\n\n QueryManager.prototype.stopQueryNoBroadcast = function (queryId) {\n this.stopQueryInStoreNoBroadcast(queryId);\n this.removeQuery(queryId);\n };\n\n QueryManager.prototype.removeQuery = function (queryId) {\n this.fetchQueryRejectFns[\"delete\"](\"query:\" + queryId);\n this.fetchQueryRejectFns[\"delete\"](\"fetchRequest:\" + queryId);\n this.getQuery(queryId).subscriptions.forEach(function (x) {\n return x.unsubscribe();\n });\n this.queries[\"delete\"](queryId);\n };\n\n QueryManager.prototype.getCurrentQueryResult = function (observableQuery, optimistic) {\n if (optimistic === void 0) {\n optimistic = true;\n }\n\n var _a = observableQuery.options,\n variables = _a.variables,\n query = _a.query,\n fetchPolicy = _a.fetchPolicy,\n returnPartialData = _a.returnPartialData;\n var lastResult = observableQuery.getLastResult();\n var newData = this.getQuery(observableQuery.queryId).newData;\n\n if (newData && newData.complete) {\n return {\n data: newData.result,\n partial: false\n };\n }\n\n if (fetchPolicy === 'no-cache' || fetchPolicy === 'network-only') {\n return {\n data: undefined,\n partial: false\n };\n }\n\n var _b = this.dataStore.getCache().diff({\n query: query,\n variables: variables,\n previousResult: lastResult ? lastResult.data : undefined,\n returnPartialData: true,\n optimistic: optimistic\n }),\n result = _b.result,\n complete = _b.complete;\n\n return {\n data: complete || returnPartialData ? result : void 0,\n partial: !complete\n };\n };\n\n QueryManager.prototype.getQueryWithPreviousResult = function (queryIdOrObservable) {\n var observableQuery;\n\n if (typeof queryIdOrObservable === 'string') {\n var foundObserveableQuery = this.getQuery(queryIdOrObservable).observableQuery;\n process.env.NODE_ENV === \"production\" ? invariant(foundObserveableQuery, 17) : invariant(foundObserveableQuery, \"ObservableQuery with this id doesn't exist: \" + queryIdOrObservable);\n observableQuery = foundObserveableQuery;\n } else {\n observableQuery = queryIdOrObservable;\n }\n\n var _a = observableQuery.options,\n variables = _a.variables,\n query = _a.query;\n return {\n previousResult: this.getCurrentQueryResult(observableQuery, false).data,\n variables: variables,\n document: query\n };\n };\n\n QueryManager.prototype.broadcastQueries = function () {\n var _this = this;\n\n this.onBroadcast();\n this.queries.forEach(function (info, id) {\n if (info.invalidated) {\n info.listeners.forEach(function (listener) {\n if (listener) {\n listener(_this.queryStore.get(id), info.newData);\n }\n });\n }\n });\n };\n\n QueryManager.prototype.getLocalState = function () {\n return this.localState;\n };\n\n QueryManager.prototype.getObservableFromLink = function (query, context, variables, deduplication) {\n var _this = this;\n\n if (deduplication === void 0) {\n deduplication = this.queryDeduplication;\n }\n\n var observable;\n var serverQuery = this.transform(query).serverQuery;\n\n if (serverQuery) {\n var _a = this,\n inFlightLinkObservables_1 = _a.inFlightLinkObservables,\n link = _a.link;\n\n var operation = {\n query: serverQuery,\n variables: variables,\n operationName: getOperationName(serverQuery) || void 0,\n context: this.prepareContext(__assign(__assign({}, context), {\n forceFetch: !deduplication\n }))\n };\n context = operation.context;\n\n if (deduplication) {\n var byVariables_1 = inFlightLinkObservables_1.get(serverQuery) || new Map();\n inFlightLinkObservables_1.set(serverQuery, byVariables_1);\n var varJson_1 = JSON.stringify(variables);\n observable = byVariables_1.get(varJson_1);\n\n if (!observable) {\n byVariables_1.set(varJson_1, observable = multiplex(execute(link, operation)));\n\n var cleanup = function cleanup() {\n byVariables_1[\"delete\"](varJson_1);\n if (!byVariables_1.size) inFlightLinkObservables_1[\"delete\"](serverQuery);\n cleanupSub_1.unsubscribe();\n };\n\n var cleanupSub_1 = observable.subscribe({\n next: cleanup,\n error: cleanup,\n complete: cleanup\n });\n }\n } else {\n observable = multiplex(execute(link, operation));\n }\n } else {\n observable = Observable.of({\n data: {}\n });\n context = this.prepareContext(context);\n }\n\n var clientQuery = this.transform(query).clientQuery;\n\n if (clientQuery) {\n observable = asyncMap(observable, function (result) {\n return _this.localState.runResolvers({\n document: clientQuery,\n remoteResult: result,\n context: context,\n variables: variables\n });\n });\n }\n\n return observable;\n };\n\n QueryManager.prototype.fetchRequest = function (_a) {\n var _this = this;\n\n var requestId = _a.requestId,\n queryId = _a.queryId,\n document = _a.document,\n options = _a.options,\n fetchMoreForQueryId = _a.fetchMoreForQueryId;\n var variables = options.variables,\n _b = options.errorPolicy,\n errorPolicy = _b === void 0 ? 'none' : _b,\n fetchPolicy = options.fetchPolicy;\n var resultFromStore;\n var errorsFromStore;\n return new Promise(function (resolve, reject) {\n var observable = _this.getObservableFromLink(document, options.context, variables);\n\n var fqrfId = \"fetchRequest:\" + queryId;\n\n _this.fetchQueryRejectFns.set(fqrfId, reject);\n\n var cleanup = function cleanup() {\n _this.fetchQueryRejectFns[\"delete\"](fqrfId);\n\n _this.setQuery(queryId, function (_a) {\n var subscriptions = _a.subscriptions;\n subscriptions[\"delete\"](subscription);\n });\n };\n\n var subscription = observable.map(function (result) {\n if (requestId >= _this.getQuery(queryId).lastRequestId) {\n _this.markQueryResult(queryId, result, options, fetchMoreForQueryId);\n\n _this.queryStore.markQueryResult(queryId, result, fetchMoreForQueryId);\n\n _this.invalidate(queryId);\n\n _this.invalidate(fetchMoreForQueryId);\n\n _this.broadcastQueries();\n }\n\n if (errorPolicy === 'none' && isNonEmptyArray(result.errors)) {\n return reject(new ApolloError({\n graphQLErrors: result.errors\n }));\n }\n\n if (errorPolicy === 'all') {\n errorsFromStore = result.errors;\n }\n\n if (fetchMoreForQueryId || fetchPolicy === 'no-cache') {\n resultFromStore = result.data;\n } else {\n var _a = _this.dataStore.getCache().diff({\n variables: variables,\n query: document,\n optimistic: false,\n returnPartialData: true\n }),\n result_1 = _a.result,\n complete = _a.complete;\n\n if (complete || options.returnPartialData) {\n resultFromStore = result_1;\n }\n }\n }).subscribe({\n error: function error(_error3) {\n cleanup();\n reject(_error3);\n },\n complete: function complete() {\n cleanup();\n resolve({\n data: resultFromStore,\n errors: errorsFromStore,\n loading: false,\n networkStatus: NetworkStatus.ready,\n stale: false\n });\n }\n });\n\n _this.setQuery(queryId, function (_a) {\n var subscriptions = _a.subscriptions;\n subscriptions.add(subscription);\n });\n });\n };\n\n QueryManager.prototype.getQuery = function (queryId) {\n return this.queries.get(queryId) || {\n listeners: new Set(),\n invalidated: false,\n document: null,\n newData: null,\n lastRequestId: 1,\n observableQuery: null,\n subscriptions: new Set()\n };\n };\n\n QueryManager.prototype.setQuery = function (queryId, updater) {\n var prev = this.getQuery(queryId);\n\n var newInfo = __assign(__assign({}, prev), updater(prev));\n\n this.queries.set(queryId, newInfo);\n };\n\n QueryManager.prototype.invalidate = function (queryId, invalidated) {\n if (invalidated === void 0) {\n invalidated = true;\n }\n\n if (queryId) {\n this.setQuery(queryId, function () {\n return {\n invalidated: invalidated\n };\n });\n }\n };\n\n QueryManager.prototype.prepareContext = function (context) {\n if (context === void 0) {\n context = {};\n }\n\n var newContext = this.localState.prepareContext(context);\n return __assign(__assign({}, newContext), {\n clientAwareness: this.clientAwareness\n });\n };\n\n QueryManager.prototype.checkInFlight = function (queryId) {\n var query = this.queryStore.get(queryId);\n return query && query.networkStatus !== NetworkStatus.ready && query.networkStatus !== NetworkStatus.error;\n };\n\n QueryManager.prototype.startPollingQuery = function (options, queryId, listener) {\n var _this = this;\n\n var pollInterval = options.pollInterval;\n process.env.NODE_ENV === \"production\" ? invariant(pollInterval, 18) : invariant(pollInterval, 'Attempted to start a polling query without a polling interval.');\n\n if (!this.ssrMode) {\n var info = this.pollingInfoByQueryId.get(queryId);\n\n if (!info) {\n this.pollingInfoByQueryId.set(queryId, info = {});\n }\n\n info.interval = pollInterval;\n info.options = __assign(__assign({}, options), {\n fetchPolicy: 'network-only'\n });\n\n var maybeFetch_1 = function maybeFetch_1() {\n var info = _this.pollingInfoByQueryId.get(queryId);\n\n if (info) {\n if (_this.checkInFlight(queryId)) {\n poll_1();\n } else {\n _this.fetchQuery(queryId, info.options, FetchType.poll).then(poll_1, poll_1);\n }\n }\n };\n\n var poll_1 = function poll_1() {\n var info = _this.pollingInfoByQueryId.get(queryId);\n\n if (info) {\n clearTimeout(info.timeout);\n info.timeout = setTimeout(maybeFetch_1, info.interval);\n }\n };\n\n if (listener) {\n this.addQueryListener(queryId, listener);\n }\n\n poll_1();\n }\n\n return queryId;\n };\n\n QueryManager.prototype.stopPollingQuery = function (queryId) {\n this.pollingInfoByQueryId[\"delete\"](queryId);\n };\n\n return QueryManager;\n}();\n\nvar DataStore = function () {\n function DataStore(initialCache) {\n this.cache = initialCache;\n }\n\n DataStore.prototype.getCache = function () {\n return this.cache;\n };\n\n DataStore.prototype.markQueryResult = function (result, document, variables, fetchMoreForQueryId, ignoreErrors) {\n if (ignoreErrors === void 0) {\n ignoreErrors = false;\n }\n\n var writeWithErrors = !graphQLResultHasError(result);\n\n if (ignoreErrors && graphQLResultHasError(result) && result.data) {\n writeWithErrors = true;\n }\n\n if (!fetchMoreForQueryId && writeWithErrors) {\n this.cache.write({\n result: result.data,\n dataId: 'ROOT_QUERY',\n query: document,\n variables: variables\n });\n }\n };\n\n DataStore.prototype.markSubscriptionResult = function (result, document, variables) {\n if (!graphQLResultHasError(result)) {\n this.cache.write({\n result: result.data,\n dataId: 'ROOT_SUBSCRIPTION',\n query: document,\n variables: variables\n });\n }\n };\n\n DataStore.prototype.markMutationInit = function (mutation) {\n var _this = this;\n\n if (mutation.optimisticResponse) {\n var optimistic_1;\n\n if (typeof mutation.optimisticResponse === 'function') {\n optimistic_1 = mutation.optimisticResponse(mutation.variables);\n } else {\n optimistic_1 = mutation.optimisticResponse;\n }\n\n this.cache.recordOptimisticTransaction(function (c) {\n var orig = _this.cache;\n _this.cache = c;\n\n try {\n _this.markMutationResult({\n mutationId: mutation.mutationId,\n result: {\n data: optimistic_1\n },\n document: mutation.document,\n variables: mutation.variables,\n updateQueries: mutation.updateQueries,\n update: mutation.update\n });\n } finally {\n _this.cache = orig;\n }\n }, mutation.mutationId);\n }\n };\n\n DataStore.prototype.markMutationResult = function (mutation) {\n var _this = this;\n\n if (!graphQLResultHasError(mutation.result)) {\n var cacheWrites_1 = [{\n result: mutation.result.data,\n dataId: 'ROOT_MUTATION',\n query: mutation.document,\n variables: mutation.variables\n }];\n var updateQueries_1 = mutation.updateQueries;\n\n if (updateQueries_1) {\n Object.keys(updateQueries_1).forEach(function (id) {\n var _a = updateQueries_1[id],\n query = _a.query,\n updater = _a.updater;\n\n var _b = _this.cache.diff({\n query: query.document,\n variables: query.variables,\n returnPartialData: true,\n optimistic: false\n }),\n currentQueryResult = _b.result,\n complete = _b.complete;\n\n if (complete) {\n var nextQueryResult = tryFunctionOrLogError(function () {\n return updater(currentQueryResult, {\n mutationResult: mutation.result,\n queryName: getOperationName(query.document) || undefined,\n queryVariables: query.variables\n });\n });\n\n if (nextQueryResult) {\n cacheWrites_1.push({\n result: nextQueryResult,\n dataId: 'ROOT_QUERY',\n query: query.document,\n variables: query.variables\n });\n }\n }\n });\n }\n\n this.cache.performTransaction(function (c) {\n cacheWrites_1.forEach(function (write) {\n return c.write(write);\n });\n var update = mutation.update;\n\n if (update) {\n tryFunctionOrLogError(function () {\n return update(c, mutation.result);\n });\n }\n });\n }\n };\n\n DataStore.prototype.markMutationComplete = function (_a) {\n var mutationId = _a.mutationId,\n optimisticResponse = _a.optimisticResponse;\n\n if (optimisticResponse) {\n this.cache.removeOptimistic(mutationId);\n }\n };\n\n DataStore.prototype.markUpdateQueryResult = function (document, variables, newResult) {\n this.cache.write({\n result: newResult,\n dataId: 'ROOT_QUERY',\n variables: variables,\n query: document\n });\n };\n\n DataStore.prototype.reset = function () {\n return this.cache.reset();\n };\n\n return DataStore;\n}();\n\nvar version = \"2.6.10\";\nvar hasSuggestedDevtools = false;\n\nvar ApolloClient = function () {\n function ApolloClient(options) {\n var _this = this;\n\n this.defaultOptions = {};\n this.resetStoreCallbacks = [];\n this.clearStoreCallbacks = [];\n var cache = options.cache,\n _a = options.ssrMode,\n ssrMode = _a === void 0 ? false : _a,\n _b = options.ssrForceFetchDelay,\n ssrForceFetchDelay = _b === void 0 ? 0 : _b,\n connectToDevTools = options.connectToDevTools,\n _c = options.queryDeduplication,\n queryDeduplication = _c === void 0 ? true : _c,\n defaultOptions = options.defaultOptions,\n _d = options.assumeImmutableResults,\n assumeImmutableResults = _d === void 0 ? false : _d,\n resolvers = options.resolvers,\n typeDefs = options.typeDefs,\n fragmentMatcher = options.fragmentMatcher,\n clientAwarenessName = options.name,\n clientAwarenessVersion = options.version;\n var link = options.link;\n\n if (!link && resolvers) {\n link = ApolloLink.empty();\n }\n\n if (!link || !cache) {\n throw process.env.NODE_ENV === \"production\" ? new InvariantError(4) : new InvariantError(\"In order to initialize Apollo Client, you must specify 'link' and 'cache' properties in the options object.\\n\" + \"These options are part of the upgrade requirements when migrating from Apollo Client 1.x to Apollo Client 2.x.\\n\" + \"For more information, please visit: https://www.apollographql.com/docs/tutorial/client.html#apollo-client-setup\");\n }\n\n this.link = link;\n this.cache = cache;\n this.store = new DataStore(cache);\n this.disableNetworkFetches = ssrMode || ssrForceFetchDelay > 0;\n this.queryDeduplication = queryDeduplication;\n this.defaultOptions = defaultOptions || {};\n this.typeDefs = typeDefs;\n\n if (ssrForceFetchDelay) {\n setTimeout(function () {\n return _this.disableNetworkFetches = false;\n }, ssrForceFetchDelay);\n }\n\n this.watchQuery = this.watchQuery.bind(this);\n this.query = this.query.bind(this);\n this.mutate = this.mutate.bind(this);\n this.resetStore = this.resetStore.bind(this);\n this.reFetchObservableQueries = this.reFetchObservableQueries.bind(this);\n var defaultConnectToDevTools = process.env.NODE_ENV !== 'production' && typeof window !== 'undefined' && !window.__APOLLO_CLIENT__;\n\n if (typeof connectToDevTools === 'undefined' ? defaultConnectToDevTools : connectToDevTools && typeof window !== 'undefined') {\n window.__APOLLO_CLIENT__ = this;\n }\n\n if (!hasSuggestedDevtools && process.env.NODE_ENV !== 'production') {\n hasSuggestedDevtools = true;\n\n if (typeof window !== 'undefined' && window.document && window.top === window.self) {\n if (typeof window.__APOLLO_DEVTOOLS_GLOBAL_HOOK__ === 'undefined') {\n if (window.navigator && window.navigator.userAgent && window.navigator.userAgent.indexOf('Chrome') > -1) {\n console.debug('Download the Apollo DevTools ' + 'for a better development experience: ' + 'https://chrome.google.com/webstore/detail/apollo-client-developer-t/jdkknkkbebbapilgoeccciglkfbmbnfm');\n }\n }\n }\n }\n\n this.version = version;\n this.localState = new LocalState({\n cache: cache,\n client: this,\n resolvers: resolvers,\n fragmentMatcher: fragmentMatcher\n });\n this.queryManager = new QueryManager({\n link: this.link,\n store: this.store,\n queryDeduplication: queryDeduplication,\n ssrMode: ssrMode,\n clientAwareness: {\n name: clientAwarenessName,\n version: clientAwarenessVersion\n },\n localState: this.localState,\n assumeImmutableResults: assumeImmutableResults,\n onBroadcast: function onBroadcast() {\n if (_this.devToolsHookCb) {\n _this.devToolsHookCb({\n action: {},\n state: {\n queries: _this.queryManager.queryStore.getStore(),\n mutations: _this.queryManager.mutationStore.getStore()\n },\n dataWithOptimisticResults: _this.cache.extract(true)\n });\n }\n }\n });\n }\n\n ApolloClient.prototype.stop = function () {\n this.queryManager.stop();\n };\n\n ApolloClient.prototype.watchQuery = function (options) {\n if (this.defaultOptions.watchQuery) {\n options = __assign(__assign({}, this.defaultOptions.watchQuery), options);\n }\n\n if (this.disableNetworkFetches && (options.fetchPolicy === 'network-only' || options.fetchPolicy === 'cache-and-network')) {\n options = __assign(__assign({}, options), {\n fetchPolicy: 'cache-first'\n });\n }\n\n return this.queryManager.watchQuery(options);\n };\n\n ApolloClient.prototype.query = function (options) {\n if (this.defaultOptions.query) {\n options = __assign(__assign({}, this.defaultOptions.query), options);\n }\n\n process.env.NODE_ENV === \"production\" ? invariant(options.fetchPolicy !== 'cache-and-network', 5) : invariant(options.fetchPolicy !== 'cache-and-network', 'The cache-and-network fetchPolicy does not work with client.query, because ' + 'client.query can only return a single result. Please use client.watchQuery ' + 'to receive multiple results from the cache and the network, or consider ' + 'using a different fetchPolicy, such as cache-first or network-only.');\n\n if (this.disableNetworkFetches && options.fetchPolicy === 'network-only') {\n options = __assign(__assign({}, options), {\n fetchPolicy: 'cache-first'\n });\n }\n\n return this.queryManager.query(options);\n };\n\n ApolloClient.prototype.mutate = function (options) {\n if (this.defaultOptions.mutate) {\n options = __assign(__assign({}, this.defaultOptions.mutate), options);\n }\n\n return this.queryManager.mutate(options);\n };\n\n ApolloClient.prototype.subscribe = function (options) {\n return this.queryManager.startGraphQLSubscription(options);\n };\n\n ApolloClient.prototype.readQuery = function (options, optimistic) {\n if (optimistic === void 0) {\n optimistic = false;\n }\n\n return this.cache.readQuery(options, optimistic);\n };\n\n ApolloClient.prototype.readFragment = function (options, optimistic) {\n if (optimistic === void 0) {\n optimistic = false;\n }\n\n return this.cache.readFragment(options, optimistic);\n };\n\n ApolloClient.prototype.writeQuery = function (options) {\n var result = this.cache.writeQuery(options);\n this.queryManager.broadcastQueries();\n return result;\n };\n\n ApolloClient.prototype.writeFragment = function (options) {\n var result = this.cache.writeFragment(options);\n this.queryManager.broadcastQueries();\n return result;\n };\n\n ApolloClient.prototype.writeData = function (options) {\n var result = this.cache.writeData(options);\n this.queryManager.broadcastQueries();\n return result;\n };\n\n ApolloClient.prototype.__actionHookForDevTools = function (cb) {\n this.devToolsHookCb = cb;\n };\n\n ApolloClient.prototype.__requestRaw = function (payload) {\n return execute(this.link, payload);\n };\n\n ApolloClient.prototype.initQueryManager = function () {\n process.env.NODE_ENV === \"production\" || invariant.warn('Calling the initQueryManager method is no longer necessary, ' + 'and it will be removed from ApolloClient in version 3.0.');\n return this.queryManager;\n };\n\n ApolloClient.prototype.resetStore = function () {\n var _this = this;\n\n return Promise.resolve().then(function () {\n return _this.queryManager.clearStore();\n }).then(function () {\n return Promise.all(_this.resetStoreCallbacks.map(function (fn) {\n return fn();\n }));\n }).then(function () {\n return _this.reFetchObservableQueries();\n });\n };\n\n ApolloClient.prototype.clearStore = function () {\n var _this = this;\n\n return Promise.resolve().then(function () {\n return _this.queryManager.clearStore();\n }).then(function () {\n return Promise.all(_this.clearStoreCallbacks.map(function (fn) {\n return fn();\n }));\n });\n };\n\n ApolloClient.prototype.onResetStore = function (cb) {\n var _this = this;\n\n this.resetStoreCallbacks.push(cb);\n return function () {\n _this.resetStoreCallbacks = _this.resetStoreCallbacks.filter(function (c) {\n return c !== cb;\n });\n };\n };\n\n ApolloClient.prototype.onClearStore = function (cb) {\n var _this = this;\n\n this.clearStoreCallbacks.push(cb);\n return function () {\n _this.clearStoreCallbacks = _this.clearStoreCallbacks.filter(function (c) {\n return c !== cb;\n });\n };\n };\n\n ApolloClient.prototype.reFetchObservableQueries = function (includeStandby) {\n return this.queryManager.reFetchObservableQueries(includeStandby);\n };\n\n ApolloClient.prototype.extract = function (optimistic) {\n return this.cache.extract(optimistic);\n };\n\n ApolloClient.prototype.restore = function (serializedState) {\n return this.cache.restore(serializedState);\n };\n\n ApolloClient.prototype.addResolvers = function (resolvers) {\n this.localState.addResolvers(resolvers);\n };\n\n ApolloClient.prototype.setResolvers = function (resolvers) {\n this.localState.setResolvers(resolvers);\n };\n\n ApolloClient.prototype.getResolvers = function () {\n return this.localState.getResolvers();\n };\n\n ApolloClient.prototype.setLocalStateFragmentMatcher = function (fragmentMatcher) {\n this.localState.setFragmentMatcher(fragmentMatcher);\n };\n\n return ApolloClient;\n}();\n\nexport default ApolloClient;\nexport { ApolloClient, ApolloError, FetchType, NetworkStatus, ObservableQuery, isApolloError };","import { __assign } from 'tslib';\nimport { print } from 'graphql/language/printer';\nimport { InvariantError } from 'ts-invariant';\nvar defaultHttpOptions = {\n includeQuery: true,\n includeExtensions: false\n};\nvar defaultHeaders = {\n accept: '*/*',\n 'content-type': 'application/json'\n};\nvar defaultOptions = {\n method: 'POST'\n};\nvar fallbackHttpConfig = {\n http: defaultHttpOptions,\n headers: defaultHeaders,\n options: defaultOptions\n};\n\nvar throwServerError = function throwServerError(response, result, message) {\n var error = new Error(message);\n error.name = 'ServerError';\n error.response = response;\n error.statusCode = response.status;\n error.result = result;\n throw error;\n};\n\nvar parseAndCheckHttpResponse = function parseAndCheckHttpResponse(operations) {\n return function (response) {\n return response.text().then(function (bodyText) {\n try {\n return JSON.parse(bodyText);\n } catch (err) {\n var parseError = err;\n parseError.name = 'ServerParseError';\n parseError.response = response;\n parseError.statusCode = response.status;\n parseError.bodyText = bodyText;\n return Promise.reject(parseError);\n }\n }).then(function (result) {\n if (response.status >= 300) {\n throwServerError(response, result, \"Response not successful: Received status code \" + response.status);\n }\n\n if (!Array.isArray(result) && !result.hasOwnProperty('data') && !result.hasOwnProperty('errors')) {\n throwServerError(response, result, \"Server response was missing for query '\" + (Array.isArray(operations) ? operations.map(function (op) {\n return op.operationName;\n }) : operations.operationName) + \"'.\");\n }\n\n return result;\n });\n };\n};\n\nvar checkFetcher = function checkFetcher(fetcher) {\n if (!fetcher && typeof fetch === 'undefined') {\n var library = 'unfetch';\n if (typeof window === 'undefined') library = 'node-fetch';\n throw process.env.NODE_ENV === \"production\" ? new InvariantError(1) : new InvariantError(\"\\nfetch is not found globally and no fetcher passed, to fix pass a fetch for\\nyour environment like https://www.npmjs.com/package/\" + library + \".\\n\\nFor example:\\nimport fetch from '\" + library + \"';\\nimport { createHttpLink } from 'apollo-link-http';\\n\\nconst link = createHttpLink({ uri: '/graphql', fetch: fetch });\");\n }\n};\n\nvar createSignalIfSupported = function createSignalIfSupported() {\n if (typeof AbortController === 'undefined') return {\n controller: false,\n signal: false\n };\n var controller = new AbortController();\n var signal = controller.signal;\n return {\n controller: controller,\n signal: signal\n };\n};\n\nvar selectHttpOptionsAndBody = function selectHttpOptionsAndBody(operation, fallbackConfig) {\n var configs = [];\n\n for (var _i = 2; _i < arguments.length; _i++) {\n configs[_i - 2] = arguments[_i];\n }\n\n var options = __assign({}, fallbackConfig.options, {\n headers: fallbackConfig.headers,\n credentials: fallbackConfig.credentials\n });\n\n var http = fallbackConfig.http;\n configs.forEach(function (config) {\n options = __assign({}, options, config.options, {\n headers: __assign({}, options.headers, config.headers)\n });\n if (config.credentials) options.credentials = config.credentials;\n http = __assign({}, http, config.http);\n });\n var operationName = operation.operationName,\n extensions = operation.extensions,\n variables = operation.variables,\n query = operation.query;\n var body = {\n operationName: operationName,\n variables: variables\n };\n if (http.includeExtensions) body.extensions = extensions;\n if (http.includeQuery) body.query = print(query);\n return {\n options: options,\n body: body\n };\n};\n\nvar serializeFetchParameter = function serializeFetchParameter(p, label) {\n var serialized;\n\n try {\n serialized = JSON.stringify(p);\n } catch (e) {\n var parseError = process.env.NODE_ENV === \"production\" ? new InvariantError(2) : new InvariantError(\"Network request failed. \" + label + \" is not serializable: \" + e.message);\n parseError.parseError = e;\n throw parseError;\n }\n\n return serialized;\n};\n\nvar selectURI = function selectURI(operation, fallbackURI) {\n var context = operation.getContext();\n var contextURI = context.uri;\n\n if (contextURI) {\n return contextURI;\n } else if (typeof fallbackURI === 'function') {\n return fallbackURI(operation);\n } else {\n return fallbackURI || '/graphql';\n }\n};\n\nexport { checkFetcher, createSignalIfSupported, fallbackHttpConfig, parseAndCheckHttpResponse, selectHttpOptionsAndBody, selectURI, serializeFetchParameter, throwServerError };","import { __assign, __extends } from 'tslib';\nimport { Observable, ApolloLink } from 'apollo-link';\n\nvar OperationBatcher = function () {\n function OperationBatcher(_a) {\n var batchInterval = _a.batchInterval,\n batchMax = _a.batchMax,\n batchHandler = _a.batchHandler,\n batchKey = _a.batchKey;\n this.queuedRequests = new Map();\n this.batchInterval = batchInterval;\n this.batchMax = batchMax || 0;\n this.batchHandler = batchHandler;\n\n this.batchKey = batchKey || function () {\n return '';\n };\n }\n\n OperationBatcher.prototype.enqueueRequest = function (request) {\n var _this = this;\n\n var requestCopy = __assign({}, request);\n\n var queued = false;\n var key = this.batchKey(request.operation);\n\n if (!requestCopy.observable) {\n requestCopy.observable = new Observable(function (observer) {\n if (!_this.queuedRequests.has(key)) {\n _this.queuedRequests.set(key, []);\n }\n\n if (!queued) {\n _this.queuedRequests.get(key).push(requestCopy);\n\n queued = true;\n }\n\n requestCopy.next = requestCopy.next || [];\n if (observer.next) requestCopy.next.push(observer.next.bind(observer));\n requestCopy.error = requestCopy.error || [];\n if (observer.error) requestCopy.error.push(observer.error.bind(observer));\n requestCopy.complete = requestCopy.complete || [];\n if (observer.complete) requestCopy.complete.push(observer.complete.bind(observer));\n\n if (_this.queuedRequests.get(key).length === 1) {\n _this.scheduleQueueConsumption(key);\n }\n\n if (_this.queuedRequests.get(key).length === _this.batchMax) {\n _this.consumeQueue(key);\n }\n });\n }\n\n return requestCopy.observable;\n };\n\n OperationBatcher.prototype.consumeQueue = function (key) {\n var requestKey = key || '';\n var queuedRequests = this.queuedRequests.get(requestKey);\n\n if (!queuedRequests) {\n return;\n }\n\n this.queuedRequests[\"delete\"](requestKey);\n var requests = queuedRequests.map(function (queuedRequest) {\n return queuedRequest.operation;\n });\n var forwards = queuedRequests.map(function (queuedRequest) {\n return queuedRequest.forward;\n });\n var observables = [];\n var nexts = [];\n var errors = [];\n var completes = [];\n queuedRequests.forEach(function (batchableRequest, index) {\n observables.push(batchableRequest.observable);\n nexts.push(batchableRequest.next);\n errors.push(batchableRequest.error);\n completes.push(batchableRequest.complete);\n });\n var batchedObservable = this.batchHandler(requests, forwards) || Observable.of();\n\n var onError = function onError(error) {\n errors.forEach(function (rejecters) {\n if (rejecters) {\n rejecters.forEach(function (e) {\n return e(error);\n });\n }\n });\n };\n\n batchedObservable.subscribe({\n next: function next(results) {\n if (!Array.isArray(results)) {\n results = [results];\n }\n\n if (nexts.length !== results.length) {\n var error = new Error(\"server returned results with length \" + results.length + \", expected length of \" + nexts.length);\n error.result = results;\n return onError(error);\n }\n\n results.forEach(function (result, index) {\n if (nexts[index]) {\n nexts[index].forEach(function (next) {\n return next(result);\n });\n }\n });\n },\n error: onError,\n complete: function complete() {\n completes.forEach(function (complete) {\n if (complete) {\n complete.forEach(function (c) {\n return c();\n });\n }\n });\n }\n });\n return observables;\n };\n\n OperationBatcher.prototype.scheduleQueueConsumption = function (key) {\n var _this = this;\n\n var requestKey = key || '';\n setTimeout(function () {\n if (_this.queuedRequests.get(requestKey) && _this.queuedRequests.get(requestKey).length) {\n _this.consumeQueue(requestKey);\n }\n }, this.batchInterval);\n };\n\n return OperationBatcher;\n}();\n\nvar BatchLink = function (_super) {\n __extends(BatchLink, _super);\n\n function BatchLink(fetchParams) {\n var _this = _super.call(this) || this;\n\n var _a = fetchParams || {},\n _b = _a.batchInterval,\n batchInterval = _b === void 0 ? 10 : _b,\n _c = _a.batchMax,\n batchMax = _c === void 0 ? 0 : _c,\n _d = _a.batchHandler,\n batchHandler = _d === void 0 ? function () {\n return null;\n } : _d,\n _e = _a.batchKey,\n batchKey = _e === void 0 ? function () {\n return '';\n } : _e;\n\n _this.batcher = new OperationBatcher({\n batchInterval: batchInterval,\n batchMax: batchMax,\n batchHandler: batchHandler,\n batchKey: batchKey\n });\n\n if (fetchParams.batchHandler.length <= 1) {\n _this.request = function (operation) {\n return _this.batcher.enqueueRequest({\n operation: operation\n });\n };\n }\n\n return _this;\n }\n\n BatchLink.prototype.request = function (operation, forward) {\n return this.batcher.enqueueRequest({\n operation: operation,\n forward: forward\n });\n };\n\n return BatchLink;\n}(ApolloLink);\n\nexport { BatchLink, OperationBatcher };","import { __extends, __rest, __assign } from 'tslib';\nimport { ApolloLink, fromError, Observable } from 'apollo-link';\nimport { checkFetcher, selectURI, selectHttpOptionsAndBody, fallbackHttpConfig, serializeFetchParameter, createSignalIfSupported, parseAndCheckHttpResponse } from 'apollo-link-http-common';\nimport { BatchLink } from 'apollo-link-batch';\n\nvar BatchHttpLink = function (_super) {\n __extends(BatchHttpLink, _super);\n\n function BatchHttpLink(fetchParams) {\n var _this = _super.call(this) || this;\n\n var _a = fetchParams || {},\n _b = _a.uri,\n uri = _b === void 0 ? '/graphql' : _b,\n fetcher = _a.fetch,\n includeExtensions = _a.includeExtensions,\n batchInterval = _a.batchInterval,\n batchMax = _a.batchMax,\n batchKey = _a.batchKey,\n requestOptions = __rest(_a, [\"uri\", \"fetch\", \"includeExtensions\", \"batchInterval\", \"batchMax\", \"batchKey\"]);\n\n checkFetcher(fetcher);\n\n if (!fetcher) {\n fetcher = fetch;\n }\n\n var linkConfig = {\n http: {\n includeExtensions: includeExtensions\n },\n options: requestOptions.fetchOptions,\n credentials: requestOptions.credentials,\n headers: requestOptions.headers\n };\n _this.batchInterval = batchInterval || 10;\n _this.batchMax = batchMax || 10;\n\n var batchHandler = function batchHandler(operations) {\n var chosenURI = selectURI(operations[0], uri);\n var context = operations[0].getContext();\n var clientAwarenessHeaders = {};\n\n if (context.clientAwareness) {\n var _a = context.clientAwareness,\n name_1 = _a.name,\n version = _a.version;\n\n if (name_1) {\n clientAwarenessHeaders['apollographql-client-name'] = name_1;\n }\n\n if (version) {\n clientAwarenessHeaders['apollographql-client-version'] = version;\n }\n }\n\n var contextConfig = {\n http: context.http,\n options: context.fetchOptions,\n credentials: context.credentials,\n headers: __assign({}, clientAwarenessHeaders, context.headers)\n };\n var optsAndBody = operations.map(function (operation) {\n return selectHttpOptionsAndBody(operation, fallbackHttpConfig, linkConfig, contextConfig);\n });\n var loadedBody = optsAndBody.map(function (_a) {\n var body = _a.body;\n return body;\n });\n var options = optsAndBody[0].options;\n\n if (options.method === 'GET') {\n return fromError(new Error('apollo-link-batch-http does not support GET requests'));\n }\n\n try {\n options.body = serializeFetchParameter(loadedBody, 'Payload');\n } catch (parseError) {\n return fromError(parseError);\n }\n\n var controller;\n\n if (!options.signal) {\n var _b = createSignalIfSupported(),\n _controller = _b.controller,\n signal = _b.signal;\n\n controller = _controller;\n if (controller) options.signal = signal;\n }\n\n return new Observable(function (observer) {\n fetcher(chosenURI, options).then(function (response) {\n operations.forEach(function (operation) {\n return operation.setContext({\n response: response\n });\n });\n return response;\n }).then(parseAndCheckHttpResponse(operations)).then(function (result) {\n observer.next(result);\n observer.complete();\n return result;\n })[\"catch\"](function (err) {\n if (err.name === 'AbortError') return;\n\n if (err.result && err.result.errors && err.result.data) {\n observer.next(err.result);\n }\n\n observer.error(err);\n });\n return function () {\n if (controller) controller.abort();\n };\n });\n };\n\n batchKey = batchKey || function (operation) {\n var context = operation.getContext();\n var contextConfig = {\n http: context.http,\n options: context.fetchOptions,\n credentials: context.credentials,\n headers: context.headers\n };\n return selectURI(operation, uri) + JSON.stringify(contextConfig);\n };\n\n _this.batcher = new BatchLink({\n batchInterval: _this.batchInterval,\n batchMax: _this.batchMax,\n batchKey: batchKey,\n batchHandler: batchHandler\n });\n return _this;\n }\n\n BatchHttpLink.prototype.request = function (operation) {\n return this.batcher.request(operation);\n };\n\n return BatchHttpLink;\n}(ApolloLink);\n\nexport { BatchHttpLink };","import _typeof from \"/app/scripts/smweb-scripts/node_modules/@babel/runtime/helpers/typeof\";\nimport { visit } from 'graphql/language/visitor';\nimport { InvariantError, invariant } from 'ts-invariant';\nimport { __assign, __spreadArrays } from 'tslib';\nimport stringify from 'fast-json-stable-stringify';\nexport { equal as isEqual } from '@wry/equality';\n\nfunction isScalarValue(value) {\n return ['StringValue', 'BooleanValue', 'EnumValue'].indexOf(value.kind) > -1;\n}\n\nfunction isNumberValue(value) {\n return ['IntValue', 'FloatValue'].indexOf(value.kind) > -1;\n}\n\nfunction isStringValue(value) {\n return value.kind === 'StringValue';\n}\n\nfunction isBooleanValue(value) {\n return value.kind === 'BooleanValue';\n}\n\nfunction isIntValue(value) {\n return value.kind === 'IntValue';\n}\n\nfunction isFloatValue(value) {\n return value.kind === 'FloatValue';\n}\n\nfunction isVariable(value) {\n return value.kind === 'Variable';\n}\n\nfunction isObjectValue(value) {\n return value.kind === 'ObjectValue';\n}\n\nfunction isListValue(value) {\n return value.kind === 'ListValue';\n}\n\nfunction isEnumValue(value) {\n return value.kind === 'EnumValue';\n}\n\nfunction isNullValue(value) {\n return value.kind === 'NullValue';\n}\n\nfunction valueToObjectRepresentation(argObj, name, value, variables) {\n if (isIntValue(value) || isFloatValue(value)) {\n argObj[name.value] = Number(value.value);\n } else if (isBooleanValue(value) || isStringValue(value)) {\n argObj[name.value] = value.value;\n } else if (isObjectValue(value)) {\n var nestedArgObj_1 = {};\n value.fields.map(function (obj) {\n return valueToObjectRepresentation(nestedArgObj_1, obj.name, obj.value, variables);\n });\n argObj[name.value] = nestedArgObj_1;\n } else if (isVariable(value)) {\n var variableValue = (variables || {})[value.name.value];\n argObj[name.value] = variableValue;\n } else if (isListValue(value)) {\n argObj[name.value] = value.values.map(function (listValue) {\n var nestedArgArrayObj = {};\n valueToObjectRepresentation(nestedArgArrayObj, name, listValue, variables);\n return nestedArgArrayObj[name.value];\n });\n } else if (isEnumValue(value)) {\n argObj[name.value] = value.value;\n } else if (isNullValue(value)) {\n argObj[name.value] = null;\n } else {\n throw process.env.NODE_ENV === \"production\" ? new InvariantError(17) : new InvariantError(\"The inline argument \\\"\" + name.value + \"\\\" of kind \\\"\" + value.kind + \"\\\"\" + 'is not supported. Use variables instead of inline arguments to ' + 'overcome this limitation.');\n }\n}\n\nfunction storeKeyNameFromField(field, variables) {\n var directivesObj = null;\n\n if (field.directives) {\n directivesObj = {};\n field.directives.forEach(function (directive) {\n directivesObj[directive.name.value] = {};\n\n if (directive.arguments) {\n directive.arguments.forEach(function (_a) {\n var name = _a.name,\n value = _a.value;\n return valueToObjectRepresentation(directivesObj[directive.name.value], name, value, variables);\n });\n }\n });\n }\n\n var argObj = null;\n\n if (field.arguments && field.arguments.length) {\n argObj = {};\n field.arguments.forEach(function (_a) {\n var name = _a.name,\n value = _a.value;\n return valueToObjectRepresentation(argObj, name, value, variables);\n });\n }\n\n return getStoreKeyName(field.name.value, argObj, directivesObj);\n}\n\nvar KNOWN_DIRECTIVES = ['connection', 'include', 'skip', 'client', 'rest', 'export'];\n\nfunction getStoreKeyName(fieldName, args, directives) {\n if (directives && directives['connection'] && directives['connection']['key']) {\n if (directives['connection']['filter'] && directives['connection']['filter'].length > 0) {\n var filterKeys = directives['connection']['filter'] ? directives['connection']['filter'] : [];\n filterKeys.sort();\n var queryArgs_1 = args;\n var filteredArgs_1 = {};\n filterKeys.forEach(function (key) {\n filteredArgs_1[key] = queryArgs_1[key];\n });\n return directives['connection']['key'] + \"(\" + JSON.stringify(filteredArgs_1) + \")\";\n } else {\n return directives['connection']['key'];\n }\n }\n\n var completeFieldName = fieldName;\n\n if (args) {\n var stringifiedArgs = stringify(args);\n completeFieldName += \"(\" + stringifiedArgs + \")\";\n }\n\n if (directives) {\n Object.keys(directives).forEach(function (key) {\n if (KNOWN_DIRECTIVES.indexOf(key) !== -1) return;\n\n if (directives[key] && Object.keys(directives[key]).length) {\n completeFieldName += \"@\" + key + \"(\" + JSON.stringify(directives[key]) + \")\";\n } else {\n completeFieldName += \"@\" + key;\n }\n });\n }\n\n return completeFieldName;\n}\n\nfunction argumentsObjectFromField(field, variables) {\n if (field.arguments && field.arguments.length) {\n var argObj_1 = {};\n field.arguments.forEach(function (_a) {\n var name = _a.name,\n value = _a.value;\n return valueToObjectRepresentation(argObj_1, name, value, variables);\n });\n return argObj_1;\n }\n\n return null;\n}\n\nfunction resultKeyNameFromField(field) {\n return field.alias ? field.alias.value : field.name.value;\n}\n\nfunction isField(selection) {\n return selection.kind === 'Field';\n}\n\nfunction isInlineFragment(selection) {\n return selection.kind === 'InlineFragment';\n}\n\nfunction isIdValue(idObject) {\n return idObject && idObject.type === 'id' && typeof idObject.generated === 'boolean';\n}\n\nfunction toIdValue(idConfig, generated) {\n if (generated === void 0) {\n generated = false;\n }\n\n return __assign({\n type: 'id',\n generated: generated\n }, typeof idConfig === 'string' ? {\n id: idConfig,\n typename: undefined\n } : idConfig);\n}\n\nfunction isJsonValue(jsonObject) {\n return jsonObject != null && _typeof(jsonObject) === 'object' && jsonObject.type === 'json';\n}\n\nfunction defaultValueFromVariable(node) {\n throw process.env.NODE_ENV === \"production\" ? new InvariantError(18) : new InvariantError(\"Variable nodes are not supported by valueFromNode\");\n}\n\nfunction valueFromNode(node, onVariable) {\n if (onVariable === void 0) {\n onVariable = defaultValueFromVariable;\n }\n\n switch (node.kind) {\n case 'Variable':\n return onVariable(node);\n\n case 'NullValue':\n return null;\n\n case 'IntValue':\n return parseInt(node.value, 10);\n\n case 'FloatValue':\n return parseFloat(node.value);\n\n case 'ListValue':\n return node.values.map(function (v) {\n return valueFromNode(v, onVariable);\n });\n\n case 'ObjectValue':\n {\n var value = {};\n\n for (var _i = 0, _a = node.fields; _i < _a.length; _i++) {\n var field = _a[_i];\n value[field.name.value] = valueFromNode(field.value, onVariable);\n }\n\n return value;\n }\n\n default:\n return node.value;\n }\n}\n\nfunction getDirectiveInfoFromField(field, variables) {\n if (field.directives && field.directives.length) {\n var directiveObj_1 = {};\n field.directives.forEach(function (directive) {\n directiveObj_1[directive.name.value] = argumentsObjectFromField(directive, variables);\n });\n return directiveObj_1;\n }\n\n return null;\n}\n\nfunction shouldInclude(selection, variables) {\n if (variables === void 0) {\n variables = {};\n }\n\n return getInclusionDirectives(selection.directives).every(function (_a) {\n var directive = _a.directive,\n ifArgument = _a.ifArgument;\n var evaledValue = false;\n\n if (ifArgument.value.kind === 'Variable') {\n evaledValue = variables[ifArgument.value.name.value];\n process.env.NODE_ENV === \"production\" ? invariant(evaledValue !== void 0, 13) : invariant(evaledValue !== void 0, \"Invalid variable referenced in @\" + directive.name.value + \" directive.\");\n } else {\n evaledValue = ifArgument.value.value;\n }\n\n return directive.name.value === 'skip' ? !evaledValue : evaledValue;\n });\n}\n\nfunction getDirectiveNames(doc) {\n var names = [];\n visit(doc, {\n Directive: function Directive(node) {\n names.push(node.name.value);\n }\n });\n return names;\n}\n\nfunction hasDirectives(names, doc) {\n return getDirectiveNames(doc).some(function (name) {\n return names.indexOf(name) > -1;\n });\n}\n\nfunction hasClientExports(document) {\n return document && hasDirectives(['client'], document) && hasDirectives(['export'], document);\n}\n\nfunction isInclusionDirective(_a) {\n var value = _a.name.value;\n return value === 'skip' || value === 'include';\n}\n\nfunction getInclusionDirectives(directives) {\n return directives ? directives.filter(isInclusionDirective).map(function (directive) {\n var directiveArguments = directive.arguments;\n var directiveName = directive.name.value;\n process.env.NODE_ENV === \"production\" ? invariant(directiveArguments && directiveArguments.length === 1, 14) : invariant(directiveArguments && directiveArguments.length === 1, \"Incorrect number of arguments for the @\" + directiveName + \" directive.\");\n var ifArgument = directiveArguments[0];\n process.env.NODE_ENV === \"production\" ? invariant(ifArgument.name && ifArgument.name.value === 'if', 15) : invariant(ifArgument.name && ifArgument.name.value === 'if', \"Invalid argument for the @\" + directiveName + \" directive.\");\n var ifValue = ifArgument.value;\n process.env.NODE_ENV === \"production\" ? invariant(ifValue && (ifValue.kind === 'Variable' || ifValue.kind === 'BooleanValue'), 16) : invariant(ifValue && (ifValue.kind === 'Variable' || ifValue.kind === 'BooleanValue'), \"Argument for the @\" + directiveName + \" directive must be a variable or a boolean value.\");\n return {\n directive: directive,\n ifArgument: ifArgument\n };\n }) : [];\n}\n\nfunction getFragmentQueryDocument(document, fragmentName) {\n var actualFragmentName = fragmentName;\n var fragments = [];\n document.definitions.forEach(function (definition) {\n if (definition.kind === 'OperationDefinition') {\n throw process.env.NODE_ENV === \"production\" ? new InvariantError(11) : new InvariantError(\"Found a \" + definition.operation + \" operation\" + (definition.name ? \" named '\" + definition.name.value + \"'\" : '') + \". \" + 'No operations are allowed when using a fragment as a query. Only fragments are allowed.');\n }\n\n if (definition.kind === 'FragmentDefinition') {\n fragments.push(definition);\n }\n });\n\n if (typeof actualFragmentName === 'undefined') {\n process.env.NODE_ENV === \"production\" ? invariant(fragments.length === 1, 12) : invariant(fragments.length === 1, \"Found \" + fragments.length + \" fragments. `fragmentName` must be provided when there is not exactly 1 fragment.\");\n actualFragmentName = fragments[0].name.value;\n }\n\n var query = __assign(__assign({}, document), {\n definitions: __spreadArrays([{\n kind: 'OperationDefinition',\n operation: 'query',\n selectionSet: {\n kind: 'SelectionSet',\n selections: [{\n kind: 'FragmentSpread',\n name: {\n kind: 'Name',\n value: actualFragmentName\n }\n }]\n }\n }], document.definitions)\n });\n\n return query;\n}\n\nfunction assign(target) {\n var sources = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n sources[_i - 1] = arguments[_i];\n }\n\n sources.forEach(function (source) {\n if (typeof source === 'undefined' || source === null) {\n return;\n }\n\n Object.keys(source).forEach(function (key) {\n target[key] = source[key];\n });\n });\n return target;\n}\n\nfunction getMutationDefinition(doc) {\n checkDocument(doc);\n var mutationDef = doc.definitions.filter(function (definition) {\n return definition.kind === 'OperationDefinition' && definition.operation === 'mutation';\n })[0];\n process.env.NODE_ENV === \"production\" ? invariant(mutationDef, 1) : invariant(mutationDef, 'Must contain a mutation definition.');\n return mutationDef;\n}\n\nfunction checkDocument(doc) {\n process.env.NODE_ENV === \"production\" ? invariant(doc && doc.kind === 'Document', 2) : invariant(doc && doc.kind === 'Document', \"Expecting a parsed GraphQL document. Perhaps you need to wrap the query string in a \\\"gql\\\" tag? http://docs.apollostack.com/apollo-client/core.html#gql\");\n var operations = doc.definitions.filter(function (d) {\n return d.kind !== 'FragmentDefinition';\n }).map(function (definition) {\n if (definition.kind !== 'OperationDefinition') {\n throw process.env.NODE_ENV === \"production\" ? new InvariantError(3) : new InvariantError(\"Schema type definitions not allowed in queries. Found: \\\"\" + definition.kind + \"\\\"\");\n }\n\n return definition;\n });\n process.env.NODE_ENV === \"production\" ? invariant(operations.length <= 1, 4) : invariant(operations.length <= 1, \"Ambiguous GraphQL document: contains \" + operations.length + \" operations\");\n return doc;\n}\n\nfunction getOperationDefinition(doc) {\n checkDocument(doc);\n return doc.definitions.filter(function (definition) {\n return definition.kind === 'OperationDefinition';\n })[0];\n}\n\nfunction getOperationDefinitionOrDie(document) {\n var def = getOperationDefinition(document);\n process.env.NODE_ENV === \"production\" ? invariant(def, 5) : invariant(def, \"GraphQL document is missing an operation\");\n return def;\n}\n\nfunction getOperationName(doc) {\n return doc.definitions.filter(function (definition) {\n return definition.kind === 'OperationDefinition' && definition.name;\n }).map(function (x) {\n return x.name.value;\n })[0] || null;\n}\n\nfunction getFragmentDefinitions(doc) {\n return doc.definitions.filter(function (definition) {\n return definition.kind === 'FragmentDefinition';\n });\n}\n\nfunction getQueryDefinition(doc) {\n var queryDef = getOperationDefinition(doc);\n process.env.NODE_ENV === \"production\" ? invariant(queryDef && queryDef.operation === 'query', 6) : invariant(queryDef && queryDef.operation === 'query', 'Must contain a query definition.');\n return queryDef;\n}\n\nfunction getFragmentDefinition(doc) {\n process.env.NODE_ENV === \"production\" ? invariant(doc.kind === 'Document', 7) : invariant(doc.kind === 'Document', \"Expecting a parsed GraphQL document. Perhaps you need to wrap the query string in a \\\"gql\\\" tag? http://docs.apollostack.com/apollo-client/core.html#gql\");\n process.env.NODE_ENV === \"production\" ? invariant(doc.definitions.length <= 1, 8) : invariant(doc.definitions.length <= 1, 'Fragment must have exactly one definition.');\n var fragmentDef = doc.definitions[0];\n process.env.NODE_ENV === \"production\" ? invariant(fragmentDef.kind === 'FragmentDefinition', 9) : invariant(fragmentDef.kind === 'FragmentDefinition', 'Must be a fragment definition.');\n return fragmentDef;\n}\n\nfunction getMainDefinition(queryDoc) {\n checkDocument(queryDoc);\n var fragmentDefinition;\n\n for (var _i = 0, _a = queryDoc.definitions; _i < _a.length; _i++) {\n var definition = _a[_i];\n\n if (definition.kind === 'OperationDefinition') {\n var operation = definition.operation;\n\n if (operation === 'query' || operation === 'mutation' || operation === 'subscription') {\n return definition;\n }\n }\n\n if (definition.kind === 'FragmentDefinition' && !fragmentDefinition) {\n fragmentDefinition = definition;\n }\n }\n\n if (fragmentDefinition) {\n return fragmentDefinition;\n }\n\n throw process.env.NODE_ENV === \"production\" ? new InvariantError(10) : new InvariantError('Expected a parsed GraphQL query with a query, mutation, subscription, or a fragment.');\n}\n\nfunction createFragmentMap(fragments) {\n if (fragments === void 0) {\n fragments = [];\n }\n\n var symTable = {};\n fragments.forEach(function (fragment) {\n symTable[fragment.name.value] = fragment;\n });\n return symTable;\n}\n\nfunction getDefaultValues(definition) {\n if (definition && definition.variableDefinitions && definition.variableDefinitions.length) {\n var defaultValues = definition.variableDefinitions.filter(function (_a) {\n var defaultValue = _a.defaultValue;\n return defaultValue;\n }).map(function (_a) {\n var variable = _a.variable,\n defaultValue = _a.defaultValue;\n var defaultValueObj = {};\n valueToObjectRepresentation(defaultValueObj, variable.name, defaultValue);\n return defaultValueObj;\n });\n return assign.apply(void 0, __spreadArrays([{}], defaultValues));\n }\n\n return {};\n}\n\nfunction variablesInOperation(operation) {\n var names = new Set();\n\n if (operation.variableDefinitions) {\n for (var _i = 0, _a = operation.variableDefinitions; _i < _a.length; _i++) {\n var definition = _a[_i];\n names.add(definition.variable.name.value);\n }\n }\n\n return names;\n}\n\nfunction filterInPlace(array, test, context) {\n var target = 0;\n array.forEach(function (elem, i) {\n if (test.call(this, elem, i, array)) {\n array[target++] = elem;\n }\n }, context);\n array.length = target;\n return array;\n}\n\nvar TYPENAME_FIELD = {\n kind: 'Field',\n name: {\n kind: 'Name',\n value: '__typename'\n }\n};\n\nfunction isEmpty(op, fragments) {\n return op.selectionSet.selections.every(function (selection) {\n return selection.kind === 'FragmentSpread' && isEmpty(fragments[selection.name.value], fragments);\n });\n}\n\nfunction nullIfDocIsEmpty(doc) {\n return isEmpty(getOperationDefinition(doc) || getFragmentDefinition(doc), createFragmentMap(getFragmentDefinitions(doc))) ? null : doc;\n}\n\nfunction getDirectiveMatcher(directives) {\n return function directiveMatcher(directive) {\n return directives.some(function (dir) {\n return dir.name && dir.name === directive.name.value || dir.test && dir.test(directive);\n });\n };\n}\n\nfunction removeDirectivesFromDocument(directives, doc) {\n var variablesInUse = Object.create(null);\n var variablesToRemove = [];\n var fragmentSpreadsInUse = Object.create(null);\n var fragmentSpreadsToRemove = [];\n var modifiedDoc = nullIfDocIsEmpty(visit(doc, {\n Variable: {\n enter: function enter(node, _key, parent) {\n if (parent.kind !== 'VariableDefinition') {\n variablesInUse[node.name.value] = true;\n }\n }\n },\n Field: {\n enter: function enter(node) {\n if (directives && node.directives) {\n var shouldRemoveField = directives.some(function (directive) {\n return directive.remove;\n });\n\n if (shouldRemoveField && node.directives && node.directives.some(getDirectiveMatcher(directives))) {\n if (node.arguments) {\n node.arguments.forEach(function (arg) {\n if (arg.value.kind === 'Variable') {\n variablesToRemove.push({\n name: arg.value.name.value\n });\n }\n });\n }\n\n if (node.selectionSet) {\n getAllFragmentSpreadsFromSelectionSet(node.selectionSet).forEach(function (frag) {\n fragmentSpreadsToRemove.push({\n name: frag.name.value\n });\n });\n }\n\n return null;\n }\n }\n }\n },\n FragmentSpread: {\n enter: function enter(node) {\n fragmentSpreadsInUse[node.name.value] = true;\n }\n },\n Directive: {\n enter: function enter(node) {\n if (getDirectiveMatcher(directives)(node)) {\n return null;\n }\n }\n }\n }));\n\n if (modifiedDoc && filterInPlace(variablesToRemove, function (v) {\n return !variablesInUse[v.name];\n }).length) {\n modifiedDoc = removeArgumentsFromDocument(variablesToRemove, modifiedDoc);\n }\n\n if (modifiedDoc && filterInPlace(fragmentSpreadsToRemove, function (fs) {\n return !fragmentSpreadsInUse[fs.name];\n }).length) {\n modifiedDoc = removeFragmentSpreadFromDocument(fragmentSpreadsToRemove, modifiedDoc);\n }\n\n return modifiedDoc;\n}\n\nfunction addTypenameToDocument(doc) {\n return visit(checkDocument(doc), {\n SelectionSet: {\n enter: function enter(node, _key, parent) {\n if (parent && parent.kind === 'OperationDefinition') {\n return;\n }\n\n var selections = node.selections;\n\n if (!selections) {\n return;\n }\n\n var skip = selections.some(function (selection) {\n return isField(selection) && (selection.name.value === '__typename' || selection.name.value.lastIndexOf('__', 0) === 0);\n });\n\n if (skip) {\n return;\n }\n\n var field = parent;\n\n if (isField(field) && field.directives && field.directives.some(function (d) {\n return d.name.value === 'export';\n })) {\n return;\n }\n\n return __assign(__assign({}, node), {\n selections: __spreadArrays(selections, [TYPENAME_FIELD])\n });\n }\n }\n });\n}\n\nvar connectionRemoveConfig = {\n test: function test(directive) {\n var willRemove = directive.name.value === 'connection';\n\n if (willRemove) {\n if (!directive.arguments || !directive.arguments.some(function (arg) {\n return arg.name.value === 'key';\n })) {\n process.env.NODE_ENV === \"production\" || invariant.warn('Removing an @connection directive even though it does not have a key. ' + 'You may want to use the key parameter to specify a store key.');\n }\n }\n\n return willRemove;\n }\n};\n\nfunction removeConnectionDirectiveFromDocument(doc) {\n return removeDirectivesFromDocument([connectionRemoveConfig], checkDocument(doc));\n}\n\nfunction hasDirectivesInSelectionSet(directives, selectionSet, nestedCheck) {\n if (nestedCheck === void 0) {\n nestedCheck = true;\n }\n\n return selectionSet && selectionSet.selections && selectionSet.selections.some(function (selection) {\n return hasDirectivesInSelection(directives, selection, nestedCheck);\n });\n}\n\nfunction hasDirectivesInSelection(directives, selection, nestedCheck) {\n if (nestedCheck === void 0) {\n nestedCheck = true;\n }\n\n if (!isField(selection)) {\n return true;\n }\n\n if (!selection.directives) {\n return false;\n }\n\n return selection.directives.some(getDirectiveMatcher(directives)) || nestedCheck && hasDirectivesInSelectionSet(directives, selection.selectionSet, nestedCheck);\n}\n\nfunction getDirectivesFromDocument(directives, doc) {\n checkDocument(doc);\n var parentPath;\n return nullIfDocIsEmpty(visit(doc, {\n SelectionSet: {\n enter: function enter(node, _key, _parent, path) {\n var currentPath = path.join('-');\n\n if (!parentPath || currentPath === parentPath || !currentPath.startsWith(parentPath)) {\n if (node.selections) {\n var selectionsWithDirectives = node.selections.filter(function (selection) {\n return hasDirectivesInSelection(directives, selection);\n });\n\n if (hasDirectivesInSelectionSet(directives, node, false)) {\n parentPath = currentPath;\n }\n\n return __assign(__assign({}, node), {\n selections: selectionsWithDirectives\n });\n } else {\n return null;\n }\n }\n }\n }\n }));\n}\n\nfunction getArgumentMatcher(config) {\n return function argumentMatcher(argument) {\n return config.some(function (aConfig) {\n return argument.value && argument.value.kind === 'Variable' && argument.value.name && (aConfig.name === argument.value.name.value || aConfig.test && aConfig.test(argument));\n });\n };\n}\n\nfunction removeArgumentsFromDocument(config, doc) {\n var argMatcher = getArgumentMatcher(config);\n return nullIfDocIsEmpty(visit(doc, {\n OperationDefinition: {\n enter: function enter(node) {\n return __assign(__assign({}, node), {\n variableDefinitions: node.variableDefinitions.filter(function (varDef) {\n return !config.some(function (arg) {\n return arg.name === varDef.variable.name.value;\n });\n })\n });\n }\n },\n Field: {\n enter: function enter(node) {\n var shouldRemoveField = config.some(function (argConfig) {\n return argConfig.remove;\n });\n\n if (shouldRemoveField) {\n var argMatchCount_1 = 0;\n node.arguments.forEach(function (arg) {\n if (argMatcher(arg)) {\n argMatchCount_1 += 1;\n }\n });\n\n if (argMatchCount_1 === 1) {\n return null;\n }\n }\n }\n },\n Argument: {\n enter: function enter(node) {\n if (argMatcher(node)) {\n return null;\n }\n }\n }\n }));\n}\n\nfunction removeFragmentSpreadFromDocument(config, doc) {\n function enter(node) {\n if (config.some(function (def) {\n return def.name === node.name.value;\n })) {\n return null;\n }\n }\n\n return nullIfDocIsEmpty(visit(doc, {\n FragmentSpread: {\n enter: enter\n },\n FragmentDefinition: {\n enter: enter\n }\n }));\n}\n\nfunction getAllFragmentSpreadsFromSelectionSet(selectionSet) {\n var allFragments = [];\n selectionSet.selections.forEach(function (selection) {\n if ((isField(selection) || isInlineFragment(selection)) && selection.selectionSet) {\n getAllFragmentSpreadsFromSelectionSet(selection.selectionSet).forEach(function (frag) {\n return allFragments.push(frag);\n });\n } else if (selection.kind === 'FragmentSpread') {\n allFragments.push(selection);\n }\n });\n return allFragments;\n}\n\nfunction buildQueryFromSelectionSet(document) {\n var definition = getMainDefinition(document);\n var definitionOperation = definition.operation;\n\n if (definitionOperation === 'query') {\n return document;\n }\n\n var modifiedDoc = visit(document, {\n OperationDefinition: {\n enter: function enter(node) {\n return __assign(__assign({}, node), {\n operation: 'query'\n });\n }\n }\n });\n return modifiedDoc;\n}\n\nfunction removeClientSetsFromDocument(document) {\n checkDocument(document);\n var modifiedDoc = removeDirectivesFromDocument([{\n test: function test(directive) {\n return directive.name.value === 'client';\n },\n remove: true\n }], document);\n\n if (modifiedDoc) {\n modifiedDoc = visit(modifiedDoc, {\n FragmentDefinition: {\n enter: function enter(node) {\n if (node.selectionSet) {\n var isTypenameOnly = node.selectionSet.selections.every(function (selection) {\n return isField(selection) && selection.name.value === '__typename';\n });\n\n if (isTypenameOnly) {\n return null;\n }\n }\n }\n }\n });\n }\n\n return modifiedDoc;\n}\n\nvar canUseWeakMap = typeof WeakMap === 'function' && !((typeof navigator === \"undefined\" ? \"undefined\" : _typeof(navigator)) === 'object' && navigator.product === 'ReactNative');\nvar toString = Object.prototype.toString;\n\nfunction cloneDeep(value) {\n return cloneDeepHelper(value, new Map());\n}\n\nfunction cloneDeepHelper(val, seen) {\n switch (toString.call(val)) {\n case \"[object Array]\":\n {\n if (seen.has(val)) return seen.get(val);\n var copy_1 = val.slice(0);\n seen.set(val, copy_1);\n copy_1.forEach(function (child, i) {\n copy_1[i] = cloneDeepHelper(child, seen);\n });\n return copy_1;\n }\n\n case \"[object Object]\":\n {\n if (seen.has(val)) return seen.get(val);\n var copy_2 = Object.create(Object.getPrototypeOf(val));\n seen.set(val, copy_2);\n Object.keys(val).forEach(function (key) {\n copy_2[key] = cloneDeepHelper(val[key], seen);\n });\n return copy_2;\n }\n\n default:\n return val;\n }\n}\n\nfunction getEnv() {\n if (typeof process !== 'undefined' && process.env.NODE_ENV) {\n return process.env.NODE_ENV;\n }\n\n return 'development';\n}\n\nfunction isEnv(env) {\n return getEnv() === env;\n}\n\nfunction isProduction() {\n return isEnv('production') === true;\n}\n\nfunction isDevelopment() {\n return isEnv('development') === true;\n}\n\nfunction isTest() {\n return isEnv('test') === true;\n}\n\nfunction tryFunctionOrLogError(f) {\n try {\n return f();\n } catch (e) {\n if (console.error) {\n console.error(e);\n }\n }\n}\n\nfunction graphQLResultHasError(result) {\n return result.errors && result.errors.length;\n}\n\nfunction deepFreeze(o) {\n Object.freeze(o);\n Object.getOwnPropertyNames(o).forEach(function (prop) {\n if (o[prop] !== null && (_typeof(o[prop]) === 'object' || typeof o[prop] === 'function') && !Object.isFrozen(o[prop])) {\n deepFreeze(o[prop]);\n }\n });\n return o;\n}\n\nfunction maybeDeepFreeze(obj) {\n if (isDevelopment() || isTest()) {\n var symbolIsPolyfilled = typeof Symbol === 'function' && typeof Symbol('') === 'string';\n\n if (!symbolIsPolyfilled) {\n return deepFreeze(obj);\n }\n }\n\n return obj;\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction mergeDeep() {\n var sources = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n sources[_i] = arguments[_i];\n }\n\n return mergeDeepArray(sources);\n}\n\nfunction mergeDeepArray(sources) {\n var target = sources[0] || {};\n var count = sources.length;\n\n if (count > 1) {\n var pastCopies = [];\n target = shallowCopyForMerge(target, pastCopies);\n\n for (var i = 1; i < count; ++i) {\n target = mergeHelper(target, sources[i], pastCopies);\n }\n }\n\n return target;\n}\n\nfunction isObject(obj) {\n return obj !== null && _typeof(obj) === 'object';\n}\n\nfunction mergeHelper(target, source, pastCopies) {\n if (isObject(source) && isObject(target)) {\n if (Object.isExtensible && !Object.isExtensible(target)) {\n target = shallowCopyForMerge(target, pastCopies);\n }\n\n Object.keys(source).forEach(function (sourceKey) {\n var sourceValue = source[sourceKey];\n\n if (hasOwnProperty.call(target, sourceKey)) {\n var targetValue = target[sourceKey];\n\n if (sourceValue !== targetValue) {\n target[sourceKey] = mergeHelper(shallowCopyForMerge(targetValue, pastCopies), sourceValue, pastCopies);\n }\n } else {\n target[sourceKey] = sourceValue;\n }\n });\n return target;\n }\n\n return source;\n}\n\nfunction shallowCopyForMerge(value, pastCopies) {\n if (value !== null && _typeof(value) === 'object' && pastCopies.indexOf(value) < 0) {\n if (Array.isArray(value)) {\n value = value.slice(0);\n } else {\n value = __assign({\n __proto__: Object.getPrototypeOf(value)\n }, value);\n }\n\n pastCopies.push(value);\n }\n\n return value;\n}\n\nvar haveWarned = Object.create({});\n\nfunction warnOnceInDevelopment(msg, type) {\n if (type === void 0) {\n type = 'warn';\n }\n\n if (!isProduction() && !haveWarned[msg]) {\n if (!isTest()) {\n haveWarned[msg] = true;\n }\n\n if (type === 'error') {\n console.error(msg);\n } else {\n console.warn(msg);\n }\n }\n}\n\nfunction stripSymbols(data) {\n return JSON.parse(JSON.stringify(data));\n}\n\nexport { addTypenameToDocument, argumentsObjectFromField, assign, buildQueryFromSelectionSet, canUseWeakMap, checkDocument, cloneDeep, createFragmentMap, getDefaultValues, getDirectiveInfoFromField, getDirectiveNames, getDirectivesFromDocument, getEnv, getFragmentDefinition, getFragmentDefinitions, getFragmentQueryDocument, getInclusionDirectives, getMainDefinition, getMutationDefinition, getOperationDefinition, getOperationDefinitionOrDie, getOperationName, getQueryDefinition, getStoreKeyName, graphQLResultHasError, hasClientExports, hasDirectives, isDevelopment, isEnv, isField, isIdValue, isInlineFragment, isJsonValue, isNumberValue, isProduction, isScalarValue, isTest, maybeDeepFreeze, mergeDeep, mergeDeepArray, removeArgumentsFromDocument, removeClientSetsFromDocument, removeConnectionDirectiveFromDocument, removeDirectivesFromDocument, removeFragmentSpreadFromDocument, resultKeyNameFromField, shouldInclude, storeKeyNameFromField, stripSymbols, toIdValue, tryFunctionOrLogError, valueFromNode, valueToObjectRepresentation, variablesInOperation, warnOnceInDevelopment };","var _typeof = require(\"/app/scripts/smweb-scripts/node_modules/@babel/runtime/helpers/typeof\");\n\n!function (e, t) {\n \"object\" == (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) && \"object\" == (typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) ? module.exports = t() : \"function\" == typeof define && define.amd ? define([], t) : \"object\" == (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) ? exports.bowser = t() : e.bowser = t();\n}(this, function () {\n return function (e) {\n var t = {};\n\n function r(n) {\n if (t[n]) return t[n].exports;\n var i = t[n] = {\n i: n,\n l: !1,\n exports: {}\n };\n return e[n].call(i.exports, i, i.exports, r), i.l = !0, i.exports;\n }\n\n return r.m = e, r.c = t, r.d = function (e, t, n) {\n r.o(e, t) || Object.defineProperty(e, t, {\n enumerable: !0,\n get: n\n });\n }, r.r = function (e) {\n \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n }), Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n }, r.t = function (e, t) {\n if (1 & t && (e = r(e)), 8 & t) return e;\n if (4 & t && \"object\" == _typeof(e) && e && e.__esModule) return e;\n var n = Object.create(null);\n if (r.r(n), Object.defineProperty(n, \"default\", {\n enumerable: !0,\n value: e\n }), 2 & t && \"string\" != typeof e) for (var i in e) {\n r.d(n, i, function (t) {\n return e[t];\n }.bind(null, i));\n }\n return n;\n }, r.n = function (e) {\n var t = e && e.__esModule ? function () {\n return e[\"default\"];\n } : function () {\n return e;\n };\n return r.d(t, \"a\", t), t;\n }, r.o = function (e, t) {\n return Object.prototype.hasOwnProperty.call(e, t);\n }, r.p = \"\", r(r.s = 90);\n }({\n 17: function _(e, t, r) {\n \"use strict\";\n\n t.__esModule = !0, t[\"default\"] = void 0;\n\n var n = r(18),\n i = function () {\n function e() {}\n\n return e.getFirstMatch = function (e, t) {\n var r = t.match(e);\n return r && r.length > 0 && r[1] || \"\";\n }, e.getSecondMatch = function (e, t) {\n var r = t.match(e);\n return r && r.length > 1 && r[2] || \"\";\n }, e.matchAndReturnConst = function (e, t, r) {\n if (e.test(t)) return r;\n }, e.getWindowsVersionName = function (e) {\n switch (e) {\n case \"NT\":\n return \"NT\";\n\n case \"XP\":\n return \"XP\";\n\n case \"NT 5.0\":\n return \"2000\";\n\n case \"NT 5.1\":\n return \"XP\";\n\n case \"NT 5.2\":\n return \"2003\";\n\n case \"NT 6.0\":\n return \"Vista\";\n\n case \"NT 6.1\":\n return \"7\";\n\n case \"NT 6.2\":\n return \"8\";\n\n case \"NT 6.3\":\n return \"8.1\";\n\n case \"NT 10.0\":\n return \"10\";\n\n default:\n return;\n }\n }, e.getMacOSVersionName = function (e) {\n var t = e.split(\".\").splice(0, 2).map(function (e) {\n return parseInt(e, 10) || 0;\n });\n if (t.push(0), 10 === t[0]) switch (t[1]) {\n case 5:\n return \"Leopard\";\n\n case 6:\n return \"Snow Leopard\";\n\n case 7:\n return \"Lion\";\n\n case 8:\n return \"Mountain Lion\";\n\n case 9:\n return \"Mavericks\";\n\n case 10:\n return \"Yosemite\";\n\n case 11:\n return \"El Capitan\";\n\n case 12:\n return \"Sierra\";\n\n case 13:\n return \"High Sierra\";\n\n case 14:\n return \"Mojave\";\n\n case 15:\n return \"Catalina\";\n\n default:\n return;\n }\n }, e.getAndroidVersionName = function (e) {\n var t = e.split(\".\").splice(0, 2).map(function (e) {\n return parseInt(e, 10) || 0;\n });\n if (t.push(0), !(1 === t[0] && t[1] < 5)) return 1 === t[0] && t[1] < 6 ? \"Cupcake\" : 1 === t[0] && t[1] >= 6 ? \"Donut\" : 2 === t[0] && t[1] < 2 ? \"Eclair\" : 2 === t[0] && 2 === t[1] ? \"Froyo\" : 2 === t[0] && t[1] > 2 ? \"Gingerbread\" : 3 === t[0] ? \"Honeycomb\" : 4 === t[0] && t[1] < 1 ? \"Ice Cream Sandwich\" : 4 === t[0] && t[1] < 4 ? \"Jelly Bean\" : 4 === t[0] && t[1] >= 4 ? \"KitKat\" : 5 === t[0] ? \"Lollipop\" : 6 === t[0] ? \"Marshmallow\" : 7 === t[0] ? \"Nougat\" : 8 === t[0] ? \"Oreo\" : 9 === t[0] ? \"Pie\" : void 0;\n }, e.getVersionPrecision = function (e) {\n return e.split(\".\").length;\n }, e.compareVersions = function (t, r, n) {\n void 0 === n && (n = !1);\n var i = e.getVersionPrecision(t),\n s = e.getVersionPrecision(r),\n a = Math.max(i, s),\n o = 0,\n u = e.map([t, r], function (t) {\n var r = a - e.getVersionPrecision(t),\n n = t + new Array(r + 1).join(\".0\");\n return e.map(n.split(\".\"), function (e) {\n return new Array(20 - e.length).join(\"0\") + e;\n }).reverse();\n });\n\n for (n && (o = a - Math.min(i, s)), a -= 1; a >= o;) {\n if (u[0][a] > u[1][a]) return 1;\n\n if (u[0][a] === u[1][a]) {\n if (a === o) return 0;\n a -= 1;\n } else if (u[0][a] < u[1][a]) return -1;\n }\n }, e.map = function (e, t) {\n var r,\n n = [];\n if (Array.prototype.map) return Array.prototype.map.call(e, t);\n\n for (r = 0; r < e.length; r += 1) {\n n.push(t(e[r]));\n }\n\n return n;\n }, e.find = function (e, t) {\n var r, n;\n if (Array.prototype.find) return Array.prototype.find.call(e, t);\n\n for (r = 0, n = e.length; r < n; r += 1) {\n var i = e[r];\n if (t(i, r)) return i;\n }\n }, e.assign = function (e) {\n for (var t, r, n = e, i = arguments.length, s = new Array(i > 1 ? i - 1 : 0), a = 1; a < i; a++) {\n s[a - 1] = arguments[a];\n }\n\n if (Object.assign) return Object.assign.apply(Object, [e].concat(s));\n\n var o = function o() {\n var e = s[t];\n \"object\" == _typeof(e) && null !== e && Object.keys(e).forEach(function (t) {\n n[t] = e[t];\n });\n };\n\n for (t = 0, r = s.length; t < r; t += 1) {\n o();\n }\n\n return e;\n }, e.getBrowserAlias = function (e) {\n return n.BROWSER_ALIASES_MAP[e];\n }, e.getBrowserTypeByAlias = function (e) {\n return n.BROWSER_MAP[e] || \"\";\n }, e;\n }();\n\n t[\"default\"] = i, e.exports = t[\"default\"];\n },\n 18: function _(e, t, r) {\n \"use strict\";\n\n t.__esModule = !0, t.ENGINE_MAP = t.OS_MAP = t.PLATFORMS_MAP = t.BROWSER_MAP = t.BROWSER_ALIASES_MAP = void 0;\n t.BROWSER_ALIASES_MAP = {\n \"Amazon Silk\": \"amazon_silk\",\n \"Android Browser\": \"android\",\n Bada: \"bada\",\n BlackBerry: \"blackberry\",\n Chrome: \"chrome\",\n Chromium: \"chromium\",\n Electron: \"electron\",\n Epiphany: \"epiphany\",\n Firefox: \"firefox\",\n Focus: \"focus\",\n Generic: \"generic\",\n \"Google Search\": \"google_search\",\n Googlebot: \"googlebot\",\n \"Internet Explorer\": \"ie\",\n \"K-Meleon\": \"k_meleon\",\n Maxthon: \"maxthon\",\n \"Microsoft Edge\": \"edge\",\n \"MZ Browser\": \"mz\",\n \"NAVER Whale Browser\": \"naver\",\n Opera: \"opera\",\n \"Opera Coast\": \"opera_coast\",\n PhantomJS: \"phantomjs\",\n Puffin: \"puffin\",\n QupZilla: \"qupzilla\",\n QQ: \"qq\",\n QQLite: \"qqlite\",\n Safari: \"safari\",\n Sailfish: \"sailfish\",\n \"Samsung Internet for Android\": \"samsung_internet\",\n SeaMonkey: \"seamonkey\",\n Sleipnir: \"sleipnir\",\n Swing: \"swing\",\n Tizen: \"tizen\",\n \"UC Browser\": \"uc\",\n Vivaldi: \"vivaldi\",\n \"WebOS Browser\": \"webos\",\n WeChat: \"wechat\",\n \"Yandex Browser\": \"yandex\",\n Roku: \"roku\"\n };\n t.BROWSER_MAP = {\n amazon_silk: \"Amazon Silk\",\n android: \"Android Browser\",\n bada: \"Bada\",\n blackberry: \"BlackBerry\",\n chrome: \"Chrome\",\n chromium: \"Chromium\",\n electron: \"Electron\",\n epiphany: \"Epiphany\",\n firefox: \"Firefox\",\n focus: \"Focus\",\n generic: \"Generic\",\n googlebot: \"Googlebot\",\n google_search: \"Google Search\",\n ie: \"Internet Explorer\",\n k_meleon: \"K-Meleon\",\n maxthon: \"Maxthon\",\n edge: \"Microsoft Edge\",\n mz: \"MZ Browser\",\n naver: \"NAVER Whale Browser\",\n opera: \"Opera\",\n opera_coast: \"Opera Coast\",\n phantomjs: \"PhantomJS\",\n puffin: \"Puffin\",\n qupzilla: \"QupZilla\",\n qq: \"QQ Browser\",\n qqlite: \"QQ Browser Lite\",\n safari: \"Safari\",\n sailfish: \"Sailfish\",\n samsung_internet: \"Samsung Internet for Android\",\n seamonkey: \"SeaMonkey\",\n sleipnir: \"Sleipnir\",\n swing: \"Swing\",\n tizen: \"Tizen\",\n uc: \"UC Browser\",\n vivaldi: \"Vivaldi\",\n webos: \"WebOS Browser\",\n wechat: \"WeChat\",\n yandex: \"Yandex Browser\"\n };\n t.PLATFORMS_MAP = {\n tablet: \"tablet\",\n mobile: \"mobile\",\n desktop: \"desktop\",\n tv: \"tv\"\n };\n t.OS_MAP = {\n WindowsPhone: \"Windows Phone\",\n Windows: \"Windows\",\n MacOS: \"macOS\",\n iOS: \"iOS\",\n Android: \"Android\",\n WebOS: \"WebOS\",\n BlackBerry: \"BlackBerry\",\n Bada: \"Bada\",\n Tizen: \"Tizen\",\n Linux: \"Linux\",\n ChromeOS: \"Chrome OS\",\n PlayStation4: \"PlayStation 4\",\n Roku: \"Roku\"\n };\n t.ENGINE_MAP = {\n EdgeHTML: \"EdgeHTML\",\n Blink: \"Blink\",\n Trident: \"Trident\",\n Presto: \"Presto\",\n Gecko: \"Gecko\",\n WebKit: \"WebKit\"\n };\n },\n 90: function _(e, t, r) {\n \"use strict\";\n\n t.__esModule = !0, t[\"default\"] = void 0;\n var n,\n i = (n = r(91)) && n.__esModule ? n : {\n \"default\": n\n },\n s = r(18);\n\n function a(e, t) {\n for (var r = 0; r < t.length; r++) {\n var n = t[r];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(e, n.key, n);\n }\n }\n\n var o = function () {\n function e() {}\n\n var t, r, n;\n return e.getParser = function (e, t) {\n if (void 0 === t && (t = !1), \"string\" != typeof e) throw new Error(\"UserAgent should be a string\");\n return new i[\"default\"](e, t);\n }, e.parse = function (e) {\n return new i[\"default\"](e).getResult();\n }, t = e, n = [{\n key: \"BROWSER_MAP\",\n get: function get() {\n return s.BROWSER_MAP;\n }\n }, {\n key: \"ENGINE_MAP\",\n get: function get() {\n return s.ENGINE_MAP;\n }\n }, {\n key: \"OS_MAP\",\n get: function get() {\n return s.OS_MAP;\n }\n }, {\n key: \"PLATFORMS_MAP\",\n get: function get() {\n return s.PLATFORMS_MAP;\n }\n }], (r = null) && a(t.prototype, r), n && a(t, n), e;\n }();\n\n t[\"default\"] = o, e.exports = t[\"default\"];\n },\n 91: function _(e, t, r) {\n \"use strict\";\n\n t.__esModule = !0, t[\"default\"] = void 0;\n var n = u(r(92)),\n i = u(r(93)),\n s = u(r(94)),\n a = u(r(95)),\n o = u(r(17));\n\n function u(e) {\n return e && e.__esModule ? e : {\n \"default\": e\n };\n }\n\n var d = function () {\n function e(e, t) {\n if (void 0 === t && (t = !1), null == e || \"\" === e) throw new Error(\"UserAgent parameter can't be empty\");\n this._ua = e, this.parsedResult = {}, !0 !== t && this.parse();\n }\n\n var t = e.prototype;\n return t.getUA = function () {\n return this._ua;\n }, t.test = function (e) {\n return e.test(this._ua);\n }, t.parseBrowser = function () {\n var e = this;\n this.parsedResult.browser = {};\n var t = o[\"default\"].find(n[\"default\"], function (t) {\n if (\"function\" == typeof t.test) return t.test(e);\n if (t.test instanceof Array) return t.test.some(function (t) {\n return e.test(t);\n });\n throw new Error(\"Browser's test function is not valid\");\n });\n return t && (this.parsedResult.browser = t.describe(this.getUA())), this.parsedResult.browser;\n }, t.getBrowser = function () {\n return this.parsedResult.browser ? this.parsedResult.browser : this.parseBrowser();\n }, t.getBrowserName = function (e) {\n return e ? String(this.getBrowser().name).toLowerCase() || \"\" : this.getBrowser().name || \"\";\n }, t.getBrowserVersion = function () {\n return this.getBrowser().version;\n }, t.getOS = function () {\n return this.parsedResult.os ? this.parsedResult.os : this.parseOS();\n }, t.parseOS = function () {\n var e = this;\n this.parsedResult.os = {};\n var t = o[\"default\"].find(i[\"default\"], function (t) {\n if (\"function\" == typeof t.test) return t.test(e);\n if (t.test instanceof Array) return t.test.some(function (t) {\n return e.test(t);\n });\n throw new Error(\"Browser's test function is not valid\");\n });\n return t && (this.parsedResult.os = t.describe(this.getUA())), this.parsedResult.os;\n }, t.getOSName = function (e) {\n var t = this.getOS().name;\n return e ? String(t).toLowerCase() || \"\" : t || \"\";\n }, t.getOSVersion = function () {\n return this.getOS().version;\n }, t.getPlatform = function () {\n return this.parsedResult.platform ? this.parsedResult.platform : this.parsePlatform();\n }, t.getPlatformType = function (e) {\n void 0 === e && (e = !1);\n var t = this.getPlatform().type;\n return e ? String(t).toLowerCase() || \"\" : t || \"\";\n }, t.parsePlatform = function () {\n var e = this;\n this.parsedResult.platform = {};\n var t = o[\"default\"].find(s[\"default\"], function (t) {\n if (\"function\" == typeof t.test) return t.test(e);\n if (t.test instanceof Array) return t.test.some(function (t) {\n return e.test(t);\n });\n throw new Error(\"Browser's test function is not valid\");\n });\n return t && (this.parsedResult.platform = t.describe(this.getUA())), this.parsedResult.platform;\n }, t.getEngine = function () {\n return this.parsedResult.engine ? this.parsedResult.engine : this.parseEngine();\n }, t.getEngineName = function (e) {\n return e ? String(this.getEngine().name).toLowerCase() || \"\" : this.getEngine().name || \"\";\n }, t.parseEngine = function () {\n var e = this;\n this.parsedResult.engine = {};\n var t = o[\"default\"].find(a[\"default\"], function (t) {\n if (\"function\" == typeof t.test) return t.test(e);\n if (t.test instanceof Array) return t.test.some(function (t) {\n return e.test(t);\n });\n throw new Error(\"Browser's test function is not valid\");\n });\n return t && (this.parsedResult.engine = t.describe(this.getUA())), this.parsedResult.engine;\n }, t.parse = function () {\n return this.parseBrowser(), this.parseOS(), this.parsePlatform(), this.parseEngine(), this;\n }, t.getResult = function () {\n return o[\"default\"].assign({}, this.parsedResult);\n }, t.satisfies = function (e) {\n var t = this,\n r = {},\n n = 0,\n i = {},\n s = 0;\n\n if (Object.keys(e).forEach(function (t) {\n var a = e[t];\n \"string\" == typeof a ? (i[t] = a, s += 1) : \"object\" == _typeof(a) && (r[t] = a, n += 1);\n }), n > 0) {\n var a = Object.keys(r),\n u = o[\"default\"].find(a, function (e) {\n return t.isOS(e);\n });\n\n if (u) {\n var d = this.satisfies(r[u]);\n if (void 0 !== d) return d;\n }\n\n var c = o[\"default\"].find(a, function (e) {\n return t.isPlatform(e);\n });\n\n if (c) {\n var f = this.satisfies(r[c]);\n if (void 0 !== f) return f;\n }\n }\n\n if (s > 0) {\n var l = Object.keys(i),\n h = o[\"default\"].find(l, function (e) {\n return t.isBrowser(e, !0);\n });\n if (void 0 !== h) return this.compareVersion(i[h]);\n }\n }, t.isBrowser = function (e, t) {\n void 0 === t && (t = !1);\n var r = this.getBrowserName().toLowerCase(),\n n = e.toLowerCase(),\n i = o[\"default\"].getBrowserTypeByAlias(n);\n return t && i && (n = i.toLowerCase()), n === r;\n }, t.compareVersion = function (e) {\n var t = [0],\n r = e,\n n = !1,\n i = this.getBrowserVersion();\n if (\"string\" == typeof i) return \">\" === e[0] || \"<\" === e[0] ? (r = e.substr(1), \"=\" === e[1] ? (n = !0, r = e.substr(2)) : t = [], \">\" === e[0] ? t.push(1) : t.push(-1)) : \"=\" === e[0] ? r = e.substr(1) : \"~\" === e[0] && (n = !0, r = e.substr(1)), t.indexOf(o[\"default\"].compareVersions(i, r, n)) > -1;\n }, t.isOS = function (e) {\n return this.getOSName(!0) === String(e).toLowerCase();\n }, t.isPlatform = function (e) {\n return this.getPlatformType(!0) === String(e).toLowerCase();\n }, t.isEngine = function (e) {\n return this.getEngineName(!0) === String(e).toLowerCase();\n }, t.is = function (e, t) {\n return void 0 === t && (t = !1), this.isBrowser(e, t) || this.isOS(e) || this.isPlatform(e);\n }, t.some = function (e) {\n var t = this;\n return void 0 === e && (e = []), e.some(function (e) {\n return t.is(e);\n });\n }, e;\n }();\n\n t[\"default\"] = d, e.exports = t[\"default\"];\n },\n 92: function _(e, t, r) {\n \"use strict\";\n\n t.__esModule = !0, t[\"default\"] = void 0;\n var n,\n i = (n = r(17)) && n.__esModule ? n : {\n \"default\": n\n };\n var s = /version\\/(\\d+(\\.?_?\\d+)+)/i,\n a = [{\n test: [/googlebot/i],\n describe: function describe(e) {\n var t = {\n name: \"Googlebot\"\n },\n r = i[\"default\"].getFirstMatch(/googlebot\\/(\\d+(\\.\\d+))/i, e) || i[\"default\"].getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/opera/i],\n describe: function describe(e) {\n var t = {\n name: \"Opera\"\n },\n r = i[\"default\"].getFirstMatch(s, e) || i[\"default\"].getFirstMatch(/(?:opera)[\\s/](\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/opr\\/|opios/i],\n describe: function describe(e) {\n var t = {\n name: \"Opera\"\n },\n r = i[\"default\"].getFirstMatch(/(?:opr|opios)[\\s/](\\S+)/i, e) || i[\"default\"].getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/SamsungBrowser/i],\n describe: function describe(e) {\n var t = {\n name: \"Samsung Internet for Android\"\n },\n r = i[\"default\"].getFirstMatch(s, e) || i[\"default\"].getFirstMatch(/(?:SamsungBrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/Whale/i],\n describe: function describe(e) {\n var t = {\n name: \"NAVER Whale Browser\"\n },\n r = i[\"default\"].getFirstMatch(s, e) || i[\"default\"].getFirstMatch(/(?:whale)[\\s/](\\d+(?:\\.\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/MZBrowser/i],\n describe: function describe(e) {\n var t = {\n name: \"MZ Browser\"\n },\n r = i[\"default\"].getFirstMatch(/(?:MZBrowser)[\\s/](\\d+(?:\\.\\d+)+)/i, e) || i[\"default\"].getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/focus/i],\n describe: function describe(e) {\n var t = {\n name: \"Focus\"\n },\n r = i[\"default\"].getFirstMatch(/(?:focus)[\\s/](\\d+(?:\\.\\d+)+)/i, e) || i[\"default\"].getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/swing/i],\n describe: function describe(e) {\n var t = {\n name: \"Swing\"\n },\n r = i[\"default\"].getFirstMatch(/(?:swing)[\\s/](\\d+(?:\\.\\d+)+)/i, e) || i[\"default\"].getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/coast/i],\n describe: function describe(e) {\n var t = {\n name: \"Opera Coast\"\n },\n r = i[\"default\"].getFirstMatch(s, e) || i[\"default\"].getFirstMatch(/(?:coast)[\\s/](\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/opt\\/\\d+(?:.?_?\\d+)+/i],\n describe: function describe(e) {\n var t = {\n name: \"Opera Touch\"\n },\n r = i[\"default\"].getFirstMatch(/(?:opt)[\\s/](\\d+(\\.?_?\\d+)+)/i, e) || i[\"default\"].getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/yabrowser/i],\n describe: function describe(e) {\n var t = {\n name: \"Yandex Browser\"\n },\n r = i[\"default\"].getFirstMatch(/(?:yabrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i, e) || i[\"default\"].getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/ucbrowser/i],\n describe: function describe(e) {\n var t = {\n name: \"UC Browser\"\n },\n r = i[\"default\"].getFirstMatch(s, e) || i[\"default\"].getFirstMatch(/(?:ucbrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/Maxthon|mxios/i],\n describe: function describe(e) {\n var t = {\n name: \"Maxthon\"\n },\n r = i[\"default\"].getFirstMatch(s, e) || i[\"default\"].getFirstMatch(/(?:Maxthon|mxios)[\\s/](\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/epiphany/i],\n describe: function describe(e) {\n var t = {\n name: \"Epiphany\"\n },\n r = i[\"default\"].getFirstMatch(s, e) || i[\"default\"].getFirstMatch(/(?:epiphany)[\\s/](\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/puffin/i],\n describe: function describe(e) {\n var t = {\n name: \"Puffin\"\n },\n r = i[\"default\"].getFirstMatch(s, e) || i[\"default\"].getFirstMatch(/(?:puffin)[\\s/](\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/sleipnir/i],\n describe: function describe(e) {\n var t = {\n name: \"Sleipnir\"\n },\n r = i[\"default\"].getFirstMatch(s, e) || i[\"default\"].getFirstMatch(/(?:sleipnir)[\\s/](\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/k-meleon/i],\n describe: function describe(e) {\n var t = {\n name: \"K-Meleon\"\n },\n r = i[\"default\"].getFirstMatch(s, e) || i[\"default\"].getFirstMatch(/(?:k-meleon)[\\s/](\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/micromessenger/i],\n describe: function describe(e) {\n var t = {\n name: \"WeChat\"\n },\n r = i[\"default\"].getFirstMatch(/(?:micromessenger)[\\s/](\\d+(\\.?_?\\d+)+)/i, e) || i[\"default\"].getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/qqbrowser/i],\n describe: function describe(e) {\n var t = {\n name: /qqbrowserlite/i.test(e) ? \"QQ Browser Lite\" : \"QQ Browser\"\n },\n r = i[\"default\"].getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\\d+(\\.?_?\\d+)+)/i, e) || i[\"default\"].getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/msie|trident/i],\n describe: function describe(e) {\n var t = {\n name: \"Internet Explorer\"\n },\n r = i[\"default\"].getFirstMatch(/(?:msie |rv:)(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/\\sedg\\//i],\n describe: function describe(e) {\n var t = {\n name: \"Microsoft Edge\"\n },\n r = i[\"default\"].getFirstMatch(/\\sedg\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/edg([ea]|ios)/i],\n describe: function describe(e) {\n var t = {\n name: \"Microsoft Edge\"\n },\n r = i[\"default\"].getSecondMatch(/edg([ea]|ios)\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/vivaldi/i],\n describe: function describe(e) {\n var t = {\n name: \"Vivaldi\"\n },\n r = i[\"default\"].getFirstMatch(/vivaldi\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/seamonkey/i],\n describe: function describe(e) {\n var t = {\n name: \"SeaMonkey\"\n },\n r = i[\"default\"].getFirstMatch(/seamonkey\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/sailfish/i],\n describe: function describe(e) {\n var t = {\n name: \"Sailfish\"\n },\n r = i[\"default\"].getFirstMatch(/sailfish\\s?browser\\/(\\d+(\\.\\d+)?)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/silk/i],\n describe: function describe(e) {\n var t = {\n name: \"Amazon Silk\"\n },\n r = i[\"default\"].getFirstMatch(/silk\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/phantom/i],\n describe: function describe(e) {\n var t = {\n name: \"PhantomJS\"\n },\n r = i[\"default\"].getFirstMatch(/phantomjs\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/slimerjs/i],\n describe: function describe(e) {\n var t = {\n name: \"SlimerJS\"\n },\n r = i[\"default\"].getFirstMatch(/slimerjs\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/blackberry|\\bbb\\d+/i, /rim\\stablet/i],\n describe: function describe(e) {\n var t = {\n name: \"BlackBerry\"\n },\n r = i[\"default\"].getFirstMatch(s, e) || i[\"default\"].getFirstMatch(/blackberry[\\d]+\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/(web|hpw)[o0]s/i],\n describe: function describe(e) {\n var t = {\n name: \"WebOS Browser\"\n },\n r = i[\"default\"].getFirstMatch(s, e) || i[\"default\"].getFirstMatch(/w(?:eb)?[o0]sbrowser\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/bada/i],\n describe: function describe(e) {\n var t = {\n name: \"Bada\"\n },\n r = i[\"default\"].getFirstMatch(/dolfin\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/tizen/i],\n describe: function describe(e) {\n var t = {\n name: \"Tizen\"\n },\n r = i[\"default\"].getFirstMatch(/(?:tizen\\s?)?browser\\/(\\d+(\\.?_?\\d+)+)/i, e) || i[\"default\"].getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/qupzilla/i],\n describe: function describe(e) {\n var t = {\n name: \"QupZilla\"\n },\n r = i[\"default\"].getFirstMatch(/(?:qupzilla)[\\s/](\\d+(\\.?_?\\d+)+)/i, e) || i[\"default\"].getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/firefox|iceweasel|fxios/i],\n describe: function describe(e) {\n var t = {\n name: \"Firefox\"\n },\n r = i[\"default\"].getFirstMatch(/(?:firefox|iceweasel|fxios)[\\s/](\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/electron/i],\n describe: function describe(e) {\n var t = {\n name: \"Electron\"\n },\n r = i[\"default\"].getFirstMatch(/(?:electron)\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/MiuiBrowser/i],\n describe: function describe(e) {\n var t = {\n name: \"Miui\"\n },\n r = i[\"default\"].getFirstMatch(/(?:MiuiBrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/chromium/i],\n describe: function describe(e) {\n var t = {\n name: \"Chromium\"\n },\n r = i[\"default\"].getFirstMatch(/(?:chromium)[\\s/](\\d+(\\.?_?\\d+)+)/i, e) || i[\"default\"].getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/chrome|crios|crmo/i],\n describe: function describe(e) {\n var t = {\n name: \"Chrome\"\n },\n r = i[\"default\"].getFirstMatch(/(?:chrome|crios|crmo)\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/GSA/i],\n describe: function describe(e) {\n var t = {\n name: \"Google Search\"\n },\n r = i[\"default\"].getFirstMatch(/(?:GSA)\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: function test(e) {\n var t = !e.test(/like android/i),\n r = e.test(/android/i);\n return t && r;\n },\n describe: function describe(e) {\n var t = {\n name: \"Android Browser\"\n },\n r = i[\"default\"].getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/playstation 4/i],\n describe: function describe(e) {\n var t = {\n name: \"PlayStation 4\"\n },\n r = i[\"default\"].getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/safari|applewebkit/i],\n describe: function describe(e) {\n var t = {\n name: \"Safari\"\n },\n r = i[\"default\"].getFirstMatch(s, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/.*/i],\n describe: function describe(e) {\n var t = -1 !== e.search(\"\\\\(\") ? /^(.*)\\/(.*)[ \\t]\\((.*)/ : /^(.*)\\/(.*) /;\n return {\n name: i[\"default\"].getFirstMatch(t, e),\n version: i[\"default\"].getSecondMatch(t, e)\n };\n }\n }];\n t[\"default\"] = a, e.exports = t[\"default\"];\n },\n 93: function _(e, t, r) {\n \"use strict\";\n\n t.__esModule = !0, t[\"default\"] = void 0;\n var n,\n i = (n = r(17)) && n.__esModule ? n : {\n \"default\": n\n },\n s = r(18);\n var a = [{\n test: [/Roku\\/DVP/],\n describe: function describe(e) {\n var t = i[\"default\"].getFirstMatch(/Roku\\/DVP-(\\d+\\.\\d+)/i, e);\n return {\n name: s.OS_MAP.Roku,\n version: t\n };\n }\n }, {\n test: [/windows phone/i],\n describe: function describe(e) {\n var t = i[\"default\"].getFirstMatch(/windows phone (?:os)?\\s?(\\d+(\\.\\d+)*)/i, e);\n return {\n name: s.OS_MAP.WindowsPhone,\n version: t\n };\n }\n }, {\n test: [/windows /i],\n describe: function describe(e) {\n var t = i[\"default\"].getFirstMatch(/Windows ((NT|XP)( \\d\\d?.\\d)?)/i, e),\n r = i[\"default\"].getWindowsVersionName(t);\n return {\n name: s.OS_MAP.Windows,\n version: t,\n versionName: r\n };\n }\n }, {\n test: [/Macintosh(.*?) FxiOS(.*?)\\//],\n describe: function describe(e) {\n var t = {\n name: s.OS_MAP.iOS\n },\n r = i[\"default\"].getSecondMatch(/(Version\\/)(\\d[\\d.]+)/, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/macintosh/i],\n describe: function describe(e) {\n var t = i[\"default\"].getFirstMatch(/mac os x (\\d+(\\.?_?\\d+)+)/i, e).replace(/[_\\s]/g, \".\"),\n r = i[\"default\"].getMacOSVersionName(t),\n n = {\n name: s.OS_MAP.MacOS,\n version: t\n };\n return r && (n.versionName = r), n;\n }\n }, {\n test: [/(ipod|iphone|ipad)/i],\n describe: function describe(e) {\n var t = i[\"default\"].getFirstMatch(/os (\\d+([_\\s]\\d+)*) like mac os x/i, e).replace(/[_\\s]/g, \".\");\n return {\n name: s.OS_MAP.iOS,\n version: t\n };\n }\n }, {\n test: function test(e) {\n var t = !e.test(/like android/i),\n r = e.test(/android/i);\n return t && r;\n },\n describe: function describe(e) {\n var t = i[\"default\"].getFirstMatch(/android[\\s/-](\\d+(\\.\\d+)*)/i, e),\n r = i[\"default\"].getAndroidVersionName(t),\n n = {\n name: s.OS_MAP.Android,\n version: t\n };\n return r && (n.versionName = r), n;\n }\n }, {\n test: [/(web|hpw)[o0]s/i],\n describe: function describe(e) {\n var t = i[\"default\"].getFirstMatch(/(?:web|hpw)[o0]s\\/(\\d+(\\.\\d+)*)/i, e),\n r = {\n name: s.OS_MAP.WebOS\n };\n return t && t.length && (r.version = t), r;\n }\n }, {\n test: [/blackberry|\\bbb\\d+/i, /rim\\stablet/i],\n describe: function describe(e) {\n var t = i[\"default\"].getFirstMatch(/rim\\stablet\\sos\\s(\\d+(\\.\\d+)*)/i, e) || i[\"default\"].getFirstMatch(/blackberry\\d+\\/(\\d+([_\\s]\\d+)*)/i, e) || i[\"default\"].getFirstMatch(/\\bbb(\\d+)/i, e);\n return {\n name: s.OS_MAP.BlackBerry,\n version: t\n };\n }\n }, {\n test: [/bada/i],\n describe: function describe(e) {\n var t = i[\"default\"].getFirstMatch(/bada\\/(\\d+(\\.\\d+)*)/i, e);\n return {\n name: s.OS_MAP.Bada,\n version: t\n };\n }\n }, {\n test: [/tizen/i],\n describe: function describe(e) {\n var t = i[\"default\"].getFirstMatch(/tizen[/\\s](\\d+(\\.\\d+)*)/i, e);\n return {\n name: s.OS_MAP.Tizen,\n version: t\n };\n }\n }, {\n test: [/linux/i],\n describe: function describe() {\n return {\n name: s.OS_MAP.Linux\n };\n }\n }, {\n test: [/CrOS/],\n describe: function describe() {\n return {\n name: s.OS_MAP.ChromeOS\n };\n }\n }, {\n test: [/PlayStation 4/],\n describe: function describe(e) {\n var t = i[\"default\"].getFirstMatch(/PlayStation 4[/\\s](\\d+(\\.\\d+)*)/i, e);\n return {\n name: s.OS_MAP.PlayStation4,\n version: t\n };\n }\n }];\n t[\"default\"] = a, e.exports = t[\"default\"];\n },\n 94: function _(e, t, r) {\n \"use strict\";\n\n t.__esModule = !0, t[\"default\"] = void 0;\n var n,\n i = (n = r(17)) && n.__esModule ? n : {\n \"default\": n\n },\n s = r(18);\n var a = [{\n test: [/googlebot/i],\n describe: function describe() {\n return {\n type: \"bot\",\n vendor: \"Google\"\n };\n }\n }, {\n test: [/huawei/i],\n describe: function describe(e) {\n var t = i[\"default\"].getFirstMatch(/(can-l01)/i, e) && \"Nova\",\n r = {\n type: s.PLATFORMS_MAP.mobile,\n vendor: \"Huawei\"\n };\n return t && (r.model = t), r;\n }\n }, {\n test: [/nexus\\s*(?:7|8|9|10).*/i],\n describe: function describe() {\n return {\n type: s.PLATFORMS_MAP.tablet,\n vendor: \"Nexus\"\n };\n }\n }, {\n test: [/ipad/i],\n describe: function describe() {\n return {\n type: s.PLATFORMS_MAP.tablet,\n vendor: \"Apple\",\n model: \"iPad\"\n };\n }\n }, {\n test: [/Macintosh(.*?) FxiOS(.*?)\\//],\n describe: function describe() {\n return {\n type: s.PLATFORMS_MAP.tablet,\n vendor: \"Apple\",\n model: \"iPad\"\n };\n }\n }, {\n test: [/kftt build/i],\n describe: function describe() {\n return {\n type: s.PLATFORMS_MAP.tablet,\n vendor: \"Amazon\",\n model: \"Kindle Fire HD 7\"\n };\n }\n }, {\n test: [/silk/i],\n describe: function describe() {\n return {\n type: s.PLATFORMS_MAP.tablet,\n vendor: \"Amazon\"\n };\n }\n }, {\n test: [/tablet(?! pc)/i],\n describe: function describe() {\n return {\n type: s.PLATFORMS_MAP.tablet\n };\n }\n }, {\n test: function test(e) {\n var t = e.test(/ipod|iphone/i),\n r = e.test(/like (ipod|iphone)/i);\n return t && !r;\n },\n describe: function describe(e) {\n var t = i[\"default\"].getFirstMatch(/(ipod|iphone)/i, e);\n return {\n type: s.PLATFORMS_MAP.mobile,\n vendor: \"Apple\",\n model: t\n };\n }\n }, {\n test: [/nexus\\s*[0-6].*/i, /galaxy nexus/i],\n describe: function describe() {\n return {\n type: s.PLATFORMS_MAP.mobile,\n vendor: \"Nexus\"\n };\n }\n }, {\n test: [/[^-]mobi/i],\n describe: function describe() {\n return {\n type: s.PLATFORMS_MAP.mobile\n };\n }\n }, {\n test: function test(e) {\n return \"blackberry\" === e.getBrowserName(!0);\n },\n describe: function describe() {\n return {\n type: s.PLATFORMS_MAP.mobile,\n vendor: \"BlackBerry\"\n };\n }\n }, {\n test: function test(e) {\n return \"bada\" === e.getBrowserName(!0);\n },\n describe: function describe() {\n return {\n type: s.PLATFORMS_MAP.mobile\n };\n }\n }, {\n test: function test(e) {\n return \"windows phone\" === e.getBrowserName();\n },\n describe: function describe() {\n return {\n type: s.PLATFORMS_MAP.mobile,\n vendor: \"Microsoft\"\n };\n }\n }, {\n test: function test(e) {\n var t = Number(String(e.getOSVersion()).split(\".\")[0]);\n return \"android\" === e.getOSName(!0) && t >= 3;\n },\n describe: function describe() {\n return {\n type: s.PLATFORMS_MAP.tablet\n };\n }\n }, {\n test: function test(e) {\n return \"android\" === e.getOSName(!0);\n },\n describe: function describe() {\n return {\n type: s.PLATFORMS_MAP.mobile\n };\n }\n }, {\n test: function test(e) {\n return \"macos\" === e.getOSName(!0);\n },\n describe: function describe() {\n return {\n type: s.PLATFORMS_MAP.desktop,\n vendor: \"Apple\"\n };\n }\n }, {\n test: function test(e) {\n return \"windows\" === e.getOSName(!0);\n },\n describe: function describe() {\n return {\n type: s.PLATFORMS_MAP.desktop\n };\n }\n }, {\n test: function test(e) {\n return \"linux\" === e.getOSName(!0);\n },\n describe: function describe() {\n return {\n type: s.PLATFORMS_MAP.desktop\n };\n }\n }, {\n test: function test(e) {\n return \"playstation 4\" === e.getOSName(!0);\n },\n describe: function describe() {\n return {\n type: s.PLATFORMS_MAP.tv\n };\n }\n }, {\n test: function test(e) {\n return \"roku\" === e.getOSName(!0);\n },\n describe: function describe() {\n return {\n type: s.PLATFORMS_MAP.tv\n };\n }\n }];\n t[\"default\"] = a, e.exports = t[\"default\"];\n },\n 95: function _(e, t, r) {\n \"use strict\";\n\n t.__esModule = !0, t[\"default\"] = void 0;\n var n,\n i = (n = r(17)) && n.__esModule ? n : {\n \"default\": n\n },\n s = r(18);\n var a = [{\n test: function test(e) {\n return \"microsoft edge\" === e.getBrowserName(!0);\n },\n describe: function describe(e) {\n if (/\\sedg\\//i.test(e)) return {\n name: s.ENGINE_MAP.Blink\n };\n var t = i[\"default\"].getFirstMatch(/edge\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return {\n name: s.ENGINE_MAP.EdgeHTML,\n version: t\n };\n }\n }, {\n test: [/trident/i],\n describe: function describe(e) {\n var t = {\n name: s.ENGINE_MAP.Trident\n },\n r = i[\"default\"].getFirstMatch(/trident\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: function test(e) {\n return e.test(/presto/i);\n },\n describe: function describe(e) {\n var t = {\n name: s.ENGINE_MAP.Presto\n },\n r = i[\"default\"].getFirstMatch(/presto\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: function test(e) {\n var t = e.test(/gecko/i),\n r = e.test(/like gecko/i);\n return t && !r;\n },\n describe: function describe(e) {\n var t = {\n name: s.ENGINE_MAP.Gecko\n },\n r = i[\"default\"].getFirstMatch(/gecko\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }, {\n test: [/(apple)?webkit\\/537\\.36/i],\n describe: function describe() {\n return {\n name: s.ENGINE_MAP.Blink\n };\n }\n }, {\n test: [/(apple)?webkit/i],\n describe: function describe(e) {\n var t = {\n name: s.ENGINE_MAP.WebKit\n },\n r = i[\"default\"].getFirstMatch(/webkit\\/(\\d+(\\.?_?\\d+)+)/i, e);\n return r && (t.version = r), t;\n }\n }];\n t[\"default\"] = a, e.exports = t[\"default\"];\n }\n });\n});","var _typeof = require(\"/app/scripts/smweb-scripts/node_modules/@babel/runtime/helpers/typeof\");\n\n/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n\n/* global define */\n(function () {\n 'use strict';\n\n var hasOwn = {}.hasOwnProperty;\n\n function classNames() {\n var classes = [];\n\n for (var i = 0; i < arguments.length; i++) {\n var arg = arguments[i];\n if (!arg) continue;\n\n var argType = _typeof(arg);\n\n if (argType === 'string' || argType === 'number') {\n classes.push(arg);\n } else if (Array.isArray(arg)) {\n if (arg.length) {\n var inner = classNames.apply(null, arg);\n\n if (inner) {\n classes.push(inner);\n }\n }\n } else if (argType === 'object') {\n if (arg.toString === Object.prototype.toString) {\n for (var key in arg) {\n if (hasOwn.call(arg, key) && arg[key]) {\n classes.push(key);\n }\n }\n } else {\n classes.push(arg.toString());\n }\n }\n }\n\n return classes.join(' ');\n }\n\n if (typeof module !== 'undefined' && module.exports) {\n classNames[\"default\"] = classNames;\n module.exports = classNames;\n } else if (typeof define === 'function' && _typeof(define.amd) === 'object' && define.amd) {\n // register as 'classnames', consistent with npm package name\n define('classnames', [], function () {\n return classNames;\n });\n } else {\n window.classNames = classNames;\n }\n})();","\"use strict\";\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 _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\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CookieStorage = void 0;\n\nvar format_cookie_1 = require(\"./format-cookie\");\n\nvar parse_cookies_1 = require(\"./parse-cookies\");\n\nvar CookieStorage = function () {\n function CookieStorage(defaultOptions) {\n _classCallCheck(this, CookieStorage);\n\n this._defaultOptions = Object.assign({\n domain: null,\n expires: null,\n path: null,\n secure: false\n }, defaultOptions);\n if (typeof Proxy !== \"undefined\") return new Proxy(this, cookieStorageHandler);\n }\n\n _createClass(CookieStorage, [{\n key: \"clear\",\n value: function clear() {\n var _this = this;\n\n var parsed = parse_cookies_1.parseCookies(this._getCookie());\n var keys = Object.keys(parsed);\n keys.forEach(function (key) {\n return _this.removeItem(key);\n });\n }\n }, {\n key: \"getItem\",\n value: function getItem(key) {\n var parsed = parse_cookies_1.parseCookies(this._getCookie());\n return Object.prototype.hasOwnProperty.call(parsed, key) ? parsed[key] : null;\n }\n }, {\n key: \"key\",\n value: function key(index) {\n var parsed = parse_cookies_1.parseCookies(this._getCookie());\n var sortedKeys = Object.keys(parsed).sort();\n return index < sortedKeys.length ? sortedKeys[index] : null;\n }\n }, {\n key: \"removeItem\",\n value: function removeItem(key, cookieOptions) {\n var data = \"\";\n var options = Object.assign(Object.assign(Object.assign({}, this._defaultOptions), cookieOptions), {\n expires: new Date(0)\n });\n var formatted = format_cookie_1.formatCookie(key, data, options);\n\n this._setCookie(formatted);\n }\n }, {\n key: \"setItem\",\n value: function setItem(key, data, options) {\n var opts = Object.assign(Object.assign({}, this._defaultOptions), options);\n var formatted = format_cookie_1.formatCookie(key, data, opts);\n\n this._setCookie(formatted);\n }\n }, {\n key: \"_getCookie\",\n value: function _getCookie() {\n return typeof document === \"undefined\" ? \"\" : typeof document.cookie === \"undefined\" ? \"\" : document.cookie;\n }\n }, {\n key: \"_setCookie\",\n value: function _setCookie(value) {\n document.cookie = value;\n }\n }, {\n key: \"length\",\n get: function get() {\n var parsed = parse_cookies_1.parseCookies(this._getCookie());\n var keys = Object.keys(parsed);\n return keys.length;\n }\n }]);\n\n return CookieStorage;\n}();\n\nexports.CookieStorage = CookieStorage;\nvar cookieStorageHandler = {\n defineProperty: function defineProperty(target, p, attributes) {\n target.setItem(p.toString(), String(attributes.value));\n return true;\n },\n deleteProperty: function deleteProperty(target, p) {\n target.removeItem(p.toString());\n return true;\n },\n get: function get(target, p, _receiver) {\n if (typeof p === \"string\" && p in target) return target[p];\n var result = target.getItem(p.toString());\n return result !== null ? result : undefined;\n },\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, p) {\n if (p in target) return undefined;\n return {\n configurable: true,\n enumerable: true,\n value: target.getItem(p.toString()),\n writable: true\n };\n },\n has: function has(target, p) {\n if (typeof p === \"string\" && p in target) return true;\n return target.getItem(p.toString()) !== null;\n },\n ownKeys: function ownKeys(target) {\n var keys = [];\n\n for (var i = 0; i < target.length; i++) {\n var key = target.key(i);\n if (key !== null) keys.push(key);\n }\n\n return keys;\n },\n preventExtensions: function preventExtensions(_) {\n throw new TypeError(\"can't prevent extensions on this proxy object\");\n },\n set: function set(target, p, value, _) {\n target.setItem(p.toString(), String(value));\n return true;\n }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.formatCookie = void 0;\n\nvar getSameSiteValue = function getSameSiteValue(o) {\n var sameSite = o.sameSite;\n if (typeof sameSite === \"undefined\") return null;\n if ([\"none\", \"lax\", \"strict\"].indexOf(sameSite.toLowerCase()) >= 0) return sameSite;\n return null;\n};\n\nvar formatOptions = function formatOptions(o) {\n var path = o.path,\n domain = o.domain,\n expires = o.expires,\n secure = o.secure;\n var sameSiteValue = getSameSiteValue(o);\n return [typeof path === \"undefined\" || path === null ? \"\" : \";path=\" + path, typeof domain === \"undefined\" || domain === null ? \"\" : \";domain=\" + domain, typeof expires === \"undefined\" || expires === null ? \"\" : \";expires=\" + expires.toUTCString(), typeof secure === \"undefined\" || secure === false ? \"\" : \";secure\", sameSiteValue === null ? \"\" : \";SameSite=\" + sameSiteValue].join(\"\");\n};\n\nvar formatCookie = function formatCookie(k, d, o) {\n return [encodeURIComponent(k), \"=\", encodeURIComponent(d), formatOptions(o)].join(\"\");\n};\n\nexports.formatCookie = formatCookie;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar cookie_storage_1 = require(\"./cookie-storage\");\n\nObject.defineProperty(exports, \"CookieStorage\", {\n enumerable: true,\n get: function get() {\n return cookie_storage_1.CookieStorage;\n }\n});\n\nvar format_cookie_1 = require(\"./format-cookie\");\n\nObject.defineProperty(exports, \"formatCookie\", {\n enumerable: true,\n get: function get() {\n return format_cookie_1.formatCookie;\n }\n});\n\nvar parse_cookies_1 = require(\"./parse-cookies\");\n\nObject.defineProperty(exports, \"parseCookies\", {\n enumerable: true,\n get: function get() {\n return parse_cookies_1.parseCookies;\n }\n});","\"use strict\";\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\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.parseCookies = void 0;\n\nvar parseCookies = function parseCookies(s) {\n if (s.length === 0) return {};\n var parsed = {};\n var pattern = new RegExp(\"\\\\s*;\\\\s*\");\n s.split(pattern).forEach(function (i) {\n var _i$split = i.split(\"=\"),\n _i$split2 = _slicedToArray(_i$split, 2),\n encodedKey = _i$split2[0],\n encodedValue = _i$split2[1];\n\n var key = decodeURIComponent(encodedKey);\n var value = decodeURIComponent(encodedValue);\n parsed[key] = value;\n });\n return parsed;\n};\n\nexports.parseCookies = parseCookies;","import _typeof from \"/app/scripts/smweb-scripts/node_modules/@babel/runtime/helpers/typeof\";\n// Public: Create a new SelectorSet.\nexport default function SelectorSet() {\n // Construct new SelectorSet if called as a function.\n if (!(this instanceof SelectorSet)) {\n return new SelectorSet();\n } // Public: Number of selectors added to the set\n\n\n this.size = 0; // Internal: Incrementing ID counter\n\n this.uid = 0; // Internal: Array of String selectors in the set\n\n this.selectors = []; // Internal: Map of selector ids to objects\n\n this.selectorObjects = {}; // Internal: All Object index String names mapping to Index objects.\n\n this.indexes = Object.create(this.indexes); // Internal: Used Object index String names mapping to Index objects.\n\n this.activeIndexes = [];\n} // Detect prefixed Element#matches function.\n\nvar docElem = window.document.documentElement;\nvar matches = docElem.matches || docElem.webkitMatchesSelector || docElem.mozMatchesSelector || docElem.oMatchesSelector || docElem.msMatchesSelector; // Public: Check if element matches selector.\n//\n// Maybe overridden with custom Element.matches function.\n//\n// el - An Element\n// selector - String CSS selector\n//\n// Returns true or false.\n\nSelectorSet.prototype.matchesSelector = function (el, selector) {\n return matches.call(el, selector);\n}; // Public: Find all elements in the context that match the selector.\n//\n// Maybe overridden with custom querySelectorAll function.\n//\n// selectors - String CSS selectors.\n// context - Element context\n//\n// Returns non-live list of Elements.\n\n\nSelectorSet.prototype.querySelectorAll = function (selectors, context) {\n return context.querySelectorAll(selectors);\n}; // Public: Array of indexes.\n//\n// name - Unique String name\n// selector - Function that takes a String selector and returns a String key\n// or undefined if it can't be used by the index.\n// element - Function that takes an Element and returns an Array of String\n// keys that point to indexed values.\n//\n\n\nSelectorSet.prototype.indexes = []; // Index by element id\n\nvar idRe = /^#((?:[\\w\\u00c0-\\uFFFF\\-]|\\\\.)+)/g;\nSelectorSet.prototype.indexes.push({\n name: 'ID',\n selector: function matchIdSelector(sel) {\n var m;\n\n if (m = sel.match(idRe)) {\n return m[0].slice(1);\n }\n },\n element: function getElementId(el) {\n if (el.id) {\n return [el.id];\n }\n }\n}); // Index by all of its class names\n\nvar classRe = /^\\.((?:[\\w\\u00c0-\\uFFFF\\-]|\\\\.)+)/g;\nSelectorSet.prototype.indexes.push({\n name: 'CLASS',\n selector: function matchClassSelector(sel) {\n var m;\n\n if (m = sel.match(classRe)) {\n return m[0].slice(1);\n }\n },\n element: function getElementClassNames(el) {\n var className = el.className;\n\n if (className) {\n if (typeof className === 'string') {\n return className.split(/\\s/);\n } else if (_typeof(className) === 'object' && 'baseVal' in className) {\n // className is a SVGAnimatedString\n // global SVGAnimatedString is not an exposed global in Opera 12\n return className.baseVal.split(/\\s/);\n }\n }\n }\n}); // Index by tag/node name: `DIV`, `FORM`, `A`\n\nvar tagRe = /^((?:[\\w\\u00c0-\\uFFFF\\-]|\\\\.)+)/g;\nSelectorSet.prototype.indexes.push({\n name: 'TAG',\n selector: function matchTagSelector(sel) {\n var m;\n\n if (m = sel.match(tagRe)) {\n return m[0].toUpperCase();\n }\n },\n element: function getElementTagName(el) {\n return [el.nodeName.toUpperCase()];\n }\n}); // Default index just contains a single array of elements.\n\nSelectorSet.prototype.indexes['default'] = {\n name: 'UNIVERSAL',\n selector: function selector() {\n return true;\n },\n element: function element() {\n return [true];\n }\n}; // Use ES Maps when supported\n\nvar Map;\n\nif (typeof window.Map === 'function') {\n Map = window.Map;\n} else {\n Map = function () {\n function Map() {\n this.map = {};\n }\n\n Map.prototype.get = function (key) {\n return this.map[key + ' '];\n };\n\n Map.prototype.set = function (key, value) {\n this.map[key + ' '] = value;\n };\n\n return Map;\n }();\n} // Regexps adopted from Sizzle\n// https://github.com/jquery/sizzle/blob/1.7/sizzle.js\n//\n\n\nvar chunker = /((?:\\((?:\\([^()]+\\)|[^()]+)+\\)|\\[(?:\\[[^\\[\\]]*\\]|['\"][^'\"]*['\"]|[^\\[\\]'\"]+)+\\]|\\\\.|[^ >+~,(\\[\\\\]+)+|[>+~])(\\s*,\\s*)?((?:.|\\r|\\n)*)/g; // Internal: Get indexes for selector.\n//\n// selector - String CSS selector\n//\n// Returns Array of {index, key}.\n\nfunction parseSelectorIndexes(allIndexes, selector) {\n allIndexes = allIndexes.slice(0).concat(allIndexes['default']);\n var allIndexesLen = allIndexes.length,\n i,\n j,\n m,\n dup,\n rest = selector,\n key,\n index,\n indexes = [];\n\n do {\n chunker.exec('');\n\n if (m = chunker.exec(rest)) {\n rest = m[3];\n\n if (m[2] || !rest) {\n for (i = 0; i < allIndexesLen; i++) {\n index = allIndexes[i];\n\n if (key = index.selector(m[1])) {\n j = indexes.length;\n dup = false;\n\n while (j--) {\n if (indexes[j].index === index && indexes[j].key === key) {\n dup = true;\n break;\n }\n }\n\n if (!dup) {\n indexes.push({\n index: index,\n key: key\n });\n }\n\n break;\n }\n }\n }\n }\n } while (m);\n\n return indexes;\n} // Internal: Find first item in Array that is a prototype of `proto`.\n//\n// ary - Array of objects\n// proto - Prototype of expected item in `ary`\n//\n// Returns object from `ary` if found. Otherwise returns undefined.\n\n\nfunction findByPrototype(ary, proto) {\n var i, len, item;\n\n for (i = 0, len = ary.length; i < len; i++) {\n item = ary[i];\n\n if (proto.isPrototypeOf(item)) {\n return item;\n }\n }\n} // Public: Log when added selector falls under the default index.\n//\n// This API should not be considered stable. May change between\n// minor versions.\n//\n// obj - {selector, data} Object\n//\n// SelectorSet.prototype.logDefaultIndexUsed = function(obj) {\n// console.warn(obj.selector, \"could not be indexed\");\n// };\n//\n// Returns nothing.\n\n\nSelectorSet.prototype.logDefaultIndexUsed = function () {}; // Public: Add selector to set.\n//\n// selector - String CSS selector\n// data - Optional data Object (default: undefined)\n//\n// Returns nothing.\n\n\nSelectorSet.prototype.add = function (selector, data) {\n var obj,\n i,\n indexProto,\n key,\n index,\n objs,\n selectorIndexes,\n selectorIndex,\n indexes = this.activeIndexes,\n selectors = this.selectors,\n selectorObjects = this.selectorObjects;\n\n if (typeof selector !== 'string') {\n return;\n }\n\n obj = {\n id: this.uid++,\n selector: selector,\n data: data\n };\n selectorObjects[obj.id] = obj;\n selectorIndexes = parseSelectorIndexes(this.indexes, selector);\n\n for (i = 0; i < selectorIndexes.length; i++) {\n selectorIndex = selectorIndexes[i];\n key = selectorIndex.key;\n indexProto = selectorIndex.index;\n index = findByPrototype(indexes, indexProto);\n\n if (!index) {\n index = Object.create(indexProto);\n index.map = new Map();\n indexes.push(index);\n }\n\n if (indexProto === this.indexes['default']) {\n this.logDefaultIndexUsed(obj);\n }\n\n objs = index.map.get(key);\n\n if (!objs) {\n objs = [];\n index.map.set(key, objs);\n }\n\n objs.push(obj);\n }\n\n this.size++;\n selectors.push(selector);\n}; // Public: Remove selector from set.\n//\n// selector - String CSS selector\n// data - Optional data Object (default: undefined)\n//\n// Returns nothing.\n\n\nSelectorSet.prototype.remove = function (selector, data) {\n if (typeof selector !== 'string') {\n return;\n }\n\n var selectorIndexes,\n selectorIndex,\n i,\n j,\n k,\n selIndex,\n objs,\n obj,\n indexes = this.activeIndexes,\n selectors = this.selectors = [],\n selectorObjects = this.selectorObjects,\n removedIds = {},\n removeAll = arguments.length === 1;\n selectorIndexes = parseSelectorIndexes(this.indexes, selector);\n\n for (i = 0; i < selectorIndexes.length; i++) {\n selectorIndex = selectorIndexes[i];\n j = indexes.length;\n\n while (j--) {\n selIndex = indexes[j];\n\n if (selectorIndex.index.isPrototypeOf(selIndex)) {\n objs = selIndex.map.get(selectorIndex.key);\n\n if (objs) {\n k = objs.length;\n\n while (k--) {\n obj = objs[k];\n\n if (obj.selector === selector && (removeAll || obj.data === data)) {\n objs.splice(k, 1);\n removedIds[obj.id] = true;\n }\n }\n }\n\n break;\n }\n }\n }\n\n for (i in removedIds) {\n delete selectorObjects[i];\n this.size--;\n }\n\n for (i in selectorObjects) {\n selectors.push(selectorObjects[i].selector);\n }\n}; // Sort by id property handler.\n//\n// a - Selector obj.\n// b - Selector obj.\n//\n// Returns Number.\n\n\nfunction sortById(a, b) {\n return a.id - b.id;\n} // Public: Find all matching decendants of the context element.\n//\n// context - An Element\n//\n// Returns Array of {selector, data, elements} matches.\n\n\nSelectorSet.prototype.queryAll = function (context) {\n if (!this.selectors.length) {\n return [];\n }\n\n var matches = {},\n results = [];\n var els = this.querySelectorAll(this.selectors.join(', '), context);\n var i, j, len, len2, el, m, match, obj;\n\n for (i = 0, len = els.length; i < len; i++) {\n el = els[i];\n m = this.matches(el);\n\n for (j = 0, len2 = m.length; j < len2; j++) {\n obj = m[j];\n\n if (!matches[obj.id]) {\n match = {\n id: obj.id,\n selector: obj.selector,\n data: obj.data,\n elements: []\n };\n matches[obj.id] = match;\n results.push(match);\n } else {\n match = matches[obj.id];\n }\n\n match.elements.push(el);\n }\n }\n\n return results.sort(sortById);\n}; // Public: Match element against all selectors in set.\n//\n// el - An Element\n//\n// Returns Array of {selector, data} matches.\n\n\nSelectorSet.prototype.matches = function (el) {\n if (!el) {\n return [];\n }\n\n var i, j, k, len, len2, len3, index, keys, objs, obj, id;\n var indexes = this.activeIndexes,\n matchedIds = {},\n matches = [];\n\n for (i = 0, len = indexes.length; i < len; i++) {\n index = indexes[i];\n keys = index.element(el);\n\n if (keys) {\n for (j = 0, len2 = keys.length; j < len2; j++) {\n if (objs = index.map.get(keys[j])) {\n for (k = 0, len3 = objs.length; k < len3; k++) {\n obj = objs[k];\n id = obj.id;\n\n if (!matchedIds[id] && this.matchesSelector(el, obj.selector)) {\n matchedIds[id] = true;\n matches.push(obj);\n }\n }\n }\n }\n }\n }\n\n return matches.sort(sortById);\n};","import SelectorSet from 'selector-set';\nvar bubbleEvents = {};\nvar captureEvents = {};\nvar propagationStopped = new WeakMap();\nvar immediatePropagationStopped = new WeakMap();\nvar currentTargets = new WeakMap();\nvar currentTargetDesc = Object.getOwnPropertyDescriptor(Event.prototype, 'currentTarget');\n\nfunction before(subject, verb, fn) {\n var source = subject[verb];\n\n subject[verb] = function () {\n fn.apply(subject, arguments);\n return source.apply(subject, arguments);\n };\n\n return subject;\n}\n\nfunction matches(selectors, target, reverse) {\n var queue = [];\n var node = target;\n\n do {\n if (node.nodeType !== 1) break;\n\n var _matches = selectors.matches(node);\n\n if (_matches.length) {\n var matched = {\n node: node,\n observers: _matches\n };\n\n if (reverse) {\n queue.unshift(matched);\n } else {\n queue.push(matched);\n }\n }\n } while (node = node.parentElement);\n\n return queue;\n}\n\nfunction trackPropagation() {\n propagationStopped.set(this, true);\n}\n\nfunction trackImmediate() {\n propagationStopped.set(this, true);\n immediatePropagationStopped.set(this, true);\n}\n\nfunction getCurrentTarget() {\n return currentTargets.get(this) || null;\n}\n\nfunction defineCurrentTarget(event, getter) {\n if (!currentTargetDesc) return;\n Object.defineProperty(event, 'currentTarget', {\n configurable: true,\n enumerable: true,\n get: getter || currentTargetDesc.get\n });\n}\n\nfunction canDispatch(event) {\n try {\n event.eventPhase;\n return true;\n } catch (_) {\n return false;\n }\n}\n\nfunction dispatch(event) {\n if (!canDispatch(event)) return;\n var events = event.eventPhase === 1 ? captureEvents : bubbleEvents;\n var selectors = events[event.type];\n if (!selectors) return;\n var queue = matches(selectors, event.target, event.eventPhase === 1);\n if (!queue.length) return;\n before(event, 'stopPropagation', trackPropagation);\n before(event, 'stopImmediatePropagation', trackImmediate);\n defineCurrentTarget(event, getCurrentTarget);\n\n for (var i = 0, len1 = queue.length; i < len1; i++) {\n if (propagationStopped.get(event)) break;\n var matched = queue[i];\n currentTargets.set(event, matched.node);\n\n for (var j = 0, len2 = matched.observers.length; j < len2; j++) {\n if (immediatePropagationStopped.get(event)) break;\n matched.observers[j].data.call(matched.node, event);\n }\n }\n\n currentTargets[\"delete\"](event);\n defineCurrentTarget(event);\n}\n\nfunction on(name, selector, fn) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var capture = options.capture ? true : false;\n var events = capture ? captureEvents : bubbleEvents;\n var selectors = events[name];\n\n if (!selectors) {\n selectors = new SelectorSet();\n events[name] = selectors;\n document.addEventListener(name, dispatch, capture);\n }\n\n selectors.add(selector, fn);\n}\n\nfunction off(name, selector, fn) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var capture = options.capture ? true : false;\n var events = capture ? captureEvents : bubbleEvents;\n var selectors = events[name];\n if (!selectors) return;\n selectors.remove(selector, fn);\n if (selectors.size) return;\n delete events[name];\n document.removeEventListener(name, dispatch, capture);\n}\n\nfunction fire(target, name, detail) {\n return target.dispatchEvent(new CustomEvent(name, {\n bubbles: true,\n cancelable: true,\n detail: detail\n }));\n}\n\nexport { fire, off, on };","var _typeof2 = require(\"/app/scripts/smweb-scripts/node_modules/@babel/runtime/helpers/typeof\");\n\n/*! @license DOMPurify 2.3.1 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.3.1/LICENSE */\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof2(exports)) === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global = global || self, global.DOMPurify = factory());\n})(this, function () {\n 'use strict';\n\n function _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\n var hasOwnProperty = Object.hasOwnProperty,\n setPrototypeOf = Object.setPrototypeOf,\n isFrozen = Object.isFrozen,\n getPrototypeOf = Object.getPrototypeOf,\n getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n var freeze = Object.freeze,\n seal = Object.seal,\n create = Object.create; // eslint-disable-line import/no-mutable-exports\n\n var _ref = typeof Reflect !== 'undefined' && Reflect,\n apply = _ref.apply,\n construct = _ref.construct;\n\n if (!apply) {\n apply = function apply(fun, thisValue, args) {\n return fun.apply(thisValue, args);\n };\n }\n\n if (!freeze) {\n freeze = function freeze(x) {\n return x;\n };\n }\n\n if (!seal) {\n seal = function seal(x) {\n return x;\n };\n }\n\n if (!construct) {\n construct = function construct(Func, args) {\n return new (Function.prototype.bind.apply(Func, [null].concat(_toConsumableArray(args))))();\n };\n }\n\n var arrayForEach = unapply(Array.prototype.forEach);\n var arrayPop = unapply(Array.prototype.pop);\n var arrayPush = unapply(Array.prototype.push);\n var stringToLowerCase = unapply(String.prototype.toLowerCase);\n var stringMatch = unapply(String.prototype.match);\n var stringReplace = unapply(String.prototype.replace);\n var stringIndexOf = unapply(String.prototype.indexOf);\n var stringTrim = unapply(String.prototype.trim);\n var regExpTest = unapply(RegExp.prototype.test);\n var typeErrorCreate = unconstruct(TypeError);\n\n function unapply(func) {\n return function (thisArg) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return apply(func, thisArg, args);\n };\n }\n\n function unconstruct(func) {\n return function () {\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return construct(func, args);\n };\n }\n /* Add properties to a lookup table */\n\n\n function addToSet(set, array) {\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n\n var l = array.length;\n\n while (l--) {\n var element = array[l];\n\n if (typeof element === 'string') {\n var lcElement = stringToLowerCase(element);\n\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n\n element = lcElement;\n }\n }\n\n set[element] = true;\n }\n\n return set;\n }\n /* Shallow clone an object */\n\n\n function clone(object) {\n var newObject = create(null);\n var property = void 0;\n\n for (property in object) {\n if (apply(hasOwnProperty, object, [property])) {\n newObject[property] = object[property];\n }\n }\n\n return newObject;\n }\n /* IE10 doesn't support __lookupGetter__ so lets'\n * simulate it. It also automatically checks\n * if the prop is function or getter and behaves\n * accordingly. */\n\n\n function lookupGetter(object, prop) {\n while (object !== null) {\n var desc = getOwnPropertyDescriptor(object, prop);\n\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n\n object = getPrototypeOf(object);\n }\n\n function fallbackValue(element) {\n console.warn('fallback value for', element);\n return null;\n }\n\n return fallbackValue;\n }\n\n var html = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']); // SVG\n\n var svg = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);\n var svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']); // List of SVG elements that are disallowed by default.\n // We still need to know them so that we can do namespace\n // checks properly in case one wants to add them to\n // allow-list.\n\n var svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'fedropshadow', 'feimage', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);\n var mathMl = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover']); // Similarly to SVG, we want to know all MathML elements,\n // even those that we disallow by default.\n\n var mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);\n var text = freeze(['#text']);\n var html$1 = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'playsinline', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'xmlns', 'slot']);\n var svg$1 = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'targetx', 'targety', 'transform', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\n var mathMl$1 = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\n var xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']); // eslint-disable-next-line unicorn/better-regex\n\n var MUSTACHE_EXPR = seal(/\\{\\{[\\s\\S]*|[\\s\\S]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\n\n var ERB_EXPR = seal(/<%[\\s\\S]*|[\\s\\S]*%>/gm);\n var DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]/); // eslint-disable-line no-useless-escape\n\n var ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\n\n var IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n );\n var IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\n var ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n );\n\n var _typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n return _typeof2(obj);\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n\n function _toConsumableArray$1(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\n var getGlobal = function getGlobal() {\n return typeof window === 'undefined' ? null : window;\n };\n /**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param {?TrustedTypePolicyFactory} trustedTypes The policy factory.\n * @param {Document} document The document object (to determine policy name suffix)\n * @return {?TrustedTypePolicy} The policy created (or null, if Trusted Types\n * are not supported).\n */\n\n\n var _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, document) {\n if ((typeof trustedTypes === 'undefined' ? 'undefined' : _typeof(trustedTypes)) !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\n } // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n\n\n var suffix = null;\n var ATTR_NAME = 'data-tt-policy-suffix';\n\n if (document.currentScript && document.currentScript.hasAttribute(ATTR_NAME)) {\n suffix = document.currentScript.getAttribute(ATTR_NAME);\n }\n\n var policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML: function createHTML(html$$1) {\n return html$$1;\n }\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n return null;\n }\n };\n\n function createDOMPurify() {\n var window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n\n var DOMPurify = function DOMPurify(root) {\n return createDOMPurify(root);\n };\n /**\n * Version label, exposed for easier checks\n * if DOMPurify is up to date or not\n */\n\n\n DOMPurify.version = '2.3.1';\n /**\n * Array of elements that DOMPurify removed during sanitation.\n * Empty if nothing was removed.\n */\n\n DOMPurify.removed = [];\n\n if (!window || !window.document || window.document.nodeType !== 9) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n return DOMPurify;\n }\n\n var originalDocument = window.document;\n var document = window.document;\n var DocumentFragment = window.DocumentFragment,\n HTMLTemplateElement = window.HTMLTemplateElement,\n Node = window.Node,\n Element = window.Element,\n NodeFilter = window.NodeFilter,\n _window$NamedNodeMap = window.NamedNodeMap,\n NamedNodeMap = _window$NamedNodeMap === undefined ? window.NamedNodeMap || window.MozNamedAttrMap : _window$NamedNodeMap,\n Text = window.Text,\n Comment = window.Comment,\n DOMParser = window.DOMParser,\n trustedTypes = window.trustedTypes;\n var ElementPrototype = Element.prototype;\n var cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n var getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n var getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n var getParentNode = lookupGetter(ElementPrototype, 'parentNode'); // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n\n if (typeof HTMLTemplateElement === 'function') {\n var template = document.createElement('template');\n\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n\n var trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, originalDocument);\n\n var emptyHTML = trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML('') : '';\n var _document = document,\n implementation = _document.implementation,\n createNodeIterator = _document.createNodeIterator,\n createDocumentFragment = _document.createDocumentFragment,\n getElementsByTagName = _document.getElementsByTagName;\n var importNode = originalDocument.importNode;\n var documentMode = {};\n\n try {\n documentMode = clone(document).documentMode ? document.documentMode : {};\n } catch (_) {}\n\n var hooks = {};\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n\n DOMPurify.isSupported = typeof getParentNode === 'function' && implementation && typeof implementation.createHTMLDocument !== 'undefined' && documentMode !== 9;\n var MUSTACHE_EXPR$$1 = MUSTACHE_EXPR,\n ERB_EXPR$$1 = ERB_EXPR,\n DATA_ATTR$$1 = DATA_ATTR,\n ARIA_ATTR$$1 = ARIA_ATTR,\n IS_SCRIPT_OR_DATA$$1 = IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE$$1 = ATTR_WHITESPACE;\n var IS_ALLOWED_URI$$1 = IS_ALLOWED_URI;\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n\n /* allowed element names */\n\n var ALLOWED_TAGS = null;\n var DEFAULT_ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray$1(html), _toConsumableArray$1(svg), _toConsumableArray$1(svgFilters), _toConsumableArray$1(mathMl), _toConsumableArray$1(text)));\n /* Allowed attribute names */\n\n var ALLOWED_ATTR = null;\n var DEFAULT_ALLOWED_ATTR = addToSet({}, [].concat(_toConsumableArray$1(html$1), _toConsumableArray$1(svg$1), _toConsumableArray$1(mathMl$1), _toConsumableArray$1(xml)));\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n\n var FORBID_TAGS = null;\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n\n var FORBID_ATTR = null;\n /* Decide if ARIA attributes are okay */\n\n var ALLOW_ARIA_ATTR = true;\n /* Decide if custom data attributes are okay */\n\n var ALLOW_DATA_ATTR = true;\n /* Decide if unknown protocols are okay */\n\n var ALLOW_UNKNOWN_PROTOCOLS = false;\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n\n var SAFE_FOR_TEMPLATES = false;\n /* Decide if document with ... should be returned */\n\n var WHOLE_DOCUMENT = false;\n /* Track whether config is already set on this instance of DOMPurify. */\n\n var SET_CONFIG = false;\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n\n var FORCE_BODY = false;\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n\n var RETURN_DOM = false;\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n\n var RETURN_DOM_FRAGMENT = false;\n /* If `RETURN_DOM` or `RETURN_DOM_FRAGMENT` is enabled, decide if the returned DOM\n * `Node` is imported into the current `Document`. If this flag is not enabled the\n * `Node` will belong (its ownerDocument) to a fresh `HTMLDocument`, created by\n * DOMPurify.\n *\n * This defaults to `true` starting DOMPurify 2.2.0. Note that setting it to `false`\n * might cause XSS from attacks hidden in closed shadowroots in case the browser\n * supports Declarative Shadow: DOM https://web.dev/declarative-shadow-dom/\n */\n\n var RETURN_DOM_IMPORT = true;\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n\n var RETURN_TRUSTED_TYPE = false;\n /* Output should be free from DOM clobbering attacks? */\n\n var SANITIZE_DOM = true;\n /* Keep element content when removing element? */\n\n var KEEP_CONTENT = true;\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n\n var IN_PLACE = false;\n /* Allow usage of profiles like html, svg and mathMl */\n\n var USE_PROFILES = {};\n /* Tags to ignore content of when KEEP_CONTENT is true */\n\n var FORBID_CONTENTS = null;\n var DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);\n /* Tags that are safe for data: URIs */\n\n var DATA_URI_TAGS = null;\n var DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);\n /* Attributes safe for values like \"javascript:\" */\n\n var URI_SAFE_ATTRIBUTES = null;\n var DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns']);\n var MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n var SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n var HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n /* Document namespace */\n\n var NAMESPACE = HTML_NAMESPACE;\n var IS_EMPTY_INPUT = false;\n /* Keep a reference to config to pass to hooks */\n\n var CONFIG = null;\n /* Ideally, do not touch anything below this line */\n\n /* ______________________________________________ */\n\n var formElement = document.createElement('form');\n /**\n * _parseConfig\n *\n * @param {Object} cfg optional config literal\n */\n // eslint-disable-next-line complexity\n\n var _parseConfig = function _parseConfig(cfg) {\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n /* Shield configuration object from tampering */\n\n\n if (!cfg || (typeof cfg === 'undefined' ? 'undefined' : _typeof(cfg)) !== 'object') {\n cfg = {};\n }\n /* Shield configuration object from prototype pollution */\n\n\n cfg = clone(cfg);\n /* Set configuration parameters */\n\n ALLOWED_TAGS = 'ALLOWED_TAGS' in cfg ? addToSet({}, cfg.ALLOWED_TAGS) : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = 'ALLOWED_ATTR' in cfg ? addToSet({}, cfg.ALLOWED_ATTR) : DEFAULT_ALLOWED_ATTR;\n URI_SAFE_ATTRIBUTES = 'ADD_URI_SAFE_ATTR' in cfg ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), cfg.ADD_URI_SAFE_ATTR) : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS = 'ADD_DATA_URI_TAGS' in cfg ? addToSet(clone(DEFAULT_DATA_URI_TAGS), cfg.ADD_DATA_URI_TAGS) : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS = 'FORBID_CONTENTS' in cfg ? addToSet({}, cfg.FORBID_CONTENTS) : DEFAULT_FORBID_CONTENTS;\n FORBID_TAGS = 'FORBID_TAGS' in cfg ? addToSet({}, cfg.FORBID_TAGS) : {};\n FORBID_ATTR = 'FORBID_ATTR' in cfg ? addToSet({}, cfg.FORBID_ATTR) : {};\n USE_PROFILES = 'USE_PROFILES' in cfg ? cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n\n RETURN_DOM_IMPORT = cfg.RETURN_DOM_IMPORT !== false; // Default true\n\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n\n IS_ALLOWED_URI$$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI$$1;\n NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n /* Parse profile info */\n\n\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray$1(text)));\n ALLOWED_ATTR = [];\n\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, html);\n addToSet(ALLOWED_ATTR, html$1);\n }\n\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, svg);\n addToSet(ALLOWED_ATTR, svg$1);\n addToSet(ALLOWED_ATTR, xml);\n }\n\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, svgFilters);\n addToSet(ALLOWED_ATTR, svg$1);\n addToSet(ALLOWED_ATTR, xml);\n }\n\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, mathMl);\n addToSet(ALLOWED_ATTR, mathMl$1);\n addToSet(ALLOWED_ATTR, xml);\n }\n }\n /* Merge configuration parameters */\n\n\n if (cfg.ADD_TAGS) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS);\n }\n\n if (cfg.ADD_ATTR) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR);\n }\n\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR);\n }\n\n if (cfg.FORBID_CONTENTS) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n\n addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS);\n }\n /* Add #text in case KEEP_CONTENT is set to true */\n\n\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n\n\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n\n\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n } // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n\n\n if (freeze) {\n freeze(cfg);\n }\n\n CONFIG = cfg;\n };\n\n var MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);\n var HTML_INTEGRATION_POINTS = addToSet({}, ['foreignobject', 'desc', 'title', 'annotation-xml']);\n /* Keep track of all possible SVG and MathML tags\n * so that we can perform the namespace checks\n * correctly. */\n\n var ALL_SVG_TAGS = addToSet({}, svg);\n addToSet(ALL_SVG_TAGS, svgFilters);\n addToSet(ALL_SVG_TAGS, svgDisallowed);\n var ALL_MATHML_TAGS = addToSet({}, mathMl);\n addToSet(ALL_MATHML_TAGS, mathMlDisallowed);\n /**\n *\n *\n * @param {Element} element a DOM element whose namespace is being checked\n * @returns {boolean} Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n\n var _checkValidNamespace = function _checkValidNamespace(element) {\n var parent = getParentNode(element); // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: HTML_NAMESPACE,\n tagName: 'template'\n };\n }\n\n var tagName = stringToLowerCase(element.tagName);\n var parentTagName = stringToLowerCase(parent.tagName);\n\n if (element.namespaceURI === SVG_NAMESPACE) {\n // The only way to switch from HTML namespace to SVG\n // is via . If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'svg';\n } // The only way to switch from MathML to SVG is via\n // svg if parent is either or MathML\n // text integration points.\n\n\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);\n } // We only allow elements that are defined in SVG\n // spec. All others are disallowed in SVG namespace.\n\n\n return Boolean(ALL_SVG_TAGS[tagName]);\n }\n\n if (element.namespaceURI === MATHML_NAMESPACE) {\n // The only way to switch from HTML namespace to MathML\n // is via . If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'math';\n } // The only way to switch from SVG to MathML is via\n // and HTML integration points\n\n\n if (parent.namespaceURI === SVG_NAMESPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n } // We only allow elements that are defined in MathML\n // spec. All others are disallowed in MathML namespace.\n\n\n return Boolean(ALL_MATHML_TAGS[tagName]);\n }\n\n if (element.namespaceURI === HTML_NAMESPACE) {\n // The only way to switch from SVG to HTML is via\n // HTML integration points, and from MathML to HTML\n // is via MathML text integration points\n if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n\n if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {\n return false;\n } // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erronously deleted from\n // HTML namespace.\n\n\n var commonSvgAndHTMLElements = addToSet({}, ['title', 'style', 'font', 'a', 'script']); // We disallow tags that are specific for MathML\n // or SVG and should never appear in HTML namespace\n\n return !ALL_MATHML_TAGS[tagName] && (commonSvgAndHTMLElements[tagName] || !ALL_SVG_TAGS[tagName]);\n } // The code should never reach this place (this means\n // that the element somehow got namespace that is not\n // HTML, SVG or MathML). Return false just in case.\n\n\n return false;\n };\n /**\n * _forceRemove\n *\n * @param {Node} node a DOM node\n */\n\n\n var _forceRemove = function _forceRemove(node) {\n arrayPush(DOMPurify.removed, {\n element: node\n });\n\n try {\n // eslint-disable-next-line unicorn/prefer-dom-node-remove\n node.parentNode.removeChild(node);\n } catch (_) {\n try {\n node.outerHTML = emptyHTML;\n } catch (_) {\n node.remove();\n }\n }\n };\n /**\n * _removeAttribute\n *\n * @param {String} name an Attribute name\n * @param {Node} node a DOM node\n */\n\n\n var _removeAttribute = function _removeAttribute(name, node) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: node.getAttributeNode(name),\n from: node\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: node\n });\n }\n\n node.removeAttribute(name); // We void attribute values for unremovable \"is\"\" attributes\n\n if (name === 'is' && !ALLOWED_ATTR[name]) {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(node);\n } catch (_) {}\n } else {\n try {\n node.setAttribute(name, '');\n } catch (_) {}\n }\n }\n };\n /**\n * _initDocument\n *\n * @param {String} dirty a string of dirty markup\n * @return {Document} a DOM, filled with the dirty markup\n */\n\n\n var _initDocument = function _initDocument(dirty) {\n /* Create a HTML document */\n var doc = void 0;\n var leadingWhitespace = void 0;\n\n if (FORCE_BODY) {\n dirty = '' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n var matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n\n var dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n /*\n * Use the DOMParser API by default, fallback later if needs be\n * DOMParser not work for svg when has multiple root element.\n */\n\n if (NAMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, 'text/html');\n } catch (_) {}\n }\n /* Use createHTMLDocument in case DOMParser is not available */\n\n\n if (!doc || !doc.documentElement) {\n doc = implementation.createDocument(NAMESPACE, 'template', null);\n\n try {\n doc.documentElement.innerHTML = IS_EMPTY_INPUT ? '' : dirtyPayload;\n } catch (_) {// Syntax error if dirtyPayload is invalid xml\n }\n }\n\n var body = doc.body || doc.documentElement;\n\n if (dirty && leadingWhitespace) {\n body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);\n }\n /* Work on whole document or just its body */\n\n\n if (NAMESPACE === HTML_NAMESPACE) {\n return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n }\n\n return WHOLE_DOCUMENT ? doc.documentElement : body;\n };\n /**\n * _createIterator\n *\n * @param {Document} root document/fragment to create iterator for\n * @return {Iterator} iterator instance\n */\n\n\n var _createIterator = function _createIterator(root) {\n return createNodeIterator.call(root.ownerDocument || root, root, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT, null, false);\n };\n /**\n * _isClobbered\n *\n * @param {Node} elm element to check for clobbering attacks\n * @return {Boolean} true if clobbered, false if safe\n */\n\n\n var _isClobbered = function _isClobbered(elm) {\n if (elm instanceof Text || elm instanceof Comment) {\n return false;\n }\n\n if (typeof elm.nodeName !== 'string' || typeof elm.textContent !== 'string' || typeof elm.removeChild !== 'function' || !(elm.attributes instanceof NamedNodeMap) || typeof elm.removeAttribute !== 'function' || typeof elm.setAttribute !== 'function' || typeof elm.namespaceURI !== 'string' || typeof elm.insertBefore !== 'function') {\n return true;\n }\n\n return false;\n };\n /**\n * _isNode\n *\n * @param {Node} obj object to check whether it's a DOM node\n * @return {Boolean} true is object is a DOM node\n */\n\n\n var _isNode = function _isNode(object) {\n return (typeof Node === 'undefined' ? 'undefined' : _typeof(Node)) === 'object' ? object instanceof Node : object && (typeof object === 'undefined' ? 'undefined' : _typeof(object)) === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string';\n };\n /**\n * _executeHook\n * Execute user configurable hooks\n *\n * @param {String} entryPoint Name of the hook's entry point\n * @param {Node} currentNode node to work on with the hook\n * @param {Object} data additional hook parameters\n */\n\n\n var _executeHook = function _executeHook(entryPoint, currentNode, data) {\n if (!hooks[entryPoint]) {\n return;\n }\n\n arrayForEach(hooks[entryPoint], function (hook) {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n };\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n *\n * @param {Node} currentNode to check for permission to exist\n * @return {Boolean} true if node was killed, false if left alive\n */\n\n\n var _sanitizeElements = function _sanitizeElements(currentNode) {\n var content = void 0;\n /* Execute a hook if present */\n\n _executeHook('beforeSanitizeElements', currentNode, null);\n /* Check if element is clobbered or can clobber */\n\n\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n\n return true;\n }\n /* Check if tagname contains Unicode */\n\n\n if (stringMatch(currentNode.nodeName, /[\\u0080-\\uFFFF]/)) {\n _forceRemove(currentNode);\n\n return true;\n }\n /* Now let's check the element's type and name */\n\n\n var tagName = stringToLowerCase(currentNode.nodeName);\n /* Execute a hook if present */\n\n _executeHook('uponSanitizeElement', currentNode, {\n tagName: tagName,\n allowedTags: ALLOWED_TAGS\n });\n /* Detect mXSS attempts abusing namespace confusion */\n\n\n if (!_isNode(currentNode.firstElementChild) && (!_isNode(currentNode.content) || !_isNode(currentNode.content.firstElementChild)) && regExpTest(/<[/\\w]/g, currentNode.innerHTML) && regExpTest(/<[/\\w]/g, currentNode.textContent)) {\n _forceRemove(currentNode);\n\n return true;\n }\n /* Mitigate a problem with templates inside select */\n\n\n if (tagName === 'select' && regExpTest(/
');\n this.cta = _.escapeHTML(notif_data['cta']) || 'Close';\n this.notif_type = _.escapeHTML(notif_data['type']) || 'takeover';\n this.style = _.escapeHTML(notif_data['style']) || 'light';\n this.title = _.escapeHTML(notif_data['title']) || '';\n this.video_width = MixpanelNotification.VIDEO_WIDTH;\n this.video_height = MixpanelNotification.VIDEO_HEIGHT;\n this.display_triggers = notif_data['display_triggers'] || []; // These fields are url-sanitized in the backend already.\n\n this.dest_url = notif_data['cta_url'] || null;\n this.image_url = notif_data['image_url'] || null;\n this.thumb_image_url = notif_data['thumb_image_url'] || null;\n this.video_url = notif_data['video_url'] || null;\n\n if (this.thumb_image_url && this.thumb_image_url.indexOf('//') === 0) {\n this.thumb_image_url = this.thumb_image_url.replace('//', this.resource_protocol);\n }\n\n this.clickthrough = true;\n\n if (!this.dest_url) {\n this.dest_url = '#dismiss';\n this.clickthrough = false;\n }\n\n this.mini = this.notif_type === 'mini';\n\n if (!this.mini) {\n this.notif_type = 'takeover';\n }\n\n this.notif_width = !this.mini ? MixpanelNotification.NOTIF_WIDTH : MixpanelNotification.NOTIF_WIDTH_MINI;\n\n this._set_client_config();\n\n this.imgs_to_preload = this._init_image_html();\n\n this._init_video();\n};\n\nMixpanelNotification.ANIM_TIME = 200;\nMixpanelNotification.MARKUP_PREFIX = 'mixpanel-notification';\nMixpanelNotification.BG_OPACITY = 0.6;\nMixpanelNotification.NOTIF_TOP = 25;\nMixpanelNotification.NOTIF_START_TOP = 200;\nMixpanelNotification.NOTIF_WIDTH = 388;\nMixpanelNotification.NOTIF_WIDTH_MINI = 420;\nMixpanelNotification.NOTIF_HEIGHT_MINI = 85;\nMixpanelNotification.THUMB_BORDER_SIZE = 5;\nMixpanelNotification.THUMB_IMG_SIZE = 60;\nMixpanelNotification.THUMB_OFFSET = Math.round(MixpanelNotification.THUMB_IMG_SIZE / 2);\nMixpanelNotification.VIDEO_WIDTH = 595;\nMixpanelNotification.VIDEO_HEIGHT = 334;\n\nMixpanelNotification.prototype.show = function () {\n var self = this;\n\n this._set_client_config(); // don't display until HTML body exists\n\n\n if (!this.body_el) {\n setTimeout(function () {\n self.show();\n }, 300);\n return;\n }\n\n this._init_styles();\n\n this._init_notification_el(); // wait for any images to load before showing notification\n\n\n this._preload_images(this._attach_and_animate);\n};\n\nMixpanelNotification.prototype.dismiss = _.safewrap(function () {\n if (!this.marked_as_shown) {\n // unexpected condition: user interacted with notif even though we didn't consider it\n // visible (see _mark_as_shown()); send tracking signals to mark delivery\n this._mark_delivery({\n 'invisible': true\n });\n }\n\n var exiting_el = this.showing_video ? this._get_el('video') : this._get_notification_display_el();\n\n if (this.use_transitions) {\n this._remove_class('bg', 'visible');\n\n this._add_class(exiting_el, 'exiting');\n\n setTimeout(this._remove_notification_el, MixpanelNotification.ANIM_TIME);\n } else {\n var notif_attr, notif_start, notif_goal;\n\n if (this.mini) {\n notif_attr = 'right';\n notif_start = 20;\n notif_goal = -100;\n } else {\n notif_attr = 'top';\n notif_start = MixpanelNotification.NOTIF_TOP;\n notif_goal = MixpanelNotification.NOTIF_START_TOP + MixpanelNotification.NOTIF_TOP;\n }\n\n this._animate_els([{\n el: this._get_el('bg'),\n attr: 'opacity',\n start: MixpanelNotification.BG_OPACITY,\n goal: 0.0\n }, {\n el: exiting_el,\n attr: 'opacity',\n start: 1.0,\n goal: 0.0\n }, {\n el: exiting_el,\n attr: notif_attr,\n start: notif_start,\n goal: notif_goal\n }], MixpanelNotification.ANIM_TIME, this._remove_notification_el);\n }\n});\nMixpanelNotification.prototype._add_class = _.safewrap(function (el, class_name) {\n class_name = MixpanelNotification.MARKUP_PREFIX + '-' + class_name;\n\n if (typeof el === 'string') {\n el = this._get_el(el);\n }\n\n if (!el.className) {\n el.className = class_name;\n } else if (!~(' ' + el.className + ' ').indexOf(' ' + class_name + ' ')) {\n el.className += ' ' + class_name;\n }\n});\nMixpanelNotification.prototype._remove_class = _.safewrap(function (el, class_name) {\n class_name = MixpanelNotification.MARKUP_PREFIX + '-' + class_name;\n\n if (typeof el === 'string') {\n el = this._get_el(el);\n }\n\n if (el.className) {\n el.className = (' ' + el.className + ' ').replace(' ' + class_name + ' ', '').replace(/^[\\s\\xA0]+/, '').replace(/[\\s\\xA0]+$/, '');\n }\n});\nMixpanelNotification.prototype._animate_els = _.safewrap(function (anims, mss, done_cb, start_time) {\n var self = this,\n in_progress = false,\n ai,\n anim,\n cur_time = 1 * new Date(),\n time_diff;\n start_time = start_time || cur_time;\n time_diff = cur_time - start_time;\n\n for (ai = 0; ai < anims.length; ai++) {\n anim = anims[ai];\n\n if (typeof anim.val === 'undefined') {\n anim.val = anim.start;\n }\n\n if (anim.val !== anim.goal) {\n in_progress = true;\n var anim_diff = anim.goal - anim.start,\n anim_dir = anim.goal >= anim.start ? 1 : -1;\n anim.val = anim.start + anim_diff * time_diff / mss;\n\n if (anim.attr !== 'opacity') {\n anim.val = Math.round(anim.val);\n }\n\n if (anim_dir > 0 && anim.val >= anim.goal || anim_dir < 0 && anim.val <= anim.goal) {\n anim.val = anim.goal;\n }\n }\n }\n\n if (!in_progress) {\n if (done_cb) {\n done_cb();\n }\n\n return;\n }\n\n for (ai = 0; ai < anims.length; ai++) {\n anim = anims[ai];\n\n if (anim.el) {\n var suffix = anim.attr === 'opacity' ? '' : 'px';\n anim.el.style[anim.attr] = String(anim.val) + suffix;\n }\n }\n\n setTimeout(function () {\n self._animate_els(anims, mss, done_cb, start_time);\n }, 10);\n});\nMixpanelNotification.prototype._attach_and_animate = _.safewrap(function () {\n var self = this; // no possibility to double-display\n\n if (this.shown || this._get_shown_campaigns()[this.campaign_id]) {\n return;\n }\n\n this.shown = true;\n this.body_el.appendChild(this.notification_el);\n setTimeout(function () {\n var notif_el = self._get_notification_display_el();\n\n if (self.use_transitions) {\n if (!self.mini) {\n self._add_class('bg', 'visible');\n }\n\n self._add_class(notif_el, 'visible');\n\n self._mark_as_shown();\n } else {\n var notif_attr, notif_start, notif_goal;\n\n if (self.mini) {\n notif_attr = 'right';\n notif_start = -100;\n notif_goal = 20;\n } else {\n notif_attr = 'top';\n notif_start = MixpanelNotification.NOTIF_START_TOP + MixpanelNotification.NOTIF_TOP;\n notif_goal = MixpanelNotification.NOTIF_TOP;\n }\n\n self._animate_els([{\n el: self._get_el('bg'),\n attr: 'opacity',\n start: 0.0,\n goal: MixpanelNotification.BG_OPACITY\n }, {\n el: notif_el,\n attr: 'opacity',\n start: 0.0,\n goal: 1.0\n }, {\n el: notif_el,\n attr: notif_attr,\n start: notif_start,\n goal: notif_goal\n }], MixpanelNotification.ANIM_TIME, self._mark_as_shown);\n }\n }, 100);\n\n _.register_event(self._get_el('cancel'), 'click', function (e) {\n e.preventDefault();\n self.dismiss();\n });\n\n var click_el = self._get_el('button') || self._get_el('mini-content');\n\n _.register_event(click_el, 'click', function (e) {\n e.preventDefault();\n\n if (self.show_video) {\n self._track_event('$campaign_open', {\n '$resource_type': 'video'\n });\n\n self._switch_to_video();\n } else {\n self.dismiss();\n\n if (self.clickthrough) {\n var tracking_cb = null;\n\n if (self.mixpanel.get_config('inapp_link_new_window')) {\n window.open(self.dest_url);\n } else {\n tracking_cb = function tracking_cb() {\n window.location.href = self.dest_url;\n };\n }\n\n self._track_event('$campaign_open', {\n '$resource_type': 'link'\n }, tracking_cb);\n }\n }\n });\n});\n\nMixpanelNotification.prototype._get_el = function (id) {\n return document.getElementById(MixpanelNotification.MARKUP_PREFIX + '-' + id);\n};\n\nMixpanelNotification.prototype._get_notification_display_el = function () {\n return this._get_el(this.notif_type);\n};\n\nMixpanelNotification.prototype._get_shown_campaigns = function () {\n return this.persistence['props'][CAMPAIGN_IDS_KEY] || (this.persistence['props'][CAMPAIGN_IDS_KEY] = {});\n};\n\nMixpanelNotification.prototype._matches_event_data = _.safewrap(function (event_data) {\n var event_name = event_data['event'] || '';\n\n for (var i = 0; i < this.display_triggers.length; i++) {\n var display_trigger = this.display_triggers[i];\n var match_event = display_trigger['event'] || '';\n\n if (match_event === '$any_event' || event_name === display_trigger['event']) {\n if (display_trigger['selector'] && !_.isEmptyObject(display_trigger['selector'])) {\n if (evaluateSelector(display_trigger['selector'], event_data['properties'])) {\n return true;\n }\n } else {\n return true;\n }\n }\n }\n\n return false;\n});\n\nMixpanelNotification.prototype._browser_lte = function (browser, version) {\n return this.browser_versions[browser] && this.browser_versions[browser] <= version;\n};\n\nMixpanelNotification.prototype._init_image_html = function () {\n var imgs_to_preload = [];\n\n if (!this.mini) {\n if (this.image_url) {\n imgs_to_preload.push(this.image_url);\n this.img_html = '';\n } else {\n this.img_html = '';\n }\n\n if (this.thumb_image_url) {\n imgs_to_preload.push(this.thumb_image_url);\n this.thumb_img_html = '
' + '' + '
';\n } else {\n this.thumb_img_html = '';\n }\n } else {\n this.thumb_image_url = this.thumb_image_url || this.cdn_host + '/site_media/images/icons/notifications/mini-news-dark.png';\n imgs_to_preload.push(this.thumb_image_url);\n }\n\n return imgs_to_preload;\n};\n\nMixpanelNotification.prototype._init_notification_el = function () {\n var notification_html = '';\n var video_src = '';\n var video_html = '';\n var cancel_html = '
' + '
' + '
';\n this.notification_el = document.createElement('div');\n this.notification_el.id = MixpanelNotification.MARKUP_PREFIX + '-wrapper';\n\n if (!this.mini) {\n // TAKEOVER notification\n var close_html = this.clickthrough || this.show_video ? '' : '
',\n play_html = this.show_video ? '
' : '';\n\n if (this._browser_lte('ie', 7)) {\n close_html = '';\n play_html = '';\n }\n\n notification_html = '
' + this.thumb_img_html + '
' + cancel_html + '
' + this.img_html + '
' + this.title + '
' + '
' + this.body + '
' + '' + '
' + '
' + close_html + '' + this.cta + '' + play_html + '
' + '
' + '
';\n } else {\n // MINI notification\n notification_html = '
' + '
' + cancel_html + '
' + '
' + '
' + '
' + '
' + '
' + this.body + '
' + '
' + '
' + '
' + '
' + '
';\n }\n\n if (this.youtube_video) {\n video_src = this.resource_protocol + 'www.youtube.com/embed/' + this.youtube_video + '?wmode=transparent&showinfo=0&modestbranding=0&rel=0&autoplay=1&loop=0&vq=hd1080';\n\n if (this.yt_custom) {\n video_src += '&enablejsapi=1&html5=1&controls=0';\n video_html = '
' + '
' + '
' + '
' + '
' + '
' + '
';\n }\n } else if (this.vimeo_video) {\n video_src = this.resource_protocol + 'player.vimeo.com/video/' + this.vimeo_video + '?autoplay=1&title=0&byline=0&portrait=0';\n }\n\n if (this.show_video) {\n this.video_iframe = '';\n video_html = '
' + '
' + '
' + video_html + '
' + '
';\n }\n\n var main_html = video_html + notification_html;\n\n if (this.flip_animate) {\n main_html = (this.mini ? notification_html : '') + '
' + (this.mini ? video_html : main_html) + '
';\n }\n\n this.notification_el.innerHTML = ('
' + '
' + '
' + '
' + main_html + '
' + '
' + '
').replace(/class=\"/g, 'class=\"' + MixpanelNotification.MARKUP_PREFIX + '-').replace(/id=\"/g, 'id=\"' + MixpanelNotification.MARKUP_PREFIX + '-');\n};\n\nMixpanelNotification.prototype._init_styles = function () {\n if (this.style === 'dark') {\n this.style_vals = {\n bg: '#1d1f25',\n bg_actions: '#282b32',\n bg_hover: '#3a4147',\n bg_light: '#4a5157',\n border_gray: '#32353c',\n cancel_opacity: '0.4',\n mini_hover: '#2a3137',\n text_title: '#fff',\n text_main: '#9498a3',\n text_tagline: '#464851',\n text_hover: '#ddd'\n };\n } else {\n this.style_vals = {\n bg: '#fff',\n bg_actions: '#e7eaee',\n bg_hover: '#eceff3',\n bg_light: '#f5f5f5',\n border_gray: '#e4ecf2',\n cancel_opacity: '1.0',\n mini_hover: '#fafafa',\n text_title: '#5c6578',\n text_main: '#8b949b',\n text_tagline: '#ced9e6',\n text_hover: '#7c8598'\n };\n }\n\n var shadow = '0px 0px 35px 0px rgba(45, 49, 56, 0.7)',\n video_shadow = shadow,\n mini_shadow = shadow,\n thumb_total_size = MixpanelNotification.THUMB_IMG_SIZE + MixpanelNotification.THUMB_BORDER_SIZE * 2,\n anim_seconds = MixpanelNotification.ANIM_TIME / 1000 + 's';\n\n if (this.mini) {\n shadow = 'none';\n } // don't display on small viewports\n\n\n var notif_media_queries = {},\n min_width = MixpanelNotification.NOTIF_WIDTH_MINI + 20;\n notif_media_queries['@media only screen and (max-width: ' + (min_width - 1) + 'px)'] = {\n '#overlay': {\n 'display': 'none'\n }\n };\n var notif_styles = {\n '.flipped': {\n 'transform': 'rotateY(180deg)'\n },\n '#overlay': {\n 'position': 'fixed',\n 'top': '0',\n 'left': '0',\n 'width': '100%',\n 'height': '100%',\n 'overflow': 'auto',\n 'text-align': 'center',\n 'z-index': '10000',\n 'font-family': '\"Helvetica\", \"Arial\", sans-serif',\n '-webkit-font-smoothing': 'antialiased',\n '-moz-osx-font-smoothing': 'grayscale'\n },\n '#overlay.mini': {\n 'height': '0',\n 'overflow': 'visible'\n },\n '#overlay a': {\n 'width': 'initial',\n 'padding': '0',\n 'text-decoration': 'none',\n 'text-transform': 'none',\n 'color': 'inherit'\n },\n '#bgwrapper': {\n 'position': 'relative',\n 'width': '100%',\n 'height': '100%'\n },\n '#bg': {\n 'position': 'fixed',\n 'top': '0',\n 'left': '0',\n 'width': '100%',\n 'height': '100%',\n 'min-width': this.doc_width * 4 + 'px',\n 'min-height': this.doc_height * 4 + 'px',\n 'background-color': 'black',\n 'opacity': '0.0',\n '-ms-filter': 'progid:DXImageTransform.Microsoft.Alpha(Opacity=60)',\n // IE8\n 'filter': 'alpha(opacity=60)',\n // IE5-7\n 'transition': 'opacity ' + anim_seconds\n },\n '#bg.visible': {\n 'opacity': MixpanelNotification.BG_OPACITY\n },\n '.mini #bg': {\n 'width': '0',\n 'height': '0',\n 'min-width': '0'\n },\n '#flipcontainer': {\n 'perspective': '1000px',\n 'position': 'absolute',\n 'width': '100%'\n },\n '#flipper': {\n 'position': 'relative',\n 'transform-style': 'preserve-3d',\n 'transition': '0.3s'\n },\n '#takeover': {\n 'position': 'absolute',\n 'left': '50%',\n 'width': MixpanelNotification.NOTIF_WIDTH + 'px',\n 'margin-left': Math.round(-MixpanelNotification.NOTIF_WIDTH / 2) + 'px',\n 'backface-visibility': 'hidden',\n 'transform': 'rotateY(0deg)',\n 'opacity': '0.0',\n 'top': MixpanelNotification.NOTIF_START_TOP + 'px',\n 'transition': 'opacity ' + anim_seconds + ', top ' + anim_seconds\n },\n '#takeover.visible': {\n 'opacity': '1.0',\n 'top': MixpanelNotification.NOTIF_TOP + 'px'\n },\n '#takeover.exiting': {\n 'opacity': '0.0',\n 'top': MixpanelNotification.NOTIF_START_TOP + 'px'\n },\n '#thumbspacer': {\n 'height': MixpanelNotification.THUMB_OFFSET + 'px'\n },\n '#thumbborder-wrapper': {\n 'position': 'absolute',\n 'top': -MixpanelNotification.THUMB_BORDER_SIZE + 'px',\n 'left': MixpanelNotification.NOTIF_WIDTH / 2 - MixpanelNotification.THUMB_OFFSET - MixpanelNotification.THUMB_BORDER_SIZE + 'px',\n 'width': thumb_total_size + 'px',\n 'height': thumb_total_size / 2 + 'px',\n 'overflow': 'hidden'\n },\n '#thumbborder': {\n 'position': 'absolute',\n 'width': thumb_total_size + 'px',\n 'height': thumb_total_size + 'px',\n 'border-radius': thumb_total_size + 'px',\n 'background-color': this.style_vals.bg_actions,\n 'opacity': '0.5'\n },\n '#thumbnail': {\n 'position': 'absolute',\n 'top': '0px',\n 'left': MixpanelNotification.NOTIF_WIDTH / 2 - MixpanelNotification.THUMB_OFFSET + 'px',\n 'width': MixpanelNotification.THUMB_IMG_SIZE + 'px',\n 'height': MixpanelNotification.THUMB_IMG_SIZE + 'px',\n 'overflow': 'hidden',\n 'z-index': '100',\n 'border-radius': MixpanelNotification.THUMB_IMG_SIZE + 'px'\n },\n '#mini': {\n 'position': 'absolute',\n 'right': '20px',\n 'top': MixpanelNotification.NOTIF_TOP + 'px',\n 'width': this.notif_width + 'px',\n 'height': MixpanelNotification.NOTIF_HEIGHT_MINI * 2 + 'px',\n 'margin-top': 20 - MixpanelNotification.NOTIF_HEIGHT_MINI + 'px',\n 'backface-visibility': 'hidden',\n 'opacity': '0.0',\n 'transform': 'rotateX(90deg)',\n 'transition': 'opacity 0.3s, transform 0.3s, right 0.3s'\n },\n '#mini.visible': {\n 'opacity': '1.0',\n 'transform': 'rotateX(0deg)'\n },\n '#mini.exiting': {\n 'opacity': '0.0',\n 'right': '-150px'\n },\n '#mainbox': {\n 'border-radius': '4px',\n 'box-shadow': shadow,\n 'text-align': 'center',\n 'background-color': this.style_vals.bg,\n 'font-size': '14px',\n 'color': this.style_vals.text_main\n },\n '#mini #mainbox': {\n 'height': MixpanelNotification.NOTIF_HEIGHT_MINI + 'px',\n 'margin-top': MixpanelNotification.NOTIF_HEIGHT_MINI + 'px',\n 'border-radius': '3px',\n 'transition': 'background-color ' + anim_seconds\n },\n '#mini-border': {\n 'height': MixpanelNotification.NOTIF_HEIGHT_MINI + 6 + 'px',\n 'width': MixpanelNotification.NOTIF_WIDTH_MINI + 6 + 'px',\n 'position': 'absolute',\n 'top': '-3px',\n 'left': '-3px',\n 'margin-top': MixpanelNotification.NOTIF_HEIGHT_MINI + 'px',\n 'border-radius': '6px',\n 'opacity': '0.25',\n 'background-color': '#fff',\n 'z-index': '-1',\n 'box-shadow': mini_shadow\n },\n '#mini-icon': {\n 'position': 'relative',\n 'display': 'inline-block',\n 'width': '75px',\n 'height': MixpanelNotification.NOTIF_HEIGHT_MINI + 'px',\n 'border-radius': '3px 0 0 3px',\n 'background-color': this.style_vals.bg_actions,\n 'background': 'linear-gradient(135deg, ' + this.style_vals.bg_light + ' 0%, ' + this.style_vals.bg_actions + ' 100%)',\n 'transition': 'background-color ' + anim_seconds\n },\n '#mini:hover #mini-icon': {\n 'background-color': this.style_vals.mini_hover\n },\n '#mini:hover #mainbox': {\n 'background-color': this.style_vals.mini_hover\n },\n '#mini-icon-img': {\n 'position': 'absolute',\n 'background-image': 'url(' + this.thumb_image_url + ')',\n 'width': '48px',\n 'height': '48px',\n 'top': '20px',\n 'left': '12px'\n },\n '#content': {\n 'padding': '30px 20px 0px 20px'\n },\n '#mini-content': {\n 'text-align': 'left',\n 'height': MixpanelNotification.NOTIF_HEIGHT_MINI + 'px',\n 'cursor': 'pointer'\n },\n '#img': {\n 'width': '328px',\n 'margin-top': '30px',\n 'border-radius': '5px'\n },\n '#title': {\n 'max-height': '600px',\n 'overflow': 'hidden',\n 'word-wrap': 'break-word',\n 'padding': '25px 0px 20px 0px',\n 'font-size': '19px',\n 'font-weight': 'bold',\n 'color': this.style_vals.text_title\n },\n '#body': {\n 'max-height': '600px',\n 'margin-bottom': '25px',\n 'overflow': 'hidden',\n 'word-wrap': 'break-word',\n 'line-height': '21px',\n 'font-size': '15px',\n 'font-weight': 'normal',\n 'text-align': 'left'\n },\n '#mini #body': {\n 'display': 'inline-block',\n 'max-width': '250px',\n 'margin': '0 0 0 30px',\n 'height': MixpanelNotification.NOTIF_HEIGHT_MINI + 'px',\n 'font-size': '16px',\n 'letter-spacing': '0.8px',\n 'color': this.style_vals.text_title\n },\n '#mini #body-text': {\n 'display': 'table',\n 'height': MixpanelNotification.NOTIF_HEIGHT_MINI + 'px'\n },\n '#mini #body-text div': {\n 'display': 'table-cell',\n 'vertical-align': 'middle'\n },\n '#tagline': {\n 'margin-bottom': '15px',\n 'font-size': '10px',\n 'font-weight': '600',\n 'letter-spacing': '0.8px',\n 'color': '#ccd7e0',\n 'text-align': 'left'\n },\n '#tagline a': {\n 'color': this.style_vals.text_tagline,\n 'transition': 'color ' + anim_seconds\n },\n '#tagline a:hover': {\n 'color': this.style_vals.text_hover\n },\n '#cancel': {\n 'position': 'absolute',\n 'right': '0',\n 'width': '8px',\n 'height': '8px',\n 'padding': '10px',\n 'border-radius': '20px',\n 'margin': '12px 12px 0 0',\n 'box-sizing': 'content-box',\n 'cursor': 'pointer',\n 'transition': 'background-color ' + anim_seconds\n },\n '#mini #cancel': {\n 'margin': '7px 7px 0 0'\n },\n '#cancel-icon': {\n 'width': '8px',\n 'height': '8px',\n 'overflow': 'hidden',\n 'background-image': 'url(' + this.cdn_host + '/site_media/images/icons/notifications/cancel-x.png)',\n 'opacity': this.style_vals.cancel_opacity\n },\n '#cancel:hover': {\n 'background-color': this.style_vals.bg_hover\n },\n '#button': {\n 'display': 'block',\n 'height': '60px',\n 'line-height': '60px',\n 'text-align': 'center',\n 'background-color': this.style_vals.bg_actions,\n 'border-radius': '0 0 4px 4px',\n 'overflow': 'hidden',\n 'cursor': 'pointer',\n 'transition': 'background-color ' + anim_seconds\n },\n '#button-close': {\n 'display': 'inline-block',\n 'width': '9px',\n 'height': '60px',\n 'margin-right': '8px',\n 'vertical-align': 'top',\n 'background-image': 'url(' + this.cdn_host + '/site_media/images/icons/notifications/close-x-' + this.style + '.png)',\n 'background-repeat': 'no-repeat',\n 'background-position': '0px 25px'\n },\n '#button-play': {\n 'display': 'inline-block',\n 'width': '30px',\n 'height': '60px',\n 'margin-left': '15px',\n 'background-image': 'url(' + this.cdn_host + '/site_media/images/icons/notifications/play-' + this.style + '-small.png)',\n 'background-repeat': 'no-repeat',\n 'background-position': '0px 15px'\n },\n 'a#button-link': {\n 'display': 'inline-block',\n 'vertical-align': 'top',\n 'text-align': 'center',\n 'font-size': '17px',\n 'font-weight': 'bold',\n 'overflow': 'hidden',\n 'word-wrap': 'break-word',\n 'color': this.style_vals.text_title,\n 'transition': 'color ' + anim_seconds\n },\n '#button:hover': {\n 'background-color': this.style_vals.bg_hover,\n 'color': this.style_vals.text_hover\n },\n '#button:hover a': {\n 'color': this.style_vals.text_hover\n },\n '#video-noflip': {\n 'position': 'relative',\n 'top': -this.video_height * 2 + 'px'\n },\n '#video-flip': {\n 'backface-visibility': 'hidden',\n 'transform': 'rotateY(180deg)'\n },\n '#video': {\n 'position': 'absolute',\n 'width': this.video_width - 1 + 'px',\n 'height': this.video_height + 'px',\n 'top': MixpanelNotification.NOTIF_TOP + 'px',\n 'margin-top': '100px',\n 'left': '50%',\n 'margin-left': Math.round(-this.video_width / 2) + 'px',\n 'overflow': 'hidden',\n 'border-radius': '5px',\n 'box-shadow': video_shadow,\n 'transform': 'translateZ(1px)',\n // webkit rendering bug http://stackoverflow.com/questions/18167981/clickable-link-area-unexpectedly-smaller-after-css-transform\n 'transition': 'opacity ' + anim_seconds + ', top ' + anim_seconds\n },\n '#video.exiting': {\n 'opacity': '0.0',\n 'top': this.video_height + 'px'\n },\n '#video-holder': {\n 'position': 'absolute',\n 'width': this.video_width - 1 + 'px',\n 'height': this.video_height + 'px',\n 'overflow': 'hidden',\n 'border-radius': '5px'\n },\n '#video-frame': {\n 'margin-left': '-1px',\n 'width': this.video_width + 'px'\n },\n '#video-controls': {\n 'opacity': '0',\n 'transition': 'opacity 0.5s'\n },\n '#video:hover #video-controls': {\n 'opacity': '1.0'\n },\n '#video .video-progress-el': {\n 'position': 'absolute',\n 'bottom': '0',\n 'height': '25px',\n 'border-radius': '0 0 0 5px'\n },\n '#video-progress': {\n 'width': '90%'\n },\n '#video-progress-total': {\n 'width': '100%',\n 'background-color': this.style_vals.bg,\n 'opacity': '0.7'\n },\n '#video-elapsed': {\n 'width': '0',\n 'background-color': '#6cb6f5',\n 'opacity': '0.9'\n },\n '#video #video-time': {\n 'width': '10%',\n 'right': '0',\n 'font-size': '11px',\n 'line-height': '25px',\n 'color': this.style_vals.text_main,\n 'background-color': '#666',\n 'border-radius': '0 0 5px 0'\n }\n }; // IE hacks\n\n if (this._browser_lte('ie', 8)) {\n _.extend(notif_styles, {\n '* html #overlay': {\n 'position': 'absolute'\n },\n '* html #bg': {\n 'position': 'absolute'\n },\n 'html, body': {\n 'height': '100%'\n }\n });\n }\n\n if (this._browser_lte('ie', 7)) {\n _.extend(notif_styles, {\n '#mini #body': {\n 'display': 'inline',\n 'zoom': '1',\n 'border': '1px solid ' + this.style_vals.bg_hover\n },\n '#mini #body-text': {\n 'padding': '20px'\n },\n '#mini #mini-icon': {\n 'display': 'none'\n }\n });\n } // add vendor-prefixed style rules\n\n\n var VENDOR_STYLES = ['backface-visibility', 'border-radius', 'box-shadow', 'opacity', 'perspective', 'transform', 'transform-style', 'transition'],\n VENDOR_PREFIXES = ['khtml', 'moz', 'ms', 'o', 'webkit'];\n\n for (var selector in notif_styles) {\n for (var si = 0; si < VENDOR_STYLES.length; si++) {\n var prop = VENDOR_STYLES[si];\n\n if (prop in notif_styles[selector]) {\n var val = notif_styles[selector][prop];\n\n for (var pi = 0; pi < VENDOR_PREFIXES.length; pi++) {\n notif_styles[selector]['-' + VENDOR_PREFIXES[pi] + '-' + prop] = val;\n }\n }\n }\n }\n\n var inject_styles = function inject_styles(styles, media_queries) {\n var create_style_text = function create_style_text(style_defs) {\n var st = '';\n\n for (var selector in style_defs) {\n var mp_selector = selector.replace(/#/g, '#' + MixpanelNotification.MARKUP_PREFIX + '-').replace(/\\./g, '.' + MixpanelNotification.MARKUP_PREFIX + '-');\n st += '\\n' + mp_selector + ' {';\n var props = style_defs[selector];\n\n for (var k in props) {\n st += k + ':' + props[k] + ';';\n }\n\n st += '}';\n }\n\n return st;\n };\n\n var create_media_query_text = function create_media_query_text(mq_defs) {\n var mqt = '';\n\n for (var mq in mq_defs) {\n mqt += '\\n' + mq + ' {' + create_style_text(mq_defs[mq]) + '\\n}';\n }\n\n return mqt;\n };\n\n var style_text = create_style_text(styles) + create_media_query_text(media_queries),\n head_el = document.head || document.getElementsByTagName('head')[0] || document.documentElement,\n style_el = document.createElement('style');\n head_el.appendChild(style_el);\n style_el.setAttribute('type', 'text/css');\n\n if (style_el.styleSheet) {\n // IE\n style_el.styleSheet.cssText = style_text;\n } else {\n style_el.textContent = style_text;\n }\n };\n\n inject_styles(notif_styles, notif_media_queries);\n};\n\nMixpanelNotification.prototype._init_video = _.safewrap(function () {\n if (!this.video_url) {\n return;\n }\n\n var self = this; // Youtube iframe API compatibility\n\n self.yt_custom = 'postMessage' in window;\n self.dest_url = self.video_url;\n var youtube_match = self.video_url.match( // http://stackoverflow.com/questions/2936467/parse-youtube-video-id-using-preg-match\n /(?:youtube(?:-nocookie)?\\.com\\/(?:[^/]+\\/.+\\/|(?:v|e(?:mbed)?)\\/|.*[?&]v=)|youtu\\.be\\/)([^\"&?/ ]{11})/i),\n vimeo_match = self.video_url.match(/vimeo\\.com\\/.*?(\\d+)/i);\n\n if (youtube_match) {\n self.show_video = true;\n self.youtube_video = youtube_match[1];\n\n if (self.yt_custom) {\n window['onYouTubeIframeAPIReady'] = function () {\n if (self._get_el('video-frame')) {\n self._yt_video_ready();\n }\n }; // load Youtube iframe API; see https://developers.google.com/youtube/iframe_api_reference\n\n\n var tag = document.createElement('script');\n tag.src = self.resource_protocol + 'www.youtube.com/iframe_api';\n var firstScriptTag = document.getElementsByTagName('script')[0];\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n }\n } else if (vimeo_match) {\n self.show_video = true;\n self.vimeo_video = vimeo_match[1];\n } // IE <= 7, FF <= 3: fall through to video link rather than embedded player\n\n\n if (self._browser_lte('ie', 7) || self._browser_lte('firefox', 3)) {\n self.show_video = false;\n self.clickthrough = true;\n }\n});\nMixpanelNotification.prototype._mark_as_shown = _.safewrap(function () {\n // click on background to dismiss\n var self = this;\n\n _.register_event(self._get_el('bg'), 'click', function () {\n self.dismiss();\n });\n\n var get_style = function get_style(el, style_name) {\n var styles = {};\n\n if (document.defaultView && document.defaultView.getComputedStyle) {\n styles = document.defaultView.getComputedStyle(el, null); // FF3 requires both args\n } else if (el.currentStyle) {\n // IE\n styles = el.currentStyle;\n }\n\n return styles[style_name];\n };\n\n if (this.campaign_id) {\n var notif_el = this._get_el('overlay');\n\n if (notif_el && get_style(notif_el, 'visibility') !== 'hidden' && get_style(notif_el, 'display') !== 'none') {\n this._mark_delivery();\n }\n }\n});\nMixpanelNotification.prototype._mark_delivery = _.safewrap(function (extra_props) {\n if (!this.marked_as_shown) {\n this.marked_as_shown = true;\n\n if (this.campaign_id) {\n // mark notification shown (local cache)\n this._get_shown_campaigns()[this.campaign_id] = 1 * new Date();\n this.persistence.save();\n } // track delivery\n\n\n this._track_event('$campaign_delivery', extra_props); // mark notification shown (mixpanel property)\n\n\n this.mixpanel['people']['append']({\n '$campaigns': this.campaign_id,\n '$notifications': {\n 'campaign_id': this.campaign_id,\n 'message_id': this.message_id,\n 'type': 'web',\n 'time': new Date()\n }\n });\n }\n});\n\nMixpanelNotification.prototype._preload_images = function (all_loaded_cb) {\n var self = this;\n\n if (this.imgs_to_preload.length === 0) {\n all_loaded_cb();\n return;\n }\n\n var preloaded_imgs = 0;\n var img_objs = [];\n\n var onload = function onload() {\n preloaded_imgs++;\n\n if (preloaded_imgs === self.imgs_to_preload.length && all_loaded_cb) {\n all_loaded_cb();\n all_loaded_cb = null;\n }\n };\n\n for (var i = 0; i < this.imgs_to_preload.length; i++) {\n var img = new Image();\n img.onload = onload;\n img.src = this.imgs_to_preload[i];\n\n if (img.complete) {\n onload();\n }\n\n img_objs.push(img);\n } // IE6/7 doesn't fire onload reliably\n\n\n if (this._browser_lte('ie', 7)) {\n setTimeout(function () {\n var imgs_loaded = true;\n\n for (i = 0; i < img_objs.length; i++) {\n if (!img_objs[i].complete) {\n imgs_loaded = false;\n }\n }\n\n if (imgs_loaded && all_loaded_cb) {\n all_loaded_cb();\n all_loaded_cb = null;\n }\n }, 500);\n }\n};\n\nMixpanelNotification.prototype._remove_notification_el = _.safewrap(function () {\n window.clearInterval(this._video_progress_checker);\n this.notification_el.style.visibility = 'hidden';\n this.body_el.removeChild(this.notification_el);\n});\n\nMixpanelNotification.prototype._set_client_config = function () {\n var get_browser_version = function get_browser_version(browser_ex) {\n var match = navigator.userAgent.match(browser_ex);\n return match && match[1];\n };\n\n this.browser_versions = {};\n this.browser_versions['chrome'] = get_browser_version(/Chrome\\/(\\d+)/);\n this.browser_versions['firefox'] = get_browser_version(/Firefox\\/(\\d+)/);\n this.browser_versions['ie'] = get_browser_version(/MSIE (\\d+).+/);\n\n if (!this.browser_versions['ie'] && !window.ActiveXObject && 'ActiveXObject' in window) {\n this.browser_versions['ie'] = 11;\n }\n\n this.body_el = document.body || document.getElementsByTagName('body')[0];\n\n if (this.body_el) {\n this.doc_width = Math.max(this.body_el.scrollWidth, document.documentElement.scrollWidth, this.body_el.offsetWidth, document.documentElement.offsetWidth, this.body_el.clientWidth, document.documentElement.clientWidth);\n this.doc_height = Math.max(this.body_el.scrollHeight, document.documentElement.scrollHeight, this.body_el.offsetHeight, document.documentElement.offsetHeight, this.body_el.clientHeight, document.documentElement.clientHeight);\n } // detect CSS compatibility\n\n\n var ie_ver = this.browser_versions['ie'];\n\n var sample_styles = document.createElement('div').style,\n is_css_compatible = function is_css_compatible(rule) {\n if (rule in sample_styles) {\n return true;\n }\n\n if (!ie_ver) {\n rule = rule[0].toUpperCase() + rule.slice(1);\n var props = ['O' + rule, 'Webkit' + rule, 'Moz' + rule];\n\n for (var i = 0; i < props.length; i++) {\n if (props[i] in sample_styles) {\n return true;\n }\n }\n }\n\n return false;\n };\n\n this.use_transitions = this.body_el && is_css_compatible('transition') && is_css_compatible('transform');\n this.flip_animate = (this.browser_versions['chrome'] >= 33 || this.browser_versions['firefox'] >= 15) && this.body_el && is_css_compatible('backfaceVisibility') && is_css_compatible('perspective') && is_css_compatible('transform');\n};\n\nMixpanelNotification.prototype._switch_to_video = _.safewrap(function () {\n var self = this,\n anims = [{\n el: self._get_notification_display_el(),\n attr: 'opacity',\n start: 1.0,\n goal: 0.0\n }, {\n el: self._get_notification_display_el(),\n attr: 'top',\n start: MixpanelNotification.NOTIF_TOP,\n goal: -500\n }, {\n el: self._get_el('video-noflip'),\n attr: 'opacity',\n start: 0.0,\n goal: 1.0\n }, {\n el: self._get_el('video-noflip'),\n attr: 'top',\n start: -self.video_height * 2,\n goal: 0\n }];\n\n if (self.mini) {\n var bg = self._get_el('bg'),\n overlay = self._get_el('overlay');\n\n bg.style.width = '100%';\n bg.style.height = '100%';\n overlay.style.width = '100%';\n\n self._add_class(self._get_notification_display_el(), 'exiting');\n\n self._add_class(bg, 'visible');\n\n anims.push({\n el: self._get_el('bg'),\n attr: 'opacity',\n start: 0.0,\n goal: MixpanelNotification.BG_OPACITY\n });\n }\n\n var video_el = self._get_el('video-holder');\n\n video_el.innerHTML = self.video_iframe;\n\n var video_ready = function video_ready() {\n if (window['YT'] && window['YT']['loaded']) {\n self._yt_video_ready();\n }\n\n self.showing_video = true;\n self._get_notification_display_el().style.visibility = 'hidden';\n };\n\n if (self.flip_animate) {\n self._add_class('flipper', 'flipped');\n\n setTimeout(video_ready, MixpanelNotification.ANIM_TIME);\n } else {\n self._animate_els(anims, MixpanelNotification.ANIM_TIME, video_ready);\n }\n});\n\nMixpanelNotification.prototype._track_event = function (event_name, properties, cb) {\n if (this.campaign_id) {\n properties = properties || {};\n properties = _.extend(properties, {\n 'campaign_id': this.campaign_id,\n 'message_id': this.message_id,\n 'message_type': 'web_inapp',\n 'message_subtype': this.notif_type\n });\n this.mixpanel['track'](event_name, properties, cb);\n } else if (cb) {\n cb.call();\n }\n};\n\nMixpanelNotification.prototype._yt_video_ready = _.safewrap(function () {\n var self = this;\n\n if (self.video_inited) {\n return;\n }\n\n self.video_inited = true;\n\n var progress_bar = self._get_el('video-elapsed'),\n progress_time = self._get_el('video-time'),\n progress_el = self._get_el('video-progress');\n\n new window['YT']['Player'](MixpanelNotification.MARKUP_PREFIX + '-video-frame', {\n 'events': {\n 'onReady': function onReady(event) {\n var ytplayer = event['target'],\n video_duration = ytplayer['getDuration'](),\n pad = function pad(i) {\n return ('00' + i).slice(-2);\n },\n update_video_time = function update_video_time(current_time) {\n var secs = Math.round(video_duration - current_time),\n mins = Math.floor(secs / 60),\n hours = Math.floor(mins / 60);\n secs -= mins * 60;\n mins -= hours * 60;\n progress_time.innerHTML = '-' + (hours ? hours + ':' : '') + pad(mins) + ':' + pad(secs);\n };\n\n update_video_time(0);\n self._video_progress_checker = window.setInterval(function () {\n var current_time = ytplayer['getCurrentTime']();\n progress_bar.style.width = current_time / video_duration * 100 + '%';\n update_video_time(current_time);\n }, 250);\n\n _.register_event(progress_el, 'click', function (e) {\n var clickx = Math.max(0, e.pageX - progress_el.getBoundingClientRect().left);\n ytplayer['seekTo'](video_duration * clickx / progress_el.clientWidth, true);\n });\n }\n }\n });\n});\n/**\n * Mixpanel People Object\n * @constructor\n */\n\nvar MixpanelPeople = function MixpanelPeople() {};\n\n_.extend(MixpanelPeople.prototype, apiActions);\n\nMixpanelPeople.prototype._init = function (mixpanel_instance) {\n this._mixpanel = mixpanel_instance;\n};\n/*\n* Set properties on a user record.\n*\n* ### Usage:\n*\n* mixpanel.people.set('gender', 'm');\n*\n* // or set multiple properties at once\n* mixpanel.people.set({\n* 'Company': 'Acme',\n* 'Plan': 'Premium',\n* 'Upgrade date': new Date()\n* });\n* // properties can be strings, integers, dates, or lists\n*\n* @param {Object|String} prop If a string, this is the name of the property. If an object, this is an associative array of names and values.\n* @param {*} [to] A value to set on the given property name\n* @param {Function} [callback] If provided, the callback will be called after tracking the event.\n*/\n\n\nMixpanelPeople.prototype.set = addOptOutCheckMixpanelPeople(function (prop, to, callback) {\n var data = this.set_action(prop, to);\n\n if (_.isObject(prop)) {\n callback = to;\n } // make sure that the referrer info has been updated and saved\n\n\n if (this._get_config('save_referrer')) {\n this._mixpanel['persistence'].update_referrer_info(document.referrer);\n } // update $set object with default people properties\n\n\n data[SET_ACTION] = _.extend({}, _.info.people_properties(), this._mixpanel['persistence'].get_referrer_info(), data[SET_ACTION]);\n return this._send_request(data, callback);\n});\n/*\n* Set properties on a user record, only if they do not yet exist.\n* This will not overwrite previous people property values, unlike\n* people.set().\n*\n* ### Usage:\n*\n* mixpanel.people.set_once('First Login Date', new Date());\n*\n* // or set multiple properties at once\n* mixpanel.people.set_once({\n* 'First Login Date': new Date(),\n* 'Starting Plan': 'Premium'\n* });\n*\n* // properties can be strings, integers or dates\n*\n* @param {Object|String} prop If a string, this is the name of the property. If an object, this is an associative array of names and values.\n* @param {*} [to] A value to set on the given property name\n* @param {Function} [callback] If provided, the callback will be called after tracking the event.\n*/\n\nMixpanelPeople.prototype.set_once = addOptOutCheckMixpanelPeople(function (prop, to, callback) {\n var data = this.set_once_action(prop, to);\n\n if (_.isObject(prop)) {\n callback = to;\n }\n\n return this._send_request(data, callback);\n});\n/*\n* Unset properties on a user record (permanently removes the properties and their values from a profile).\n*\n* ### Usage:\n*\n* mixpanel.people.unset('gender');\n*\n* // or unset multiple properties at once\n* mixpanel.people.unset(['gender', 'Company']);\n*\n* @param {Array|String} prop If a string, this is the name of the property. If an array, this is a list of property names.\n* @param {Function} [callback] If provided, the callback will be called after tracking the event.\n*/\n\nMixpanelPeople.prototype.unset = addOptOutCheckMixpanelPeople(function (prop, callback) {\n var data = this.unset_action(prop);\n return this._send_request(data, callback);\n});\n/*\n* Increment/decrement numeric people analytics properties.\n*\n* ### Usage:\n*\n* mixpanel.people.increment('page_views', 1);\n*\n* // or, for convenience, if you're just incrementing a counter by\n* // 1, you can simply do\n* mixpanel.people.increment('page_views');\n*\n* // to decrement a counter, pass a negative number\n* mixpanel.people.increment('credits_left', -1);\n*\n* // like mixpanel.people.set(), you can increment multiple\n* // properties at once:\n* mixpanel.people.increment({\n* counter1: 1,\n* counter2: 6\n* });\n*\n* @param {Object|String} prop If a string, this is the name of the property. If an object, this is an associative array of names and numeric values.\n* @param {Number} [by] An amount to increment the given property\n* @param {Function} [callback] If provided, the callback will be called after tracking the event.\n*/\n\nMixpanelPeople.prototype.increment = addOptOutCheckMixpanelPeople(function (prop, by, callback) {\n var data = {};\n var $add = {};\n\n if (_.isObject(prop)) {\n _.each(prop, function (v, k) {\n if (!this._is_reserved_property(k)) {\n if (isNaN(parseFloat(v))) {\n console.error('Invalid increment value passed to mixpanel.people.increment - must be a number');\n return;\n } else {\n $add[k] = v;\n }\n }\n }, this);\n\n callback = by;\n } else {\n // convenience: mixpanel.people.increment('property'); will\n // increment 'property' by 1\n if (_.isUndefined(by)) {\n by = 1;\n }\n\n $add[prop] = by;\n }\n\n data[ADD_ACTION] = $add;\n return this._send_request(data, callback);\n});\n/*\n* Append a value to a list-valued people analytics property.\n*\n* ### Usage:\n*\n* // append a value to a list, creating it if needed\n* mixpanel.people.append('pages_visited', 'homepage');\n*\n* // like mixpanel.people.set(), you can append multiple\n* // properties at once:\n* mixpanel.people.append({\n* list1: 'bob',\n* list2: 123\n* });\n*\n* @param {Object|String} list_name If a string, this is the name of the property. If an object, this is an associative array of names and values.\n* @param {*} [value] value An item to append to the list\n* @param {Function} [callback] If provided, the callback will be called after tracking the event.\n*/\n\nMixpanelPeople.prototype.append = addOptOutCheckMixpanelPeople(function (list_name, value, callback) {\n if (_.isObject(list_name)) {\n callback = value;\n }\n\n var data = this.append_action(list_name, value);\n return this._send_request(data, callback);\n});\n/*\n* Remove a value from a list-valued people analytics property.\n*\n* ### Usage:\n*\n* mixpanel.people.remove('School', 'UCB');\n*\n* @param {Object|String} list_name If a string, this is the name of the property. If an object, this is an associative array of names and values.\n* @param {*} [value] value Item to remove from the list\n* @param {Function} [callback] If provided, the callback will be called after tracking the event.\n*/\n\nMixpanelPeople.prototype.remove = addOptOutCheckMixpanelPeople(function (list_name, value, callback) {\n if (_.isObject(list_name)) {\n callback = value;\n }\n\n var data = this.remove_action(list_name, value);\n return this._send_request(data, callback);\n});\n/*\n* Merge a given list with a list-valued people analytics property,\n* excluding duplicate values.\n*\n* ### Usage:\n*\n* // merge a value to a list, creating it if needed\n* mixpanel.people.union('pages_visited', 'homepage');\n*\n* // like mixpanel.people.set(), you can append multiple\n* // properties at once:\n* mixpanel.people.union({\n* list1: 'bob',\n* list2: 123\n* });\n*\n* // like mixpanel.people.append(), you can append multiple\n* // values to the same list:\n* mixpanel.people.union({\n* list1: ['bob', 'billy']\n* });\n*\n* @param {Object|String} list_name If a string, this is the name of the property. If an object, this is an associative array of names and values.\n* @param {*} [value] Value / values to merge with the given property\n* @param {Function} [callback] If provided, the callback will be called after tracking the event.\n*/\n\nMixpanelPeople.prototype.union = addOptOutCheckMixpanelPeople(function (list_name, values, callback) {\n if (_.isObject(list_name)) {\n callback = values;\n }\n\n var data = this.union_action(list_name, values);\n return this._send_request(data, callback);\n});\n/*\n* Record that you have charged the current user a certain amount\n* of money. Charges recorded with track_charge() will appear in the\n* Mixpanel revenue report.\n*\n* ### Usage:\n*\n* // charge a user $50\n* mixpanel.people.track_charge(50);\n*\n* // charge a user $30.50 on the 2nd of january\n* mixpanel.people.track_charge(30.50, {\n* '$time': new Date('jan 1 2012')\n* });\n*\n* @param {Number} amount The amount of money charged to the current user\n* @param {Object} [properties] An associative array of properties associated with the charge\n* @param {Function} [callback] If provided, the callback will be called when the server responds\n*/\n\nMixpanelPeople.prototype.track_charge = addOptOutCheckMixpanelPeople(function (amount, properties, callback) {\n if (!_.isNumber(amount)) {\n amount = parseFloat(amount);\n\n if (isNaN(amount)) {\n console.error('Invalid value passed to mixpanel.people.track_charge - must be a number');\n return;\n }\n }\n\n return this.append('$transactions', _.extend({\n '$amount': amount\n }, properties), callback);\n});\n/*\n* Permanently clear all revenue report transactions from the\n* current user's people analytics profile.\n*\n* ### Usage:\n*\n* mixpanel.people.clear_charges();\n*\n* @param {Function} [callback] If provided, the callback will be called after tracking the event.\n*/\n\nMixpanelPeople.prototype.clear_charges = function (callback) {\n return this.set('$transactions', [], callback);\n};\n/*\n* Permanently deletes the current people analytics profile from\n* Mixpanel (using the current distinct_id).\n*\n* ### Usage:\n*\n* // remove the all data you have stored about the current user\n* mixpanel.people.delete_user();\n*\n*/\n\n\nMixpanelPeople.prototype.delete_user = function () {\n if (!this._identify_called()) {\n console.error('mixpanel.people.delete_user() requires you to call identify() first');\n return;\n }\n\n var data = {\n '$delete': this._mixpanel.get_distinct_id()\n };\n return this._send_request(data);\n};\n\nMixpanelPeople.prototype.toString = function () {\n return this._mixpanel.toString() + '.people';\n};\n\nMixpanelPeople.prototype._send_request = function (data, callback) {\n data['$token'] = this._get_config('token');\n data['$distinct_id'] = this._mixpanel.get_distinct_id();\n\n var device_id = this._mixpanel.get_property('$device_id');\n\n var user_id = this._mixpanel.get_property('$user_id');\n\n var had_persisted_distinct_id = this._mixpanel.get_property('$had_persisted_distinct_id');\n\n if (device_id) {\n data['$device_id'] = device_id;\n }\n\n if (user_id) {\n data['$user_id'] = user_id;\n }\n\n if (had_persisted_distinct_id) {\n data['$had_persisted_distinct_id'] = had_persisted_distinct_id;\n }\n\n var date_encoded_data = _.encodeDates(data);\n\n if (!this._identify_called()) {\n this._enqueue(data);\n\n if (!_.isUndefined(callback)) {\n if (this._get_config('verbose')) {\n callback({\n status: -1,\n error: null\n });\n } else {\n callback(-1);\n }\n }\n\n return _.truncate(date_encoded_data, 255);\n }\n\n return this._mixpanel._track_or_batch({\n type: 'people',\n data: date_encoded_data,\n endpoint: this._get_config('api_host') + '/engage/',\n batcher: this._mixpanel.request_batchers.people\n }, callback);\n};\n\nMixpanelPeople.prototype._get_config = function (conf_var) {\n return this._mixpanel.get_config(conf_var);\n};\n\nMixpanelPeople.prototype._identify_called = function () {\n return this._mixpanel._flags.identify_called === true;\n}; // Queue up engage operations if identify hasn't been called yet.\n\n\nMixpanelPeople.prototype._enqueue = function (data) {\n if (SET_ACTION in data) {\n this._mixpanel['persistence']._add_to_people_queue(SET_ACTION, data);\n } else if (SET_ONCE_ACTION in data) {\n this._mixpanel['persistence']._add_to_people_queue(SET_ONCE_ACTION, data);\n } else if (UNSET_ACTION in data) {\n this._mixpanel['persistence']._add_to_people_queue(UNSET_ACTION, data);\n } else if (ADD_ACTION in data) {\n this._mixpanel['persistence']._add_to_people_queue(ADD_ACTION, data);\n } else if (APPEND_ACTION in data) {\n this._mixpanel['persistence']._add_to_people_queue(APPEND_ACTION, data);\n } else if (REMOVE_ACTION in data) {\n this._mixpanel['persistence']._add_to_people_queue(REMOVE_ACTION, data);\n } else if (UNION_ACTION in data) {\n this._mixpanel['persistence']._add_to_people_queue(UNION_ACTION, data);\n } else {\n console.error('Invalid call to _enqueue():', data);\n }\n};\n\nMixpanelPeople.prototype._flush_one_queue = function (action, action_method, callback, queue_to_params_fn) {\n var _this = this;\n\n var queued_data = _.extend({}, this._mixpanel['persistence']._get_queue(action));\n\n var action_params = queued_data;\n\n if (!_.isUndefined(queued_data) && _.isObject(queued_data) && !_.isEmptyObject(queued_data)) {\n _this._mixpanel['persistence']._pop_from_people_queue(action, queued_data);\n\n if (queue_to_params_fn) {\n action_params = queue_to_params_fn(queued_data);\n }\n\n action_method.call(_this, action_params, function (response, data) {\n // on bad response, we want to add it back to the queue\n if (response === 0) {\n _this._mixpanel['persistence']._add_to_people_queue(action, queued_data);\n }\n\n if (!_.isUndefined(callback)) {\n callback(response, data);\n }\n });\n }\n}; // Flush queued engage operations - order does not matter,\n// and there are network level race conditions anyway\n\n\nMixpanelPeople.prototype._flush = function (_set_callback, _add_callback, _append_callback, _set_once_callback, _union_callback, _unset_callback, _remove_callback) {\n var _this = this;\n\n var $append_queue = this._mixpanel['persistence']._get_queue(APPEND_ACTION);\n\n var $remove_queue = this._mixpanel['persistence']._get_queue(REMOVE_ACTION);\n\n this._flush_one_queue(SET_ACTION, this.set, _set_callback);\n\n this._flush_one_queue(SET_ONCE_ACTION, this.set_once, _set_once_callback);\n\n this._flush_one_queue(UNSET_ACTION, this.unset, _unset_callback, function (queue) {\n return _.keys(queue);\n });\n\n this._flush_one_queue(ADD_ACTION, this.increment, _add_callback);\n\n this._flush_one_queue(UNION_ACTION, this.union, _union_callback); // we have to fire off each $append individually since there is\n // no concat method server side\n\n\n if (!_.isUndefined($append_queue) && _.isArray($append_queue) && $append_queue.length) {\n var $append_item;\n\n var append_callback = function append_callback(response, data) {\n if (response === 0) {\n _this._mixpanel['persistence']._add_to_people_queue(APPEND_ACTION, $append_item);\n }\n\n if (!_.isUndefined(_append_callback)) {\n _append_callback(response, data);\n }\n };\n\n for (var i = $append_queue.length - 1; i >= 0; i--) {\n $append_item = $append_queue.pop();\n\n if (!_.isEmptyObject($append_item)) {\n _this.append($append_item, append_callback);\n }\n } // Save the shortened append queue\n\n\n _this._mixpanel['persistence'].save();\n } // same for $remove\n\n\n if (!_.isUndefined($remove_queue) && _.isArray($remove_queue) && $remove_queue.length) {\n var $remove_item;\n\n var remove_callback = function remove_callback(response, data) {\n if (response === 0) {\n _this._mixpanel['persistence']._add_to_people_queue(REMOVE_ACTION, $remove_item);\n }\n\n if (!_.isUndefined(_remove_callback)) {\n _remove_callback(response, data);\n }\n };\n\n for (var j = $remove_queue.length - 1; j >= 0; j--) {\n $remove_item = $remove_queue.pop();\n\n if (!_.isEmptyObject($remove_item)) {\n _this.remove($remove_item, remove_callback);\n }\n }\n\n _this._mixpanel['persistence'].save();\n }\n};\n\nMixpanelPeople.prototype._is_reserved_property = function (prop) {\n return prop === '$distinct_id' || prop === '$token' || prop === '$device_id' || prop === '$user_id' || prop === '$had_persisted_distinct_id';\n}; // MixpanelPeople Exports\n\n\nMixpanelPeople.prototype['set'] = MixpanelPeople.prototype.set;\nMixpanelPeople.prototype['set_once'] = MixpanelPeople.prototype.set_once;\nMixpanelPeople.prototype['unset'] = MixpanelPeople.prototype.unset;\nMixpanelPeople.prototype['increment'] = MixpanelPeople.prototype.increment;\nMixpanelPeople.prototype['append'] = MixpanelPeople.prototype.append;\nMixpanelPeople.prototype['remove'] = MixpanelPeople.prototype.remove;\nMixpanelPeople.prototype['union'] = MixpanelPeople.prototype.union;\nMixpanelPeople.prototype['track_charge'] = MixpanelPeople.prototype.track_charge;\nMixpanelPeople.prototype['clear_charges'] = MixpanelPeople.prototype.clear_charges;\nMixpanelPeople.prototype['delete_user'] = MixpanelPeople.prototype.delete_user;\nMixpanelPeople.prototype['toString'] = MixpanelPeople.prototype.toString;\n/*\n * Mixpanel JS Library\n *\n * Copyright 2012, Mixpanel, Inc. All Rights Reserved\n * http://mixpanel.com/\n *\n * Includes portions of Underscore.js\n * http://documentcloud.github.com/underscore/\n * (c) 2011 Jeremy Ashkenas, DocumentCloud Inc.\n * Released under the MIT License.\n */\n// ==ClosureCompiler==\n// @compilation_level ADVANCED_OPTIMIZATIONS\n// @output_file_name mixpanel-2.8.min.js\n// ==/ClosureCompiler==\n\n/*\nSIMPLE STYLE GUIDE:\n\nthis.x === public function\nthis._x === internal - only use within this file\nthis.__x === private - only use within the class\n\nGlobals should be all caps\n*/\n\nvar init_type; // MODULE or SNIPPET loader\n\nvar mixpanel_master; // main mixpanel instance / object\n\nvar INIT_MODULE = 0;\nvar INIT_SNIPPET = 1;\n\nvar IDENTITY_FUNC = function IDENTITY_FUNC(x) {\n return x;\n};\n\nvar NOOP_FUNC = function NOOP_FUNC() {};\n/** @const */\n\n\nvar PRIMARY_INSTANCE_NAME = 'mixpanel';\n/*\n * Dynamic... constants? Is that an oxymoron?\n */\n// http://hacks.mozilla.org/2009/07/cross-site-xmlhttprequest-with-cors/\n// https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest#withCredentials\n\nvar USE_XHR = window$1.XMLHttpRequest && 'withCredentials' in new XMLHttpRequest(); // IE<10 does not support cross-origin XHR's but script tags\n// with defer won't block window.onload; ENQUEUE_REQUESTS\n// should only be true for Opera<12\n\nvar ENQUEUE_REQUESTS = !USE_XHR && userAgent.indexOf('MSIE') === -1 && userAgent.indexOf('Mozilla') === -1; // save reference to navigator.sendBeacon so it can be minified\n\nvar sendBeacon = null;\n\nif (navigator$1['sendBeacon']) {\n sendBeacon = function sendBeacon() {\n // late reference to navigator.sendBeacon to allow patching/spying\n return navigator$1['sendBeacon'].apply(navigator$1, arguments);\n };\n}\n/*\n * Module-level globals\n */\n\n\nvar DEFAULT_CONFIG = {\n 'api_host': 'https://api-js.mixpanel.com',\n 'api_method': 'POST',\n 'api_transport': 'XHR',\n 'app_host': 'https://mixpanel.com',\n 'cdn': 'https://cdn.mxpnl.com',\n 'cross_site_cookie': false,\n 'cross_subdomain_cookie': true,\n 'persistence': 'cookie',\n 'persistence_name': '',\n 'cookie_domain': '',\n 'cookie_name': '',\n 'loaded': NOOP_FUNC,\n 'store_google': true,\n 'save_referrer': true,\n 'test': false,\n 'verbose': false,\n 'img': false,\n 'debug': false,\n 'track_links_timeout': 300,\n 'cookie_expiration': 365,\n 'upgrade': false,\n 'disable_persistence': false,\n 'disable_cookie': false,\n 'secure_cookie': false,\n 'ip': true,\n 'opt_out_tracking_by_default': false,\n 'opt_out_persistence_by_default': false,\n 'opt_out_tracking_persistence_type': 'localStorage',\n 'opt_out_tracking_cookie_prefix': null,\n 'property_blacklist': [],\n 'xhr_headers': {},\n // { header: value, header2: value }\n 'inapp_protocol': '//',\n 'inapp_link_new_window': false,\n 'ignore_dnt': false,\n 'batch_requests': false,\n // for now\n 'batch_size': 50,\n 'batch_flush_interval_ms': 5000,\n 'batch_request_timeout_ms': 90000,\n 'batch_autostart': true,\n 'hooks': {}\n};\nvar DOM_LOADED = false;\n/**\n * Mixpanel Library Object\n * @constructor\n */\n\nvar MixpanelLib = function MixpanelLib() {};\n/**\n * create_mplib(token:string, config:object, name:string)\n *\n * This function is used by the init method of MixpanelLib objects\n * as well as the main initializer at the end of the JSLib (that\n * initializes document.mixpanel as well as any additional instances\n * declared before this file has loaded).\n */\n\n\nvar create_mplib = function create_mplib(token, config, name) {\n var instance,\n target = name === PRIMARY_INSTANCE_NAME ? mixpanel_master : mixpanel_master[name];\n\n if (target && init_type === INIT_MODULE) {\n instance = target;\n } else {\n if (target && !_.isArray(target)) {\n console.error('You have already initialized ' + name);\n return;\n }\n\n instance = new MixpanelLib();\n }\n\n instance._cached_groups = {}; // cache groups in a pool\n\n instance._user_decide_check_complete = false;\n instance._events_tracked_before_user_decide_check_complete = [];\n\n instance._init(token, config, name);\n\n instance['people'] = new MixpanelPeople();\n\n instance['people']._init(instance); // if any instance on the page has debug = true, we set the\n // global debug to be true\n\n\n Config.DEBUG = Config.DEBUG || instance.get_config('debug'); // if target is not defined, we called init after the lib already\n // loaded, so there won't be an array of things to execute\n\n if (!_.isUndefined(target) && _.isArray(target)) {\n // Crunch through the people queue first - we queue this data up &\n // flush on identify, so it's better to do all these operations first\n instance._execute_array.call(instance['people'], target['people']);\n\n instance._execute_array(target);\n }\n\n return instance;\n};\n\nvar encode_data_for_request = function encode_data_for_request(data) {\n var json_data = _.JSONEncode(data);\n\n var encoded_data = _.base64Encode(json_data);\n\n return {\n 'data': encoded_data\n };\n}; // Initialization methods\n\n/**\n * This function initializes a new instance of the Mixpanel tracking object.\n * All new instances are added to the main mixpanel object as sub properties (such as\n * mixpanel.library_name) and also returned by this function. To define a\n * second instance on the page, you would call:\n *\n * mixpanel.init('new token', { your: 'config' }, 'library_name');\n *\n * and use it like so:\n *\n * mixpanel.library_name.track(...);\n *\n * @param {String} token Your Mixpanel API token\n * @param {Object} [config] A dictionary of config options to override. See a list of default config options.\n * @param {String} [name] The name for the new mixpanel instance that you want created\n */\n\n\nMixpanelLib.prototype.init = function (token, config, name) {\n if (_.isUndefined(name)) {\n console.error('You must name your new library: init(token, config, name)');\n return;\n }\n\n if (name === PRIMARY_INSTANCE_NAME) {\n console.error('You must initialize the main mixpanel object right after you include the Mixpanel js snippet');\n return;\n }\n\n var instance = create_mplib(token, config, name);\n mixpanel_master[name] = instance;\n\n instance._loaded();\n\n return instance;\n}; // mixpanel._init(token:string, config:object, name:string)\n//\n// This function sets up the current instance of the mixpanel\n// library. The difference between this method and the init(...)\n// method is this one initializes the actual instance, whereas the\n// init(...) method sets up a new library and calls _init on it.\n//\n\n\nMixpanelLib.prototype._init = function (token, config, name) {\n config = config || {};\n this['__loaded'] = true;\n this['config'] = {};\n this['_triggered_notifs'] = []; // rollout: enable batch_requests by default for 60% of projects\n // (only if they have not specified a value in their init config\n // and they aren't using a custom API host)\n\n var variable_features = {};\n var api_host = config['api_host'];\n var is_custom_api = !!api_host && !api_host.match(/\\.mixpanel\\.com$/);\n\n if (!('batch_requests' in config) && !is_custom_api && determine_eligibility(token, 'batch', 60)) {\n variable_features['batch_requests'] = true;\n }\n\n this.set_config(_.extend({}, DEFAULT_CONFIG, variable_features, config, {\n 'name': name,\n 'token': token,\n 'callback_fn': (name === PRIMARY_INSTANCE_NAME ? name : PRIMARY_INSTANCE_NAME + '.' + name) + '._jsc'\n }));\n this['_jsc'] = NOOP_FUNC;\n this.__dom_loaded_queue = [];\n this.__request_queue = [];\n this.__disabled_events = [];\n this._flags = {\n 'disable_all_events': false,\n 'identify_called': false\n }; // set up request queueing/batching\n\n this.request_batchers = {};\n this._batch_requests = this.get_config('batch_requests');\n\n if (this._batch_requests) {\n if (!_.localStorage.is_supported(true) || !USE_XHR) {\n this._batch_requests = false;\n console.log('Turning off Mixpanel request-queueing; needs XHR and localStorage support');\n } else {\n this.init_batchers();\n\n if (sendBeacon && window$1.addEventListener) {\n window$1.addEventListener('unload', _.bind(function () {\n // Before page closes, attempt to flush any events queued up via navigator.sendBeacon.\n // Since sendBeacon doesn't report success/failure, events will not be removed from\n // the persistent store; if the site is loaded again, the events will be flushed again\n // on startup and deduplicated on the Mixpanel server side.\n if (!this.request_batchers.events.stopped) {\n this.request_batchers.events.flush({\n unloading: true\n });\n }\n }, this));\n }\n }\n }\n\n this['persistence'] = this['cookie'] = new MixpanelPersistence(this['config']);\n this.unpersisted_superprops = {};\n\n this._gdpr_init();\n\n var uuid = _.UUID();\n\n if (!this.get_distinct_id()) {\n // There is no need to set the distinct id\n // or the device id if something was already stored\n // in the persitence\n this.register_once({\n 'distinct_id': uuid,\n '$device_id': uuid\n }, '');\n }\n}; // Private methods\n\n\nMixpanelLib.prototype._loaded = function () {\n this.get_config('loaded')(this);\n\n this._set_default_superprops();\n}; // update persistence with info on referrer, UTM params, etc\n\n\nMixpanelLib.prototype._set_default_superprops = function () {\n this['persistence'].update_search_keyword(document$1.referrer);\n\n if (this.get_config('store_google')) {\n this['persistence'].update_campaign_params();\n }\n\n if (this.get_config('save_referrer')) {\n this['persistence'].update_referrer_info(document$1.referrer);\n }\n};\n\nMixpanelLib.prototype._dom_loaded = function () {\n _.each(this.__dom_loaded_queue, function (item) {\n this._track_dom.apply(this, item);\n }, this);\n\n if (!this.has_opted_out_tracking()) {\n _.each(this.__request_queue, function (item) {\n this._send_request.apply(this, item);\n }, this);\n }\n\n delete this.__dom_loaded_queue;\n delete this.__request_queue;\n};\n\nMixpanelLib.prototype._track_dom = function (DomClass, args) {\n if (this.get_config('img')) {\n console.error('You can\\'t use DOM tracking functions with img = true.');\n return false;\n }\n\n if (!DOM_LOADED) {\n this.__dom_loaded_queue.push([DomClass, args]);\n\n return false;\n }\n\n var dt = new DomClass().init(this);\n return dt.track.apply(dt, args);\n};\n/**\n * _prepare_callback() should be called by callers of _send_request for use\n * as the callback argument.\n *\n * If there is no callback, this returns null.\n * If we are going to make XHR/XDR requests, this returns a function.\n * If we are going to use script tags, this returns a string to use as the\n * callback GET param.\n */\n\n\nMixpanelLib.prototype._prepare_callback = function (callback, data) {\n if (_.isUndefined(callback)) {\n return null;\n }\n\n if (USE_XHR) {\n var callback_function = function callback_function(response) {\n callback(response, data);\n };\n\n return callback_function;\n } else {\n // if the user gives us a callback, we store as a random\n // property on this instances jsc function and update our\n // callback string to reflect that.\n var jsc = this['_jsc'];\n var randomized_cb = '' + Math.floor(Math.random() * 100000000);\n var callback_string = this.get_config('callback_fn') + '[' + randomized_cb + ']';\n\n jsc[randomized_cb] = function (response) {\n delete jsc[randomized_cb];\n callback(response, data);\n };\n\n return callback_string;\n }\n};\n\nMixpanelLib.prototype._send_request = function (url, data, options, callback) {\n var succeeded = true;\n\n if (ENQUEUE_REQUESTS) {\n this.__request_queue.push(arguments);\n\n return succeeded;\n }\n\n var DEFAULT_OPTIONS = {\n method: this.get_config('api_method'),\n transport: this.get_config('api_transport'),\n verbose: this.get_config('verbose')\n };\n var body_data = null;\n\n if (!callback && (_.isFunction(options) || typeof options === 'string')) {\n callback = options;\n options = null;\n }\n\n options = _.extend(DEFAULT_OPTIONS, options || {});\n\n if (!USE_XHR) {\n options.method = 'GET';\n }\n\n var use_post = options.method === 'POST';\n var use_sendBeacon = sendBeacon && use_post && options.transport.toLowerCase() === 'sendbeacon'; // needed to correctly format responses\n\n var verbose_mode = options.verbose;\n\n if (data['verbose']) {\n verbose_mode = true;\n }\n\n if (this.get_config('test')) {\n data['test'] = 1;\n }\n\n if (verbose_mode) {\n data['verbose'] = 1;\n }\n\n if (this.get_config('img')) {\n data['img'] = 1;\n }\n\n if (!USE_XHR) {\n if (callback) {\n data['callback'] = callback;\n } else if (verbose_mode || this.get_config('test')) {\n // Verbose output (from verbose mode, or an error in test mode) is a json blob,\n // which by itself is not valid javascript. Without a callback, this verbose output will\n // cause an error when returned via jsonp, so we force a no-op callback param.\n // See the ECMA script spec: http://www.ecma-international.org/ecma-262/5.1/#sec-12.4\n data['callback'] = '(function(){})';\n }\n }\n\n data['ip'] = this.get_config('ip') ? 1 : 0;\n data['_'] = new Date().getTime().toString();\n\n if (use_post) {\n body_data = 'data=' + encodeURIComponent(data['data']);\n delete data['data'];\n }\n\n url += '?' + _.HTTPBuildQuery(data);\n\n if ('img' in data) {\n var img = document$1.createElement('img');\n img.src = url;\n document$1.body.appendChild(img);\n } else if (use_sendBeacon) {\n try {\n succeeded = sendBeacon(url, body_data);\n } catch (e) {\n console.error(e);\n succeeded = false;\n }\n\n try {\n if (callback) {\n callback(succeeded ? 1 : 0);\n }\n } catch (e) {\n console.error(e);\n }\n } else if (USE_XHR) {\n try {\n var req = new XMLHttpRequest();\n req.open(options.method, url, true);\n var headers = this.get_config('xhr_headers');\n\n if (use_post) {\n headers['Content-Type'] = 'application/x-www-form-urlencoded';\n }\n\n _.each(headers, function (headerValue, headerName) {\n req.setRequestHeader(headerName, headerValue);\n });\n\n if (options.timeout_ms && typeof req.timeout !== 'undefined') {\n req.timeout = options.timeout_ms;\n var start_time = new Date().getTime();\n } // send the mp_optout cookie\n // withCredentials cannot be modified until after calling .open on Android and Mobile Safari\n\n\n req.withCredentials = true;\n\n req.onreadystatechange = function () {\n if (req.readyState === 4) {\n // XMLHttpRequest.DONE == 4, except in safari 4\n if (req.status === 200) {\n if (callback) {\n if (verbose_mode) {\n var response;\n\n try {\n response = _.JSONDecode(req.responseText);\n } catch (e) {\n console.error(e);\n\n if (options.ignore_json_errors) {\n response = req.responseText;\n } else {\n return;\n }\n }\n\n callback(response);\n } else {\n callback(Number(req.responseText));\n }\n }\n } else {\n var error;\n\n if (req.timeout && !req.status && new Date().getTime() - start_time >= req.timeout) {\n error = 'timeout';\n } else {\n error = 'Bad HTTP status: ' + req.status + ' ' + req.statusText;\n }\n\n console.error(error);\n\n if (callback) {\n if (verbose_mode) {\n callback({\n status: 0,\n error: error,\n xhr_req: req\n });\n } else {\n callback(0);\n }\n }\n }\n }\n };\n\n req.send(body_data);\n } catch (e) {\n console.error(e);\n succeeded = false;\n }\n } else {\n var script = document$1.createElement('script');\n script.type = 'text/javascript';\n script.async = true;\n script.defer = true;\n script.src = url;\n var s = document$1.getElementsByTagName('script')[0];\n s.parentNode.insertBefore(script, s);\n }\n\n return succeeded;\n};\n/**\n * _execute_array() deals with processing any mixpanel function\n * calls that were called before the Mixpanel library were loaded\n * (and are thus stored in an array so they can be called later)\n *\n * Note: we fire off all the mixpanel function calls && user defined\n * functions BEFORE we fire off mixpanel tracking calls. This is so\n * identify/register/set_config calls can properly modify early\n * tracking calls.\n *\n * @param {Array} array\n */\n\n\nMixpanelLib.prototype._execute_array = function (array) {\n var fn_name,\n alias_calls = [],\n other_calls = [],\n tracking_calls = [];\n\n _.each(array, function (item) {\n if (item) {\n fn_name = item[0];\n\n if (_.isArray(fn_name)) {\n tracking_calls.push(item); // chained call e.g. mixpanel.get_group().set()\n } else if (typeof item === 'function') {\n item.call(this);\n } else if (_.isArray(item) && fn_name === 'alias') {\n alias_calls.push(item);\n } else if (_.isArray(item) && fn_name.indexOf('track') !== -1 && typeof this[fn_name] === 'function') {\n tracking_calls.push(item);\n } else {\n other_calls.push(item);\n }\n }\n }, this);\n\n var execute = function execute(calls, context) {\n _.each(calls, function (item) {\n if (_.isArray(item[0])) {\n // chained call\n var caller = context;\n\n _.each(item, function (call) {\n caller = caller[call[0]].apply(caller, call.slice(1));\n });\n } else {\n this[item[0]].apply(this, item.slice(1));\n }\n }, context);\n };\n\n execute(alias_calls, this);\n execute(other_calls, this);\n execute(tracking_calls, this);\n}; // request queueing utils\n\n\nMixpanelLib.prototype.are_batchers_initialized = function () {\n return !!this.request_batchers.events;\n};\n\nMixpanelLib.prototype.init_batchers = function () {\n var token = this.get_config('token');\n\n if (!this.are_batchers_initialized()) {\n var batcher_for = _.bind(function (attrs) {\n return new RequestBatcher('__mpq_' + token + attrs.queue_suffix, {\n libConfig: this['config'],\n sendRequestFunc: _.bind(function (data, options, cb) {\n this._send_request(this.get_config('api_host') + attrs.endpoint, encode_data_for_request(data), options, this._prepare_callback(cb, data));\n }, this),\n beforeSendHook: _.bind(function (item) {\n return this._run_hook('before_send_' + attrs.type, item);\n }, this)\n });\n }, this);\n\n this.request_batchers = {\n events: batcher_for({\n type: 'events',\n endpoint: '/track/',\n queue_suffix: '_ev'\n }),\n people: batcher_for({\n type: 'people',\n endpoint: '/engage/',\n queue_suffix: '_pp'\n }),\n groups: batcher_for({\n type: 'groups',\n endpoint: '/groups/',\n queue_suffix: '_gr'\n })\n };\n }\n\n if (this.get_config('batch_autostart')) {\n this.start_batch_senders();\n }\n};\n\nMixpanelLib.prototype.start_batch_senders = function () {\n if (this.are_batchers_initialized()) {\n this._batch_requests = true;\n\n _.each(this.request_batchers, function (batcher) {\n batcher.start();\n });\n }\n};\n\nMixpanelLib.prototype.stop_batch_senders = function () {\n this._batch_requests = false;\n\n _.each(this.request_batchers, function (batcher) {\n batcher.stop();\n batcher.clear();\n });\n};\n/**\n * push() keeps the standard async-array-push\n * behavior around after the lib is loaded.\n * This is only useful for external integrations that\n * do not wish to rely on our convenience methods\n * (created in the snippet).\n *\n * ### Usage:\n * mixpanel.push(['register', { a: 'b' }]);\n *\n * @param {Array} item A [function_name, args...] array to be executed\n */\n\n\nMixpanelLib.prototype.push = function (item) {\n this._execute_array([item]);\n};\n/**\n * Disable events on the Mixpanel object. If passed no arguments,\n * this function disables tracking of any event. If passed an\n * array of event names, those events will be disabled, but other\n * events will continue to be tracked.\n *\n * Note: this function does not stop other mixpanel functions from\n * firing, such as register() or people.set().\n *\n * @param {Array} [events] An array of event names to disable\n */\n\n\nMixpanelLib.prototype.disable = function (events) {\n if (typeof events === 'undefined') {\n this._flags.disable_all_events = true;\n } else {\n this.__disabled_events = this.__disabled_events.concat(events);\n }\n}; // internal method for handling track vs batch-enqueue logic\n\n\nMixpanelLib.prototype._track_or_batch = function (options, callback) {\n var truncated_data = _.truncate(options.data, 255);\n\n var endpoint = options.endpoint;\n var batcher = options.batcher;\n var should_send_immediately = options.should_send_immediately;\n var send_request_options = options.send_request_options || {};\n callback = callback || NOOP_FUNC;\n var request_enqueued_or_initiated = true;\n\n var send_request_immediately = _.bind(function () {\n if (!send_request_options.skip_hooks) {\n truncated_data = this._run_hook('before_send_' + options.type, truncated_data);\n }\n\n if (truncated_data) {\n console.log('MIXPANEL REQUEST:');\n console.log(truncated_data);\n return this._send_request(endpoint, encode_data_for_request(truncated_data), send_request_options, this._prepare_callback(callback, truncated_data));\n } else {\n return null;\n }\n }, this);\n\n if (this._batch_requests && !should_send_immediately) {\n batcher.enqueue(truncated_data, function (succeeded) {\n if (succeeded) {\n callback(1, truncated_data);\n } else {\n send_request_immediately();\n }\n });\n } else {\n request_enqueued_or_initiated = send_request_immediately();\n }\n\n return request_enqueued_or_initiated && truncated_data;\n};\n/**\n * Track an event. This is the most important and\n * frequently used Mixpanel function.\n *\n * ### Usage:\n *\n * // track an event named 'Registered'\n * mixpanel.track('Registered', {'Gender': 'Male', 'Age': 21});\n *\n * // track an event using navigator.sendBeacon\n * mixpanel.track('Left page', {'duration_seconds': 35}, {transport: 'sendBeacon'});\n *\n * To track link clicks or form submissions, see track_links() or track_forms().\n *\n * @param {String} event_name The name of the event. This can be anything the user does - 'Button Click', 'Sign Up', 'Item Purchased', etc.\n * @param {Object} [properties] A set of properties to include with the event you're sending. These describe the user who did the event or details about the event itself.\n * @param {Object} [options] Optional configuration for this track request.\n * @param {String} [options.transport] Transport method for network request ('xhr' or 'sendBeacon').\n * @param {Boolean} [options.send_immediately] Whether to bypass batching/queueing and send track request immediately.\n * @param {Function} [callback] If provided, the callback function will be called after tracking the event.\n * @returns {Boolean|Object} If the tracking request was successfully initiated/queued, an object\n * with the tracking payload sent to the API server is returned; otherwise false.\n */\n\n\nMixpanelLib.prototype.track = addOptOutCheckMixpanelLib(function (event_name, properties, options, callback) {\n if (!callback && typeof options === 'function') {\n callback = options;\n options = null;\n }\n\n options = options || {};\n var transport = options['transport']; // external API, don't minify 'transport' prop\n\n if (transport) {\n options.transport = transport; // 'transport' prop name can be minified internally\n }\n\n var should_send_immediately = options['send_immediately'];\n\n if (typeof callback !== 'function') {\n callback = NOOP_FUNC;\n }\n\n if (_.isUndefined(event_name)) {\n console.error('No event name provided to mixpanel.track');\n return;\n }\n\n if (this._event_is_disabled(event_name)) {\n callback(0);\n return;\n } // set defaults\n\n\n properties = properties || {};\n properties['token'] = this.get_config('token'); // set $duration if time_event was previously called for this event\n\n var start_timestamp = this['persistence'].remove_event_timer(event_name);\n\n if (!_.isUndefined(start_timestamp)) {\n var duration_in_ms = new Date().getTime() - start_timestamp;\n properties['$duration'] = parseFloat((duration_in_ms / 1000).toFixed(3));\n }\n\n this._set_default_superprops(); // note: extend writes to the first object, so lets make sure we\n // don't write to the persistence properties object and info\n // properties object by passing in a new object\n // update properties with pageview info and super-properties\n\n\n properties = _.extend({}, _.info.properties(), this['persistence'].properties(), this.unpersisted_superprops, properties);\n var property_blacklist = this.get_config('property_blacklist');\n\n if (_.isArray(property_blacklist)) {\n _.each(property_blacklist, function (blacklisted_prop) {\n delete properties[blacklisted_prop];\n });\n } else {\n console.error('Invalid value for property_blacklist config: ' + property_blacklist);\n }\n\n var data = {\n 'event': event_name,\n 'properties': properties\n };\n\n var ret = this._track_or_batch({\n type: 'events',\n data: data,\n endpoint: this.get_config('api_host') + '/track/',\n batcher: this.request_batchers.events,\n should_send_immediately: should_send_immediately,\n send_request_options: options\n }, callback);\n\n this._check_and_handle_triggered_notifications(data);\n\n return ret;\n});\n/**\n * Register the current user into one/many groups.\n *\n * ### Usage:\n *\n * mixpanel.set_group('company', ['mixpanel', 'google']) // an array of IDs\n * mixpanel.set_group('company', 'mixpanel')\n * mixpanel.set_group('company', 128746312)\n *\n * @param {String} group_key Group key\n * @param {Array|String|Number} group_ids An array of group IDs, or a singular group ID\n * @param {Function} [callback] If provided, the callback will be called after tracking the event.\n *\n */\n\nMixpanelLib.prototype.set_group = addOptOutCheckMixpanelLib(function (group_key, group_ids, callback) {\n if (!_.isArray(group_ids)) {\n group_ids = [group_ids];\n }\n\n var prop = {};\n prop[group_key] = group_ids;\n this.register(prop);\n return this['people'].set(group_key, group_ids, callback);\n});\n/**\n * Add a new group for this user.\n *\n * ### Usage:\n *\n * mixpanel.add_group('company', 'mixpanel')\n *\n * @param {String} group_key Group key\n * @param {*} group_id A valid Mixpanel property type\n * @param {Function} [callback] If provided, the callback will be called after tracking the event.\n */\n\nMixpanelLib.prototype.add_group = addOptOutCheckMixpanelLib(function (group_key, group_id, callback) {\n var old_values = this.get_property(group_key);\n\n if (old_values === undefined) {\n var prop = {};\n prop[group_key] = [group_id];\n this.register(prop);\n } else {\n if (old_values.indexOf(group_id) === -1) {\n old_values.push(group_id);\n this.register(prop);\n }\n }\n\n return this['people'].union(group_key, group_id, callback);\n});\n/**\n * Remove a group from this user.\n *\n * ### Usage:\n *\n * mixpanel.remove_group('company', 'mixpanel')\n *\n * @param {String} group_key Group key\n * @param {*} group_id A valid Mixpanel property type\n * @param {Function} [callback] If provided, the callback will be called after tracking the event.\n */\n\nMixpanelLib.prototype.remove_group = addOptOutCheckMixpanelLib(function (group_key, group_id, callback) {\n var old_value = this.get_property(group_key); // if the value doesn't exist, the persistent store is unchanged\n\n if (old_value !== undefined) {\n var idx = old_value.indexOf(group_id);\n\n if (idx > -1) {\n old_value.splice(idx, 1);\n this.register({\n group_key: old_value\n });\n }\n\n if (old_value.length === 0) {\n this.unregister(group_key);\n }\n }\n\n return this['people'].remove(group_key, group_id, callback);\n});\n/**\n * Track an event with specific groups.\n *\n * ### Usage:\n *\n * mixpanel.track_with_groups('purchase', {'product': 'iphone'}, {'University': ['UCB', 'UCLA']})\n *\n * @param {String} event_name The name of the event (see `mixpanel.track()`)\n * @param {Object=} properties A set of properties to include with the event you're sending (see `mixpanel.track()`)\n * @param {Object=} groups An object mapping group name keys to one or more values\n * @param {Function} [callback] If provided, the callback will be called after tracking the event.\n */\n\nMixpanelLib.prototype.track_with_groups = addOptOutCheckMixpanelLib(function (event_name, properties, groups, callback) {\n var tracking_props = _.extend({}, properties || {});\n\n _.each(groups, function (v, k) {\n if (v !== null && v !== undefined) {\n tracking_props[k] = v;\n }\n });\n\n return this.track(event_name, tracking_props, callback);\n});\n\nMixpanelLib.prototype._create_map_key = function (group_key, group_id) {\n return group_key + '_' + JSON.stringify(group_id);\n};\n\nMixpanelLib.prototype._remove_group_from_cache = function (group_key, group_id) {\n delete this._cached_groups[this._create_map_key(group_key, group_id)];\n};\n/**\n * Look up reference to a Mixpanel group\n *\n * ### Usage:\n *\n * mixpanel.get_group(group_key, group_id)\n *\n * @param {String} group_key Group key\n * @param {Object} group_id A valid Mixpanel property type\n * @returns {Object} A MixpanelGroup identifier\n */\n\n\nMixpanelLib.prototype.get_group = function (group_key, group_id) {\n var map_key = this._create_map_key(group_key, group_id);\n\n var group = this._cached_groups[map_key];\n\n if (group === undefined || group._group_key !== group_key || group._group_id !== group_id) {\n group = new MixpanelGroup();\n\n group._init(this, group_key, group_id);\n\n this._cached_groups[map_key] = group;\n }\n\n return group;\n};\n/**\n * Track mp_page_view event. This is now ignored by the server.\n *\n * @param {String} [page] The url of the page to record. If you don't include this, it defaults to the current url.\n * @deprecated\n */\n\n\nMixpanelLib.prototype.track_pageview = function (page) {\n if (_.isUndefined(page)) {\n page = document$1.location.href;\n }\n\n this.track('mp_page_view', _.info.pageviewInfo(page));\n};\n/**\n * Track clicks on a set of document elements. Selector must be a\n * valid query. Elements must exist on the page at the time track_links is called.\n *\n * ### Usage:\n *\n * // track click for link id #nav\n * mixpanel.track_links('#nav', 'Clicked Nav Link');\n *\n * ### Notes:\n *\n * This function will wait up to 300 ms for the Mixpanel\n * servers to respond. If they have not responded by that time\n * it will head to the link without ensuring that your event\n * has been tracked. To configure this timeout please see the\n * set_config() documentation below.\n *\n * If you pass a function in as the properties argument, the\n * function will receive the DOMElement that triggered the\n * event as an argument. You are expected to return an object\n * from the function; any properties defined on this object\n * will be sent to mixpanel as event properties.\n *\n * @type {Function}\n * @param {Object|String} query A valid DOM query, element or jQuery-esque list\n * @param {String} event_name The name of the event to track\n * @param {Object|Function} [properties] A properties object or function that returns a dictionary of properties when passed a DOMElement\n */\n\n\nMixpanelLib.prototype.track_links = function () {\n return this._track_dom.call(this, LinkTracker, arguments);\n};\n/**\n * Track form submissions. Selector must be a valid query.\n *\n * ### Usage:\n *\n * // track submission for form id 'register'\n * mixpanel.track_forms('#register', 'Created Account');\n *\n * ### Notes:\n *\n * This function will wait up to 300 ms for the mixpanel\n * servers to respond, if they have not responded by that time\n * it will head to the link without ensuring that your event\n * has been tracked. To configure this timeout please see the\n * set_config() documentation below.\n *\n * If you pass a function in as the properties argument, the\n * function will receive the DOMElement that triggered the\n * event as an argument. You are expected to return an object\n * from the function; any properties defined on this object\n * will be sent to mixpanel as event properties.\n *\n * @type {Function}\n * @param {Object|String} query A valid DOM query, element or jQuery-esque list\n * @param {String} event_name The name of the event to track\n * @param {Object|Function} [properties] This can be a set of properties, or a function that returns a set of properties after being passed a DOMElement\n */\n\n\nMixpanelLib.prototype.track_forms = function () {\n return this._track_dom.call(this, FormTracker, arguments);\n};\n/**\n * Time an event by including the time between this call and a\n * later 'track' call for the same event in the properties sent\n * with the event.\n *\n * ### Usage:\n *\n * // time an event named 'Registered'\n * mixpanel.time_event('Registered');\n * mixpanel.track('Registered', {'Gender': 'Male', 'Age': 21});\n *\n * When called for a particular event name, the next track call for that event\n * name will include the elapsed time between the 'time_event' and 'track'\n * calls. This value is stored as seconds in the '$duration' property.\n *\n * @param {String} event_name The name of the event.\n */\n\n\nMixpanelLib.prototype.time_event = function (event_name) {\n if (_.isUndefined(event_name)) {\n console.error('No event name provided to mixpanel.time_event');\n return;\n }\n\n if (this._event_is_disabled(event_name)) {\n return;\n }\n\n this['persistence'].set_event_timer(event_name, new Date().getTime());\n};\n\nvar REGISTER_DEFAULTS = {\n 'persistent': true\n};\n/**\n * Helper to parse options param for register methods, maintaining\n * legacy support for plain \"days\" param instead of options object\n * @param {Number|Object} [days_or_options] 'days' option (Number), or Options object for register methods\n * @returns {Object} options object\n */\n\nvar options_for_register = function options_for_register(days_or_options) {\n var options;\n\n if (_.isObject(days_or_options)) {\n options = days_or_options;\n } else if (!_.isUndefined(days_or_options)) {\n options = {\n 'days': days_or_options\n };\n } else {\n options = {};\n }\n\n return _.extend({}, REGISTER_DEFAULTS, options);\n};\n/**\n * Register a set of super properties, which are included with all\n * events. This will overwrite previous super property values.\n *\n * ### Usage:\n *\n * // register 'Gender' as a super property\n * mixpanel.register({'Gender': 'Female'});\n *\n * // register several super properties when a user signs up\n * mixpanel.register({\n * 'Email': 'jdoe@example.com',\n * 'Account Type': 'Free'\n * });\n *\n * // register only for the current pageload\n * mixpanel.register({'Name': 'Pat'}, {persistent: false});\n *\n * @param {Object} properties An associative array of properties to store about the user\n * @param {Number|Object} [days_or_options] Options object or number of days since the user's last visit to store the super properties (only valid for persisted props)\n * @param {boolean} [days_or_options.days] - number of days since the user's last visit to store the super properties (only valid for persisted props)\n * @param {boolean} [days_or_options.persistent=true] - whether to put in persistent storage (cookie/localStorage)\n */\n\n\nMixpanelLib.prototype.register = function (props, days_or_options) {\n var options = options_for_register(days_or_options);\n\n if (options['persistent']) {\n this['persistence'].register(props, options['days']);\n } else {\n _.extend(this.unpersisted_superprops, props);\n }\n};\n/**\n * Register a set of super properties only once. This will not\n * overwrite previous super property values, unlike register().\n *\n * ### Usage:\n *\n * // register a super property for the first time only\n * mixpanel.register_once({\n * 'First Login Date': new Date().toISOString()\n * });\n *\n * // register once, only for the current pageload\n * mixpanel.register_once({\n * 'First interaction time': new Date().toISOString()\n * }, 'None', {persistent: false});\n *\n * ### Notes:\n *\n * If default_value is specified, current super properties\n * with that value will be overwritten.\n *\n * @param {Object} properties An associative array of properties to store about the user\n * @param {*} [default_value] Value to override if already set in super properties (ex: 'False') Default: 'None'\n * @param {Number|Object} [days_or_options] Options object or number of days since the user's last visit to store the super properties (only valid for persisted props)\n * @param {boolean} [days_or_options.days] - number of days since the user's last visit to store the super properties (only valid for persisted props)\n * @param {boolean} [days_or_options.persistent=true] - whether to put in persistent storage (cookie/localStorage)\n */\n\n\nMixpanelLib.prototype.register_once = function (props, default_value, days_or_options) {\n var options = options_for_register(days_or_options);\n\n if (options['persistent']) {\n this['persistence'].register_once(props, default_value, options['days']);\n } else {\n if (typeof default_value === 'undefined') {\n default_value = 'None';\n }\n\n _.each(props, function (val, prop) {\n if (!this.unpersisted_superprops.hasOwnProperty(prop) || this.unpersisted_superprops[prop] === default_value) {\n this.unpersisted_superprops[prop] = val;\n }\n }, this);\n }\n};\n/**\n * Delete a super property stored with the current user.\n *\n * @param {String} property The name of the super property to remove\n * @param {Object} [options]\n * @param {boolean} [options.persistent=true] - whether to look in persistent storage (cookie/localStorage)\n */\n\n\nMixpanelLib.prototype.unregister = function (property, options) {\n options = options_for_register(options);\n\n if (options['persistent']) {\n this['persistence'].unregister(property);\n } else {\n delete this.unpersisted_superprops[property];\n }\n};\n\nMixpanelLib.prototype._register_single = function (prop, value) {\n var props = {};\n props[prop] = value;\n this.register(props);\n};\n/**\n * Identify a user with a unique ID to track user activity across\n * devices, tie a user to their events, and create a user profile.\n * If you never call this method, unique visitors are tracked using\n * a UUID generated the first time they visit the site.\n *\n * Call identify when you know the identity of the current user,\n * typically after login or signup. We recommend against using\n * identify for anonymous visitors to your site.\n *\n * ### Notes:\n * If your project has\n * ID Merge\n * enabled, the identify method will connect pre- and\n * post-authentication events when appropriate.\n *\n * If your project does not have ID Merge enabled, identify will\n * change the user's local distinct_id to the unique ID you pass.\n * Events tracked prior to authentication will not be connected\n * to the same user identity. If ID Merge is disabled, alias can\n * be used to connect pre- and post-registration events.\n *\n * @param {String} [unique_id] A string that uniquely identifies a user. If not provided, the distinct_id currently in the persistent store (cookie or localStorage) will be used.\n */\n\n\nMixpanelLib.prototype.identify = function (new_distinct_id, _set_callback, _add_callback, _append_callback, _set_once_callback, _union_callback, _unset_callback, _remove_callback) {\n // Optional Parameters\n // _set_callback:function A callback to be run if and when the People set queue is flushed\n // _add_callback:function A callback to be run if and when the People add queue is flushed\n // _append_callback:function A callback to be run if and when the People append queue is flushed\n // _set_once_callback:function A callback to be run if and when the People set_once queue is flushed\n // _union_callback:function A callback to be run if and when the People union queue is flushed\n // _unset_callback:function A callback to be run if and when the People unset queue is flushed\n var previous_distinct_id = this.get_distinct_id();\n this.register({\n '$user_id': new_distinct_id\n });\n\n if (!this.get_property('$device_id')) {\n // The persisted distinct id might not actually be a device id at all\n // it might be a distinct id of the user from before\n var device_id = previous_distinct_id;\n this.register_once({\n '$had_persisted_distinct_id': true,\n '$device_id': device_id\n }, '');\n } // identify only changes the distinct id if it doesn't match either the existing or the alias;\n // if it's new, blow away the alias as well.\n\n\n if (new_distinct_id !== previous_distinct_id && new_distinct_id !== this.get_property(ALIAS_ID_KEY)) {\n this.unregister(ALIAS_ID_KEY);\n this.register({\n 'distinct_id': new_distinct_id\n });\n }\n\n this._check_and_handle_notifications(this.get_distinct_id());\n\n this._flags.identify_called = true; // Flush any queued up people requests\n\n this['people']._flush(_set_callback, _add_callback, _append_callback, _set_once_callback, _union_callback, _unset_callback, _remove_callback); // send an $identify event any time the distinct_id is changing - logic on the server\n // will determine whether or not to do anything with it.\n\n\n if (new_distinct_id !== previous_distinct_id) {\n this.track('$identify', {\n 'distinct_id': new_distinct_id,\n '$anon_distinct_id': previous_distinct_id\n }, {\n skip_hooks: true\n });\n }\n};\n/**\n * Clears super properties and generates a new random distinct_id for this instance.\n * Useful for clearing data when a user logs out.\n */\n\n\nMixpanelLib.prototype.reset = function () {\n this['persistence'].clear();\n this._flags.identify_called = false;\n\n var uuid = _.UUID();\n\n this.register_once({\n 'distinct_id': uuid,\n '$device_id': uuid\n }, '');\n};\n/**\n * Returns the current distinct id of the user. This is either the id automatically\n * generated by the library or the id that has been passed by a call to identify().\n *\n * ### Notes:\n *\n * get_distinct_id() can only be called after the Mixpanel library has finished loading.\n * init() has a loaded function available to handle this automatically. For example:\n *\n * // set distinct_id after the mixpanel library has loaded\n * mixpanel.init('YOUR PROJECT TOKEN', {\n * loaded: function(mixpanel) {\n * distinct_id = mixpanel.get_distinct_id();\n * }\n * });\n */\n\n\nMixpanelLib.prototype.get_distinct_id = function () {\n return this.get_property('distinct_id');\n};\n/**\n * The alias method creates an alias which Mixpanel will use to\n * remap one id to another. Multiple aliases can point to the\n * same identifier.\n *\n * The following is a valid use of alias:\n *\n * mixpanel.alias('new_id', 'existing_id');\n * // You can add multiple id aliases to the existing ID\n * mixpanel.alias('newer_id', 'existing_id');\n *\n * Aliases can also be chained - the following is a valid example:\n *\n * mixpanel.alias('new_id', 'existing_id');\n * // chain newer_id - new_id - existing_id\n * mixpanel.alias('newer_id', 'new_id');\n *\n * Aliases cannot point to multiple identifiers - the following\n * example will not work:\n *\n * mixpanel.alias('new_id', 'existing_id');\n * // this is invalid as 'new_id' already points to 'existing_id'\n * mixpanel.alias('new_id', 'newer_id');\n *\n * ### Notes:\n *\n * If your project does not have\n * ID Merge\n * enabled, the best practice is to call alias once when a unique\n * ID is first created for a user (e.g., when a user first registers\n * for an account). Do not use alias multiple times for a single\n * user without ID Merge enabled.\n *\n * @param {String} alias A unique identifier that you want to use for this user in the future.\n * @param {String} [original] The current identifier being used for this user.\n */\n\n\nMixpanelLib.prototype.alias = function (alias, original) {\n // If the $people_distinct_id key exists in persistence, there has been a previous\n // mixpanel.people.identify() call made for this user. It is VERY BAD to make an alias with\n // this ID, as it will duplicate users.\n if (alias === this.get_property(PEOPLE_DISTINCT_ID_KEY)) {\n console.critical('Attempting to create alias for existing People user - aborting.');\n return -2;\n }\n\n var _this = this;\n\n if (_.isUndefined(original)) {\n original = this.get_distinct_id();\n }\n\n if (alias !== original) {\n this._register_single(ALIAS_ID_KEY, alias);\n\n return this.track('$create_alias', {\n 'alias': alias,\n 'distinct_id': original\n }, {\n skip_hooks: true\n }, function () {\n // Flush the people queue\n _this.identify(alias);\n });\n } else {\n console.error('alias matches current distinct_id - skipping api call.');\n this.identify(alias);\n return -1;\n }\n};\n/**\n * Provide a string to recognize the user by. The string passed to\n * this method will appear in the Mixpanel Streams product rather\n * than an automatically generated name. Name tags do not have to\n * be unique.\n *\n * This value will only be included in Streams data.\n *\n * @param {String} name_tag A human readable name for the user\n * @deprecated\n */\n\n\nMixpanelLib.prototype.name_tag = function (name_tag) {\n this._register_single('mp_name_tag', name_tag);\n};\n/**\n * Update the configuration of a mixpanel library instance.\n *\n * The default config is:\n *\n * {\n * // HTTP method for tracking requests\n * api_method: 'POST'\n *\n * // transport for sending requests ('XHR' or 'sendBeacon')\n * // NB: sendBeacon should only be used for scenarios such as\n * // page unload where a \"best-effort\" attempt to send is\n * // acceptable; the sendBeacon API does not support callbacks\n * // or any way to know the result of the request. Mixpanel\n * // tracking via sendBeacon will not support any event-\n * // batching or retry mechanisms.\n * api_transport: 'XHR'\n *\n * // turn on request-batching/queueing/retry\n * batch_requests: false,\n *\n * // maximum number of events/updates to send in a single\n * // network request\n * batch_size: 50,\n *\n * // milliseconds to wait between sending batch requests\n * batch_flush_interval_ms: 5000,\n *\n * // milliseconds to wait for network responses to batch requests\n * // before they are considered timed-out and retried\n * batch_request_timeout_ms: 90000,\n *\n * // override value for cookie domain, only useful for ensuring\n * // correct cross-subdomain cookies on unusual domains like\n * // subdomain.mainsite.avocat.fr; NB this cannot be used to\n * // set cookies on a different domain than the current origin\n * cookie_domain: ''\n *\n * // super properties cookie expiration (in days)\n * cookie_expiration: 365\n *\n * // if true, cookie will be set with SameSite=None; Secure\n * // this is only useful in special situations, like embedded\n * // 3rd-party iframes that set up a Mixpanel instance\n * cross_site_cookie: false\n *\n * // super properties span subdomains\n * cross_subdomain_cookie: true\n *\n * // debug mode\n * debug: false\n *\n * // if this is true, the mixpanel cookie or localStorage entry\n * // will be deleted, and no user persistence will take place\n * disable_persistence: false\n *\n * // if this is true, Mixpanel will automatically determine\n * // City, Region and Country data using the IP address of\n * //the client\n * ip: true\n *\n * // opt users out of tracking by this Mixpanel instance by default\n * opt_out_tracking_by_default: false\n *\n * // opt users out of browser data storage by this Mixpanel instance by default\n * opt_out_persistence_by_default: false\n *\n * // persistence mechanism used by opt-in/opt-out methods - cookie\n * // or localStorage - falls back to cookie if localStorage is unavailable\n * opt_out_tracking_persistence_type: 'localStorage'\n *\n * // customize the name of cookie/localStorage set by opt-in/opt-out methods\n * opt_out_tracking_cookie_prefix: null\n *\n * // type of persistent store for super properties (cookie/\n * // localStorage) if set to 'localStorage', any existing\n * // mixpanel cookie value with the same persistence_name\n * // will be transferred to localStorage and deleted\n * persistence: 'cookie'\n *\n * // name for super properties persistent store\n * persistence_name: ''\n *\n * // names of properties/superproperties which should never\n * // be sent with track() calls\n * property_blacklist: []\n *\n * // if this is true, mixpanel cookies will be marked as\n * // secure, meaning they will only be transmitted over https\n * secure_cookie: false\n *\n * // the amount of time track_links will\n * // wait for Mixpanel's servers to respond\n * track_links_timeout: 300\n *\n * // if you set upgrade to be true, the library will check for\n * // a cookie from our old js library and import super\n * // properties from it, then the old cookie is deleted\n * // The upgrade config option only works in the initialization,\n * // so make sure you set it when you create the library.\n * upgrade: false\n *\n * // extra HTTP request headers to set for each API request, in\n * // the format {'Header-Name': value}\n * xhr_headers: {}\n *\n * // protocol for fetching in-app message resources, e.g.\n * // 'https://' or 'http://'; defaults to '//' (which defers to the\n * // current page's protocol)\n * inapp_protocol: '//'\n *\n * // whether to open in-app message link in new tab/window\n * inapp_link_new_window: false\n *\n * // whether to ignore or respect the web browser's Do Not Track setting\n * ignore_dnt: false\n * }\n *\n *\n * @param {Object} config A dictionary of new configuration values to update\n */\n\n\nMixpanelLib.prototype.set_config = function (config) {\n if (_.isObject(config)) {\n _.extend(this['config'], config);\n\n var new_batch_size = config['batch_size'];\n\n if (new_batch_size) {\n _.each(this.request_batchers, function (batcher) {\n batcher.resetBatchSize();\n });\n }\n\n if (!this.get_config('persistence_name')) {\n this['config']['persistence_name'] = this['config']['cookie_name'];\n }\n\n if (!this.get_config('disable_persistence')) {\n this['config']['disable_persistence'] = this['config']['disable_cookie'];\n }\n\n if (this['persistence']) {\n this['persistence'].update_config(this['config']);\n }\n\n Config.DEBUG = Config.DEBUG || this.get_config('debug');\n }\n};\n/**\n * returns the current config object for the library.\n */\n\n\nMixpanelLib.prototype.get_config = function (prop_name) {\n return this['config'][prop_name];\n};\n/**\n * Fetch a hook function from config, with safe default, and run it\n * against the given arguments\n * @param {string} hook_name which hook to retrieve\n * @returns {any|null} return value of user-provided hook, or null if nothing was returned\n */\n\n\nMixpanelLib.prototype._run_hook = function (hook_name) {\n var ret = (this['config']['hooks'][hook_name] || IDENTITY_FUNC).apply(this, slice.call(arguments, 1));\n\n if (typeof ret === 'undefined') {\n console.error(hook_name + ' hook did not return a value');\n ret = null;\n }\n\n return ret;\n};\n/**\n * Returns the value of the super property named property_name. If no such\n * property is set, get_property() will return the undefined value.\n *\n * ### Notes:\n *\n * get_property() can only be called after the Mixpanel library has finished loading.\n * init() has a loaded function available to handle this automatically. For example:\n *\n * // grab value for 'user_id' after the mixpanel library has loaded\n * mixpanel.init('YOUR PROJECT TOKEN', {\n * loaded: function(mixpanel) {\n * user_id = mixpanel.get_property('user_id');\n * }\n * });\n *\n * @param {String} property_name The name of the super property you want to retrieve\n */\n\n\nMixpanelLib.prototype.get_property = function (property_name) {\n return this['persistence']['props'][property_name];\n};\n\nMixpanelLib.prototype.toString = function () {\n var name = this.get_config('name');\n\n if (name !== PRIMARY_INSTANCE_NAME) {\n name = PRIMARY_INSTANCE_NAME + '.' + name;\n }\n\n return name;\n};\n\nMixpanelLib.prototype._event_is_disabled = function (event_name) {\n return _.isBlockedUA(userAgent) || this._flags.disable_all_events || _.include(this.__disabled_events, event_name);\n};\n\nMixpanelLib.prototype._check_and_handle_triggered_notifications = addOptOutCheckMixpanelLib(function (event_data) {\n if (!this._user_decide_check_complete) {\n this._events_tracked_before_user_decide_check_complete.push(event_data);\n } else {\n var arr = this['_triggered_notifs'];\n\n for (var i = 0; i < arr.length; i++) {\n var notif = new MixpanelNotification(arr[i], this);\n\n if (notif._matches_event_data(event_data)) {\n this._show_notification(arr[i]);\n\n return;\n }\n }\n }\n});\nMixpanelLib.prototype._check_and_handle_notifications = addOptOutCheckMixpanelLib(function (distinct_id) {\n if (!distinct_id || this._flags.identify_called || this.get_config('disable_notifications')) {\n return;\n }\n\n console.log('MIXPANEL NOTIFICATION CHECK');\n var data = {\n 'verbose': true,\n 'version': '3',\n 'lib': 'web',\n 'token': this.get_config('token'),\n 'distinct_id': distinct_id\n };\n\n this._send_request(this.get_config('api_host') + '/decide/', data, {\n method: 'GET',\n transport: 'XHR'\n }, this._prepare_callback(_.bind(function (result) {\n if (result['notifications'] && result['notifications'].length > 0) {\n this['_triggered_notifs'] = [];\n var notifications = [];\n\n _.each(result['notifications'], function (notif) {\n (notif['display_triggers'] && notif['display_triggers'].length > 0 ? this['_triggered_notifs'] : notifications).push(notif);\n }, this);\n\n if (notifications.length > 0) {\n this._show_notification.call(this, notifications[0]);\n }\n }\n\n this._handle_user_decide_check_complete();\n }, this)));\n});\n\nMixpanelLib.prototype._handle_user_decide_check_complete = function () {\n this._user_decide_check_complete = true; // check notifications against events that were tracked before decide call completed\n\n var events = this._events_tracked_before_user_decide_check_complete;\n\n while (events.length > 0) {\n var data = events.shift(); // replay in the same order they came in\n\n this._check_and_handle_triggered_notifications(data);\n }\n};\n\nMixpanelLib.prototype._show_notification = function (notif_data) {\n var notification = new MixpanelNotification(notif_data, this);\n notification.show();\n}; // perform some housekeeping around GDPR opt-in/out state\n\n\nMixpanelLib.prototype._gdpr_init = function () {\n var is_localStorage_requested = this.get_config('opt_out_tracking_persistence_type') === 'localStorage'; // try to convert opt-in/out cookies to localStorage if possible\n\n if (is_localStorage_requested && _.localStorage.is_supported()) {\n if (!this.has_opted_in_tracking() && this.has_opted_in_tracking({\n 'persistence_type': 'cookie'\n })) {\n this.opt_in_tracking({\n 'enable_persistence': false\n });\n }\n\n if (!this.has_opted_out_tracking() && this.has_opted_out_tracking({\n 'persistence_type': 'cookie'\n })) {\n this.opt_out_tracking({\n 'clear_persistence': false\n });\n }\n\n this.clear_opt_in_out_tracking({\n 'persistence_type': 'cookie',\n 'enable_persistence': false\n });\n } // check whether the user has already opted out - if so, clear & disable persistence\n\n\n if (this.has_opted_out_tracking()) {\n this._gdpr_update_persistence({\n 'clear_persistence': true\n }); // check whether we should opt out by default\n // note: we don't clear persistence here by default since opt-out default state is often\n // used as an initial state while GDPR information is being collected\n\n } else if (!this.has_opted_in_tracking() && (this.get_config('opt_out_tracking_by_default') || _.cookie.get('mp_optout'))) {\n _.cookie.remove('mp_optout');\n\n this.opt_out_tracking({\n 'clear_persistence': this.get_config('opt_out_persistence_by_default')\n });\n }\n};\n/**\n * Enable or disable persistence based on options\n * only enable/disable if persistence is not already in this state\n * @param {boolean} [options.clear_persistence] If true, will delete all data stored by the sdk in persistence and disable it\n * @param {boolean} [options.enable_persistence] If true, will re-enable sdk persistence\n */\n\n\nMixpanelLib.prototype._gdpr_update_persistence = function (options) {\n var disabled;\n\n if (options && options['clear_persistence']) {\n disabled = true;\n } else if (options && options['enable_persistence']) {\n disabled = false;\n } else {\n return;\n }\n\n if (!this.get_config('disable_persistence') && this['persistence'].disabled !== disabled) {\n this['persistence'].set_disabled(disabled);\n }\n\n if (disabled) {\n _.each(this.request_batchers, function (batcher) {\n batcher.clear();\n });\n }\n}; // call a base gdpr function after constructing the appropriate token and options args\n\n\nMixpanelLib.prototype._gdpr_call_func = function (func, options) {\n options = _.extend({\n 'track': _.bind(this.track, this),\n 'persistence_type': this.get_config('opt_out_tracking_persistence_type'),\n 'cookie_prefix': this.get_config('opt_out_tracking_cookie_prefix'),\n 'cookie_expiration': this.get_config('cookie_expiration'),\n 'cross_site_cookie': this.get_config('cross_site_cookie'),\n 'cross_subdomain_cookie': this.get_config('cross_subdomain_cookie'),\n 'cookie_domain': this.get_config('cookie_domain'),\n 'secure_cookie': this.get_config('secure_cookie'),\n 'ignore_dnt': this.get_config('ignore_dnt')\n }, options); // check if localStorage can be used for recording opt out status, fall back to cookie if not\n\n if (!_.localStorage.is_supported()) {\n options['persistence_type'] = 'cookie';\n }\n\n return func(this.get_config('token'), {\n track: options['track'],\n trackEventName: options['track_event_name'],\n trackProperties: options['track_properties'],\n persistenceType: options['persistence_type'],\n persistencePrefix: options['cookie_prefix'],\n cookieDomain: options['cookie_domain'],\n cookieExpiration: options['cookie_expiration'],\n crossSiteCookie: options['cross_site_cookie'],\n crossSubdomainCookie: options['cross_subdomain_cookie'],\n secureCookie: options['secure_cookie'],\n ignoreDnt: options['ignore_dnt']\n });\n};\n/**\n * Opt the user in to data tracking and cookies/localstorage for this Mixpanel instance\n *\n * ### Usage\n *\n * // opt user in\n * mixpanel.opt_in_tracking();\n *\n * // opt user in with specific event name, properties, cookie configuration\n * mixpanel.opt_in_tracking({\n * track_event_name: 'User opted in',\n * track_event_properties: {\n * 'Email': 'jdoe@example.com'\n * },\n * cookie_expiration: 30,\n * secure_cookie: true\n * });\n *\n * @param {Object} [options] A dictionary of config options to override\n * @param {function} [options.track] Function used for tracking a Mixpanel event to record the opt-in action (default is this Mixpanel instance's track method)\n * @param {string} [options.track_event_name=$opt_in] Event name to be used for tracking the opt-in action\n * @param {Object} [options.track_properties] Set of properties to be tracked along with the opt-in action\n * @param {boolean} [options.enable_persistence=true] If true, will re-enable sdk persistence\n * @param {string} [options.persistence_type=localStorage] Persistence mechanism used - cookie or localStorage - falls back to cookie if localStorage is unavailable\n * @param {string} [options.cookie_prefix=__mp_opt_in_out] Custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookie_expiration] Number of days until the opt-in cookie expires (overrides value specified in this Mixpanel instance's config)\n * @param {string} [options.cookie_domain] Custom cookie domain (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.cross_site_cookie] Whether the opt-in cookie is set as cross-site-enabled (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.cross_subdomain_cookie] Whether the opt-in cookie is set as cross-subdomain or not (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.secure_cookie] Whether the opt-in cookie is set as secure or not (overrides value specified in this Mixpanel instance's config)\n */\n\n\nMixpanelLib.prototype.opt_in_tracking = function (options) {\n options = _.extend({\n 'enable_persistence': true\n }, options);\n\n this._gdpr_call_func(optIn, options);\n\n this._gdpr_update_persistence(options);\n};\n/**\n * Opt the user out of data tracking and cookies/localstorage for this Mixpanel instance\n *\n * ### Usage\n *\n * // opt user out\n * mixpanel.opt_out_tracking();\n *\n * // opt user out with different cookie configuration from Mixpanel instance\n * mixpanel.opt_out_tracking({\n * cookie_expiration: 30,\n * secure_cookie: true\n * });\n *\n * @param {Object} [options] A dictionary of config options to override\n * @param {boolean} [options.delete_user=true] If true, will delete the currently identified user's profile and clear all charges after opting the user out\n * @param {boolean} [options.clear_persistence=true] If true, will delete all data stored by the sdk in persistence\n * @param {string} [options.persistence_type=localStorage] Persistence mechanism used - cookie or localStorage - falls back to cookie if localStorage is unavailable\n * @param {string} [options.cookie_prefix=__mp_opt_in_out] Custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookie_expiration] Number of days until the opt-in cookie expires (overrides value specified in this Mixpanel instance's config)\n * @param {string} [options.cookie_domain] Custom cookie domain (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.cross_site_cookie] Whether the opt-in cookie is set as cross-site-enabled (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.cross_subdomain_cookie] Whether the opt-in cookie is set as cross-subdomain or not (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.secure_cookie] Whether the opt-in cookie is set as secure or not (overrides value specified in this Mixpanel instance's config)\n */\n\n\nMixpanelLib.prototype.opt_out_tracking = function (options) {\n options = _.extend({\n 'clear_persistence': true,\n 'delete_user': true\n }, options); // delete user and clear charges since these methods may be disabled by opt-out\n\n if (options['delete_user'] && this['people'] && this['people']._identify_called()) {\n this['people'].delete_user();\n this['people'].clear_charges();\n }\n\n this._gdpr_call_func(optOut, options);\n\n this._gdpr_update_persistence(options);\n};\n/**\n * Check whether the user has opted in to data tracking and cookies/localstorage for this Mixpanel instance\n *\n * ### Usage\n *\n * var has_opted_in = mixpanel.has_opted_in_tracking();\n * // use has_opted_in value\n *\n * @param {Object} [options] A dictionary of config options to override\n * @param {string} [options.persistence_type=localStorage] Persistence mechanism used - cookie or localStorage - falls back to cookie if localStorage is unavailable\n * @param {string} [options.cookie_prefix=__mp_opt_in_out] Custom prefix to be used in the cookie/localstorage name\n * @returns {boolean} current opt-in status\n */\n\n\nMixpanelLib.prototype.has_opted_in_tracking = function (options) {\n return this._gdpr_call_func(hasOptedIn, options);\n};\n/**\n * Check whether the user has opted out of data tracking and cookies/localstorage for this Mixpanel instance\n *\n * ### Usage\n *\n * var has_opted_out = mixpanel.has_opted_out_tracking();\n * // use has_opted_out value\n *\n * @param {Object} [options] A dictionary of config options to override\n * @param {string} [options.persistence_type=localStorage] Persistence mechanism used - cookie or localStorage - falls back to cookie if localStorage is unavailable\n * @param {string} [options.cookie_prefix=__mp_opt_in_out] Custom prefix to be used in the cookie/localstorage name\n * @returns {boolean} current opt-out status\n */\n\n\nMixpanelLib.prototype.has_opted_out_tracking = function (options) {\n return this._gdpr_call_func(hasOptedOut, options);\n};\n/**\n * Clear the user's opt in/out status of data tracking and cookies/localstorage for this Mixpanel instance\n *\n * ### Usage\n *\n * // clear user's opt-in/out status\n * mixpanel.clear_opt_in_out_tracking();\n *\n * // clear user's opt-in/out status with specific cookie configuration - should match\n * // configuration used when opt_in_tracking/opt_out_tracking methods were called.\n * mixpanel.clear_opt_in_out_tracking({\n * cookie_expiration: 30,\n * secure_cookie: true\n * });\n *\n * @param {Object} [options] A dictionary of config options to override\n * @param {boolean} [options.enable_persistence=true] If true, will re-enable sdk persistence\n * @param {string} [options.persistence_type=localStorage] Persistence mechanism used - cookie or localStorage - falls back to cookie if localStorage is unavailable\n * @param {string} [options.cookie_prefix=__mp_opt_in_out] Custom prefix to be used in the cookie/localstorage name\n * @param {Number} [options.cookie_expiration] Number of days until the opt-in cookie expires (overrides value specified in this Mixpanel instance's config)\n * @param {string} [options.cookie_domain] Custom cookie domain (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.cross_site_cookie] Whether the opt-in cookie is set as cross-site-enabled (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.cross_subdomain_cookie] Whether the opt-in cookie is set as cross-subdomain or not (overrides value specified in this Mixpanel instance's config)\n * @param {boolean} [options.secure_cookie] Whether the opt-in cookie is set as secure or not (overrides value specified in this Mixpanel instance's config)\n */\n\n\nMixpanelLib.prototype.clear_opt_in_out_tracking = function (options) {\n options = _.extend({\n 'enable_persistence': true\n }, options);\n\n this._gdpr_call_func(clearOptInOut, options);\n\n this._gdpr_update_persistence(options);\n}; // EXPORTS (for closure compiler)\n// MixpanelLib Exports\n\n\nMixpanelLib.prototype['init'] = MixpanelLib.prototype.init;\nMixpanelLib.prototype['reset'] = MixpanelLib.prototype.reset;\nMixpanelLib.prototype['disable'] = MixpanelLib.prototype.disable;\nMixpanelLib.prototype['time_event'] = MixpanelLib.prototype.time_event;\nMixpanelLib.prototype['track'] = MixpanelLib.prototype.track;\nMixpanelLib.prototype['track_links'] = MixpanelLib.prototype.track_links;\nMixpanelLib.prototype['track_forms'] = MixpanelLib.prototype.track_forms;\nMixpanelLib.prototype['track_pageview'] = MixpanelLib.prototype.track_pageview;\nMixpanelLib.prototype['register'] = MixpanelLib.prototype.register;\nMixpanelLib.prototype['register_once'] = MixpanelLib.prototype.register_once;\nMixpanelLib.prototype['unregister'] = MixpanelLib.prototype.unregister;\nMixpanelLib.prototype['identify'] = MixpanelLib.prototype.identify;\nMixpanelLib.prototype['alias'] = MixpanelLib.prototype.alias;\nMixpanelLib.prototype['name_tag'] = MixpanelLib.prototype.name_tag;\nMixpanelLib.prototype['set_config'] = MixpanelLib.prototype.set_config;\nMixpanelLib.prototype['get_config'] = MixpanelLib.prototype.get_config;\nMixpanelLib.prototype['get_property'] = MixpanelLib.prototype.get_property;\nMixpanelLib.prototype['get_distinct_id'] = MixpanelLib.prototype.get_distinct_id;\nMixpanelLib.prototype['toString'] = MixpanelLib.prototype.toString;\nMixpanelLib.prototype['_check_and_handle_notifications'] = MixpanelLib.prototype._check_and_handle_notifications;\nMixpanelLib.prototype['_handle_user_decide_check_complete'] = MixpanelLib.prototype._handle_user_decide_check_complete;\nMixpanelLib.prototype['_show_notification'] = MixpanelLib.prototype._show_notification;\nMixpanelLib.prototype['opt_out_tracking'] = MixpanelLib.prototype.opt_out_tracking;\nMixpanelLib.prototype['opt_in_tracking'] = MixpanelLib.prototype.opt_in_tracking;\nMixpanelLib.prototype['has_opted_out_tracking'] = MixpanelLib.prototype.has_opted_out_tracking;\nMixpanelLib.prototype['has_opted_in_tracking'] = MixpanelLib.prototype.has_opted_in_tracking;\nMixpanelLib.prototype['clear_opt_in_out_tracking'] = MixpanelLib.prototype.clear_opt_in_out_tracking;\nMixpanelLib.prototype['get_group'] = MixpanelLib.prototype.get_group;\nMixpanelLib.prototype['set_group'] = MixpanelLib.prototype.set_group;\nMixpanelLib.prototype['add_group'] = MixpanelLib.prototype.add_group;\nMixpanelLib.prototype['remove_group'] = MixpanelLib.prototype.remove_group;\nMixpanelLib.prototype['track_with_groups'] = MixpanelLib.prototype.track_with_groups;\nMixpanelLib.prototype['start_batch_senders'] = MixpanelLib.prototype.start_batch_senders;\nMixpanelLib.prototype['stop_batch_senders'] = MixpanelLib.prototype.stop_batch_senders; // MixpanelPersistence Exports\n\nMixpanelPersistence.prototype['properties'] = MixpanelPersistence.prototype.properties;\nMixpanelPersistence.prototype['update_search_keyword'] = MixpanelPersistence.prototype.update_search_keyword;\nMixpanelPersistence.prototype['update_referrer_info'] = MixpanelPersistence.prototype.update_referrer_info;\nMixpanelPersistence.prototype['get_cross_subdomain'] = MixpanelPersistence.prototype.get_cross_subdomain;\nMixpanelPersistence.prototype['clear'] = MixpanelPersistence.prototype.clear;\n\n_.safewrap_class(MixpanelLib, ['identify', '_check_and_handle_notifications', '_show_notification']);\n\nvar instances = {};\n\nvar extend_mp = function extend_mp() {\n // add all the sub mixpanel instances\n _.each(instances, function (instance, name) {\n if (name !== PRIMARY_INSTANCE_NAME) {\n mixpanel_master[name] = instance;\n }\n }); // add private functions as _\n\n\n mixpanel_master['_'] = _;\n};\n\nvar override_mp_init_func = function override_mp_init_func() {\n // we override the snippets init function to handle the case where a\n // user initializes the mixpanel library after the script loads & runs\n mixpanel_master['init'] = function (token, config, name) {\n if (name) {\n // initialize a sub library\n if (!mixpanel_master[name]) {\n mixpanel_master[name] = instances[name] = create_mplib(token, config, name);\n\n mixpanel_master[name]._loaded();\n }\n\n return mixpanel_master[name];\n } else {\n var instance = mixpanel_master;\n\n if (instances[PRIMARY_INSTANCE_NAME]) {\n // main mixpanel lib already initialized\n instance = instances[PRIMARY_INSTANCE_NAME];\n } else if (token) {\n // intialize the main mixpanel lib\n instance = create_mplib(token, config, PRIMARY_INSTANCE_NAME);\n\n instance._loaded();\n\n instances[PRIMARY_INSTANCE_NAME] = instance;\n }\n\n mixpanel_master = instance;\n\n if (init_type === INIT_SNIPPET) {\n window$1[PRIMARY_INSTANCE_NAME] = mixpanel_master;\n }\n\n extend_mp();\n }\n };\n};\n\nvar add_dom_loaded_handler = function add_dom_loaded_handler() {\n // Cross browser DOM Loaded support\n function dom_loaded_handler() {\n // function flag since we only want to execute this once\n if (dom_loaded_handler.done) {\n return;\n }\n\n dom_loaded_handler.done = true;\n DOM_LOADED = true;\n ENQUEUE_REQUESTS = false;\n\n _.each(instances, function (inst) {\n inst._dom_loaded();\n });\n }\n\n function do_scroll_check() {\n try {\n document$1.documentElement.doScroll('left');\n } catch (e) {\n setTimeout(do_scroll_check, 1);\n return;\n }\n\n dom_loaded_handler();\n }\n\n if (document$1.addEventListener) {\n if (document$1.readyState === 'complete') {\n // safari 4 can fire the DOMContentLoaded event before loading all\n // external JS (including this file). you will see some copypasta\n // on the internet that checks for 'complete' and 'loaded', but\n // 'loaded' is an IE thing\n dom_loaded_handler();\n } else {\n document$1.addEventListener('DOMContentLoaded', dom_loaded_handler, false);\n }\n } else if (document$1.attachEvent) {\n // IE\n document$1.attachEvent('onreadystatechange', dom_loaded_handler); // check to make sure we arn't in a frame\n\n var toplevel = false;\n\n try {\n toplevel = window$1.frameElement === null;\n } catch (e) {// noop\n }\n\n if (document$1.documentElement.doScroll && toplevel) {\n do_scroll_check();\n }\n } // fallback handler, always will work\n\n\n _.register_event(window$1, 'load', dom_loaded_handler, true);\n};\n\nfunction init_as_module() {\n init_type = INIT_MODULE;\n mixpanel_master = new MixpanelLib();\n override_mp_init_func();\n mixpanel_master['init']();\n add_dom_loaded_handler();\n return mixpanel_master;\n}\n\nvar mixpanel = init_as_module();\nmodule.exports = mixpanel;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar urlPattern = /^[a-z]+:\\/\\//i;\nexports.NO_HOSTNAME = Symbol(\"NO_HOSTNAME\");\n\nexports.fromUrl = function (urlLike) {\n /* istanbul ignore next */\n if (typeof URL !== \"function\") {\n throw new Error(\"Looks like the new URL() constructor is not globally available in your environment. Please make sure to use a polyfill.\");\n } // Extra check for non-TypeScript users\n\n\n if (typeof urlLike !== \"string\") {\n return exports.NO_HOSTNAME;\n } // URLs that start with // are protocol relative\n\n\n var url = urlLike.startsWith(\"//\") ? \"http:\".concat(urlLike) : // URLs that start with / do not have a hostname section\n urlLike.startsWith(\"/\") ? urlLike : urlPattern.test(urlLike) ? urlLike : \"http://\".concat(urlLike);\n\n try {\n return new URL(url).hostname;\n } catch (_a) {\n return exports.NO_HOSTNAME;\n }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar parse_domain_1 = require(\"./parse-domain\");\n\nexports.parseDomain = parse_domain_1.parseDomain;\nexports.ParseResultType = parse_domain_1.ParseResultType;\n\nvar from_url_1 = require(\"./from-url\");\n\nexports.fromUrl = from_url_1.fromUrl;\nexports.NO_HOSTNAME = from_url_1.NO_HOSTNAME;\n\nvar sanitize_1 = require(\"./sanitize\");\n\nexports.ValidationErrorType = sanitize_1.ValidationErrorType;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar serialized_tries_1 = require(\"./serialized-tries\");\n\nvar look_up_1 = require(\"./trie/look-up\");\n\nvar sanitize_1 = require(\"./sanitize\");\n\nvar parse_trie_1 = require(\"./trie/parse-trie\");\n\nexports.RESERVED_TOP_LEVEL_DOMAINS = [\"localhost\", \"local\", \"example\", \"invalid\", \"test\"];\nvar ParseResultType;\n\n(function (ParseResultType) {\n /**\n * This parse result is returned in case the given hostname does not adhere to [RFC 1034](https://tools.ietf.org/html/rfc1034).\n */\n ParseResultType[\"Invalid\"] = \"INVALID\";\n /**\n * This parse result is returned if the given hostname was an IPv4 or IPv6.\n */\n\n ParseResultType[\"Ip\"] = \"IP\";\n /**\n * This parse result is returned when the given hostname\n * - is the root domain (the empty string `\"\"`)\n * - belongs to the top-level domain `localhost`, `local`, `example`, `invalid` or `test`\n */\n\n ParseResultType[\"Reserved\"] = \"RESERVED\";\n /**\n * This parse result is returned when the given hostname is valid and does not belong to a reserved top-level domain, but is not listed in the public suffix list.\n */\n\n ParseResultType[\"NotListed\"] = \"NOT_LISTED\";\n /**\n * This parse result is returned when the given hostname belongs to a top-level domain that is listed in the public suffix list.\n */\n\n ParseResultType[\"Listed\"] = \"LISTED\";\n})(ParseResultType = exports.ParseResultType || (exports.ParseResultType = {}));\n\nvar getAtIndex = function getAtIndex(array, index) {\n return index >= 0 && index < array.length ? array[index] : undefined;\n};\n\nvar splitLabelsIntoDomains = function splitLabelsIntoDomains(labels, index) {\n return {\n subDomains: labels.slice(0, Math.max(0, index)),\n domain: getAtIndex(labels, index),\n topLevelDomains: labels.slice(index + 1)\n };\n};\n\nvar parsedIcannTrie;\nvar parsedPrivateTrie;\n/**\n * Splits the given hostname in topLevelDomains, a domain and subDomains.\n */\n\nexports.parseDomain = function (hostname) {\n var sanitizationResult = sanitize_1.sanitize(hostname);\n\n if (sanitizationResult.type === sanitize_1.SanitizationResultType.Error) {\n return {\n type: ParseResultType.Invalid,\n hostname: hostname,\n errors: sanitizationResult.errors\n };\n }\n\n if (sanitizationResult.type === sanitize_1.SanitizationResultType.ValidIp) {\n return {\n type: ParseResultType.Ip,\n hostname: sanitizationResult.ip,\n ipVersion: sanitizationResult.ipVersion\n };\n }\n\n var labels = sanitizationResult.labels,\n domain = sanitizationResult.domain;\n\n if (hostname === \"\" || exports.RESERVED_TOP_LEVEL_DOMAINS.includes(labels[labels.length - 1])) {\n return {\n type: ParseResultType.Reserved,\n hostname: domain,\n labels: labels\n };\n } // Parse the serialized trie lazily\n\n\n parsedIcannTrie = parsedIcannTrie !== null && parsedIcannTrie !== void 0 ? parsedIcannTrie : parse_trie_1.parseTrie(serialized_tries_1.icannTrie);\n parsedPrivateTrie = parsedPrivateTrie !== null && parsedPrivateTrie !== void 0 ? parsedPrivateTrie : parse_trie_1.parseTrie(serialized_tries_1.privateTrie);\n var icannTlds = look_up_1.lookUpTldsInTrie(labels, parsedIcannTrie);\n var privateTlds = look_up_1.lookUpTldsInTrie(labels, parsedPrivateTrie);\n\n if (icannTlds.length === 0 && privateTlds.length === 0) {\n return {\n type: ParseResultType.NotListed,\n hostname: domain,\n labels: labels\n };\n }\n\n var indexOfPublicSuffixDomain = labels.length - Math.max(privateTlds.length, icannTlds.length) - 1;\n var indexOfIcannDomain = labels.length - icannTlds.length - 1;\n return Object.assign({\n type: ParseResultType.Listed,\n hostname: domain,\n labels: labels,\n icann: splitLabelsIntoDomains(labels, indexOfIcannDomain)\n }, splitLabelsIntoDomains(labels, indexOfPublicSuffixDomain));\n};","\"use strict\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n}); // eslint-disable-next-line import/default\n\nvar is_ip_1 = __importDefault(require(\"is-ip\")); // See https://en.wikipedia.org/wiki/Domain_name\n// See https://tools.ietf.org/html/rfc1034\n\n\nvar LABEL_SEPARATOR = \".\";\nvar LABEL_ROOT = \"\";\nvar LABEL_LENGTH_MIN = 1;\nvar LABEL_LENGTH_MAX = 63;\nvar DOMAIN_LENGTH_MAX = 253;\nvar ValidationErrorType;\n\n(function (ValidationErrorType) {\n ValidationErrorType[\"NoHostname\"] = \"NO_HOSTNAME\";\n ValidationErrorType[\"DomainMaxLength\"] = \"DOMAIN_MAX_LENGTH\";\n ValidationErrorType[\"LabelMinLength\"] = \"LABEL_MIN_LENGTH\";\n ValidationErrorType[\"LabelMaxLength\"] = \"LABEL_MAX_LENGTH\";\n ValidationErrorType[\"LabelInvalidCharacter\"] = \"LABEL_INVALID_CHARACTER\";\n})(ValidationErrorType = exports.ValidationErrorType || (exports.ValidationErrorType = {}));\n\nvar SanitizationResultType;\n\n(function (SanitizationResultType) {\n SanitizationResultType[\"ValidIp\"] = \"VALID_IP\";\n SanitizationResultType[\"ValidDomain\"] = \"VALID_DOMAIN\";\n SanitizationResultType[\"Error\"] = \"ERROR\";\n})(SanitizationResultType = exports.SanitizationResultType || (exports.SanitizationResultType = {}));\n\nvar createNoHostnameError = function createNoHostnameError(input) {\n return {\n type: ValidationErrorType.NoHostname,\n message: \"The given input \".concat(String(input), \" does not look like a hostname.\"),\n column: 1\n };\n};\n\nvar createDomainMaxLengthError = function createDomainMaxLengthError(domain) {\n var length = domain.length;\n return {\n type: ValidationErrorType.DomainMaxLength,\n message: \"Domain \\\"\".concat(domain, \"\\\" is too long. Domain is \").concat(length, \" octets long but should not be longer than \").concat(DOMAIN_LENGTH_MAX, \".\"),\n column: length\n };\n};\n\nvar createLabelMinLengthError = function createLabelMinLengthError(label, column) {\n var length = label.length;\n return {\n type: ValidationErrorType.LabelMinLength,\n message: \"Label \\\"\".concat(label, \"\\\" is too short. Label is \").concat(length, \" octets long but should be at least \").concat(LABEL_LENGTH_MIN, \".\"),\n column: column\n };\n};\n\nvar createLabelMaxLengthError = function createLabelMaxLengthError(label, column) {\n var length = label.length;\n return {\n type: ValidationErrorType.LabelMaxLength,\n message: \"Label \\\"\".concat(label, \"\\\" is too long. Label is \").concat(length, \" octets long but should not be longer than \").concat(LABEL_LENGTH_MAX, \".\"),\n column: column\n };\n};\n\nvar createLabelInvalidCharacterError = function createLabelInvalidCharacterError(label, invalidCharacter, column) {\n return {\n type: ValidationErrorType.LabelInvalidCharacter,\n message: \"Label \\\"\".concat(label, \"\\\" contains invalid character \\\"\").concat(invalidCharacter, \"\\\" at column \").concat(column, \".\"),\n column: column\n };\n};\n\nexports.sanitize = function (input) {\n // Extra check for non-TypeScript users\n if (typeof input !== \"string\") {\n return {\n type: SanitizationResultType.Error,\n errors: [createNoHostnameError(input)]\n };\n }\n\n var inputTrimmed = input.trim(); // IPv6 addresses are surrounded by square brackets in URLs\n // See https://tools.ietf.org/html/rfc3986#section-3.2.2\n\n var inputTrimmedAsIp = inputTrimmed.replace(/^\\[|]$/g, \"\");\n var ipVersion = is_ip_1[\"default\"].version(inputTrimmedAsIp);\n\n if (ipVersion !== undefined) {\n return {\n type: SanitizationResultType.ValidIp,\n ip: inputTrimmedAsIp,\n ipVersion: ipVersion\n };\n }\n\n if (inputTrimmed.length > DOMAIN_LENGTH_MAX) {\n return {\n type: SanitizationResultType.Error,\n errors: [createDomainMaxLengthError(inputTrimmed)]\n };\n }\n\n var labels = inputTrimmed.split(LABEL_SEPARATOR);\n var lastLabel = labels[labels.length - 1]; // If the last label is the special root label, ignore it\n\n if (lastLabel === LABEL_ROOT) {\n labels.pop();\n }\n\n var labelValidationErrors = [];\n var column = 1;\n\n var _iterator = _createForOfIteratorHelper(labels),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var label = _step.value;\n // According to https://tools.ietf.org/html/rfc6761 labels should\n // only contain ASCII letters, digits and hyphens (LDH).\n var invalidCharacter = /(?:(?![\\x2D0-9a-z\\u017F\\u212A])[\\s\\S])/i.exec(label);\n\n if (invalidCharacter) {\n labelValidationErrors.push(createLabelInvalidCharacterError(label, invalidCharacter[0], invalidCharacter.index + 1));\n } else if ( // We can use .length here to check for the octet size because\n // label can only contain ASCII LDH characters at this point.\n label.length < LABEL_LENGTH_MIN) {\n labelValidationErrors.push(createLabelMinLengthError(label, column));\n } else if (label.length > LABEL_LENGTH_MAX) {\n labelValidationErrors.push(createLabelMaxLengthError(label, column));\n }\n\n column += label.length + LABEL_SEPARATOR.length;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n if (labelValidationErrors.length > 0) {\n return {\n type: SanitizationResultType.Error,\n errors: labelValidationErrors\n };\n }\n\n return {\n type: SanitizationResultType.ValidDomain,\n domain: inputTrimmed,\n labels: labels\n };\n};","\"use strict\";\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar icann_json_1 = __importDefault(require(\"../serialized-tries/icann.json\"));\n\nexports.icannTrie = icann_json_1[\"default\"];\n\nvar private_json_1 = __importDefault(require(\"../serialized-tries/private.json\"));\n\nexports.privateTrie = private_json_1[\"default\"];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n}); // UP, SAME, DOWN, RESET should not be special regex characters in a character class.\n\nexports.UP = \"<\"; // one level up\n\nexports.SAME = \",\"; // same level\n\nexports.DOWN = \">\"; // one level down\n\nexports.RESET = \"|\"; // reset level index and start new\n\nexports.WILDCARD = \"*\"; // as defined by publicsuffix.org\n\nexports.EXCEPTION = \"!\"; // as defined by publicsuffix.org","\"use strict\";\n\nvar __importStar = this && this.__importStar || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n }\n result[\"default\"] = mod;\n return result;\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar characters = __importStar(require(\"./characters\"));\n\nexports.lookUpTldsInTrie = function (labels, trie) {\n var labelsToCheck = labels.slice();\n var tlds = [];\n var node = trie;\n\n while (labelsToCheck.length !== 0) {\n var label = labelsToCheck.pop();\n var labelLowerCase = label.toLowerCase();\n\n if (node.children.has(characters.WILDCARD)) {\n if (node.children.has(characters.EXCEPTION + labelLowerCase)) {\n break;\n }\n\n node = node.children.get(characters.WILDCARD);\n } else {\n if (node.children.has(labelLowerCase) === false) {\n break;\n }\n\n node = node.children.get(labelLowerCase);\n }\n\n tlds.unshift(label);\n }\n\n return tlds;\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.NODE_TYPE_ROOT = Symbol(\"ROOT\");\nexports.NODE_TYPE_CHILD = Symbol(\"CHILD\");\n\nexports.createRootNode = function () {\n return {\n type: exports.NODE_TYPE_ROOT,\n children: new Map()\n };\n};\n\nexports.createOrGetChild = function (parent, label) {\n var child = parent.children.get(label);\n\n if (child === undefined) {\n child = {\n type: exports.NODE_TYPE_CHILD,\n label: label,\n children: new Map(),\n parent: parent\n };\n parent.children.set(label, child);\n }\n\n return child;\n};","\"use strict\";\n\nvar __importStar = this && this.__importStar || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n }\n result[\"default\"] = mod;\n return result;\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar characters = __importStar(require(\"./characters\"));\n\nvar nodes_1 = require(\"./nodes\");\n\nexports.parseTrie = function (serializedTrie) {\n var rootNode = nodes_1.createRootNode();\n var domain = \"\";\n var parentNode = rootNode; // Type assertion necessary here due to a TypeScript unsoundness\n // https://github.com/microsoft/TypeScript/issues/9998#issuecomment-235963457\n\n var node = rootNode;\n\n var addDomain = function addDomain() {\n node = nodes_1.createOrGetChild(parentNode, domain);\n domain = \"\";\n };\n\n for (var i = 0; i < serializedTrie.length; i++) {\n var _char = serializedTrie.charAt(i);\n\n switch (_char) {\n case characters.SAME:\n {\n addDomain();\n continue;\n }\n\n case characters.DOWN:\n {\n addDomain();\n parentNode = node;\n continue;\n }\n\n case characters.RESET:\n {\n addDomain();\n parentNode = rootNode;\n continue;\n }\n\n case characters.UP:\n {\n if (parentNode.type === nodes_1.NODE_TYPE_ROOT) {\n throw new Error(\"Error in serialized trie at position \".concat(i, \": Cannot go up, current parent node is already root\"));\n }\n\n addDomain();\n parentNode = parentNode.parent;\n continue;\n }\n }\n\n domain += _char;\n }\n\n if (domain !== \"\") {\n addDomain();\n }\n\n return rootNode;\n};","import _typeof from \"/app/scripts/smweb-scripts/node_modules/@babel/runtime/helpers/typeof\";\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport _wrapNativeSuper from '@babel/runtime/helpers/esm/wrapNativeSuper';\nimport _taggedTemplateLiteralLoose from '@babel/runtime/helpers/esm/taggedTemplateLiteralLoose';\n\nfunction last() {\n var _ref;\n\n return _ref = arguments.length - 1, _ref < 0 || arguments.length <= _ref ? undefined : arguments[_ref];\n}\n\nfunction negation(a) {\n return -a;\n}\n\nfunction addition(a, b) {\n return a + b;\n}\n\nfunction subtraction(a, b) {\n return a - b;\n}\n\nfunction multiplication(a, b) {\n return a * b;\n}\n\nfunction division(a, b) {\n return a / b;\n}\n\nfunction max() {\n return Math.max.apply(Math, arguments);\n}\n\nfunction min() {\n return Math.min.apply(Math, arguments);\n}\n\nfunction comma() {\n return Array.of.apply(Array, arguments);\n}\n\nvar defaultSymbols = {\n symbols: {\n '*': {\n infix: {\n symbol: '*',\n f: multiplication,\n notation: 'infix',\n precedence: 4,\n rightToLeft: 0,\n argCount: 2\n },\n symbol: '*',\n regSymbol: '\\\\*'\n },\n '/': {\n infix: {\n symbol: '/',\n f: division,\n notation: 'infix',\n precedence: 4,\n rightToLeft: 0,\n argCount: 2\n },\n symbol: '/',\n regSymbol: '/'\n },\n '+': {\n infix: {\n symbol: '+',\n f: addition,\n notation: 'infix',\n precedence: 2,\n rightToLeft: 0,\n argCount: 2\n },\n prefix: {\n symbol: '+',\n f: last,\n notation: 'prefix',\n precedence: 3,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: '+',\n regSymbol: '\\\\+'\n },\n '-': {\n infix: {\n symbol: '-',\n f: subtraction,\n notation: 'infix',\n precedence: 2,\n rightToLeft: 0,\n argCount: 2\n },\n prefix: {\n symbol: '-',\n f: negation,\n notation: 'prefix',\n precedence: 3,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: '-',\n regSymbol: '-'\n },\n ',': {\n infix: {\n symbol: ',',\n f: comma,\n notation: 'infix',\n precedence: 1,\n rightToLeft: 0,\n argCount: 2\n },\n symbol: ',',\n regSymbol: ','\n },\n '(': {\n prefix: {\n symbol: '(',\n f: last,\n notation: 'prefix',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: '(',\n regSymbol: '\\\\('\n },\n ')': {\n postfix: {\n symbol: ')',\n f: undefined,\n notation: 'postfix',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: ')',\n regSymbol: '\\\\)'\n },\n min: {\n func: {\n symbol: 'min',\n f: min,\n notation: 'func',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: 'min',\n regSymbol: 'min\\\\b'\n },\n max: {\n func: {\n symbol: 'max',\n f: max,\n notation: 'func',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: 'max',\n regSymbol: 'max\\\\b'\n }\n }\n}; // based on https://github.com/styled-components/styled-components/blob/fcf6f3804c57a14dd7984dfab7bc06ee2edca044/src/utils/error.js\n\n/**\n * Parse errors.md and turn it into a simple hash of code: message\n * @private\n */\n\nvar ERRORS = {\n \"1\": \"Passed invalid arguments to hsl, please pass multiple numbers e.g. hsl(360, 0.75, 0.4) or an object e.g. rgb({ hue: 255, saturation: 0.4, lightness: 0.75 }).\\n\\n\",\n \"2\": \"Passed invalid arguments to hsla, please pass multiple numbers e.g. hsla(360, 0.75, 0.4, 0.7) or an object e.g. rgb({ hue: 255, saturation: 0.4, lightness: 0.75, alpha: 0.7 }).\\n\\n\",\n \"3\": \"Passed an incorrect argument to a color function, please pass a string representation of a color.\\n\\n\",\n \"4\": \"Couldn't generate valid rgb string from %s, it returned %s.\\n\\n\",\n \"5\": \"Couldn't parse the color string. Please provide the color as a string in hex, rgb, rgba, hsl or hsla notation.\\n\\n\",\n \"6\": \"Passed invalid arguments to rgb, please pass multiple numbers e.g. rgb(255, 205, 100) or an object e.g. rgb({ red: 255, green: 205, blue: 100 }).\\n\\n\",\n \"7\": \"Passed invalid arguments to rgba, please pass multiple numbers e.g. rgb(255, 205, 100, 0.75) or an object e.g. rgb({ red: 255, green: 205, blue: 100, alpha: 0.75 }).\\n\\n\",\n \"8\": \"Passed invalid argument to toColorString, please pass a RgbColor, RgbaColor, HslColor or HslaColor object.\\n\\n\",\n \"9\": \"Please provide a number of steps to the modularScale helper.\\n\\n\",\n \"10\": \"Please pass a number or one of the predefined scales to the modularScale helper as the ratio.\\n\\n\",\n \"11\": \"Invalid value passed as base to modularScale, expected number or em string but got \\\"%s\\\"\\n\\n\",\n \"12\": \"Expected a string ending in \\\"px\\\" or a number passed as the first argument to %s(), got \\\"%s\\\" instead.\\n\\n\",\n \"13\": \"Expected a string ending in \\\"px\\\" or a number passed as the second argument to %s(), got \\\"%s\\\" instead.\\n\\n\",\n \"14\": \"Passed invalid pixel value (\\\"%s\\\") to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"15\": \"Passed invalid base value (\\\"%s\\\") to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"16\": \"You must provide a template to this method.\\n\\n\",\n \"17\": \"You passed an unsupported selector state to this method.\\n\\n\",\n \"18\": \"minScreen and maxScreen must be provided as stringified numbers with the same units.\\n\\n\",\n \"19\": \"fromSize and toSize must be provided as stringified numbers with the same units.\\n\\n\",\n \"20\": \"expects either an array of objects or a single object with the properties prop, fromSize, and toSize.\\n\\n\",\n \"21\": \"expects the objects in the first argument array to have the properties `prop`, `fromSize`, and `toSize`.\\n\\n\",\n \"22\": \"expects the first argument object to have the properties `prop`, `fromSize`, and `toSize`.\\n\\n\",\n \"23\": \"fontFace expects a name of a font-family.\\n\\n\",\n \"24\": \"fontFace expects either the path to the font file(s) or a name of a local copy.\\n\\n\",\n \"25\": \"fontFace expects localFonts to be an array.\\n\\n\",\n \"26\": \"fontFace expects fileFormats to be an array.\\n\\n\",\n \"27\": \"radialGradient requries at least 2 color-stops to properly render.\\n\\n\",\n \"28\": \"Please supply a filename to retinaImage() as the first argument.\\n\\n\",\n \"29\": \"Passed invalid argument to triangle, please pass correct pointingDirection e.g. 'right'.\\n\\n\",\n \"30\": \"Passed an invalid value to `height` or `width`. Please provide a pixel based unit.\\n\\n\",\n \"31\": \"The animation shorthand only takes 8 arguments. See the specification for more information: http://mdn.io/animation\\n\\n\",\n \"32\": \"To pass multiple animations please supply them in arrays, e.g. animation(['rotate', '2s'], ['move', '1s'])\\nTo pass a single animation please supply them in simple values, e.g. animation('rotate', '2s')\\n\\n\",\n \"33\": \"The animation shorthand arrays can only have 8 elements. See the specification for more information: http://mdn.io/animation\\n\\n\",\n \"34\": \"borderRadius expects a radius value as a string or number as the second argument.\\n\\n\",\n \"35\": \"borderRadius expects one of \\\"top\\\", \\\"bottom\\\", \\\"left\\\" or \\\"right\\\" as the first argument.\\n\\n\",\n \"36\": \"Property must be a string value.\\n\\n\",\n \"37\": \"Syntax Error at %s.\\n\\n\",\n \"38\": \"Formula contains a function that needs parentheses at %s.\\n\\n\",\n \"39\": \"Formula is missing closing parenthesis at %s.\\n\\n\",\n \"40\": \"Formula has too many closing parentheses at %s.\\n\\n\",\n \"41\": \"All values in a formula must have the same unit or be unitless.\\n\\n\",\n \"42\": \"Please provide a number of steps to the modularScale helper.\\n\\n\",\n \"43\": \"Please pass a number or one of the predefined scales to the modularScale helper as the ratio.\\n\\n\",\n \"44\": \"Invalid value passed as base to modularScale, expected number or em/rem string but got %s.\\n\\n\",\n \"45\": \"Passed invalid argument to hslToColorString, please pass a HslColor or HslaColor object.\\n\\n\",\n \"46\": \"Passed invalid argument to rgbToColorString, please pass a RgbColor or RgbaColor object.\\n\\n\",\n \"47\": \"minScreen and maxScreen must be provided as stringified numbers with the same units.\\n\\n\",\n \"48\": \"fromSize and toSize must be provided as stringified numbers with the same units.\\n\\n\",\n \"49\": \"Expects either an array of objects or a single object with the properties prop, fromSize, and toSize.\\n\\n\",\n \"50\": \"Expects the objects in the first argument array to have the properties prop, fromSize, and toSize.\\n\\n\",\n \"51\": \"Expects the first argument object to have the properties prop, fromSize, and toSize.\\n\\n\",\n \"52\": \"fontFace expects either the path to the font file(s) or a name of a local copy.\\n\\n\",\n \"53\": \"fontFace expects localFonts to be an array.\\n\\n\",\n \"54\": \"fontFace expects fileFormats to be an array.\\n\\n\",\n \"55\": \"fontFace expects a name of a font-family.\\n\\n\",\n \"56\": \"linearGradient requries at least 2 color-stops to properly render.\\n\\n\",\n \"57\": \"radialGradient requries at least 2 color-stops to properly render.\\n\\n\",\n \"58\": \"Please supply a filename to retinaImage() as the first argument.\\n\\n\",\n \"59\": \"Passed invalid argument to triangle, please pass correct pointingDirection e.g. 'right'.\\n\\n\",\n \"60\": \"Passed an invalid value to `height` or `width`. Please provide a pixel based unit.\\n\\n\",\n \"61\": \"Property must be a string value.\\n\\n\",\n \"62\": \"borderRadius expects a radius value as a string or number as the second argument.\\n\\n\",\n \"63\": \"borderRadius expects one of \\\"top\\\", \\\"bottom\\\", \\\"left\\\" or \\\"right\\\" as the first argument.\\n\\n\",\n \"64\": \"The animation shorthand only takes 8 arguments. See the specification for more information: http://mdn.io/animation.\\n\\n\",\n \"65\": \"To pass multiple animations please supply them in arrays, e.g. animation(['rotate', '2s'], ['move', '1s'])\\\\nTo pass a single animation please supply them in simple values, e.g. animation('rotate', '2s').\\n\\n\",\n \"66\": \"The animation shorthand arrays can only have 8 elements. See the specification for more information: http://mdn.io/animation.\\n\\n\",\n \"67\": \"You must provide a template to this method.\\n\\n\",\n \"68\": \"You passed an unsupported selector state to this method.\\n\\n\",\n \"69\": \"Expected a string ending in \\\"px\\\" or a number passed as the first argument to %s(), got %s instead.\\n\\n\",\n \"70\": \"Expected a string ending in \\\"px\\\" or a number passed as the second argument to %s(), got %s instead.\\n\\n\",\n \"71\": \"Passed invalid pixel value %s to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"72\": \"Passed invalid base value %s to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"73\": \"Please provide a valid CSS variable.\\n\\n\",\n \"74\": \"CSS variable not found and no default was provided.\\n\\n\",\n \"75\": \"important requires a valid style object, got a %s instead.\\n\\n\",\n \"76\": \"fromSize and toSize must be provided as stringified numbers with the same units as minScreen and maxScreen.\\n\"\n};\n/**\n * super basic version of sprintf\n * @private\n */\n\nfunction format() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var a = args[0];\n var b = [];\n var c;\n\n for (c = 1; c < args.length; c += 1) {\n b.push(args[c]);\n }\n\n b.forEach(function (d) {\n a = a.replace(/%[a-z]/, d);\n });\n return a;\n}\n/**\n * Create an error file out of errors.md for development and a simple web link to the full errors\n * in production mode.\n * @private\n */\n\n\nvar PolishedError = /*#__PURE__*/function (_Error) {\n _inheritsLoose(PolishedError, _Error);\n\n function PolishedError(code) {\n var _this;\n\n if (process.env.NODE_ENV === 'production') {\n _this = _Error.call(this, \"An error occurred. See https://github.com/styled-components/polished/blob/main/src/internalHelpers/errors.md#\" + code + \" for more information.\") || this;\n } else {\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 _this = _Error.call(this, format.apply(void 0, [ERRORS[code]].concat(args))) || this;\n }\n\n return _assertThisInitialized(_this);\n }\n\n return PolishedError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nvar unitRegExp = /((?!\\w)a|na|hc|mc|dg|me[r]?|xe|ni(?![a-zA-Z])|mm|cp|tp|xp|q(?!s)|hv|xamv|nimv|wv|sm|s(?!\\D|$)|ged|darg?|nrut)/g; // Merges additional math functionality into the defaults.\n\nfunction mergeSymbolMaps(additionalSymbols) {\n var symbolMap = {};\n symbolMap.symbols = additionalSymbols ? _extends({}, defaultSymbols.symbols, additionalSymbols.symbols) : _extends({}, defaultSymbols.symbols);\n return symbolMap;\n}\n\nfunction exec(operators, values) {\n var _ref;\n\n var op = operators.pop();\n values.push(op.f.apply(op, (_ref = []).concat.apply(_ref, values.splice(-op.argCount))));\n return op.precedence;\n}\n\nfunction calculate(expression, additionalSymbols) {\n var symbolMap = mergeSymbolMaps(additionalSymbols);\n var match;\n var operators = [symbolMap.symbols['('].prefix];\n var values = [];\n var pattern = new RegExp( // Pattern for numbers\n \"\\\\d+(?:\\\\.\\\\d+)?|\" + // ...and patterns for individual operators/function names\n Object.keys(symbolMap.symbols).map(function (key) {\n return symbolMap.symbols[key];\n }) // longer symbols should be listed first\n // $FlowFixMe\n .sort(function (a, b) {\n return b.symbol.length - a.symbol.length;\n }) // $FlowFixMe\n .map(function (val) {\n return val.regSymbol;\n }).join('|') + \"|(\\\\S)\", 'g');\n pattern.lastIndex = 0; // Reset regular expression object\n\n var afterValue = false;\n\n do {\n match = pattern.exec(expression);\n\n var _ref2 = match || [')', undefined],\n token = _ref2[0],\n bad = _ref2[1];\n\n var notNumber = symbolMap.symbols[token];\n var notNewValue = notNumber && !notNumber.prefix && !notNumber.func;\n var notAfterValue = !notNumber || !notNumber.postfix && !notNumber.infix; // Check for syntax errors:\n\n if (bad || (afterValue ? notAfterValue : notNewValue)) {\n throw new PolishedError(37, match ? match.index : expression.length, expression);\n }\n\n if (afterValue) {\n // We either have an infix or postfix operator (they should be mutually exclusive)\n var curr = notNumber.postfix || notNumber.infix;\n\n do {\n var prev = operators[operators.length - 1];\n if ((curr.precedence - prev.precedence || prev.rightToLeft) > 0) break; // Apply previous operator, since it has precedence over current one\n } while (exec(operators, values)); // Exit loop after executing an opening parenthesis or function\n\n\n afterValue = curr.notation === 'postfix';\n\n if (curr.symbol !== ')') {\n operators.push(curr); // Postfix always has precedence over any operator that follows after it\n\n if (afterValue) exec(operators, values);\n }\n } else if (notNumber) {\n // prefix operator or function\n operators.push(notNumber.prefix || notNumber.func);\n\n if (notNumber.func) {\n // Require an opening parenthesis\n match = pattern.exec(expression);\n\n if (!match || match[0] !== '(') {\n throw new PolishedError(38, match ? match.index : expression.length, expression);\n }\n }\n } else {\n // number\n values.push(+token);\n afterValue = true;\n }\n } while (match && operators.length);\n\n if (operators.length) {\n throw new PolishedError(39, match ? match.index : expression.length, expression);\n } else if (match) {\n throw new PolishedError(40, match ? match.index : expression.length, expression);\n } else {\n return values.pop();\n }\n}\n\nfunction reverseString(str) {\n return str.split('').reverse().join('');\n}\n/**\n * Helper for doing math with CSS Units. Accepts a formula as a string. All values in the formula must have the same unit (or be unitless). Supports complex formulas utliziing addition, subtraction, multiplication, division, square root, powers, factorial, min, max, as well as parentheses for order of operation.\n *\n *In cases where you need to do calculations with mixed units where one unit is a [relative length unit](https://developer.mozilla.org/en-US/docs/Web/CSS/length#Relative_length_units), you will want to use [CSS Calc](https://developer.mozilla.org/en-US/docs/Web/CSS/calc).\n *\n * *warning* While we've done everything possible to ensure math safely evalutes formulas expressed as strings, you should always use extreme caution when passing `math` user provided values.\n * @example\n * // Styles as object usage\n * const styles = {\n * fontSize: math('12rem + 8rem'),\n * fontSize: math('(12px + 2px) * 3'),\n * fontSize: math('3px^2 + sqrt(4)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * fontSize: ${math('12rem + 8rem')};\n * fontSize: ${math('(12px + 2px) * 3')};\n * fontSize: ${math('3px^2 + sqrt(4)')};\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * fontSize: '20rem',\n * fontSize: '42px',\n * fontSize: '11px',\n * }\n */\n\n\nfunction math(formula, additionalSymbols) {\n var reversedFormula = reverseString(formula);\n var formulaMatch = reversedFormula.match(unitRegExp); // Check that all units are the same\n\n if (formulaMatch && !formulaMatch.every(function (unit) {\n return unit === formulaMatch[0];\n })) {\n throw new PolishedError(41);\n }\n\n var cleanFormula = reverseString(reversedFormula.replace(unitRegExp, ''));\n return \"\" + calculate(cleanFormula, additionalSymbols) + (formulaMatch ? reverseString(formulaMatch[0]) : '');\n}\n\nvar cssVariableRegex = /--[\\S]*/g;\n/**\n * Fetches the value of a passed CSS Variable in the :root scope, or otherwise returns a defaultValue if provided.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'background': cssVar('--background-color'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${cssVar('--background-color')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'background': 'red'\n * }\n */\n\nfunction cssVar(cssVariable, defaultValue) {\n if (!cssVariable || !cssVariable.match(cssVariableRegex)) {\n throw new PolishedError(73);\n }\n\n var variableValue;\n /* eslint-disable */\n\n /* istanbul ignore next */\n\n if (typeof document !== 'undefined' && document.documentElement !== null) {\n variableValue = getComputedStyle(document.documentElement).getPropertyValue(cssVariable);\n }\n /* eslint-enable */\n\n\n if (variableValue) {\n return variableValue.trim();\n } else if (defaultValue) {\n return defaultValue;\n }\n\n throw new PolishedError(74);\n} // @private\n\n\nfunction capitalizeString(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nvar positionMap = ['Top', 'Right', 'Bottom', 'Left'];\n\nfunction generateProperty(property, position) {\n if (!property) return position.toLowerCase();\n var splitProperty = property.split('-');\n\n if (splitProperty.length > 1) {\n splitProperty.splice(1, 0, position);\n return splitProperty.reduce(function (acc, val) {\n return \"\" + acc + capitalizeString(val);\n });\n }\n\n var joinedProperty = property.replace(/([a-z])([A-Z])/g, \"$1\" + position + \"$2\");\n return property === joinedProperty ? \"\" + property + position : joinedProperty;\n}\n\nfunction generateStyles(property, valuesWithDefaults) {\n var styles = {};\n\n for (var i = 0; i < valuesWithDefaults.length; i += 1) {\n if (valuesWithDefaults[i] || valuesWithDefaults[i] === 0) {\n styles[generateProperty(property, positionMap[i])] = valuesWithDefaults[i];\n }\n }\n\n return styles;\n}\n/**\n * Enables shorthand for direction-based properties. It accepts a property (hyphenated or camelCased) and up to four values that map to top, right, bottom, and left, respectively. You can optionally pass an empty string to get only the directional values as properties. You can also optionally pass a null argument for a directional value to ignore it.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...directionalProperty('padding', '12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${directionalProperty('padding', '12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'paddingTop': '12px',\n * 'paddingRight': '24px',\n * 'paddingBottom': '36px',\n * 'paddingLeft': '48px'\n * }\n */\n\n\nfunction directionalProperty(property) {\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n values[_key - 1] = arguments[_key];\n } // prettier-ignore\n\n\n var firstValue = values[0],\n _values$ = values[1],\n secondValue = _values$ === void 0 ? firstValue : _values$,\n _values$2 = values[2],\n thirdValue = _values$2 === void 0 ? firstValue : _values$2,\n _values$3 = values[3],\n fourthValue = _values$3 === void 0 ? secondValue : _values$3;\n var valuesWithDefaults = [firstValue, secondValue, thirdValue, fourthValue];\n return generateStyles(property, valuesWithDefaults);\n}\n/**\n * Check if a string ends with something\n * @private\n */\n\n\nfunction endsWith(string, suffix) {\n return string.substr(-suffix.length) === suffix;\n}\n\nvar cssRegex = /^([+-]?(?:\\d+|\\d*\\.\\d+))([a-z]*|%)$/;\n/**\n * Returns a given CSS value minus its unit of measure.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * '--dimension': stripUnit('100px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * --dimension: ${stripUnit('100px')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * '--dimension': 100\n * }\n */\n\nfunction stripUnit(value) {\n if (typeof value !== 'string') return value;\n var matchedValue = value.match(cssRegex);\n return matchedValue ? parseFloat(value) : value;\n}\n/**\n * Factory function that creates pixel-to-x converters\n * @private\n */\n\n\nvar pxtoFactory = function pxtoFactory(to) {\n return function (pxval, base) {\n if (base === void 0) {\n base = '16px';\n }\n\n var newPxval = pxval;\n var newBase = base;\n\n if (typeof pxval === 'string') {\n if (!endsWith(pxval, 'px')) {\n throw new PolishedError(69, to, pxval);\n }\n\n newPxval = stripUnit(pxval);\n }\n\n if (typeof base === 'string') {\n if (!endsWith(base, 'px')) {\n throw new PolishedError(70, to, base);\n }\n\n newBase = stripUnit(base);\n }\n\n if (typeof newPxval === 'string') {\n throw new PolishedError(71, pxval, to);\n }\n\n if (typeof newBase === 'string') {\n throw new PolishedError(72, base, to);\n }\n\n return \"\" + newPxval / newBase + to;\n };\n};\n/**\n * Convert pixel value to ems. The default base value is 16px, but can be changed by passing a\n * second argument to the function.\n * @function\n * @param {string|number} pxval\n * @param {string|number} [base='16px']\n * @example\n * // Styles as object usage\n * const styles = {\n * 'height': em('16px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * height: ${em('16px')}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'height': '1em'\n * }\n */\n\n\nvar em = /*#__PURE__*/pxtoFactory('em');\nvar cssRegex$1 = /^([+-]?(?:\\d+|\\d*\\.\\d+))([a-z]*|%)$/;\n/**\n * Returns a given CSS value and its unit as elements of an array.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * '--dimension': getValueAndUnit('100px')[0],\n * '--unit': getValueAndUnit('100px')[1],\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * --dimension: ${getValueAndUnit('100px')[0]};\n * --unit: ${getValueAndUnit('100px')[1]};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * '--dimension': 100,\n * '--unit': 'px',\n * }\n */\n\nfunction getValueAndUnit(value) {\n if (typeof value !== 'string') return [value, ''];\n var matchedValue = value.match(cssRegex$1);\n if (matchedValue) return [parseFloat(value), matchedValue[2]];\n return [value, undefined];\n}\n/**\n * Helper for targeting rules in a style block generated by polished modules that need !important-level specificity. Can optionally specify a rule (or rules) to target specific rules.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...important(cover())\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${important(cover())}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * 'position': 'absolute !important',\n * 'top': '0 !important',\n * 'right: '0 !important',\n * 'bottom': '0 !important',\n * 'left: '0 !important'\n * }\n */\n\n\nfunction important(styleBlock, rules) {\n if (_typeof(styleBlock) !== 'object' || styleBlock === null) {\n throw new PolishedError(75, _typeof(styleBlock));\n }\n\n var newStyleBlock = {};\n Object.keys(styleBlock).forEach(function (key) {\n if (_typeof(styleBlock[key]) === 'object' && styleBlock[key] !== null) {\n newStyleBlock[key] = important(styleBlock[key], rules);\n } else if (!rules || rules && (rules === key || rules.indexOf(key) >= 0)) {\n newStyleBlock[key] = styleBlock[key] + \" !important\";\n } else {\n newStyleBlock[key] = styleBlock[key];\n }\n });\n return newStyleBlock;\n}\n\nvar ratioNames = {\n minorSecond: 1.067,\n majorSecond: 1.125,\n minorThird: 1.2,\n majorThird: 1.25,\n perfectFourth: 1.333,\n augFourth: 1.414,\n perfectFifth: 1.5,\n minorSixth: 1.6,\n goldenSection: 1.618,\n majorSixth: 1.667,\n minorSeventh: 1.778,\n majorSeventh: 1.875,\n octave: 2,\n majorTenth: 2.5,\n majorEleventh: 2.667,\n majorTwelfth: 3,\n doubleOctave: 4\n};\n\nfunction getRatio(ratioName) {\n return ratioNames[ratioName];\n}\n/**\n * Establish consistent measurements and spacial relationships throughout your projects by incrementing an em or rem value up or down a defined scale. We provide a list of commonly used scales as pre-defined variables.\n * @example\n * // Styles as object usage\n * const styles = {\n * // Increment two steps up the default scale\n * 'fontSize': modularScale(2)\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * // Increment two steps up the default scale\n * fontSize: ${modularScale(2)}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'fontSize': '1.77689em'\n * }\n */\n\n\nfunction modularScale(steps, base, ratio) {\n if (base === void 0) {\n base = '1em';\n }\n\n if (ratio === void 0) {\n ratio = 1.333;\n }\n\n if (typeof steps !== 'number') {\n throw new PolishedError(42);\n }\n\n if (typeof ratio === 'string' && !ratioNames[ratio]) {\n throw new PolishedError(43);\n }\n\n var _ref = typeof base === 'string' ? getValueAndUnit(base) : [base, ''],\n realBase = _ref[0],\n unit = _ref[1];\n\n var realRatio = typeof ratio === 'string' ? getRatio(ratio) : ratio;\n\n if (typeof realBase === 'string') {\n throw new PolishedError(44, base);\n }\n\n return \"\" + realBase * Math.pow(realRatio, steps) + (unit || '');\n}\n/**\n * Convert pixel value to rems. The default base value is 16px, but can be changed by passing a\n * second argument to the function.\n * @function\n * @param {string|number} pxval\n * @param {string|number} [base='16px']\n * @example\n * // Styles as object usage\n * const styles = {\n * 'height': rem('16px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * height: ${rem('16px')}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'height': '1rem'\n * }\n */\n\n\nvar rem = /*#__PURE__*/pxtoFactory('rem');\nvar functionsMap = {\n back: 'cubic-bezier(0.600, -0.280, 0.735, 0.045)',\n circ: 'cubic-bezier(0.600, 0.040, 0.980, 0.335)',\n cubic: 'cubic-bezier(0.550, 0.055, 0.675, 0.190)',\n expo: 'cubic-bezier(0.950, 0.050, 0.795, 0.035)',\n quad: 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n quart: 'cubic-bezier(0.895, 0.030, 0.685, 0.220)',\n quint: 'cubic-bezier(0.755, 0.050, 0.855, 0.060)',\n sine: 'cubic-bezier(0.470, 0.000, 0.745, 0.715)'\n};\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'transitionTimingFunction': easeIn('quad')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * transitionTimingFunction: ${easeIn('quad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'transitionTimingFunction': 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n * }\n */\n\nfunction easeIn(functionName) {\n return functionsMap[functionName.toLowerCase().trim()];\n}\n\nvar functionsMap$1 = {\n back: 'cubic-bezier(0.680, -0.550, 0.265, 1.550)',\n circ: 'cubic-bezier(0.785, 0.135, 0.150, 0.860)',\n cubic: 'cubic-bezier(0.645, 0.045, 0.355, 1.000)',\n expo: 'cubic-bezier(1.000, 0.000, 0.000, 1.000)',\n quad: 'cubic-bezier(0.455, 0.030, 0.515, 0.955)',\n quart: 'cubic-bezier(0.770, 0.000, 0.175, 1.000)',\n quint: 'cubic-bezier(0.860, 0.000, 0.070, 1.000)',\n sine: 'cubic-bezier(0.445, 0.050, 0.550, 0.950)'\n};\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'transitionTimingFunction': easeInOut('quad')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * transitionTimingFunction: ${easeInOut('quad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'transitionTimingFunction': 'cubic-bezier(0.455, 0.030, 0.515, 0.955)',\n * }\n */\n\nfunction easeInOut(functionName) {\n return functionsMap$1[functionName.toLowerCase().trim()];\n}\n\nvar functionsMap$2 = {\n back: 'cubic-bezier(0.175, 0.885, 0.320, 1.275)',\n cubic: 'cubic-bezier(0.215, 0.610, 0.355, 1.000)',\n circ: 'cubic-bezier(0.075, 0.820, 0.165, 1.000)',\n expo: 'cubic-bezier(0.190, 1.000, 0.220, 1.000)',\n quad: 'cubic-bezier(0.250, 0.460, 0.450, 0.940)',\n quart: 'cubic-bezier(0.165, 0.840, 0.440, 1.000)',\n quint: 'cubic-bezier(0.230, 1.000, 0.320, 1.000)',\n sine: 'cubic-bezier(0.390, 0.575, 0.565, 1.000)'\n};\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'transitionTimingFunction': easeOut('quad')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * transitionTimingFunction: ${easeOut('quad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'transitionTimingFunction': 'cubic-bezier(0.250, 0.460, 0.450, 0.940)',\n * }\n */\n\nfunction easeOut(functionName) {\n return functionsMap$2[functionName.toLowerCase().trim()];\n}\n/**\n * Returns a CSS calc formula for linear interpolation of a property between two values. Accepts optional minScreen (defaults to '320px') and maxScreen (defaults to '1200px').\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * fontSize: between('20px', '100px', '400px', '1000px'),\n * fontSize: between('20px', '100px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * fontSize: ${between('20px', '100px', '400px', '1000px')};\n * fontSize: ${between('20px', '100px')}\n * `\n *\n * // CSS as JS Output\n *\n * h1: {\n * 'fontSize': 'calc(-33.33333333333334px + 13.333333333333334vw)',\n * 'fontSize': 'calc(-9.090909090909093px + 9.090909090909092vw)'\n * }\n */\n\n\nfunction between(fromSize, toSize, minScreen, maxScreen) {\n if (minScreen === void 0) {\n minScreen = '320px';\n }\n\n if (maxScreen === void 0) {\n maxScreen = '1200px';\n }\n\n var _getValueAndUnit = getValueAndUnit(fromSize),\n unitlessFromSize = _getValueAndUnit[0],\n fromSizeUnit = _getValueAndUnit[1];\n\n var _getValueAndUnit2 = getValueAndUnit(toSize),\n unitlessToSize = _getValueAndUnit2[0],\n toSizeUnit = _getValueAndUnit2[1];\n\n var _getValueAndUnit3 = getValueAndUnit(minScreen),\n unitlessMinScreen = _getValueAndUnit3[0],\n minScreenUnit = _getValueAndUnit3[1];\n\n var _getValueAndUnit4 = getValueAndUnit(maxScreen),\n unitlessMaxScreen = _getValueAndUnit4[0],\n maxScreenUnit = _getValueAndUnit4[1];\n\n if (typeof unitlessMinScreen !== 'number' || typeof unitlessMaxScreen !== 'number' || !minScreenUnit || !maxScreenUnit || minScreenUnit !== maxScreenUnit) {\n throw new PolishedError(47);\n }\n\n if (typeof unitlessFromSize !== 'number' || typeof unitlessToSize !== 'number' || fromSizeUnit !== toSizeUnit) {\n throw new PolishedError(48);\n }\n\n if (fromSizeUnit !== minScreenUnit || toSizeUnit !== maxScreenUnit) {\n throw new PolishedError(76);\n }\n\n var slope = (unitlessFromSize - unitlessToSize) / (unitlessMinScreen - unitlessMaxScreen);\n var base = unitlessToSize - slope * unitlessMaxScreen;\n return \"calc(\" + base.toFixed(2) + (fromSizeUnit || '') + \" + \" + (100 * slope).toFixed(2) + \"vw)\";\n}\n/**\n * CSS to contain a float (credit to CSSMojo).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...clearFix(),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${clearFix()}\n * `\n *\n * // CSS as JS Output\n *\n * '&::after': {\n * 'clear': 'both',\n * 'content': '\"\"',\n * 'display': 'table'\n * }\n */\n\n\nfunction clearFix(parent) {\n var _ref;\n\n if (parent === void 0) {\n parent = '&';\n }\n\n var pseudoSelector = parent + \"::after\";\n return _ref = {}, _ref[pseudoSelector] = {\n clear: 'both',\n content: '\"\"',\n display: 'table'\n }, _ref;\n}\n/**\n * CSS to fully cover an area. Can optionally be passed an offset to act as a \"padding\".\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...cover()\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${cover()}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * 'position': 'absolute',\n * 'top': '0',\n * 'right: '0',\n * 'bottom': '0',\n * 'left: '0'\n * }\n */\n\n\nfunction cover(offset) {\n if (offset === void 0) {\n offset = 0;\n }\n\n return {\n position: 'absolute',\n top: offset,\n right: offset,\n bottom: offset,\n left: offset\n };\n}\n/**\n * CSS to represent truncated text with an ellipsis. You can optionally pass a max-width and number of lines before truncating.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...ellipsis('250px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${ellipsis('250px')}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * 'display': 'inline-block',\n * 'maxWidth': '250px',\n * 'overflow': 'hidden',\n * 'textOverflow': 'ellipsis',\n * 'whiteSpace': 'nowrap',\n * 'wordWrap': 'normal'\n * }\n */\n\n\nfunction ellipsis(width, lines) {\n if (lines === void 0) {\n lines = 1;\n }\n\n var styles = {\n display: 'inline-block',\n maxWidth: width || '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n wordWrap: 'normal'\n };\n return lines > 1 ? _extends({}, styles, {\n WebkitBoxOrient: 'vertical',\n WebkitLineClamp: lines,\n display: '-webkit-box',\n whiteSpace: 'normal'\n }) : styles;\n}\n\nfunction _createForOfIteratorHelperLoose(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 return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\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 it = o[Symbol.iterator]();\n return it.next.bind(it);\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/**\n * Returns a set of media queries that resizes a property (or set of properties) between a provided fromSize and toSize. Accepts optional minScreen (defaults to '320px') and maxScreen (defaults to '1200px') to constrain the interpolation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...fluidRange(\n * {\n * prop: 'padding',\n * fromSize: '20px',\n * toSize: '100px',\n * },\n * '400px',\n * '1000px',\n * )\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${fluidRange(\n * {\n * prop: 'padding',\n * fromSize: '20px',\n * toSize: '100px',\n * },\n * '400px',\n * '1000px',\n * )}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * \"@media (min-width: 1000px)\": Object {\n * \"padding\": \"100px\",\n * },\n * \"@media (min-width: 400px)\": Object {\n * \"padding\": \"calc(-33.33333333333334px + 13.333333333333334vw)\",\n * },\n * \"padding\": \"20px\",\n * }\n */\n\n\nfunction fluidRange(cssProp, minScreen, maxScreen) {\n if (minScreen === void 0) {\n minScreen = '320px';\n }\n\n if (maxScreen === void 0) {\n maxScreen = '1200px';\n }\n\n if (!Array.isArray(cssProp) && _typeof(cssProp) !== 'object' || cssProp === null) {\n throw new PolishedError(49);\n }\n\n if (Array.isArray(cssProp)) {\n var mediaQueries = {};\n var fallbacks = {};\n\n for (var _iterator = _createForOfIteratorHelperLoose(cssProp), _step; !(_step = _iterator()).done;) {\n var _extends2, _extends3;\n\n var obj = _step.value;\n\n if (!obj.prop || !obj.fromSize || !obj.toSize) {\n throw new PolishedError(50);\n }\n\n fallbacks[obj.prop] = obj.fromSize;\n mediaQueries[\"@media (min-width: \" + minScreen + \")\"] = _extends({}, mediaQueries[\"@media (min-width: \" + minScreen + \")\"], (_extends2 = {}, _extends2[obj.prop] = between(obj.fromSize, obj.toSize, minScreen, maxScreen), _extends2));\n mediaQueries[\"@media (min-width: \" + maxScreen + \")\"] = _extends({}, mediaQueries[\"@media (min-width: \" + maxScreen + \")\"], (_extends3 = {}, _extends3[obj.prop] = obj.toSize, _extends3));\n }\n\n return _extends({}, fallbacks, mediaQueries);\n } else {\n var _ref, _ref2, _ref3;\n\n if (!cssProp.prop || !cssProp.fromSize || !cssProp.toSize) {\n throw new PolishedError(51);\n }\n\n return _ref3 = {}, _ref3[cssProp.prop] = cssProp.fromSize, _ref3[\"@media (min-width: \" + minScreen + \")\"] = (_ref = {}, _ref[cssProp.prop] = between(cssProp.fromSize, cssProp.toSize, minScreen, maxScreen), _ref), _ref3[\"@media (min-width: \" + maxScreen + \")\"] = (_ref2 = {}, _ref2[cssProp.prop] = cssProp.toSize, _ref2), _ref3;\n }\n}\n\nvar dataURIRegex = /^\\s*data:([a-z]+\\/[a-z-]+(;[a-z-]+=[a-z-]+)?)?(;charset=[a-z0-9-]+)?(;base64)?,[a-z0-9!$&',()*+,;=\\-._~:@/?%\\s]*\\s*$/i;\nvar formatHintMap = {\n woff: 'woff',\n woff2: 'woff2',\n ttf: 'truetype',\n otf: 'opentype',\n eot: 'embedded-opentype',\n svg: 'svg',\n svgz: 'svg'\n};\n\nfunction generateFormatHint(format, formatHint) {\n if (!formatHint) return '';\n return \" format(\\\"\" + formatHintMap[format] + \"\\\")\";\n}\n\nfunction isDataURI(fontFilePath) {\n return !!fontFilePath.match(dataURIRegex);\n}\n\nfunction generateFileReferences(fontFilePath, fileFormats, formatHint) {\n if (isDataURI(fontFilePath)) {\n return \"url(\\\"\" + fontFilePath + \"\\\")\" + generateFormatHint(fileFormats[0], formatHint);\n }\n\n var fileFontReferences = fileFormats.map(function (format) {\n return \"url(\\\"\" + fontFilePath + \".\" + format + \"\\\")\" + generateFormatHint(format, formatHint);\n });\n return fileFontReferences.join(', ');\n}\n\nfunction generateLocalReferences(localFonts) {\n var localFontReferences = localFonts.map(function (font) {\n return \"local(\\\"\" + font + \"\\\")\";\n });\n return localFontReferences.join(', ');\n}\n\nfunction generateSources(fontFilePath, localFonts, fileFormats, formatHint) {\n var fontReferences = [];\n if (localFonts) fontReferences.push(generateLocalReferences(localFonts));\n\n if (fontFilePath) {\n fontReferences.push(generateFileReferences(fontFilePath, fileFormats, formatHint));\n }\n\n return fontReferences.join(', ');\n}\n/**\n * CSS for a @font-face declaration. Defaults to check for local copies of the font on the user's machine. You can disable this by passing `null` to localFonts.\n *\n * @example\n * // Styles as object basic usage\n * const styles = {\n * ...fontFace({\n * 'fontFamily': 'Sans-Pro',\n * 'fontFilePath': 'path/to/file'\n * })\n * }\n *\n * // styled-components basic usage\n * const GlobalStyle = createGlobalStyle`${\n * fontFace({\n * 'fontFamily': 'Sans-Pro',\n * 'fontFilePath': 'path/to/file'\n * }\n * )}`\n *\n * // CSS as JS Output\n *\n * '@font-face': {\n * 'fontFamily': 'Sans-Pro',\n * 'src': 'url(\"path/to/file.eot\"), url(\"path/to/file.woff2\"), url(\"path/to/file.woff\"), url(\"path/to/file.ttf\"), url(\"path/to/file.svg\")',\n * }\n */\n\n\nfunction fontFace(_ref) {\n var fontFamily = _ref.fontFamily,\n fontFilePath = _ref.fontFilePath,\n fontStretch = _ref.fontStretch,\n fontStyle = _ref.fontStyle,\n fontVariant = _ref.fontVariant,\n fontWeight = _ref.fontWeight,\n _ref$fileFormats = _ref.fileFormats,\n fileFormats = _ref$fileFormats === void 0 ? ['eot', 'woff2', 'woff', 'ttf', 'svg'] : _ref$fileFormats,\n _ref$formatHint = _ref.formatHint,\n formatHint = _ref$formatHint === void 0 ? false : _ref$formatHint,\n _ref$localFonts = _ref.localFonts,\n localFonts = _ref$localFonts === void 0 ? [fontFamily] : _ref$localFonts,\n unicodeRange = _ref.unicodeRange,\n fontDisplay = _ref.fontDisplay,\n fontVariationSettings = _ref.fontVariationSettings,\n fontFeatureSettings = _ref.fontFeatureSettings; // Error Handling\n\n if (!fontFamily) throw new PolishedError(55);\n\n if (!fontFilePath && !localFonts) {\n throw new PolishedError(52);\n }\n\n if (localFonts && !Array.isArray(localFonts)) {\n throw new PolishedError(53);\n }\n\n if (!Array.isArray(fileFormats)) {\n throw new PolishedError(54);\n }\n\n var fontFaceDeclaration = {\n '@font-face': {\n fontFamily: fontFamily,\n src: generateSources(fontFilePath, localFonts, fileFormats, formatHint),\n unicodeRange: unicodeRange,\n fontStretch: fontStretch,\n fontStyle: fontStyle,\n fontVariant: fontVariant,\n fontWeight: fontWeight,\n fontDisplay: fontDisplay,\n fontVariationSettings: fontVariationSettings,\n fontFeatureSettings: fontFeatureSettings\n }\n }; // Removes undefined fields for cleaner css object.\n\n return JSON.parse(JSON.stringify(fontFaceDeclaration));\n}\n/**\n * CSS to hide text to show a background image in a SEO-friendly way.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'backgroundImage': 'url(logo.png)',\n * ...hideText(),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * backgroundImage: url(logo.png);\n * ${hideText()};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'backgroundImage': 'url(logo.png)',\n * 'textIndent': '101%',\n * 'overflow': 'hidden',\n * 'whiteSpace': 'nowrap',\n * }\n */\n\n\nfunction hideText() {\n return {\n textIndent: '101%',\n overflow: 'hidden',\n whiteSpace: 'nowrap'\n };\n}\n/**\n * CSS to hide content visually but remain accessible to screen readers.\n * from [HTML5 Boilerplate](https://github.com/h5bp/html5-boilerplate/blob/9a176f57af1cfe8ec70300da4621fb9b07e5fa31/src/css/main.css#L121)\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...hideVisually(),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${hideVisually()};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'border': '0',\n * 'clip': 'rect(0 0 0 0)',\n * 'height': '1px',\n * 'margin': '-1px',\n * 'overflow': 'hidden',\n * 'padding': '0',\n * 'position': 'absolute',\n * 'whiteSpace': 'nowrap',\n * 'width': '1px',\n * }\n */\n\n\nfunction hideVisually() {\n return {\n border: '0',\n clip: 'rect(0 0 0 0)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: '0',\n position: 'absolute',\n whiteSpace: 'nowrap',\n width: '1px'\n };\n}\n/**\n * Generates a media query to target HiDPI devices.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * [hiDPI(1.5)]: {\n * width: 200px;\n * }\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${hiDPI(1.5)} {\n * width: 200px;\n * }\n * `\n *\n * // CSS as JS Output\n *\n * '@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n * only screen and (min--moz-device-pixel-ratio: 1.5),\n * only screen and (-o-min-device-pixel-ratio: 1.5/1),\n * only screen and (min-resolution: 144dpi),\n * only screen and (min-resolution: 1.5dppx)': {\n * 'width': '200px',\n * }\n */\n\n\nfunction hiDPI(ratio) {\n if (ratio === void 0) {\n ratio = 1.3;\n }\n\n return \"\\n @media only screen and (-webkit-min-device-pixel-ratio: \" + ratio + \"),\\n only screen and (min--moz-device-pixel-ratio: \" + ratio + \"),\\n only screen and (-o-min-device-pixel-ratio: \" + ratio + \"/1),\\n only screen and (min-resolution: \" + Math.round(ratio * 96) + \"dpi),\\n only screen and (min-resolution: \" + ratio + \"dppx)\\n \";\n}\n\nfunction constructGradientValue(literals) {\n var template = '';\n\n for (var _len = arguments.length, substitutions = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n substitutions[_key - 1] = arguments[_key];\n }\n\n for (var i = 0; i < literals.length; i += 1) {\n template += literals[i];\n\n if (i === substitutions.length - 1 && substitutions[i]) {\n var definedValues = substitutions.filter(function (substitute) {\n return !!substitute;\n }); // Adds leading coma if properties preceed color-stops\n\n if (definedValues.length > 1) {\n template = template.slice(0, -1);\n template += \", \" + substitutions[i]; // No trailing space if color-stops is the only param provided\n } else if (definedValues.length === 1) {\n template += \"\" + substitutions[i];\n }\n } else if (substitutions[i]) {\n template += substitutions[i] + \" \";\n }\n }\n\n return template.trim();\n}\n\nfunction _templateObject() {\n var data = _taggedTemplateLiteralLoose([\"linear-gradient(\", \"\", \")\"]);\n\n _templateObject = function _templateObject() {\n return data;\n };\n\n return data;\n}\n/**\n * CSS for declaring a linear gradient, including a fallback background-color. The fallback is either the first color-stop or an explicitly passed fallback color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...linearGradient({\n colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n toDirection: 'to top right',\n fallback: '#FFF',\n })\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${linearGradient({\n colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n toDirection: 'to top right',\n fallback: '#FFF',\n })}\n *`\n *\n * // CSS as JS Output\n *\n * div: {\n * 'backgroundColor': '#FFF',\n * 'backgroundImage': 'linear-gradient(to top right, #00FFFF 0%, rgba(0, 0, 255, 0) 50%, #0000FF 95%)',\n * }\n */\n\n\nfunction linearGradient(_ref) {\n var colorStops = _ref.colorStops,\n fallback = _ref.fallback,\n _ref$toDirection = _ref.toDirection,\n toDirection = _ref$toDirection === void 0 ? '' : _ref$toDirection;\n\n if (!colorStops || colorStops.length < 2) {\n throw new PolishedError(56);\n }\n\n return {\n backgroundColor: fallback || colorStops[0].replace(/,\\s+/g, ',').split(' ')[0].replace(/,(?=\\S)/g, ', '),\n backgroundImage: constructGradientValue(_templateObject(), toDirection, colorStops.join(', ').replace(/,(?=\\S)/g, ', '))\n };\n}\n/**\n * CSS to normalize abnormalities across browsers (normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css)\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...normalize(),\n * }\n *\n * // styled-components usage\n * const GlobalStyle = createGlobalStyle`${normalize()}`\n *\n * // CSS as JS Output\n *\n * html {\n * lineHeight: 1.15,\n * textSizeAdjust: 100%,\n * } ...\n */\n\n\nfunction normalize() {\n var _ref;\n\n return [(_ref = {\n html: {\n lineHeight: '1.15',\n textSizeAdjust: '100%'\n },\n body: {\n margin: '0'\n },\n main: {\n display: 'block'\n },\n h1: {\n fontSize: '2em',\n margin: '0.67em 0'\n },\n hr: {\n boxSizing: 'content-box',\n height: '0',\n overflow: 'visible'\n },\n pre: {\n fontFamily: 'monospace, monospace',\n fontSize: '1em'\n },\n a: {\n backgroundColor: 'transparent'\n },\n 'abbr[title]': {\n borderBottom: 'none',\n textDecoration: 'underline'\n }\n }, _ref[\"b,\\n strong\"] = {\n fontWeight: 'bolder'\n }, _ref[\"code,\\n kbd,\\n samp\"] = {\n fontFamily: 'monospace, monospace',\n fontSize: '1em'\n }, _ref.small = {\n fontSize: '80%'\n }, _ref[\"sub,\\n sup\"] = {\n fontSize: '75%',\n lineHeight: '0',\n position: 'relative',\n verticalAlign: 'baseline'\n }, _ref.sub = {\n bottom: '-0.25em'\n }, _ref.sup = {\n top: '-0.5em'\n }, _ref.img = {\n borderStyle: 'none'\n }, _ref[\"button,\\n input,\\n optgroup,\\n select,\\n textarea\"] = {\n fontFamily: 'inherit',\n fontSize: '100%',\n lineHeight: '1.15',\n margin: '0'\n }, _ref[\"button,\\n input\"] = {\n overflow: 'visible'\n }, _ref[\"button,\\n select\"] = {\n textTransform: 'none'\n }, _ref[\"button,\\n html [type=\\\"button\\\"],\\n [type=\\\"reset\\\"],\\n [type=\\\"submit\\\"]\"] = {\n WebkitAppearance: 'button'\n }, _ref[\"button::-moz-focus-inner,\\n [type=\\\"button\\\"]::-moz-focus-inner,\\n [type=\\\"reset\\\"]::-moz-focus-inner,\\n [type=\\\"submit\\\"]::-moz-focus-inner\"] = {\n borderStyle: 'none',\n padding: '0'\n }, _ref[\"button:-moz-focusring,\\n [type=\\\"button\\\"]:-moz-focusring,\\n [type=\\\"reset\\\"]:-moz-focusring,\\n [type=\\\"submit\\\"]:-moz-focusring\"] = {\n outline: '1px dotted ButtonText'\n }, _ref.fieldset = {\n padding: '0.35em 0.625em 0.75em'\n }, _ref.legend = {\n boxSizing: 'border-box',\n color: 'inherit',\n display: 'table',\n maxWidth: '100%',\n padding: '0',\n whiteSpace: 'normal'\n }, _ref.progress = {\n verticalAlign: 'baseline'\n }, _ref.textarea = {\n overflow: 'auto'\n }, _ref[\"[type=\\\"checkbox\\\"],\\n [type=\\\"radio\\\"]\"] = {\n boxSizing: 'border-box',\n padding: '0'\n }, _ref[\"[type=\\\"number\\\"]::-webkit-inner-spin-button,\\n [type=\\\"number\\\"]::-webkit-outer-spin-button\"] = {\n height: 'auto'\n }, _ref['[type=\"search\"]'] = {\n WebkitAppearance: 'textfield',\n outlineOffset: '-2px'\n }, _ref['[type=\"search\"]::-webkit-search-decoration'] = {\n WebkitAppearance: 'none'\n }, _ref['::-webkit-file-upload-button'] = {\n WebkitAppearance: 'button',\n font: 'inherit'\n }, _ref.details = {\n display: 'block'\n }, _ref.summary = {\n display: 'list-item'\n }, _ref.template = {\n display: 'none'\n }, _ref['[hidden]'] = {\n display: 'none'\n }, _ref), {\n 'abbr[title]': {\n textDecoration: 'underline dotted'\n }\n }];\n}\n\nfunction _templateObject$1() {\n var data = _taggedTemplateLiteralLoose([\"radial-gradient(\", \"\", \"\", \"\", \")\"]);\n\n _templateObject$1 = function _templateObject() {\n return data;\n };\n\n return data;\n}\n/**\n * CSS for declaring a radial gradient, including a fallback background-color. The fallback is either the first color-stop or an explicitly passed fallback color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...radialGradient({\n * colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n * extent: 'farthest-corner at 45px 45px',\n * position: 'center',\n * shape: 'ellipse',\n * })\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${radialGradient({\n * colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n * extent: 'farthest-corner at 45px 45px',\n * position: 'center',\n * shape: 'ellipse',\n * })}\n *`\n *\n * // CSS as JS Output\n *\n * div: {\n * 'backgroundColor': '#00FFFF',\n * 'backgroundImage': 'radial-gradient(center ellipse farthest-corner at 45px 45px, #00FFFF 0%, rgba(0, 0, 255, 0) 50%, #0000FF 95%)',\n * }\n */\n\n\nfunction radialGradient(_ref) {\n var colorStops = _ref.colorStops,\n _ref$extent = _ref.extent,\n extent = _ref$extent === void 0 ? '' : _ref$extent,\n fallback = _ref.fallback,\n _ref$position = _ref.position,\n position = _ref$position === void 0 ? '' : _ref$position,\n _ref$shape = _ref.shape,\n shape = _ref$shape === void 0 ? '' : _ref$shape;\n\n if (!colorStops || colorStops.length < 2) {\n throw new PolishedError(57);\n }\n\n return {\n backgroundColor: fallback || colorStops[0].split(' ')[0],\n backgroundImage: constructGradientValue(_templateObject$1(), position, shape, extent, colorStops.join(', '))\n };\n}\n/**\n * A helper to generate a retina background image and non-retina\n * background image. The retina background image will output to a HiDPI media query. The mixin uses\n * a _2x.png filename suffix by default.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...retinaImage('my-img')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${retinaImage('my-img')}\n * `\n *\n * // CSS as JS Output\n * div {\n * backgroundImage: 'url(my-img.png)',\n * '@media only screen and (-webkit-min-device-pixel-ratio: 1.3),\n * only screen and (min--moz-device-pixel-ratio: 1.3),\n * only screen and (-o-min-device-pixel-ratio: 1.3/1),\n * only screen and (min-resolution: 144dpi),\n * only screen and (min-resolution: 1.5dppx)': {\n * backgroundImage: 'url(my-img_2x.png)',\n * }\n * }\n */\n\n\nfunction retinaImage(filename, backgroundSize, extension, retinaFilename, retinaSuffix) {\n var _ref;\n\n if (extension === void 0) {\n extension = 'png';\n }\n\n if (retinaSuffix === void 0) {\n retinaSuffix = '_2x';\n }\n\n if (!filename) {\n throw new PolishedError(58);\n } // Replace the dot at the beginning of the passed extension if one exists\n\n\n var ext = extension.replace(/^\\./, '');\n var rFilename = retinaFilename ? retinaFilename + \".\" + ext : \"\" + filename + retinaSuffix + \".\" + ext;\n return _ref = {\n backgroundImage: \"url(\" + filename + \".\" + ext + \")\"\n }, _ref[hiDPI()] = _extends({\n backgroundImage: \"url(\" + rFilename + \")\"\n }, backgroundSize ? {\n backgroundSize: backgroundSize\n } : {}), _ref;\n}\n/* eslint-disable key-spacing */\n\n\nvar functionsMap$3 = {\n easeInBack: 'cubic-bezier(0.600, -0.280, 0.735, 0.045)',\n easeInCirc: 'cubic-bezier(0.600, 0.040, 0.980, 0.335)',\n easeInCubic: 'cubic-bezier(0.550, 0.055, 0.675, 0.190)',\n easeInExpo: 'cubic-bezier(0.950, 0.050, 0.795, 0.035)',\n easeInQuad: 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n easeInQuart: 'cubic-bezier(0.895, 0.030, 0.685, 0.220)',\n easeInQuint: 'cubic-bezier(0.755, 0.050, 0.855, 0.060)',\n easeInSine: 'cubic-bezier(0.470, 0.000, 0.745, 0.715)',\n easeOutBack: 'cubic-bezier(0.175, 0.885, 0.320, 1.275)',\n easeOutCubic: 'cubic-bezier(0.215, 0.610, 0.355, 1.000)',\n easeOutCirc: 'cubic-bezier(0.075, 0.820, 0.165, 1.000)',\n easeOutExpo: 'cubic-bezier(0.190, 1.000, 0.220, 1.000)',\n easeOutQuad: 'cubic-bezier(0.250, 0.460, 0.450, 0.940)',\n easeOutQuart: 'cubic-bezier(0.165, 0.840, 0.440, 1.000)',\n easeOutQuint: 'cubic-bezier(0.230, 1.000, 0.320, 1.000)',\n easeOutSine: 'cubic-bezier(0.390, 0.575, 0.565, 1.000)',\n easeInOutBack: 'cubic-bezier(0.680, -0.550, 0.265, 1.550)',\n easeInOutCirc: 'cubic-bezier(0.785, 0.135, 0.150, 0.860)',\n easeInOutCubic: 'cubic-bezier(0.645, 0.045, 0.355, 1.000)',\n easeInOutExpo: 'cubic-bezier(1.000, 0.000, 0.000, 1.000)',\n easeInOutQuad: 'cubic-bezier(0.455, 0.030, 0.515, 0.955)',\n easeInOutQuart: 'cubic-bezier(0.770, 0.000, 0.175, 1.000)',\n easeInOutQuint: 'cubic-bezier(0.860, 0.000, 0.070, 1.000)',\n easeInOutSine: 'cubic-bezier(0.445, 0.050, 0.550, 0.950)'\n};\n/* eslint-enable key-spacing */\n\nfunction getTimingFunction(functionName) {\n return functionsMap$3[functionName];\n}\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @deprecated - This will be deprecated in v5 in favor of `easeIn`, `easeOut`, `easeInOut`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'transitionTimingFunction': timingFunctions('easeInQuad')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * transitionTimingFunction: ${timingFunctions('easeInQuad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'transitionTimingFunction': 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n * }\n */\n\n\nfunction timingFunctions(timingFunction) {\n return getTimingFunction(timingFunction);\n}\n\nvar getBorderWidth = function getBorderWidth(pointingDirection, height, width) {\n var fullWidth = \"\" + width[0] + (width[1] || '');\n var halfWidth = \"\" + width[0] / 2 + (width[1] || '');\n var fullHeight = \"\" + height[0] + (height[1] || '');\n var halfHeight = \"\" + height[0] / 2 + (height[1] || '');\n\n switch (pointingDirection) {\n case 'top':\n return \"0 \" + halfWidth + \" \" + fullHeight + \" \" + halfWidth;\n\n case 'topLeft':\n return fullWidth + \" \" + fullHeight + \" 0 0\";\n\n case 'left':\n return halfHeight + \" \" + fullWidth + \" \" + halfHeight + \" 0\";\n\n case 'bottomLeft':\n return fullWidth + \" 0 0 \" + fullHeight;\n\n case 'bottom':\n return fullHeight + \" \" + halfWidth + \" 0 \" + halfWidth;\n\n case 'bottomRight':\n return \"0 0 \" + fullWidth + \" \" + fullHeight;\n\n case 'right':\n return halfHeight + \" 0 \" + halfHeight + \" \" + fullWidth;\n\n case 'topRight':\n default:\n return \"0 \" + fullWidth + \" \" + fullHeight + \" 0\";\n }\n};\n\nvar getBorderColor = function getBorderColor(pointingDirection, foregroundColor) {\n switch (pointingDirection) {\n case 'top':\n case 'bottomRight':\n return {\n borderBottomColor: foregroundColor\n };\n\n case 'right':\n case 'bottomLeft':\n return {\n borderLeftColor: foregroundColor\n };\n\n case 'bottom':\n case 'topLeft':\n return {\n borderTopColor: foregroundColor\n };\n\n case 'left':\n case 'topRight':\n return {\n borderRightColor: foregroundColor\n };\n\n default:\n throw new PolishedError(59);\n }\n};\n/**\n * CSS to represent triangle with any pointing direction with an optional background color.\n *\n * @example\n * // Styles as object usage\n *\n * const styles = {\n * ...triangle({ pointingDirection: 'right', width: '100px', height: '100px', foregroundColor: 'red' })\n * }\n *\n *\n * // styled-components usage\n * const div = styled.div`\n * ${triangle({ pointingDirection: 'right', width: '100px', height: '100px', foregroundColor: 'red' })}\n *\n *\n * // CSS as JS Output\n *\n * div: {\n * 'borderColor': 'transparent transparent transparent red',\n * 'borderStyle': 'solid',\n * 'borderWidth': '50px 0 50px 100px',\n * 'height': '0',\n * 'width': '0',\n * }\n */\n\n\nfunction triangle(_ref) {\n var pointingDirection = _ref.pointingDirection,\n height = _ref.height,\n width = _ref.width,\n foregroundColor = _ref.foregroundColor,\n _ref$backgroundColor = _ref.backgroundColor,\n backgroundColor = _ref$backgroundColor === void 0 ? 'transparent' : _ref$backgroundColor;\n var widthAndUnit = getValueAndUnit(width);\n var heightAndUnit = getValueAndUnit(height);\n\n if (isNaN(heightAndUnit[0]) || isNaN(widthAndUnit[0])) {\n throw new PolishedError(60);\n }\n\n return _extends({\n width: '0',\n height: '0',\n borderColor: backgroundColor\n }, getBorderColor(pointingDirection, foregroundColor), {\n borderStyle: 'solid',\n borderWidth: getBorderWidth(pointingDirection, heightAndUnit, widthAndUnit)\n });\n}\n/**\n * Provides an easy way to change the `wordWrap` property.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...wordWrap('break-word')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${wordWrap('break-word')}\n * `\n *\n * // CSS as JS Output\n *\n * const styles = {\n * overflowWrap: 'break-word',\n * wordWrap: 'break-word',\n * wordBreak: 'break-all',\n * }\n */\n\n\nfunction wordWrap(wrap) {\n if (wrap === void 0) {\n wrap = 'break-word';\n }\n\n var wordBreak = wrap === 'break-word' ? 'break-all' : wrap;\n return {\n overflowWrap: wrap,\n wordWrap: wrap,\n wordBreak: wordBreak\n };\n}\n\nfunction colorToInt(color) {\n return Math.round(color * 255);\n}\n\nfunction convertToInt(red, green, blue) {\n return colorToInt(red) + \",\" + colorToInt(green) + \",\" + colorToInt(blue);\n}\n\nfunction hslToRgb(hue, saturation, lightness, convert) {\n if (convert === void 0) {\n convert = convertToInt;\n }\n\n if (saturation === 0) {\n // achromatic\n return convert(lightness, lightness, lightness);\n } // formulae from https://en.wikipedia.org/wiki/HSL_and_HSV\n\n\n var huePrime = (hue % 360 + 360) % 360 / 60;\n var chroma = (1 - Math.abs(2 * lightness - 1)) * saturation;\n var secondComponent = chroma * (1 - Math.abs(huePrime % 2 - 1));\n var red = 0;\n var green = 0;\n var blue = 0;\n\n if (huePrime >= 0 && huePrime < 1) {\n red = chroma;\n green = secondComponent;\n } else if (huePrime >= 1 && huePrime < 2) {\n red = secondComponent;\n green = chroma;\n } else if (huePrime >= 2 && huePrime < 3) {\n green = chroma;\n blue = secondComponent;\n } else if (huePrime >= 3 && huePrime < 4) {\n green = secondComponent;\n blue = chroma;\n } else if (huePrime >= 4 && huePrime < 5) {\n red = secondComponent;\n blue = chroma;\n } else if (huePrime >= 5 && huePrime < 6) {\n red = chroma;\n blue = secondComponent;\n }\n\n var lightnessModification = lightness - chroma / 2;\n var finalRed = red + lightnessModification;\n var finalGreen = green + lightnessModification;\n var finalBlue = blue + lightnessModification;\n return convert(finalRed, finalGreen, finalBlue);\n}\n\nvar namedColorMap = {\n aliceblue: 'f0f8ff',\n antiquewhite: 'faebd7',\n aqua: '00ffff',\n aquamarine: '7fffd4',\n azure: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '000',\n blanchedalmond: 'ffebcd',\n blue: '0000ff',\n blueviolet: '8a2be2',\n brown: 'a52a2a',\n burlywood: 'deb887',\n cadetblue: '5f9ea0',\n chartreuse: '7fff00',\n chocolate: 'd2691e',\n coral: 'ff7f50',\n cornflowerblue: '6495ed',\n cornsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: '00ffff',\n darkblue: '00008b',\n darkcyan: '008b8b',\n darkgoldenrod: 'b8860b',\n darkgray: 'a9a9a9',\n darkgreen: '006400',\n darkgrey: 'a9a9a9',\n darkkhaki: 'bdb76b',\n darkmagenta: '8b008b',\n darkolivegreen: '556b2f',\n darkorange: 'ff8c00',\n darkorchid: '9932cc',\n darkred: '8b0000',\n darksalmon: 'e9967a',\n darkseagreen: '8fbc8f',\n darkslateblue: '483d8b',\n darkslategray: '2f4f4f',\n darkslategrey: '2f4f4f',\n darkturquoise: '00ced1',\n darkviolet: '9400d3',\n deeppink: 'ff1493',\n deepskyblue: '00bfff',\n dimgray: '696969',\n dimgrey: '696969',\n dodgerblue: '1e90ff',\n firebrick: 'b22222',\n floralwhite: 'fffaf0',\n forestgreen: '228b22',\n fuchsia: 'ff00ff',\n gainsboro: 'dcdcdc',\n ghostwhite: 'f8f8ff',\n gold: 'ffd700',\n goldenrod: 'daa520',\n gray: '808080',\n green: '008000',\n greenyellow: 'adff2f',\n grey: '808080',\n honeydew: 'f0fff0',\n hotpink: 'ff69b4',\n indianred: 'cd5c5c',\n indigo: '4b0082',\n ivory: 'fffff0',\n khaki: 'f0e68c',\n lavender: 'e6e6fa',\n lavenderblush: 'fff0f5',\n lawngreen: '7cfc00',\n lemonchiffon: 'fffacd',\n lightblue: 'add8e6',\n lightcoral: 'f08080',\n lightcyan: 'e0ffff',\n lightgoldenrodyellow: 'fafad2',\n lightgray: 'd3d3d3',\n lightgreen: '90ee90',\n lightgrey: 'd3d3d3',\n lightpink: 'ffb6c1',\n lightsalmon: 'ffa07a',\n lightseagreen: '20b2aa',\n lightskyblue: '87cefa',\n lightslategray: '789',\n lightslategrey: '789',\n lightsteelblue: 'b0c4de',\n lightyellow: 'ffffe0',\n lime: '0f0',\n limegreen: '32cd32',\n linen: 'faf0e6',\n magenta: 'f0f',\n maroon: '800000',\n mediumaquamarine: '66cdaa',\n mediumblue: '0000cd',\n mediumorchid: 'ba55d3',\n mediumpurple: '9370db',\n mediumseagreen: '3cb371',\n mediumslateblue: '7b68ee',\n mediumspringgreen: '00fa9a',\n mediumturquoise: '48d1cc',\n mediumvioletred: 'c71585',\n midnightblue: '191970',\n mintcream: 'f5fffa',\n mistyrose: 'ffe4e1',\n moccasin: 'ffe4b5',\n navajowhite: 'ffdead',\n navy: '000080',\n oldlace: 'fdf5e6',\n olive: '808000',\n olivedrab: '6b8e23',\n orange: 'ffa500',\n orangered: 'ff4500',\n orchid: 'da70d6',\n palegoldenrod: 'eee8aa',\n palegreen: '98fb98',\n paleturquoise: 'afeeee',\n palevioletred: 'db7093',\n papayawhip: 'ffefd5',\n peachpuff: 'ffdab9',\n peru: 'cd853f',\n pink: 'ffc0cb',\n plum: 'dda0dd',\n powderblue: 'b0e0e6',\n purple: '800080',\n rebeccapurple: '639',\n red: 'f00',\n rosybrown: 'bc8f8f',\n royalblue: '4169e1',\n saddlebrown: '8b4513',\n salmon: 'fa8072',\n sandybrown: 'f4a460',\n seagreen: '2e8b57',\n seashell: 'fff5ee',\n sienna: 'a0522d',\n silver: 'c0c0c0',\n skyblue: '87ceeb',\n slateblue: '6a5acd',\n slategray: '708090',\n slategrey: '708090',\n snow: 'fffafa',\n springgreen: '00ff7f',\n steelblue: '4682b4',\n tan: 'd2b48c',\n teal: '008080',\n thistle: 'd8bfd8',\n tomato: 'ff6347',\n turquoise: '40e0d0',\n violet: 'ee82ee',\n wheat: 'f5deb3',\n white: 'fff',\n whitesmoke: 'f5f5f5',\n yellow: 'ff0',\n yellowgreen: '9acd32'\n};\n/**\n * Checks if a string is a CSS named color and returns its equivalent hex value, otherwise returns the original color.\n * @private\n */\n\nfunction nameToHex(color) {\n if (typeof color !== 'string') return color;\n var normalizedColorName = color.toLowerCase();\n return namedColorMap[normalizedColorName] ? \"#\" + namedColorMap[normalizedColorName] : color;\n}\n\nvar hexRegex = /^#[a-fA-F0-9]{6}$/;\nvar hexRgbaRegex = /^#[a-fA-F0-9]{8}$/;\nvar reducedHexRegex = /^#[a-fA-F0-9]{3}$/;\nvar reducedRgbaHexRegex = /^#[a-fA-F0-9]{4}$/;\nvar rgbRegex = /^rgb\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*\\)$/i;\nvar rgbaRegex = /^rgba\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*([-+]?[0-9]*[.]?[0-9]+)\\s*\\)$/i;\nvar hslRegex = /^hsl\\(\\s*(\\d{0,3}[.]?[0-9]+)\\s*,\\s*(\\d{1,3}[.]?[0-9]?)%\\s*,\\s*(\\d{1,3}[.]?[0-9]?)%\\s*\\)$/i;\nvar hslaRegex = /^hsla\\(\\s*(\\d{0,3}[.]?[0-9]+)\\s*,\\s*(\\d{1,3}[.]?[0-9]?)%\\s*,\\s*(\\d{1,3}[.]?[0-9]?)%\\s*,\\s*([-+]?[0-9]*[.]?[0-9]+)\\s*\\)$/i;\n/**\n * Returns an RgbColor or RgbaColor object. This utility function is only useful\n * if want to extract a color component. With the color util `toColorString` you\n * can convert a RgbColor or RgbaColor object back to a string.\n *\n * @example\n * // Assigns `{ red: 255, green: 0, blue: 0 }` to color1\n * const color1 = parseToRgb('rgb(255, 0, 0)');\n * // Assigns `{ red: 92, green: 102, blue: 112, alpha: 0.75 }` to color2\n * const color2 = parseToRgb('hsla(210, 10%, 40%, 0.75)');\n */\n\nfunction parseToRgb(color) {\n if (typeof color !== 'string') {\n throw new PolishedError(3);\n }\n\n var normalizedColor = nameToHex(color);\n\n if (normalizedColor.match(hexRegex)) {\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[2], 16),\n green: parseInt(\"\" + normalizedColor[3] + normalizedColor[4], 16),\n blue: parseInt(\"\" + normalizedColor[5] + normalizedColor[6], 16)\n };\n }\n\n if (normalizedColor.match(hexRgbaRegex)) {\n var alpha = parseFloat((parseInt(\"\" + normalizedColor[7] + normalizedColor[8], 16) / 255).toFixed(2));\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[2], 16),\n green: parseInt(\"\" + normalizedColor[3] + normalizedColor[4], 16),\n blue: parseInt(\"\" + normalizedColor[5] + normalizedColor[6], 16),\n alpha: alpha\n };\n }\n\n if (normalizedColor.match(reducedHexRegex)) {\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[1], 16),\n green: parseInt(\"\" + normalizedColor[2] + normalizedColor[2], 16),\n blue: parseInt(\"\" + normalizedColor[3] + normalizedColor[3], 16)\n };\n }\n\n if (normalizedColor.match(reducedRgbaHexRegex)) {\n var _alpha = parseFloat((parseInt(\"\" + normalizedColor[4] + normalizedColor[4], 16) / 255).toFixed(2));\n\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[1], 16),\n green: parseInt(\"\" + normalizedColor[2] + normalizedColor[2], 16),\n blue: parseInt(\"\" + normalizedColor[3] + normalizedColor[3], 16),\n alpha: _alpha\n };\n }\n\n var rgbMatched = rgbRegex.exec(normalizedColor);\n\n if (rgbMatched) {\n return {\n red: parseInt(\"\" + rgbMatched[1], 10),\n green: parseInt(\"\" + rgbMatched[2], 10),\n blue: parseInt(\"\" + rgbMatched[3], 10)\n };\n }\n\n var rgbaMatched = rgbaRegex.exec(normalizedColor);\n\n if (rgbaMatched) {\n return {\n red: parseInt(\"\" + rgbaMatched[1], 10),\n green: parseInt(\"\" + rgbaMatched[2], 10),\n blue: parseInt(\"\" + rgbaMatched[3], 10),\n alpha: parseFloat(\"\" + rgbaMatched[4])\n };\n }\n\n var hslMatched = hslRegex.exec(normalizedColor);\n\n if (hslMatched) {\n var hue = parseInt(\"\" + hslMatched[1], 10);\n var saturation = parseInt(\"\" + hslMatched[2], 10) / 100;\n var lightness = parseInt(\"\" + hslMatched[3], 10) / 100;\n var rgbColorString = \"rgb(\" + hslToRgb(hue, saturation, lightness) + \")\";\n var hslRgbMatched = rgbRegex.exec(rgbColorString);\n\n if (!hslRgbMatched) {\n throw new PolishedError(4, normalizedColor, rgbColorString);\n }\n\n return {\n red: parseInt(\"\" + hslRgbMatched[1], 10),\n green: parseInt(\"\" + hslRgbMatched[2], 10),\n blue: parseInt(\"\" + hslRgbMatched[3], 10)\n };\n }\n\n var hslaMatched = hslaRegex.exec(normalizedColor);\n\n if (hslaMatched) {\n var _hue = parseInt(\"\" + hslaMatched[1], 10);\n\n var _saturation = parseInt(\"\" + hslaMatched[2], 10) / 100;\n\n var _lightness = parseInt(\"\" + hslaMatched[3], 10) / 100;\n\n var _rgbColorString = \"rgb(\" + hslToRgb(_hue, _saturation, _lightness) + \")\";\n\n var _hslRgbMatched = rgbRegex.exec(_rgbColorString);\n\n if (!_hslRgbMatched) {\n throw new PolishedError(4, normalizedColor, _rgbColorString);\n }\n\n return {\n red: parseInt(\"\" + _hslRgbMatched[1], 10),\n green: parseInt(\"\" + _hslRgbMatched[2], 10),\n blue: parseInt(\"\" + _hslRgbMatched[3], 10),\n alpha: parseFloat(\"\" + hslaMatched[4])\n };\n }\n\n throw new PolishedError(5);\n}\n\nfunction rgbToHsl(color) {\n // make sure rgb are contained in a set of [0, 255]\n var red = color.red / 255;\n var green = color.green / 255;\n var blue = color.blue / 255;\n var max = Math.max(red, green, blue);\n var min = Math.min(red, green, blue);\n var lightness = (max + min) / 2;\n\n if (max === min) {\n // achromatic\n if (color.alpha !== undefined) {\n return {\n hue: 0,\n saturation: 0,\n lightness: lightness,\n alpha: color.alpha\n };\n } else {\n return {\n hue: 0,\n saturation: 0,\n lightness: lightness\n };\n }\n }\n\n var hue;\n var delta = max - min;\n var saturation = lightness > 0.5 ? delta / (2 - max - min) : delta / (max + min);\n\n switch (max) {\n case red:\n hue = (green - blue) / delta + (green < blue ? 6 : 0);\n break;\n\n case green:\n hue = (blue - red) / delta + 2;\n break;\n\n default:\n // blue case\n hue = (red - green) / delta + 4;\n break;\n }\n\n hue *= 60;\n\n if (color.alpha !== undefined) {\n return {\n hue: hue,\n saturation: saturation,\n lightness: lightness,\n alpha: color.alpha\n };\n }\n\n return {\n hue: hue,\n saturation: saturation,\n lightness: lightness\n };\n}\n/**\n * Returns an HslColor or HslaColor object. This utility function is only useful\n * if want to extract a color component. With the color util `toColorString` you\n * can convert a HslColor or HslaColor object back to a string.\n *\n * @example\n * // Assigns `{ hue: 0, saturation: 1, lightness: 0.5 }` to color1\n * const color1 = parseToHsl('rgb(255, 0, 0)');\n * // Assigns `{ hue: 128, saturation: 1, lightness: 0.5, alpha: 0.75 }` to color2\n * const color2 = parseToHsl('hsla(128, 100%, 50%, 0.75)');\n */\n\n\nfunction parseToHsl(color) {\n // Note: At a later stage we can optimize this function as right now a hsl\n // color would be parsed converted to rgb values and converted back to hsl.\n return rgbToHsl(parseToRgb(color));\n}\n/**\n * Reduces hex values if possible e.g. #ff8866 to #f86\n * @private\n */\n\n\nvar reduceHexValue = function reduceHexValue(value) {\n if (value.length === 7 && value[1] === value[2] && value[3] === value[4] && value[5] === value[6]) {\n return \"#\" + value[1] + value[3] + value[5];\n }\n\n return value;\n};\n\nfunction numberToHex(value) {\n var hex = value.toString(16);\n return hex.length === 1 ? \"0\" + hex : hex;\n}\n\nfunction colorToHex(color) {\n return numberToHex(Math.round(color * 255));\n}\n\nfunction convertToHex(red, green, blue) {\n return reduceHexValue(\"#\" + colorToHex(red) + colorToHex(green) + colorToHex(blue));\n}\n\nfunction hslToHex(hue, saturation, lightness) {\n return hslToRgb(hue, saturation, lightness, convertToHex);\n}\n/**\n * Returns a string value for the color. The returned result is the smallest possible hex notation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: hsl(359, 0.75, 0.4),\n * background: hsl({ hue: 360, saturation: 0.75, lightness: 0.4 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${hsl(359, 0.75, 0.4)};\n * background: ${hsl({ hue: 360, saturation: 0.75, lightness: 0.4 })};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#b3191c\";\n * background: \"#b3191c\";\n * }\n */\n\n\nfunction hsl(value, saturation, lightness) {\n if (typeof value === 'number' && typeof saturation === 'number' && typeof lightness === 'number') {\n return hslToHex(value, saturation, lightness);\n } else if (_typeof(value) === 'object' && saturation === undefined && lightness === undefined) {\n return hslToHex(value.hue, value.saturation, value.lightness);\n }\n\n throw new PolishedError(1);\n}\n/**\n * Returns a string value for the color. The returned result is the smallest possible rgba or hex notation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: hsla(359, 0.75, 0.4, 0.7),\n * background: hsla({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0,7 }),\n * background: hsla(359, 0.75, 0.4, 1),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${hsla(359, 0.75, 0.4, 0.7)};\n * background: ${hsla({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0,7 })};\n * background: ${hsla(359, 0.75, 0.4, 1)};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"rgba(179,25,28,0.7)\";\n * background: \"rgba(179,25,28,0.7)\";\n * background: \"#b3191c\";\n * }\n */\n\n\nfunction hsla(value, saturation, lightness, alpha) {\n if (typeof value === 'number' && typeof saturation === 'number' && typeof lightness === 'number' && typeof alpha === 'number') {\n return alpha >= 1 ? hslToHex(value, saturation, lightness) : \"rgba(\" + hslToRgb(value, saturation, lightness) + \",\" + alpha + \")\";\n } else if (_typeof(value) === 'object' && saturation === undefined && lightness === undefined && alpha === undefined) {\n return value.alpha >= 1 ? hslToHex(value.hue, value.saturation, value.lightness) : \"rgba(\" + hslToRgb(value.hue, value.saturation, value.lightness) + \",\" + value.alpha + \")\";\n }\n\n throw new PolishedError(2);\n}\n/**\n * Returns a string value for the color. The returned result is the smallest possible hex notation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: rgb(255, 205, 100),\n * background: rgb({ red: 255, green: 205, blue: 100 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${rgb(255, 205, 100)};\n * background: ${rgb({ red: 255, green: 205, blue: 100 })};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#ffcd64\";\n * background: \"#ffcd64\";\n * }\n */\n\n\nfunction rgb(value, green, blue) {\n if (typeof value === 'number' && typeof green === 'number' && typeof blue === 'number') {\n return reduceHexValue(\"#\" + numberToHex(value) + numberToHex(green) + numberToHex(blue));\n } else if (_typeof(value) === 'object' && green === undefined && blue === undefined) {\n return reduceHexValue(\"#\" + numberToHex(value.red) + numberToHex(value.green) + numberToHex(value.blue));\n }\n\n throw new PolishedError(6);\n}\n/**\n * Returns a string value for the color. The returned result is the smallest possible rgba or hex notation.\n *\n * Can also be used to fade a color by passing a hex value or named CSS color along with an alpha value.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: rgba(255, 205, 100, 0.7),\n * background: rgba({ red: 255, green: 205, blue: 100, alpha: 0.7 }),\n * background: rgba(255, 205, 100, 1),\n * background: rgba('#ffffff', 0.4),\n * background: rgba('black', 0.7),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${rgba(255, 205, 100, 0.7)};\n * background: ${rgba({ red: 255, green: 205, blue: 100, alpha: 0.7 })};\n * background: ${rgba(255, 205, 100, 1)};\n * background: ${rgba('#ffffff', 0.4)};\n * background: ${rgba('black', 0.7)};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"rgba(255,205,100,0.7)\";\n * background: \"rgba(255,205,100,0.7)\";\n * background: \"#ffcd64\";\n * background: \"rgba(255,255,255,0.4)\";\n * background: \"rgba(0,0,0,0.7)\";\n * }\n */\n\n\nfunction rgba(firstValue, secondValue, thirdValue, fourthValue) {\n if (typeof firstValue === 'string' && typeof secondValue === 'number') {\n var rgbValue = parseToRgb(firstValue);\n return \"rgba(\" + rgbValue.red + \",\" + rgbValue.green + \",\" + rgbValue.blue + \",\" + secondValue + \")\";\n } else if (typeof firstValue === 'number' && typeof secondValue === 'number' && typeof thirdValue === 'number' && typeof fourthValue === 'number') {\n return fourthValue >= 1 ? rgb(firstValue, secondValue, thirdValue) : \"rgba(\" + firstValue + \",\" + secondValue + \",\" + thirdValue + \",\" + fourthValue + \")\";\n } else if (_typeof(firstValue) === 'object' && secondValue === undefined && thirdValue === undefined && fourthValue === undefined) {\n return firstValue.alpha >= 1 ? rgb(firstValue.red, firstValue.green, firstValue.blue) : \"rgba(\" + firstValue.red + \",\" + firstValue.green + \",\" + firstValue.blue + \",\" + firstValue.alpha + \")\";\n }\n\n throw new PolishedError(7);\n}\n\nvar isRgb = function isRgb(color) {\n return typeof color.red === 'number' && typeof color.green === 'number' && typeof color.blue === 'number' && (typeof color.alpha !== 'number' || typeof color.alpha === 'undefined');\n};\n\nvar isRgba = function isRgba(color) {\n return typeof color.red === 'number' && typeof color.green === 'number' && typeof color.blue === 'number' && typeof color.alpha === 'number';\n};\n\nvar isHsl = function isHsl(color) {\n return typeof color.hue === 'number' && typeof color.saturation === 'number' && typeof color.lightness === 'number' && (typeof color.alpha !== 'number' || typeof color.alpha === 'undefined');\n};\n\nvar isHsla = function isHsla(color) {\n return typeof color.hue === 'number' && typeof color.saturation === 'number' && typeof color.lightness === 'number' && typeof color.alpha === 'number';\n};\n/**\n * Converts a RgbColor, RgbaColor, HslColor or HslaColor object to a color string.\n * This util is useful in case you only know on runtime which color object is\n * used. Otherwise we recommend to rely on `rgb`, `rgba`, `hsl` or `hsla`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: toColorString({ red: 255, green: 205, blue: 100 }),\n * background: toColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 }),\n * background: toColorString({ hue: 240, saturation: 1, lightness: 0.5 }),\n * background: toColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${toColorString({ red: 255, green: 205, blue: 100 })};\n * background: ${toColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 })};\n * background: ${toColorString({ hue: 240, saturation: 1, lightness: 0.5 })};\n * background: ${toColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 })};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#ffcd64\";\n * background: \"rgba(255,205,100,0.72)\";\n * background: \"#00f\";\n * background: \"rgba(179,25,25,0.72)\";\n * }\n */\n\n\nfunction toColorString(color) {\n if (_typeof(color) !== 'object') throw new PolishedError(8);\n if (isRgba(color)) return rgba(color);\n if (isRgb(color)) return rgb(color);\n if (isHsla(color)) return hsla(color);\n if (isHsl(color)) return hsl(color);\n throw new PolishedError(8);\n} // Type definitions taken from https://github.com/gcanti/flow-static-land/blob/master/src/Fun.js\n// eslint-disable-next-line no-unused-vars\n// eslint-disable-next-line no-unused-vars\n// eslint-disable-next-line no-redeclare\n\n\nfunction curried(f, length, acc) {\n return function fn() {\n // eslint-disable-next-line prefer-rest-params\n var combined = acc.concat(Array.prototype.slice.call(arguments));\n return combined.length >= length ? f.apply(this, combined) : curried(f, length, combined);\n };\n} // eslint-disable-next-line no-redeclare\n\n\nfunction curry(f) {\n // eslint-disable-line no-redeclare\n return curried(f, f.length, []);\n}\n/**\n * Changes the hue of the color. Hue is a number between 0 to 360. The first\n * argument for adjustHue is the amount of degrees the color is rotated around\n * the color wheel, always producing a positive hue value.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: adjustHue(180, '#448'),\n * background: adjustHue('180', 'rgba(101,100,205,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${adjustHue(180, '#448')};\n * background: ${adjustHue('180', 'rgba(101,100,205,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#888844\";\n * background: \"rgba(136,136,68,0.7)\";\n * }\n */\n\n\nfunction adjustHue(degree, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n hue: hslColor.hue + parseFloat(degree)\n }));\n} // prettier-ignore\n\n\nvar curriedAdjustHue = /*#__PURE__*/curry\n/* :: */\n(adjustHue);\n/**\n * Returns the complement of the provided color. This is identical to adjustHue(180, ).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: complement('#448'),\n * background: complement('rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${complement('#448')};\n * background: ${complement('rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#884\";\n * background: \"rgba(153,153,153,0.7)\";\n * }\n */\n\nfunction complement(color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n hue: (hslColor.hue + 180) % 360\n }));\n}\n\nfunction guard(lowerBoundary, upperBoundary, value) {\n return Math.max(lowerBoundary, Math.min(upperBoundary, value));\n}\n/**\n * Returns a string value for the darkened color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: darken(0.2, '#FFCD64'),\n * background: darken('0.2', 'rgba(255,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${darken(0.2, '#FFCD64')};\n * background: ${darken('0.2', 'rgba(255,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#ffbd31\";\n * background: \"rgba(255,189,49,0.7)\";\n * }\n */\n\n\nfunction darken(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n lightness: guard(0, 1, hslColor.lightness - parseFloat(amount))\n }));\n} // prettier-ignore\n\n\nvar curriedDarken = /*#__PURE__*/curry\n/* :: */\n(darken);\n/**\n * Decreases the intensity of a color. Its range is between 0 to 1. The first\n * argument of the desaturate function is the amount by how much the color\n * intensity should be decreased.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: desaturate(0.2, '#CCCD64'),\n * background: desaturate('0.2', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${desaturate(0.2, '#CCCD64')};\n * background: ${desaturate('0.2', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#b8b979\";\n * background: \"rgba(184,185,121,0.7)\";\n * }\n */\n\nfunction desaturate(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n saturation: guard(0, 1, hslColor.saturation - parseFloat(amount))\n }));\n} // prettier-ignore\n\n\nvar curriedDesaturate = /*#__PURE__*/curry\n/* :: */\n(desaturate);\n/**\n * Returns a number (float) representing the luminance of a color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: getLuminance('#CCCD64') >= getLuminance('#0000ff') ? '#CCCD64' : '#0000ff',\n * background: getLuminance('rgba(58, 133, 255, 1)') >= getLuminance('rgba(255, 57, 149, 1)') ?\n * 'rgba(58, 133, 255, 1)' :\n * 'rgba(255, 57, 149, 1)',\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${getLuminance('#CCCD64') >= getLuminance('#0000ff') ? '#CCCD64' : '#0000ff'};\n * background: ${getLuminance('rgba(58, 133, 255, 1)') >= getLuminance('rgba(255, 57, 149, 1)') ?\n * 'rgba(58, 133, 255, 1)' :\n * 'rgba(255, 57, 149, 1)'};\n *\n * // CSS in JS Output\n *\n * div {\n * background: \"#CCCD64\";\n * background: \"rgba(58, 133, 255, 1)\";\n * }\n */\n\nfunction getLuminance(color) {\n if (color === 'transparent') return 0;\n var rgbColor = parseToRgb(color);\n\n var _Object$keys$map = Object.keys(rgbColor).map(function (key) {\n var channel = rgbColor[key] / 255;\n return channel <= 0.03928 ? channel / 12.92 : Math.pow((channel + 0.055) / 1.055, 2.4);\n }),\n r = _Object$keys$map[0],\n g = _Object$keys$map[1],\n b = _Object$keys$map[2];\n\n return parseFloat((0.2126 * r + 0.7152 * g + 0.0722 * b).toFixed(3));\n}\n/**\n * Returns the contrast ratio between two colors based on\n * [W3's recommended equation for calculating contrast](http://www.w3.org/TR/WCAG20/#contrast-ratiodef).\n *\n * @example\n * const contrastRatio = getContrast('#444', '#fff');\n */\n\n\nfunction getContrast(color1, color2) {\n var luminance1 = getLuminance(color1);\n var luminance2 = getLuminance(color2);\n return parseFloat((luminance1 > luminance2 ? (luminance1 + 0.05) / (luminance2 + 0.05) : (luminance2 + 0.05) / (luminance1 + 0.05)).toFixed(2));\n}\n/**\n * Converts the color to a grayscale, by reducing its saturation to 0.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: grayscale('#CCCD64'),\n * background: grayscale('rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${grayscale('#CCCD64')};\n * background: ${grayscale('rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#999\";\n * background: \"rgba(153,153,153,0.7)\";\n * }\n */\n\n\nfunction grayscale(color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n saturation: 0\n }));\n}\n/**\n * Converts a HslColor or HslaColor object to a color string.\n * This util is useful in case you only know on runtime which color object is\n * used. Otherwise we recommend to rely on `hsl` or `hsla`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: hslToColorString({ hue: 240, saturation: 1, lightness: 0.5 }),\n * background: hslToColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${hslToColorString({ hue: 240, saturation: 1, lightness: 0.5 })};\n * background: ${hslToColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 })};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#00f\";\n * background: \"rgba(179,25,25,0.72)\";\n * }\n */\n\n\nfunction hslToColorString(color) {\n if (_typeof(color) === 'object' && typeof color.hue === 'number' && typeof color.saturation === 'number' && typeof color.lightness === 'number') {\n if (color.alpha && typeof color.alpha === 'number') {\n return hsla({\n hue: color.hue,\n saturation: color.saturation,\n lightness: color.lightness,\n alpha: color.alpha\n });\n }\n\n return hsl({\n hue: color.hue,\n saturation: color.saturation,\n lightness: color.lightness\n });\n }\n\n throw new PolishedError(45);\n}\n/**\n * Inverts the red, green and blue values of a color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: invert('#CCCD64'),\n * background: invert('rgba(101,100,205,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${invert('#CCCD64')};\n * background: ${invert('rgba(101,100,205,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#33329b\";\n * background: \"rgba(154,155,50,0.7)\";\n * }\n */\n\n\nfunction invert(color) {\n if (color === 'transparent') return color; // parse color string to rgb\n\n var value = parseToRgb(color);\n return toColorString(_extends({}, value, {\n red: 255 - value.red,\n green: 255 - value.green,\n blue: 255 - value.blue\n }));\n}\n/**\n * Returns a string value for the lightened color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: lighten(0.2, '#CCCD64'),\n * background: lighten('0.2', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${lighten(0.2, '#FFCD64')};\n * background: ${lighten('0.2', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#e5e6b1\";\n * background: \"rgba(229,230,177,0.7)\";\n * }\n */\n\n\nfunction lighten(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n lightness: guard(0, 1, hslColor.lightness + parseFloat(amount))\n }));\n} // prettier-ignore\n\n\nvar curriedLighten = /*#__PURE__*/curry\n/* :: */\n(lighten);\n/**\n * Determines which contrast guidelines have been met for two colors.\n * Based on the [contrast calculations recommended by W3](https://www.w3.org/WAI/WCAG21/Understanding/contrast-enhanced.html).\n *\n * @example\n * const scores = meetsContrastGuidelines('#444', '#fff');\n */\n\nfunction meetsContrastGuidelines(color1, color2) {\n var contrastRatio = getContrast(color1, color2);\n return {\n AA: contrastRatio >= 4.5,\n AALarge: contrastRatio >= 3,\n AAA: contrastRatio >= 7,\n AAALarge: contrastRatio >= 4.5\n };\n}\n/**\n * Mixes the two provided colors together by calculating the average of each of the RGB components weighted to the first color by the provided weight.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: mix(0.5, '#f00', '#00f')\n * background: mix(0.25, '#f00', '#00f')\n * background: mix('0.5', 'rgba(255, 0, 0, 0.5)', '#00f')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${mix(0.5, '#f00', '#00f')};\n * background: ${mix(0.25, '#f00', '#00f')};\n * background: ${mix('0.5', 'rgba(255, 0, 0, 0.5)', '#00f')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#7f007f\";\n * background: \"#3f00bf\";\n * background: \"rgba(63, 0, 191, 0.75)\";\n * }\n */\n\n\nfunction mix(weight, color, otherColor) {\n if (color === 'transparent') return otherColor;\n if (otherColor === 'transparent') return color;\n if (weight === 0) return otherColor;\n var parsedColor1 = parseToRgb(color);\n\n var color1 = _extends({}, parsedColor1, {\n alpha: typeof parsedColor1.alpha === 'number' ? parsedColor1.alpha : 1\n });\n\n var parsedColor2 = parseToRgb(otherColor);\n\n var color2 = _extends({}, parsedColor2, {\n alpha: typeof parsedColor2.alpha === 'number' ? parsedColor2.alpha : 1\n }); // The formula is copied from the original Sass implementation:\n // http://sass-lang.com/documentation/Sass/Script/Functions.html#mix-instance_method\n\n\n var alphaDelta = color1.alpha - color2.alpha;\n var x = parseFloat(weight) * 2 - 1;\n var y = x * alphaDelta === -1 ? x : x + alphaDelta;\n var z = 1 + x * alphaDelta;\n var weight1 = (y / z + 1) / 2.0;\n var weight2 = 1 - weight1;\n var mixedColor = {\n red: Math.floor(color1.red * weight1 + color2.red * weight2),\n green: Math.floor(color1.green * weight1 + color2.green * weight2),\n blue: Math.floor(color1.blue * weight1 + color2.blue * weight2),\n alpha: color1.alpha * (parseFloat(weight) / 1.0) + color2.alpha * (1 - parseFloat(weight) / 1.0)\n };\n return rgba(mixedColor);\n} // prettier-ignore\n\n\nvar curriedMix = /*#__PURE__*/curry\n/* :: */\n(mix);\n/**\n * Increases the opacity of a color. Its range for the amount is between 0 to 1.\n *\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: opacify(0.1, 'rgba(255, 255, 255, 0.9)');\n * background: opacify(0.2, 'hsla(0, 0%, 100%, 0.5)'),\n * background: opacify('0.5', 'rgba(255, 0, 0, 0.2)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${opacify(0.1, 'rgba(255, 255, 255, 0.9)')};\n * background: ${opacify(0.2, 'hsla(0, 0%, 100%, 0.5)')},\n * background: ${opacify('0.5', 'rgba(255, 0, 0, 0.2)')},\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#fff\";\n * background: \"rgba(255,255,255,0.7)\";\n * background: \"rgba(255,0,0,0.7)\";\n * }\n */\n\nfunction opacify(amount, color) {\n if (color === 'transparent') return color;\n var parsedColor = parseToRgb(color);\n var alpha = typeof parsedColor.alpha === 'number' ? parsedColor.alpha : 1;\n\n var colorWithAlpha = _extends({}, parsedColor, {\n alpha: guard(0, 1, (alpha * 100 + parseFloat(amount) * 100) / 100)\n });\n\n return rgba(colorWithAlpha);\n} // prettier-ignore\n\n\nvar curriedOpacify = /*#__PURE__*/curry\n/* :: */\n(opacify);\nvar defaultReturnIfLightColor = '#000';\nvar defaultReturnIfDarkColor = '#fff';\n/**\n * Returns black or white (or optional passed colors) for best\n * contrast depending on the luminosity of the given color.\n * When passing custom return colors, strict mode ensures that the\n * return color always meets or exceeds WCAG level AA or greater. If this test\n * fails, the default return color (black or white) is returned in place of the\n * custom return color. You can optionally turn off strict mode.\n *\n * Follows [W3C specs for readability](https://www.w3.org/TR/WCAG20-TECHS/G18.html).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * color: readableColor('#000'),\n * color: readableColor('black', '#001', '#ff8'),\n * color: readableColor('white', '#001', '#ff8'),\n * color: readableColor('red', '#333', '#ddd', true)\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * color: ${readableColor('#000')};\n * color: ${readableColor('black', '#001', '#ff8')};\n * color: ${readableColor('white', '#001', '#ff8')};\n * color: ${readableColor('red', '#333', '#ddd', true)};\n * `\n *\n * // CSS in JS Output\n * element {\n * color: \"#fff\";\n * color: \"#ff8\";\n * color: \"#001\";\n * color: \"#000\";\n * }\n */\n\nfunction readableColor(color, returnIfLightColor, returnIfDarkColor, strict) {\n if (returnIfLightColor === void 0) {\n returnIfLightColor = defaultReturnIfLightColor;\n }\n\n if (returnIfDarkColor === void 0) {\n returnIfDarkColor = defaultReturnIfDarkColor;\n }\n\n if (strict === void 0) {\n strict = true;\n }\n\n var isColorLight = getLuminance(color) > 0.179;\n var preferredReturnColor = isColorLight ? returnIfLightColor : returnIfDarkColor;\n\n if (!strict || getContrast(color, preferredReturnColor) >= 4.5) {\n return preferredReturnColor;\n }\n\n return isColorLight ? defaultReturnIfLightColor : defaultReturnIfDarkColor;\n}\n/**\n * Converts a RgbColor or RgbaColor object to a color string.\n * This util is useful in case you only know on runtime which color object is\n * used. Otherwise we recommend to rely on `rgb` or `rgba`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: rgbToColorString({ red: 255, green: 205, blue: 100 }),\n * background: rgbToColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${rgbToColorString({ red: 255, green: 205, blue: 100 })};\n * background: ${rgbToColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 })};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#ffcd64\";\n * background: \"rgba(255,205,100,0.72)\";\n * }\n */\n\n\nfunction rgbToColorString(color) {\n if (_typeof(color) === 'object' && typeof color.red === 'number' && typeof color.green === 'number' && typeof color.blue === 'number') {\n if (typeof color.alpha === 'number') {\n return rgba({\n red: color.red,\n green: color.green,\n blue: color.blue,\n alpha: color.alpha\n });\n }\n\n return rgb({\n red: color.red,\n green: color.green,\n blue: color.blue\n });\n }\n\n throw new PolishedError(46);\n}\n/**\n * Increases the intensity of a color. Its range is between 0 to 1. The first\n * argument of the saturate function is the amount by how much the color\n * intensity should be increased.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: saturate(0.2, '#CCCD64'),\n * background: saturate('0.2', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${saturate(0.2, '#FFCD64')};\n * background: ${saturate('0.2', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#e0e250\";\n * background: \"rgba(224,226,80,0.7)\";\n * }\n */\n\n\nfunction saturate(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n saturation: guard(0, 1, hslColor.saturation + parseFloat(amount))\n }));\n} // prettier-ignore\n\n\nvar curriedSaturate = /*#__PURE__*/curry\n/* :: */\n(saturate);\n/**\n * Sets the hue of a color to the provided value. The hue range can be\n * from 0 and 359.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: setHue(42, '#CCCD64'),\n * background: setHue('244', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${setHue(42, '#CCCD64')};\n * background: ${setHue('244', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#cdae64\";\n * background: \"rgba(107,100,205,0.7)\";\n * }\n */\n\nfunction setHue(hue, color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n hue: parseFloat(hue)\n }));\n} // prettier-ignore\n\n\nvar curriedSetHue = /*#__PURE__*/curry\n/* :: */\n(setHue);\n/**\n * Sets the lightness of a color to the provided value. The lightness range can be\n * from 0 and 1.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: setLightness(0.2, '#CCCD64'),\n * background: setLightness('0.75', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${setLightness(0.2, '#CCCD64')};\n * background: ${setLightness('0.75', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#4d4d19\";\n * background: \"rgba(223,224,159,0.7)\";\n * }\n */\n\nfunction setLightness(lightness, color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n lightness: parseFloat(lightness)\n }));\n} // prettier-ignore\n\n\nvar curriedSetLightness = /*#__PURE__*/curry\n/* :: */\n(setLightness);\n/**\n * Sets the saturation of a color to the provided value. The saturation range can be\n * from 0 and 1.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: setSaturation(0.2, '#CCCD64'),\n * background: setSaturation('0.75', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${setSaturation(0.2, '#CCCD64')};\n * background: ${setSaturation('0.75', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#adad84\";\n * background: \"rgba(228,229,76,0.7)\";\n * }\n */\n\nfunction setSaturation(saturation, color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n saturation: parseFloat(saturation)\n }));\n} // prettier-ignore\n\n\nvar curriedSetSaturation = /*#__PURE__*/curry\n/* :: */\n(setSaturation);\n/**\n * Shades a color by mixing it with black. `shade` can produce\n * hue shifts, where as `darken` manipulates the luminance channel and therefore\n * doesn't produce hue shifts.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: shade(0.25, '#00f')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${shade(0.25, '#00f')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#00003f\";\n * }\n */\n\nfunction shade(percentage, color) {\n if (color === 'transparent') return color;\n return curriedMix(parseFloat(percentage), 'rgb(0, 0, 0)', color);\n} // prettier-ignore\n\n\nvar curriedShade = /*#__PURE__*/curry\n/* :: */\n(shade);\n/**\n * Tints a color by mixing it with white. `tint` can produce\n * hue shifts, where as `lighten` manipulates the luminance channel and therefore\n * doesn't produce hue shifts.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: tint(0.25, '#00f')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${tint(0.25, '#00f')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#bfbfff\";\n * }\n */\n\nfunction tint(percentage, color) {\n if (color === 'transparent') return color;\n return curriedMix(parseFloat(percentage), 'rgb(255, 255, 255)', color);\n} // prettier-ignore\n\n\nvar curriedTint = /*#__PURE__*/curry\n/* :: */\n(tint);\n/**\n * Decreases the opacity of a color. Its range for the amount is between 0 to 1.\n *\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: transparentize(0.1, '#fff');\n * background: transparentize(0.2, 'hsl(0, 0%, 100%)'),\n * background: transparentize('0.5', 'rgba(255, 0, 0, 0.8)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${transparentize(0.1, '#fff')};\n * background: ${transparentize(0.2, 'hsl(0, 0%, 100%)')},\n * background: ${transparentize('0.5', 'rgba(255, 0, 0, 0.8)')},\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"rgba(255,255,255,0.9)\";\n * background: \"rgba(255,255,255,0.8)\";\n * background: \"rgba(255,0,0,0.3)\";\n * }\n */\n\nfunction transparentize(amount, color) {\n if (color === 'transparent') return color;\n var parsedColor = parseToRgb(color);\n var alpha = typeof parsedColor.alpha === 'number' ? parsedColor.alpha : 1;\n\n var colorWithAlpha = _extends({}, parsedColor, {\n alpha: guard(0, 1, +(alpha * 100 - parseFloat(amount) * 100).toFixed(2) / 100)\n });\n\n return rgba(colorWithAlpha);\n} // prettier-ignore\n\n\nvar curriedTransparentize = /*#__PURE__*/curry\n/* :: */\n(transparentize);\n/**\n * Shorthand for easily setting the animation property. Allows either multiple arrays with animations\n * or a single animation spread over the arguments.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...animation(['rotate', '1s', 'ease-in-out'], ['colorchange', '2s'])\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${animation(['rotate', '1s', 'ease-in-out'], ['colorchange', '2s'])}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'animation': 'rotate 1s ease-in-out, colorchange 2s'\n * }\n * @example\n * // Styles as object usage\n * const styles = {\n * ...animation('rotate', '1s', 'ease-in-out')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${animation('rotate', '1s', 'ease-in-out')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'animation': 'rotate 1s ease-in-out'\n * }\n */\n\nfunction animation() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n } // Allow single or multiple animations passed\n\n\n var multiMode = Array.isArray(args[0]);\n\n if (!multiMode && args.length > 8) {\n throw new PolishedError(64);\n }\n\n var code = args.map(function (arg) {\n if (multiMode && !Array.isArray(arg) || !multiMode && Array.isArray(arg)) {\n throw new PolishedError(65);\n }\n\n if (Array.isArray(arg) && arg.length > 8) {\n throw new PolishedError(66);\n }\n\n return Array.isArray(arg) ? arg.join(' ') : arg;\n }).join(', ');\n return {\n animation: code\n };\n}\n/**\n * Shorthand that accepts any number of backgroundImage values as parameters for creating a single background statement.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...backgroundImages('url(\"/image/background.jpg\")', 'linear-gradient(red, green)')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${backgroundImages('url(\"/image/background.jpg\")', 'linear-gradient(red, green)')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'backgroundImage': 'url(\"/image/background.jpg\"), linear-gradient(red, green)'\n * }\n */\n\n\nfunction backgroundImages() {\n for (var _len = arguments.length, properties = new Array(_len), _key = 0; _key < _len; _key++) {\n properties[_key] = arguments[_key];\n }\n\n return {\n backgroundImage: properties.join(', ')\n };\n}\n/**\n * Shorthand that accepts any number of background values as parameters for creating a single background statement.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...backgrounds('url(\"/image/background.jpg\")', 'linear-gradient(red, green)', 'center no-repeat')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${backgrounds('url(\"/image/background.jpg\")', 'linear-gradient(red, green)', 'center no-repeat')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'background': 'url(\"/image/background.jpg\"), linear-gradient(red, green), center no-repeat'\n * }\n */\n\n\nfunction backgrounds() {\n for (var _len = arguments.length, properties = new Array(_len), _key = 0; _key < _len; _key++) {\n properties[_key] = arguments[_key];\n }\n\n return {\n background: properties.join(', ')\n };\n}\n\nvar sideMap = ['top', 'right', 'bottom', 'left'];\n/**\n * Shorthand for the border property that splits out individual properties for use with tools like Fela and Styletron. A side keyword can optionally be passed to target only one side's border properties.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...border('1px', 'solid', 'red')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${border('1px', 'solid', 'red')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderColor': 'red',\n * 'borderStyle': 'solid',\n * 'borderWidth': `1px`,\n * }\n *\n * // Styles as object usage\n * const styles = {\n * ...border('top', '1px', 'solid', 'red')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${border('top', '1px', 'solid', 'red')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopColor': 'red',\n * 'borderTopStyle': 'solid',\n * 'borderTopWidth': `1px`,\n * }\n */\n\nfunction border(sideKeyword) {\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n values[_key - 1] = arguments[_key];\n }\n\n if (typeof sideKeyword === 'string' && sideMap.indexOf(sideKeyword) >= 0) {\n var _ref;\n\n return _ref = {}, _ref[\"border\" + capitalizeString(sideKeyword) + \"Width\"] = values[0], _ref[\"border\" + capitalizeString(sideKeyword) + \"Style\"] = values[1], _ref[\"border\" + capitalizeString(sideKeyword) + \"Color\"] = values[2], _ref;\n } else {\n values.unshift(sideKeyword);\n return {\n borderWidth: values[0],\n borderStyle: values[1],\n borderColor: values[2]\n };\n }\n}\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderColor('red', 'green', 'blue', 'yellow')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderColor('red', 'green', 'blue', 'yellow')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopColor': 'red',\n * 'borderRightColor': 'green',\n * 'borderBottomColor': 'blue',\n * 'borderLeftColor': 'yellow'\n * }\n */\n\n\nfunction borderColor() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['borderColor'].concat(values));\n}\n/**\n * Shorthand that accepts a value for side and a value for radius and applies the radius value to both corners of the side.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderRadius('top', '5px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderRadius('top', '5px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopRightRadius': '5px',\n * 'borderTopLeftRadius': '5px',\n * }\n */\n\n\nfunction borderRadius(side, radius) {\n var uppercaseSide = capitalizeString(side);\n\n if (!radius && radius !== 0) {\n throw new PolishedError(62);\n }\n\n if (uppercaseSide === 'Top' || uppercaseSide === 'Bottom') {\n var _ref;\n\n return _ref = {}, _ref[\"border\" + uppercaseSide + \"RightRadius\"] = radius, _ref[\"border\" + uppercaseSide + \"LeftRadius\"] = radius, _ref;\n }\n\n if (uppercaseSide === 'Left' || uppercaseSide === 'Right') {\n var _ref2;\n\n return _ref2 = {}, _ref2[\"borderTop\" + uppercaseSide + \"Radius\"] = radius, _ref2[\"borderBottom\" + uppercaseSide + \"Radius\"] = radius, _ref2;\n }\n\n throw new PolishedError(63);\n}\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderStyle('solid', 'dashed', 'dotted', 'double')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderStyle('solid', 'dashed', 'dotted', 'double')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopStyle': 'solid',\n * 'borderRightStyle': 'dashed',\n * 'borderBottomStyle': 'dotted',\n * 'borderLeftStyle': 'double'\n * }\n */\n\n\nfunction borderStyle() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['borderStyle'].concat(values));\n}\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderWidth('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderWidth('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopWidth': '12px',\n * 'borderRightWidth': '24px',\n * 'borderBottomWidth': '36px',\n * 'borderLeftWidth': '48px'\n * }\n */\n\n\nfunction borderWidth() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['borderWidth'].concat(values));\n}\n\nfunction generateSelectors(template, state) {\n var stateSuffix = state ? \":\" + state : '';\n return template(stateSuffix);\n}\n/**\n * Function helper that adds an array of states to a template of selectors. Used in textInputs and buttons.\n * @private\n */\n\n\nfunction statefulSelectors(states, template, stateMap) {\n if (!template) throw new PolishedError(67);\n if (states.length === 0) return generateSelectors(template, null);\n var selectors = [];\n\n for (var i = 0; i < states.length; i += 1) {\n if (stateMap && stateMap.indexOf(states[i]) < 0) {\n throw new PolishedError(68);\n }\n\n selectors.push(generateSelectors(template, states[i]));\n }\n\n selectors = selectors.join(',');\n return selectors;\n}\n\nvar stateMap = [undefined, null, 'active', 'focus', 'hover'];\n\nfunction template(state) {\n return \"button\" + state + \",\\n input[type=\\\"button\\\"]\" + state + \",\\n input[type=\\\"reset\\\"]\" + state + \",\\n input[type=\\\"submit\\\"]\" + state;\n}\n/**\n * Populates selectors that target all buttons. You can pass optional states to append to the selectors.\n * @example\n * // Styles as object usage\n * const styles = {\n * [buttons('active')]: {\n * 'border': 'none'\n * }\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * > ${buttons('active')} {\n * border: none;\n * }\n * `\n *\n * // CSS in JS Output\n *\n * 'button:active,\n * 'input[type=\"button\"]:active,\n * 'input[type=\\\"reset\\\"]:active,\n * 'input[type=\\\"submit\\\"]:active: {\n * 'border': 'none'\n * }\n */\n\n\nfunction buttons() {\n for (var _len = arguments.length, states = new Array(_len), _key = 0; _key < _len; _key++) {\n states[_key] = arguments[_key];\n }\n\n return statefulSelectors(states, template, stateMap);\n}\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...margin('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${margin('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'marginTop': '12px',\n * 'marginRight': '24px',\n * 'marginBottom': '36px',\n * 'marginLeft': '48px'\n * }\n */\n\n\nfunction margin() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['margin'].concat(values));\n}\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...padding('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${padding('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'paddingTop': '12px',\n * 'paddingRight': '24px',\n * 'paddingBottom': '36px',\n * 'paddingLeft': '48px'\n * }\n */\n\n\nfunction padding() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['padding'].concat(values));\n}\n\nvar positionMap$1 = ['absolute', 'fixed', 'relative', 'static', 'sticky'];\n/**\n * Shorthand accepts up to five values, including null to skip a value, and maps them to their respective directions. The first value can optionally be a position keyword.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...position('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${position('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'top': '12px',\n * 'right': '24px',\n * 'bottom': '36px',\n * 'left': '48px'\n * }\n *\n * // Styles as object usage\n * const styles = {\n * ...position('absolute', '12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${position('absolute', '12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'position': 'absolute',\n * 'top': '12px',\n * 'right': '24px',\n * 'bottom': '36px',\n * 'left': '48px'\n * }\n */\n\nfunction position(firstValue) {\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n values[_key - 1] = arguments[_key];\n }\n\n if (positionMap$1.indexOf(firstValue) >= 0 && firstValue) {\n return _extends({}, directionalProperty.apply(void 0, [''].concat(values)), {\n position: firstValue\n });\n } else {\n return directionalProperty.apply(void 0, ['', firstValue].concat(values));\n }\n}\n/**\n * Shorthand to set the height and width properties in a single statement.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...size('300px', '250px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${size('300px', '250px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'height': '300px',\n * 'width': '250px',\n * }\n */\n\n\nfunction size(height, width) {\n if (width === void 0) {\n width = height;\n }\n\n return {\n height: height,\n width: width\n };\n}\n\nvar stateMap$1 = [undefined, null, 'active', 'focus', 'hover'];\n\nfunction template$1(state) {\n return \"input[type=\\\"color\\\"]\" + state + \",\\n input[type=\\\"date\\\"]\" + state + \",\\n input[type=\\\"datetime\\\"]\" + state + \",\\n input[type=\\\"datetime-local\\\"]\" + state + \",\\n input[type=\\\"email\\\"]\" + state + \",\\n input[type=\\\"month\\\"]\" + state + \",\\n input[type=\\\"number\\\"]\" + state + \",\\n input[type=\\\"password\\\"]\" + state + \",\\n input[type=\\\"search\\\"]\" + state + \",\\n input[type=\\\"tel\\\"]\" + state + \",\\n input[type=\\\"text\\\"]\" + state + \",\\n input[type=\\\"time\\\"]\" + state + \",\\n input[type=\\\"url\\\"]\" + state + \",\\n input[type=\\\"week\\\"]\" + state + \",\\n input:not([type])\" + state + \",\\n textarea\" + state;\n}\n/**\n * Populates selectors that target all text inputs. You can pass optional states to append to the selectors.\n * @example\n * // Styles as object usage\n * const styles = {\n * [textInputs('active')]: {\n * 'border': 'none'\n * }\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * > ${textInputs('active')} {\n * border: none;\n * }\n * `\n *\n * // CSS in JS Output\n *\n * 'input[type=\"color\"]:active,\n * input[type=\"date\"]:active,\n * input[type=\"datetime\"]:active,\n * input[type=\"datetime-local\"]:active,\n * input[type=\"email\"]:active,\n * input[type=\"month\"]:active,\n * input[type=\"number\"]:active,\n * input[type=\"password\"]:active,\n * input[type=\"search\"]:active,\n * input[type=\"tel\"]:active,\n * input[type=\"text\"]:active,\n * input[type=\"time\"]:active,\n * input[type=\"url\"]:active,\n * input[type=\"week\"]:active,\n * input:not([type]):active,\n * textarea:active': {\n * 'border': 'none'\n * }\n */\n\n\nfunction textInputs() {\n for (var _len = arguments.length, states = new Array(_len), _key = 0; _key < _len; _key++) {\n states[_key] = arguments[_key];\n }\n\n return statefulSelectors(states, template$1, stateMap$1);\n}\n/**\n * Accepts any number of transition values as parameters for creating a single transition statement. You may also pass an array of properties as the first parameter that you would like to apply the same transition values to (second parameter).\n * @example\n * // Styles as object usage\n * const styles = {\n * ...transitions('opacity 1.0s ease-in 0s', 'width 2.0s ease-in 2s'),\n * ...transitions(['color', 'background-color'], '2.0s ease-in 2s')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${transitions('opacity 1.0s ease-in 0s', 'width 2.0s ease-in 2s')};\n * ${transitions(['color', 'background-color'], '2.0s ease-in 2s'),};\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'transition': 'opacity 1.0s ease-in 0s, width 2.0s ease-in 2s'\n * 'transition': 'color 2.0s ease-in 2s, background-color 2.0s ease-in 2s',\n * }\n */\n\n\nfunction transitions() {\n for (var _len = arguments.length, properties = new Array(_len), _key = 0; _key < _len; _key++) {\n properties[_key] = arguments[_key];\n }\n\n if (Array.isArray(properties[0]) && properties.length === 2) {\n var value = properties[1];\n\n if (typeof value !== 'string') {\n throw new PolishedError(61);\n }\n\n var transitionsString = properties[0].map(function (property) {\n return property + \" \" + value;\n }).join(', ');\n return {\n transition: transitionsString\n };\n } else {\n return {\n transition: properties.join(', ')\n };\n }\n}\n\nexport { curriedAdjustHue as adjustHue, animation, backgroundImages, backgrounds, between, border, borderColor, borderRadius, borderStyle, borderWidth, buttons, clearFix, complement, cover, cssVar, curriedDarken as darken, curriedDesaturate as desaturate, directionalProperty, easeIn, easeInOut, easeOut, ellipsis, em, fluidRange, fontFace, getContrast, getLuminance, getValueAndUnit, grayscale, hiDPI, hideText, hideVisually, hsl, hslToColorString, hsla, important, invert, curriedLighten as lighten, linearGradient, margin, math, meetsContrastGuidelines, curriedMix as mix, modularScale, normalize, curriedOpacify as opacify, padding, parseToHsl, parseToRgb, position, radialGradient, readableColor, rem, retinaImage, rgb, rgbToColorString, rgba, curriedSaturate as saturate, curriedSetHue as setHue, curriedSetLightness as setLightness, curriedSetSaturation as setSaturation, curriedShade as shade, size, stripUnit, textInputs, timingFunctions, curriedTint as tint, toColorString, transitions, curriedTransparentize as transparentize, triangle, wordWrap };","import { createElement } from 'react';\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\n\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(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 if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n};\n\nfunction __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nvar uid = function uid() {\n return Math.random().toString(36).substring(6);\n};\n\nvar SVG = function SVG(_a) {\n var animate = _a.animate,\n backgroundColor = _a.backgroundColor,\n backgroundOpacity = _a.backgroundOpacity,\n baseUrl = _a.baseUrl,\n children = _a.children,\n foregroundColor = _a.foregroundColor,\n foregroundOpacity = _a.foregroundOpacity,\n gradientRatio = _a.gradientRatio,\n uniqueKey = _a.uniqueKey,\n interval = _a.interval,\n rtl = _a.rtl,\n speed = _a.speed,\n style = _a.style,\n title = _a.title,\n props = __rest(_a, [\"animate\", \"backgroundColor\", \"backgroundOpacity\", \"baseUrl\", \"children\", \"foregroundColor\", \"foregroundOpacity\", \"gradientRatio\", \"uniqueKey\", \"interval\", \"rtl\", \"speed\", \"style\", \"title\"]);\n\n var fixedId = uniqueKey || uid();\n var idClip = fixedId + \"-diff\";\n var idGradient = fixedId + \"-animated-diff\";\n var idAria = fixedId + \"-aria\";\n var rtlStyle = rtl ? {\n transform: 'scaleX(-1)'\n } : null;\n var keyTimes = \"0; \" + interval + \"; 1\";\n var dur = speed + \"s\";\n return createElement(\"svg\", _assign({\n \"aria-labelledby\": idAria,\n role: \"img\",\n style: _assign(_assign({}, style), rtlStyle)\n }, props), title ? createElement(\"title\", {\n id: idAria\n }, title) : null, createElement(\"rect\", {\n role: \"presentation\",\n x: \"0\",\n y: \"0\",\n width: \"100%\",\n height: \"100%\",\n clipPath: \"url(\" + baseUrl + \"#\" + idClip + \")\",\n style: {\n fill: \"url(\" + baseUrl + \"#\" + idGradient + \")\"\n }\n }), createElement(\"defs\", {\n role: \"presentation\"\n }, createElement(\"clipPath\", {\n id: idClip\n }, children), createElement(\"linearGradient\", {\n id: idGradient\n }, createElement(\"stop\", {\n offset: \"0%\",\n stopColor: backgroundColor,\n stopOpacity: backgroundOpacity\n }, animate && createElement(\"animate\", {\n attributeName: \"offset\",\n values: -gradientRatio + \"; \" + -gradientRatio + \"; 1\",\n keyTimes: keyTimes,\n dur: dur,\n repeatCount: \"indefinite\"\n })), createElement(\"stop\", {\n offset: \"50%\",\n stopColor: foregroundColor,\n stopOpacity: foregroundOpacity\n }, animate && createElement(\"animate\", {\n attributeName: \"offset\",\n values: -gradientRatio / 2 + \"; \" + -gradientRatio / 2 + \"; \" + (1 + gradientRatio / 2),\n keyTimes: keyTimes,\n dur: dur,\n repeatCount: \"indefinite\"\n })), createElement(\"stop\", {\n offset: \"100%\",\n stopColor: backgroundColor,\n stopOpacity: backgroundOpacity\n }, animate && createElement(\"animate\", {\n attributeName: \"offset\",\n values: \"0; 0; \" + (1 + gradientRatio),\n keyTimes: keyTimes,\n dur: dur,\n repeatCount: \"indefinite\"\n })))));\n};\n\nSVG.defaultProps = {\n animate: true,\n backgroundColor: '#f5f6f7',\n backgroundOpacity: 1,\n baseUrl: '',\n foregroundColor: '#eee',\n foregroundOpacity: 1,\n gradientRatio: 2,\n id: null,\n interval: 0.25,\n rtl: false,\n speed: 1.2,\n style: {},\n title: 'Loading...'\n};\n\nvar ContentLoader = function ContentLoader(props) {\n return props.children ? createElement(SVG, _assign({}, props)) : createElement(ReactContentLoaderFacebook, _assign({}, props));\n};\n\nvar ReactContentLoaderFacebook = function ReactContentLoaderFacebook(props) {\n return createElement(ContentLoader, _assign({\n viewBox: \"0 0 476 124\"\n }, props), createElement(\"rect\", {\n x: \"48\",\n y: \"8\",\n width: \"88\",\n height: \"6\",\n rx: \"3\"\n }), createElement(\"rect\", {\n x: \"48\",\n y: \"26\",\n width: \"52\",\n height: \"6\",\n rx: \"3\"\n }), createElement(\"rect\", {\n x: \"0\",\n y: \"56\",\n width: \"410\",\n height: \"6\",\n rx: \"3\"\n }), createElement(\"rect\", {\n x: \"0\",\n y: \"72\",\n width: \"380\",\n height: \"6\",\n rx: \"3\"\n }), createElement(\"rect\", {\n x: \"0\",\n y: \"88\",\n width: \"178\",\n height: \"6\",\n rx: \"3\"\n }), createElement(\"circle\", {\n cx: \"20\",\n cy: \"20\",\n r: \"20\"\n }));\n};\n\nvar ReactContentLoaderInstagram = function ReactContentLoaderInstagram(props) {\n return createElement(ContentLoader, _assign({\n viewBox: \"0 0 400 460\"\n }, props), createElement(\"circle\", {\n cx: \"31\",\n cy: \"31\",\n r: \"15\"\n }), createElement(\"rect\", {\n x: \"58\",\n y: \"18\",\n rx: \"2\",\n ry: \"2\",\n width: \"140\",\n height: \"10\"\n }), createElement(\"rect\", {\n x: \"58\",\n y: \"34\",\n rx: \"2\",\n ry: \"2\",\n width: \"140\",\n height: \"10\"\n }), createElement(\"rect\", {\n x: \"0\",\n y: \"60\",\n rx: \"2\",\n ry: \"2\",\n width: \"400\",\n height: \"400\"\n }));\n};\n\nvar ReactContentLoaderCode = function ReactContentLoaderCode(props) {\n return createElement(ContentLoader, _assign({\n viewBox: \"0 0 340 84\"\n }, props), createElement(\"rect\", {\n x: \"0\",\n y: \"0\",\n width: \"67\",\n height: \"11\",\n rx: \"3\"\n }), createElement(\"rect\", {\n x: \"76\",\n y: \"0\",\n width: \"140\",\n height: \"11\",\n rx: \"3\"\n }), createElement(\"rect\", {\n x: \"127\",\n y: \"48\",\n width: \"53\",\n height: \"11\",\n rx: \"3\"\n }), createElement(\"rect\", {\n x: \"187\",\n y: \"48\",\n width: \"72\",\n height: \"11\",\n rx: \"3\"\n }), createElement(\"rect\", {\n x: \"18\",\n y: \"48\",\n width: \"100\",\n height: \"11\",\n rx: \"3\"\n }), createElement(\"rect\", {\n x: \"0\",\n y: \"71\",\n width: \"37\",\n height: \"11\",\n rx: \"3\"\n }), createElement(\"rect\", {\n x: \"18\",\n y: \"23\",\n width: \"140\",\n height: \"11\",\n rx: \"3\"\n }), createElement(\"rect\", {\n x: \"166\",\n y: \"23\",\n width: \"173\",\n height: \"11\",\n rx: \"3\"\n }));\n};\n\nvar ReactContentLoaderListStyle = function ReactContentLoaderListStyle(props) {\n return createElement(ContentLoader, _assign({\n viewBox: \"0 0 400 110\"\n }, props), createElement(\"rect\", {\n x: \"0\",\n y: \"0\",\n rx: \"3\",\n ry: \"3\",\n width: \"250\",\n height: \"10\"\n }), createElement(\"rect\", {\n x: \"20\",\n y: \"20\",\n rx: \"3\",\n ry: \"3\",\n width: \"220\",\n height: \"10\"\n }), createElement(\"rect\", {\n x: \"20\",\n y: \"40\",\n rx: \"3\",\n ry: \"3\",\n width: \"170\",\n height: \"10\"\n }), createElement(\"rect\", {\n x: \"0\",\n y: \"60\",\n rx: \"3\",\n ry: \"3\",\n width: \"250\",\n height: \"10\"\n }), createElement(\"rect\", {\n x: \"20\",\n y: \"80\",\n rx: \"3\",\n ry: \"3\",\n width: \"200\",\n height: \"10\"\n }), createElement(\"rect\", {\n x: \"20\",\n y: \"100\",\n rx: \"3\",\n ry: \"3\",\n width: \"80\",\n height: \"10\"\n }));\n};\n\nvar ReactContentLoaderBulletList = function ReactContentLoaderBulletList(props) {\n return createElement(ContentLoader, _assign({\n viewBox: \"0 0 245 125\"\n }, props), createElement(\"circle\", {\n cx: \"10\",\n cy: \"20\",\n r: \"8\"\n }), createElement(\"rect\", {\n x: \"25\",\n y: \"15\",\n rx: \"5\",\n ry: \"5\",\n width: \"220\",\n height: \"10\"\n }), createElement(\"circle\", {\n cx: \"10\",\n cy: \"50\",\n r: \"8\"\n }), createElement(\"rect\", {\n x: \"25\",\n y: \"45\",\n rx: \"5\",\n ry: \"5\",\n width: \"220\",\n height: \"10\"\n }), createElement(\"circle\", {\n cx: \"10\",\n cy: \"80\",\n r: \"8\"\n }), createElement(\"rect\", {\n x: \"25\",\n y: \"75\",\n rx: \"5\",\n ry: \"5\",\n width: \"220\",\n height: \"10\"\n }), createElement(\"circle\", {\n cx: \"10\",\n cy: \"110\",\n r: \"8\"\n }), createElement(\"rect\", {\n x: \"25\",\n y: \"105\",\n rx: \"5\",\n ry: \"5\",\n width: \"220\",\n height: \"10\"\n }));\n};\n\nexport default ContentLoader;\nexport { ReactContentLoaderBulletList as BulletList, ReactContentLoaderCode as Code, ReactContentLoaderFacebook as Facebook, ReactContentLoaderInstagram as Instagram, ReactContentLoaderListStyle as List };","var _typeof = require(\"/app/scripts/smweb-scripts/node_modules/@babel/runtime/helpers/typeof\");\n\n!function (t, e) {\n \"object\" == (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) && \"object\" == (typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) ? module.exports = e() : \"function\" == typeof define && define.amd ? define([], e) : \"object\" == (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) ? exports.ReactPixel = e() : t.ReactPixel = e();\n}(window, function () {\n return function (t) {\n var e = {};\n\n function n(o) {\n if (e[o]) return e[o].exports;\n var r = e[o] = {\n i: o,\n l: !1,\n exports: {}\n };\n return t[o].call(r.exports, r, r.exports, n), r.l = !0, r.exports;\n }\n\n return n.m = t, n.c = e, n.d = function (t, e, o) {\n n.o(t, e) || Object.defineProperty(t, e, {\n enumerable: !0,\n get: o\n });\n }, n.r = function (t) {\n \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, {\n value: \"Module\"\n }), Object.defineProperty(t, \"__esModule\", {\n value: !0\n });\n }, n.t = function (t, e) {\n if (1 & e && (t = n(t)), 8 & e) return t;\n if (4 & e && \"object\" == _typeof(t) && t && t.__esModule) return t;\n var o = Object.create(null);\n if (n.r(o), Object.defineProperty(o, \"default\", {\n enumerable: !0,\n value: t\n }), 2 & e && \"string\" != typeof t) for (var r in t) {\n n.d(o, r, function (e) {\n return t[e];\n }.bind(null, r));\n }\n return o;\n }, n.n = function (t) {\n var e = t && t.__esModule ? function () {\n return t[\"default\"];\n } : function () {\n return t;\n };\n return n.d(e, \"a\", e), e;\n }, n.o = function (t, e) {\n return Object.prototype.hasOwnProperty.call(t, e);\n }, n.p = \"\", n(n.s = 0);\n }([function (t, e, n) {\n t.exports = n(1);\n }, function (t, e, n) {\n \"use strict\";\n\n function o(t) {\n return function (t) {\n if (Array.isArray(t)) {\n for (var e = 0, n = new Array(t.length); e < t.length; e++) {\n n[e] = t[e];\n }\n\n return n;\n }\n }(t) || function (t) {\n if (Symbol.iterator in Object(t) || \"[object Arguments]\" === Object.prototype.toString.call(t)) return Array.from(t);\n }(t) || function () {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n }();\n }\n\n n.r(e);\n\n var r = !!window.fbq,\n i = !1,\n a = function a() {\n var t;\n\n if (i) {\n for (var e = arguments.length, n = new Array(e), r = 0; r < e; r++) {\n n[r] = arguments[r];\n }\n\n (t = console).info.apply(t, o([\"[react-facebook-pixel]\"].concat(n)));\n }\n },\n c = function c() {\n var t;\n\n if (i) {\n for (var e = arguments.length, n = new Array(e), r = 0; r < e; r++) {\n n[r] = arguments[r];\n }\n\n (t = console).info.apply(t, o([\"[react-facebook-pixel]\"].concat(n)));\n }\n },\n f = function f() {\n return r || a(\"Pixel not initialized before using call ReactPixel.init with required params\"), r;\n },\n u = {\n autoConfig: !0,\n debug: !1\n };\n\n e[\"default\"] = {\n init: function init(t) {\n var e,\n n,\n o,\n c,\n f,\n l,\n d = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},\n s = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : u;\n e = window, n = document, o = \"script\", e.fbq || (c = e.fbq = function () {\n c.callMethod ? c.callMethod.apply(c, arguments) : c.queue.push(arguments);\n }, e._fbq || (e._fbq = c), c.push = c, c.loaded = !0, c.version = \"2.0\", c.queue = [], (f = n.createElement(o)).async = !0, f.src = \"https://connect.facebook.net/en_US/fbevents.js\", (l = n.getElementsByTagName(o)[0]).parentNode.insertBefore(f, l)), t ? (!1 === s.autoConfig && fbq(\"set\", \"autoConfig\", !1, t), fbq(\"init\", t, d), r = !0, i = s.debug) : a(\"Please insert pixel id for initializing\");\n },\n pageView: function pageView() {\n f() && (fbq(\"track\", \"PageView\"), i && c(\"called fbq('track', 'PageView');\"));\n },\n track: function track(t, e) {\n f() && (fbq(\"track\", t, e), i && (c(\"called fbq('track', '\".concat(t, \"');\")), e && c(\"with data\", e)));\n },\n trackSingle: function trackSingle(t, e, n) {\n f() && (fbq(\"trackSingle\", t, e, n), i && (c(\"called fbq('trackSingle', '\".concat(t, \"', '\").concat(e, \"');\")), n && c(\"with data\", n)));\n },\n trackCustom: function trackCustom(t, e) {\n f() && (fbq(\"trackCustom\", t, e), i && (c(\"called fbq('trackCustom', '\".concat(t, \"');\")), e && c(\"with data\", e)));\n },\n trackSingleCustom: function trackSingleCustom(t, e, n) {\n f() && (fbq(\"trackSingle\", t, e, n), i && (c(\"called fbq('trackSingleCustom', '\".concat(t, \"', '\").concat(e, \"');\")), n && c(\"with data\", n)));\n },\n grantConsent: function grantConsent() {\n f() && (fbq(\"consent\", \"grant\"), i && c(\"called fbq('consent', 'grant');\"));\n },\n revokeConsent: function revokeConsent() {\n f() && (fbq(\"consent\", \"revoke\"), i && c(\"called fbq('consent', 'revoke');\"));\n },\n fbq: function (t) {\n function e() {\n return t.apply(this, arguments);\n }\n\n return e.toString = function () {\n return t.toString();\n }, e;\n }(function () {\n if (f()) {\n for (var t = arguments.length, e = new Array(t), n = 0; n < t; n++) {\n e[n] = arguments[n];\n }\n\n fbq.apply(void 0, e), i && (c(\"called fbq('\".concat(e.slice(0, 2).join(\"', '\"), \"')\")), e[2] && c(\"with data\", e[2]));\n }\n })\n };\n }]);\n});","var _typeof = require(\"/app/scripts/smweb-scripts/node_modules/@babel/runtime/helpers/typeof\");\n\n/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView; // Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.1\n if (a === b) return true;\n\n if (a && b && _typeof(a) == 'object' && _typeof(b) == 'object') {\n if (a.constructor !== b.constructor) return false;\n var length, i, keys;\n\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n\n for (i = length; i-- !== 0;) {\n if (!equal(a[i], b[i])) return false;\n }\n\n return true;\n } // START: Modifications:\n // 1. Extra `has &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n\n\n var it;\n\n if (hasMap && a instanceof Map && b instanceof Map) {\n if (a.size !== b.size) return false;\n it = a.entries();\n\n while (!(i = it.next()).done) {\n if (!b.has(i.value[0])) return false;\n }\n\n it = a.entries();\n\n while (!(i = it.next()).done) {\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n }\n\n return true;\n }\n\n if (hasSet && a instanceof Set && b instanceof Set) {\n if (a.size !== b.size) return false;\n it = a.entries();\n\n while (!(i = it.next()).done) {\n if (!b.has(i.value[0])) return false;\n }\n\n return true;\n } // END: Modifications\n\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n\n for (i = length; i-- !== 0;) {\n if (a[i] !== b[i]) return false;\n }\n\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;) {\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n } // END: fast-deep-equal\n // START: react-fast-compare\n // custom handling for DOM elements\n\n\n if (hasElementType && a instanceof Element) return false; // custom handling for React/Preact\n\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n continue;\n } // all other properties should be traversed as usual\n\n\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n } // END: react-fast-compare\n // START: fast-deep-equal\n\n\n return true;\n }\n\n return a !== a && b !== b;\n} // end fast-deep-equal\n\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if ((error.message || '').match(/stack|recursion/i)) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n } // some other error. we should definitely know about these\n\n\n throw error;\n }\n};","import _typeof from \"/app/scripts/smweb-scripts/node_modules/@babel/runtime/helpers/typeof\";\nimport e, { Component as t } from \"react\";\nimport r from \"prop-types\";\nimport n from \"react-fast-compare\";\nimport i from \"invariant\";\nimport o from \"shallowequal\";\n\nfunction a() {\n return (a = Object.assign || function (e) {\n for (var t = 1; t < arguments.length; t++) {\n var r = arguments[t];\n\n for (var n in r) {\n Object.prototype.hasOwnProperty.call(r, n) && (e[n] = r[n]);\n }\n }\n\n return e;\n }).apply(this, arguments);\n}\n\nfunction s(e, t) {\n e.prototype = Object.create(t.prototype), e.prototype.constructor = e, e.__proto__ = t;\n}\n\nfunction c(e, t) {\n if (null == e) return {};\n var r,\n n,\n i = {},\n o = Object.keys(e);\n\n for (n = 0; n < o.length; n++) {\n t.indexOf(r = o[n]) >= 0 || (i[r] = e[r]);\n }\n\n return i;\n}\n\nvar u = {\n BASE: \"base\",\n BODY: \"body\",\n HEAD: \"head\",\n HTML: \"html\",\n LINK: \"link\",\n META: \"meta\",\n NOSCRIPT: \"noscript\",\n SCRIPT: \"script\",\n STYLE: \"style\",\n TITLE: \"title\",\n FRAGMENT: \"Symbol(react.fragment)\"\n},\n l = Object.keys(u).map(function (e) {\n return u[e];\n}),\n p = {\n accesskey: \"accessKey\",\n charset: \"charSet\",\n \"class\": \"className\",\n contenteditable: \"contentEditable\",\n contextmenu: \"contextMenu\",\n \"http-equiv\": \"httpEquiv\",\n itemprop: \"itemProp\",\n tabindex: \"tabIndex\"\n},\n f = Object.keys(p).reduce(function (e, t) {\n return e[p[t]] = t, e;\n}, {}),\n d = function d(e, t) {\n for (var r = e.length - 1; r >= 0; r -= 1) {\n var n = e[r];\n if (Object.prototype.hasOwnProperty.call(n, t)) return n[t];\n }\n\n return null;\n},\n h = function h(e) {\n var t = d(e, u.TITLE),\n r = d(e, \"titleTemplate\");\n if (Array.isArray(t) && (t = t.join(\"\")), r && t) return r.replace(/%s/g, function () {\n return t;\n });\n var n = d(e, \"defaultTitle\");\n return t || n || void 0;\n},\n m = function m(e) {\n return d(e, \"onChangeClientState\") || function () {};\n},\n y = function y(e, t) {\n return t.filter(function (t) {\n return void 0 !== t[e];\n }).map(function (t) {\n return t[e];\n }).reduce(function (e, t) {\n return a({}, e, t);\n }, {});\n},\n T = function T(e, t) {\n return t.filter(function (e) {\n return void 0 !== e[u.BASE];\n }).map(function (e) {\n return e[u.BASE];\n }).reverse().reduce(function (t, r) {\n if (!t.length) for (var n = Object.keys(r), i = 0; i < n.length; i += 1) {\n var o = n[i].toLowerCase();\n if (-1 !== e.indexOf(o) && r[o]) return t.concat(r);\n }\n return t;\n }, []);\n},\n b = function b(e, t, r) {\n var n = {};\n return r.filter(function (t) {\n return !!Array.isArray(t[e]) || (void 0 !== t[e] && console && \"function\" == typeof console.warn && console.warn(\"Helmet: \" + e + ' should be of type \"Array\". Instead found type \"' + _typeof(t[e]) + '\"'), !1);\n }).map(function (t) {\n return t[e];\n }).reverse().reduce(function (e, r) {\n var i = {};\n r.filter(function (e) {\n for (var r, o = Object.keys(e), a = 0; a < o.length; a += 1) {\n var s = o[a],\n c = s.toLowerCase();\n -1 === t.indexOf(c) || \"rel\" === r && \"canonical\" === e[r].toLowerCase() || \"rel\" === c && \"stylesheet\" === e[c].toLowerCase() || (r = c), -1 === t.indexOf(s) || \"innerHTML\" !== s && \"cssText\" !== s && \"itemprop\" !== s || (r = s);\n }\n\n if (!r || !e[r]) return !1;\n var u = e[r].toLowerCase();\n return n[r] || (n[r] = {}), i[r] || (i[r] = {}), !n[r][u] && (i[r][u] = !0, !0);\n }).reverse().forEach(function (t) {\n return e.push(t);\n });\n\n for (var o = Object.keys(i), s = 0; s < o.length; s += 1) {\n var c = o[s],\n u = a({}, n[c], i[c]);\n n[c] = u;\n }\n\n return e;\n }, []).reverse();\n},\n g = function g(e) {\n return Array.isArray(e) ? e.join(\"\") : e;\n},\n v = [u.NOSCRIPT, u.SCRIPT, u.STYLE],\n A = function A(e, t) {\n return void 0 === t && (t = !0), !1 === t ? String(e) : String(e).replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n},\n C = function C(e) {\n return Object.keys(e).reduce(function (t, r) {\n var n = void 0 !== e[r] ? r + '=\"' + e[r] + '\"' : \"\" + r;\n return t ? t + \" \" + n : n;\n }, \"\");\n},\n O = function O(e, t) {\n return void 0 === t && (t = {}), Object.keys(e).reduce(function (t, r) {\n return t[p[r] || r] = e[r], t;\n }, t);\n},\n E = function E(t, r, n) {\n switch (t) {\n case u.TITLE:\n return {\n toComponent: function toComponent() {\n return n = r.titleAttributes, (i = {\n key: t = r.title\n })[\"data-rh\"] = !0, o = O(n, i), [e.createElement(u.TITLE, o, t)];\n var t, n, i, o;\n },\n toString: function toString() {\n return function (e, t, r, n) {\n var i = C(r),\n o = g(t);\n return i ? \"<\" + e + ' data-rh=\"true\" ' + i + \">\" + A(o, n) + \"\" : \"<\" + e + ' data-rh=\"true\">' + A(o, n) + \"\";\n }(t, r.title, r.titleAttributes, n);\n }\n };\n\n case \"bodyAttributes\":\n case \"htmlAttributes\":\n return {\n toComponent: function toComponent() {\n return O(r);\n },\n toString: function toString() {\n return C(r);\n }\n };\n\n default:\n return {\n toComponent: function toComponent() {\n return function (t, r) {\n return r.map(function (r, n) {\n var i,\n o = ((i = {\n key: n\n })[\"data-rh\"] = !0, i);\n return Object.keys(r).forEach(function (e) {\n var t = p[e] || e;\n \"innerHTML\" === t || \"cssText\" === t ? o.dangerouslySetInnerHTML = {\n __html: r.innerHTML || r.cssText\n } : o[t] = r[e];\n }), e.createElement(t, o);\n });\n }(t, r);\n },\n toString: function toString() {\n return function (e, t, r) {\n return t.reduce(function (t, n) {\n var i = Object.keys(n).filter(function (e) {\n return !(\"innerHTML\" === e || \"cssText\" === e);\n }).reduce(function (e, t) {\n var i = void 0 === n[t] ? t : t + '=\"' + A(n[t], r) + '\"';\n return e ? e + \" \" + i : i;\n }, \"\"),\n o = n.innerHTML || n.cssText || \"\",\n a = -1 === v.indexOf(e);\n return t + \"<\" + e + ' data-rh=\"true\" ' + i + (a ? \"/>\" : \">\" + o + \"\");\n }, \"\");\n }(t, r, n);\n }\n };\n }\n},\n S = function S(e) {\n var t = e.bodyAttributes,\n r = e.encode,\n n = e.htmlAttributes,\n i = e.linkTags,\n o = e.metaTags,\n a = e.noscriptTags,\n s = e.scriptTags,\n c = e.styleTags,\n l = e.title,\n p = void 0 === l ? \"\" : l,\n f = e.titleAttributes;\n return {\n base: E(u.BASE, e.baseTag, r),\n bodyAttributes: E(\"bodyAttributes\", t, r),\n htmlAttributes: E(\"htmlAttributes\", n, r),\n link: E(u.LINK, i, r),\n meta: E(u.META, o, r),\n noscript: E(u.NOSCRIPT, a, r),\n script: E(u.SCRIPT, s, r),\n style: E(u.STYLE, c, r),\n title: E(u.TITLE, {\n title: p,\n titleAttributes: f\n }, r)\n };\n},\n I = e.createContext({}),\n P = r.shape({\n setHelmet: r.func,\n helmetInstances: r.shape({\n get: r.func,\n add: r.func,\n remove: r.func\n })\n}),\n L = \"undefined\" != typeof document,\n x = function (t) {\n function r(e) {\n var n;\n return (n = t.call(this, e) || this).instances = [], n.value = {\n setHelmet: function setHelmet(e) {\n n.props.context.helmet = e;\n },\n helmetInstances: {\n get: function get() {\n return n.instances;\n },\n add: function add(e) {\n n.instances.push(e);\n },\n remove: function remove(e) {\n var t = n.instances.indexOf(e);\n n.instances.splice(t, 1);\n }\n }\n }, r.canUseDOM || (e.context.helmet = S({\n baseTag: [],\n bodyAttributes: {},\n encodeSpecialCharacters: !0,\n htmlAttributes: {},\n linkTags: [],\n metaTags: [],\n noscriptTags: [],\n scriptTags: [],\n styleTags: [],\n title: \"\",\n titleAttributes: {}\n })), n;\n }\n\n return s(r, t), r.prototype.render = function () {\n return e.createElement(I.Provider, {\n value: this.value\n }, this.props.children);\n }, r;\n}(t);\n\nx.canUseDOM = L, x.propTypes = {\n context: r.shape({\n helmet: r.shape()\n }),\n children: r.node.isRequired\n}, x.defaultProps = {\n context: {}\n}, x.displayName = \"HelmetProvider\";\n\nvar j = function j(e, t) {\n var r,\n n = document.head || document.querySelector(u.HEAD),\n i = n.querySelectorAll(e + \"[data-rh]\"),\n o = [].slice.call(i),\n a = [];\n return t && t.length && t.forEach(function (t) {\n var n = document.createElement(e);\n\n for (var i in t) {\n Object.prototype.hasOwnProperty.call(t, i) && (\"innerHTML\" === i ? n.innerHTML = t.innerHTML : \"cssText\" === i ? n.styleSheet ? n.styleSheet.cssText = t.cssText : n.appendChild(document.createTextNode(t.cssText)) : n.setAttribute(i, void 0 === t[i] ? \"\" : t[i]));\n }\n\n n.setAttribute(\"data-rh\", \"true\"), o.some(function (e, t) {\n return r = t, n.isEqualNode(e);\n }) ? o.splice(r, 1) : a.push(n);\n }), o.forEach(function (e) {\n return e.parentNode.removeChild(e);\n }), a.forEach(function (e) {\n return n.appendChild(e);\n }), {\n oldTags: o,\n newTags: a\n };\n},\n w = function w(e, t) {\n var r = document.getElementsByTagName(e)[0];\n\n if (r) {\n for (var n = r.getAttribute(\"data-rh\"), i = n ? n.split(\",\") : [], o = [].concat(i), a = Object.keys(t), s = 0; s < a.length; s += 1) {\n var c = a[s],\n u = t[c] || \"\";\n r.getAttribute(c) !== u && r.setAttribute(c, u), -1 === i.indexOf(c) && i.push(c);\n var l = o.indexOf(c);\n -1 !== l && o.splice(l, 1);\n }\n\n for (var p = o.length - 1; p >= 0; p -= 1) {\n r.removeAttribute(o[p]);\n }\n\n i.length === o.length ? r.removeAttribute(\"data-rh\") : r.getAttribute(\"data-rh\") !== a.join(\",\") && r.setAttribute(\"data-rh\", a.join(\",\"));\n }\n},\n H = function H(e, t) {\n var r = e.baseTag,\n n = e.htmlAttributes,\n i = e.linkTags,\n o = e.metaTags,\n a = e.noscriptTags,\n s = e.onChangeClientState,\n c = e.scriptTags,\n l = e.styleTags,\n p = e.title,\n f = e.titleAttributes;\n w(u.BODY, e.bodyAttributes), w(u.HTML, n), function (e, t) {\n void 0 !== e && document.title !== e && (document.title = g(e)), w(u.TITLE, t);\n }(p, f);\n var d = {\n baseTag: j(u.BASE, r),\n linkTags: j(u.LINK, i),\n metaTags: j(u.META, o),\n noscriptTags: j(u.NOSCRIPT, a),\n scriptTags: j(u.SCRIPT, c),\n styleTags: j(u.STYLE, l)\n },\n h = {},\n m = {};\n Object.keys(d).forEach(function (e) {\n var t = d[e],\n r = t.newTags,\n n = t.oldTags;\n r.length && (h[e] = r), n.length && (m[e] = d[e].oldTags);\n }), t && t(), s(e, h, m);\n},\n k = null,\n M = function (e) {\n function t() {\n for (var t, r = arguments.length, n = new Array(r), i = 0; i < r; i++) {\n n[i] = arguments[i];\n }\n\n return (t = e.call.apply(e, [this].concat(n)) || this).rendered = !1, t;\n }\n\n s(t, e);\n var r = t.prototype;\n return r.shouldComponentUpdate = function (e) {\n return !o(e, this.props);\n }, r.componentDidUpdate = function () {\n this.emitChange();\n }, r.componentWillUnmount = function () {\n this.props.context.helmetInstances.remove(this), this.emitChange();\n }, r.emitChange = function () {\n var e,\n t,\n r = this.props.context,\n n = r.setHelmet,\n i = null,\n o = (e = r.helmetInstances.get().map(function (e) {\n var t = a({}, e.props);\n return delete t.context, t;\n }), {\n baseTag: T([\"href\"], e),\n bodyAttributes: y(\"bodyAttributes\", e),\n defer: d(e, \"defer\"),\n encode: d(e, \"encodeSpecialCharacters\"),\n htmlAttributes: y(\"htmlAttributes\", e),\n linkTags: b(u.LINK, [\"rel\", \"href\"], e),\n metaTags: b(u.META, [\"name\", \"charset\", \"http-equiv\", \"property\", \"itemprop\"], e),\n noscriptTags: b(u.NOSCRIPT, [\"innerHTML\"], e),\n onChangeClientState: m(e),\n scriptTags: b(u.SCRIPT, [\"src\", \"innerHTML\"], e),\n styleTags: b(u.STYLE, [\"cssText\"], e),\n title: h(e),\n titleAttributes: y(\"titleAttributes\", e)\n });\n x.canUseDOM ? (t = o, k && cancelAnimationFrame(k), t.defer ? k = requestAnimationFrame(function () {\n H(t, function () {\n k = null;\n });\n }) : (H(t), k = null)) : S && (i = S(o)), n(i);\n }, r.init = function () {\n this.rendered || (this.rendered = !0, this.props.context.helmetInstances.add(this), this.emitChange());\n }, r.render = function () {\n return this.init(), null;\n }, t;\n}(t);\n\nM.propTypes = {\n context: P.isRequired\n}, M.displayName = \"HelmetDispatcher\";\n\nvar N = function (t) {\n function r() {\n return t.apply(this, arguments) || this;\n }\n\n s(r, t);\n var o = r.prototype;\n return o.shouldComponentUpdate = function (e) {\n return !n(this.props, e);\n }, o.mapNestedChildrenToProps = function (e, t) {\n if (!t) return null;\n\n switch (e.type) {\n case u.SCRIPT:\n case u.NOSCRIPT:\n return {\n innerHTML: t\n };\n\n case u.STYLE:\n return {\n cssText: t\n };\n\n default:\n throw new Error(\"<\" + e.type + \" /> elements are self-closing and can not contain children. Refer to our API for more information.\");\n }\n }, o.flattenArrayTypeChildren = function (e) {\n var t,\n r = e.child,\n n = e.arrayTypeChildren;\n return a({}, n, ((t = {})[r.type] = [].concat(n[r.type] || [], [a({}, e.newChildProps, this.mapNestedChildrenToProps(r, e.nestedChildren))]), t));\n }, o.mapObjectTypeChildren = function (e) {\n var t,\n r,\n n = e.child,\n i = e.newProps,\n o = e.newChildProps,\n s = e.nestedChildren;\n\n switch (n.type) {\n case u.TITLE:\n return a({}, i, ((t = {})[n.type] = s, t.titleAttributes = a({}, o), t));\n\n case u.BODY:\n return a({}, i, {\n bodyAttributes: a({}, o)\n });\n\n case u.HTML:\n return a({}, i, {\n htmlAttributes: a({}, o)\n });\n\n default:\n return a({}, i, ((r = {})[n.type] = a({}, o), r));\n }\n }, o.mapArrayTypeChildrenToProps = function (e, t) {\n var r = a({}, t);\n return Object.keys(e).forEach(function (t) {\n var n;\n r = a({}, r, ((n = {})[t] = e[t], n));\n }), r;\n }, o.warnOnInvalidChildren = function (e, t) {\n return i(l.some(function (t) {\n return e.type === t;\n }), \"function\" == typeof e.type ? \"You may be attempting to nest components within each other, which is not allowed. Refer to our API for more information.\" : \"Only elements types \" + l.join(\", \") + \" are allowed. Helmet does not support rendering <\" + e.type + \"> elements. Refer to our API for more information.\"), i(!t || \"string\" == typeof t || Array.isArray(t) && !t.some(function (e) {\n return \"string\" != typeof e;\n }), \"Helmet expects a string as a child of <\" + e.type + \">. Did you forget to wrap your children in braces? ( <\" + e.type + \">{``} ) Refer to our API for more information.\"), !0;\n }, o.mapChildrenToProps = function (t, r) {\n var n = this,\n i = {};\n return e.Children.forEach(t, function (e) {\n if (e && e.props) {\n var t = e.props,\n o = t.children,\n a = c(t, [\"children\"]),\n s = Object.keys(a).reduce(function (e, t) {\n return e[f[t] || t] = a[t], e;\n }, {}),\n l = e.type;\n\n switch (\"symbol\" == _typeof(l) ? l = l.toString() : n.warnOnInvalidChildren(e, o), l) {\n case u.FRAGMENT:\n r = n.mapChildrenToProps(o, r);\n break;\n\n case u.LINK:\n case u.META:\n case u.NOSCRIPT:\n case u.SCRIPT:\n case u.STYLE:\n i = n.flattenArrayTypeChildren({\n child: e,\n arrayTypeChildren: i,\n newChildProps: s,\n nestedChildren: o\n });\n break;\n\n default:\n r = n.mapObjectTypeChildren({\n child: e,\n newProps: r,\n newChildProps: s,\n nestedChildren: o\n });\n }\n }\n }), this.mapArrayTypeChildrenToProps(i, r);\n }, o.render = function () {\n var t = this.props,\n r = t.children,\n n = a({}, c(t, [\"children\"]));\n return r && (n = this.mapChildrenToProps(r, n)), e.createElement(I.Consumer, null, function (t) {\n return e.createElement(M, a({}, n, {\n context: t\n }));\n });\n }, r;\n}(t);\n\nN.propTypes = {\n base: r.object,\n bodyAttributes: r.object,\n children: r.oneOfType([r.arrayOf(r.node), r.node]),\n defaultTitle: r.string,\n defer: r.bool,\n encodeSpecialCharacters: r.bool,\n htmlAttributes: r.object,\n link: r.arrayOf(r.object),\n meta: r.arrayOf(r.object),\n noscript: r.arrayOf(r.object),\n onChangeClientState: r.func,\n script: r.arrayOf(r.object),\n style: r.arrayOf(r.object),\n title: r.string,\n titleAttributes: r.object,\n titleTemplate: r.string\n}, N.defaultProps = {\n defer: !0,\n encodeSpecialCharacters: !0\n}, N.displayName = \"Helmet\";\nexport { N as Helmet, x as HelmetProvider };","import _typeof from \"/app/scripts/smweb-scripts/node_modules/@babel/runtime/helpers/typeof\";\nimport React, { createContext } from 'react';\nimport warning from 'tiny-warning';\nimport PropTypes from 'prop-types';\nimport hoist from 'hoist-non-react-statics';\nimport getDisplayName from 'react-display-name';\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _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}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction isObject(obj) {\n return obj !== null && _typeof(obj) === 'object' && !Array.isArray(obj);\n}\n\nfunction createThemeProvider(context) {\n var ThemeProvider = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(ThemeProvider, _React$Component);\n\n function ThemeProvider() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"cachedTheme\", void 0);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"lastOuterTheme\", void 0);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"lastTheme\", void 0);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"renderProvider\", function (outerTheme) {\n var children = _this.props.children;\n return React.createElement(context.Provider, {\n value: _this.getTheme(outerTheme)\n }, children);\n });\n\n return _this;\n }\n\n var _proto = ThemeProvider.prototype; // Get the theme from the props, supporting both (outerTheme) => {} as well as object notation\n\n _proto.getTheme = function getTheme(outerTheme) {\n if (this.props.theme !== this.lastTheme || outerTheme !== this.lastOuterTheme || !this.cachedTheme) {\n this.lastOuterTheme = outerTheme;\n this.lastTheme = this.props.theme;\n\n if (typeof this.lastTheme === 'function') {\n var theme = this.props.theme;\n this.cachedTheme = theme(outerTheme);\n process.env.NODE_ENV !== \"production\" ? warning(isObject(this.cachedTheme), '[ThemeProvider] Please return an object from your theme function') : void 0;\n } else {\n var _theme = this.props.theme;\n process.env.NODE_ENV !== \"production\" ? warning(isObject(_theme), '[ThemeProvider] Please make your theme prop a plain object') : void 0;\n this.cachedTheme = outerTheme ? _extends({}, outerTheme, _theme) : _theme;\n }\n }\n\n return this.cachedTheme;\n };\n\n _proto.render = function render() {\n var children = this.props.children;\n\n if (!children) {\n return null;\n }\n\n return React.createElement(context.Consumer, null, this.renderProvider);\n };\n\n return ThemeProvider;\n }(React.Component);\n\n if (process.env.NODE_ENV !== 'production') {\n ThemeProvider.propTypes = {\n // eslint-disable-next-line react/require-default-props\n children: PropTypes.node,\n theme: PropTypes.oneOfType([PropTypes.shape({}), PropTypes.func]).isRequired\n };\n }\n\n return ThemeProvider;\n}\n\nfunction createWithTheme(context) {\n return function hoc(Component) {\n var withTheme = React.forwardRef(function (props, ref) {\n return React.createElement(context.Consumer, null, function (theme) {\n process.env.NODE_ENV !== \"production\" ? warning(isObject(theme), '[theming] Please use withTheme only with the ThemeProvider') : void 0;\n return React.createElement(Component, _extends({\n theme: theme,\n ref: ref\n }, props));\n });\n });\n\n if (process.env.NODE_ENV !== 'production') {\n withTheme.displayName = \"WithTheme(\" + getDisplayName(Component) + \")\";\n }\n\n hoist(withTheme, Component);\n return withTheme;\n };\n}\n\nfunction createUseTheme(context) {\n var useTheme = function useTheme() {\n var theme = React.useContext(context);\n process.env.NODE_ENV !== \"production\" ? warning(isObject(theme), '[theming] Please use useTheme only with the ThemeProvider') : void 0;\n return theme;\n };\n\n return useTheme;\n}\n\nfunction createTheming(context) {\n return {\n context: context,\n withTheme: createWithTheme(context),\n useTheme: createUseTheme(context),\n ThemeProvider: createThemeProvider(context)\n };\n}\n\nvar ThemeContext = createContext();\n\nvar _createTheming = createTheming(ThemeContext),\n withTheme = _createTheming.withTheme,\n ThemeProvider = _createTheming.ThemeProvider,\n useTheme = _createTheming.useTheme;\n\nexport { useTheme, ThemeContext, withTheme, createTheming, ThemeProvider };","import _typeof2 from \"/app/scripts/smweb-scripts/node_modules/@babel/runtime/helpers/typeof\";\n\nvar _typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n return _typeof2(obj);\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n};\n\nexport var isBrowser = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\" && (typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) === 'object' && document.nodeType === 9;\nexport default isBrowser;","var isProduction = process.env.NODE_ENV === 'production';\n\nfunction warning(condition, message) {\n if (!isProduction) {\n if (condition) {\n return;\n }\n\n var text = \"Warning: \" + message;\n\n if (typeof console !== 'undefined') {\n console.warn(text);\n }\n\n try {\n throw Error(text);\n } catch (x) {}\n }\n}\n\nexport default warning;","import _typeof from \"/app/scripts/smweb-scripts/node_modules/@babel/runtime/helpers/typeof\";\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport isInBrowser from 'is-in-browser';\nimport warning from 'tiny-warning';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nvar plainObjectConstrurctor = {}.constructor;\n\nfunction cloneStyle(style) {\n if (style == null || _typeof(style) !== 'object') return style;\n if (Array.isArray(style)) return style.map(cloneStyle);\n if (style.constructor !== plainObjectConstrurctor) return style;\n var newStyle = {};\n\n for (var name in style) {\n newStyle[name] = cloneStyle(style[name]);\n }\n\n return newStyle;\n}\n/**\n * Create a rule instance.\n */\n\n\nfunction createRule(name, decl, options) {\n if (name === void 0) {\n name = 'unnamed';\n }\n\n var jss = options.jss;\n var declCopy = cloneStyle(decl);\n var rule = jss.plugins.onCreateRule(name, declCopy, options);\n if (rule) return rule; // It is an at-rule and it has no instance.\n\n if (name[0] === '@') {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Unknown rule \" + name) : void 0;\n }\n\n return null;\n}\n\nvar join = function join(value, by) {\n var result = '';\n\n for (var i = 0; i < value.length; i++) {\n // Remove !important from the value, it will be readded later.\n if (value[i] === '!important') break;\n if (result) result += by;\n result += value[i];\n }\n\n return result;\n};\n/**\n * Converts array values to string.\n *\n * `margin: [['5px', '10px']]` > `margin: 5px 10px;`\n * `border: ['1px', '2px']` > `border: 1px, 2px;`\n * `margin: [['5px', '10px'], '!important']` > `margin: 5px 10px !important;`\n * `color: ['red', !important]` > `color: red !important;`\n */\n\n\nvar toCssValue = function toCssValue(value, ignoreImportant) {\n if (ignoreImportant === void 0) {\n ignoreImportant = false;\n }\n\n if (!Array.isArray(value)) return value;\n var cssValue = ''; // Support space separated values via `[['5px', '10px']]`.\n\n if (Array.isArray(value[0])) {\n for (var i = 0; i < value.length; i++) {\n if (value[i] === '!important') break;\n if (cssValue) cssValue += ', ';\n cssValue += join(value[i], ' ');\n }\n } else cssValue = join(value, ', '); // Add !important, because it was ignored.\n\n\n if (!ignoreImportant && value[value.length - 1] === '!important') {\n cssValue += ' !important';\n }\n\n return cssValue;\n};\n/**\n * Indent a string.\n * http://jsperf.com/array-join-vs-for\n */\n\n\nfunction indentStr(str, indent) {\n var result = '';\n\n for (var index = 0; index < indent; index++) {\n result += ' ';\n }\n\n return result + str;\n}\n/**\n * Converts a Rule to CSS string.\n */\n\n\nfunction toCss(selector, style, options) {\n if (options === void 0) {\n options = {};\n }\n\n var result = '';\n if (!style) return result;\n var _options = options,\n _options$indent = _options.indent,\n indent = _options$indent === void 0 ? 0 : _options$indent;\n var fallbacks = style.fallbacks;\n if (selector) indent++; // Apply fallbacks first.\n\n if (fallbacks) {\n // Array syntax {fallbacks: [{prop: value}]}\n if (Array.isArray(fallbacks)) {\n for (var index = 0; index < fallbacks.length; index++) {\n var fallback = fallbacks[index];\n\n for (var prop in fallback) {\n var value = fallback[prop];\n\n if (value != null) {\n if (result) result += '\\n';\n result += \"\" + indentStr(prop + \": \" + toCssValue(value) + \";\", indent);\n }\n }\n }\n } else {\n // Object syntax {fallbacks: {prop: value}}\n for (var _prop in fallbacks) {\n var _value = fallbacks[_prop];\n\n if (_value != null) {\n if (result) result += '\\n';\n result += \"\" + indentStr(_prop + \": \" + toCssValue(_value) + \";\", indent);\n }\n }\n }\n }\n\n for (var _prop2 in style) {\n var _value2 = style[_prop2];\n\n if (_value2 != null && _prop2 !== 'fallbacks') {\n if (result) result += '\\n';\n result += \"\" + indentStr(_prop2 + \": \" + toCssValue(_value2) + \";\", indent);\n }\n } // Allow empty style in this case, because properties will be added dynamically.\n\n\n if (!result && !options.allowEmpty) return result; // When rule is being stringified before selector was defined.\n\n if (!selector) return result;\n indent--;\n if (result) result = \"\\n\" + result + \"\\n\";\n return indentStr(selector + \" {\" + result, indent) + indentStr('}', indent);\n}\n\nvar escapeRegex = /([[\\].#*$><+~=|^:(),\"'`\\s])/g;\nvar nativeEscape = typeof CSS !== 'undefined' && CSS.escape;\n\nvar escape = function escape(str) {\n return nativeEscape ? nativeEscape(str) : str.replace(escapeRegex, '\\\\$1');\n};\n\nvar BaseStyleRule = /*#__PURE__*/function () {\n function BaseStyleRule(key, style, options) {\n this.type = 'style';\n this.key = void 0;\n this.isProcessed = false;\n this.style = void 0;\n this.renderer = void 0;\n this.renderable = void 0;\n this.options = void 0;\n var sheet = options.sheet,\n Renderer = options.Renderer;\n this.key = key;\n this.options = options;\n this.style = style;\n if (sheet) this.renderer = sheet.renderer;else if (Renderer) this.renderer = new Renderer();\n }\n /**\n * Get or set a style property.\n */\n\n\n var _proto = BaseStyleRule.prototype;\n\n _proto.prop = function prop(name, value, options) {\n // It's a getter.\n if (value === undefined) return this.style[name]; // Don't do anything if the value has not changed.\n\n var force = options ? options.force : false;\n if (!force && this.style[name] === value) return this;\n var newValue = value;\n\n if (!options || options.process !== false) {\n newValue = this.options.jss.plugins.onChangeValue(value, name, this);\n }\n\n var isEmpty = newValue == null || newValue === false;\n var isDefined = (name in this.style); // Value is empty and wasn't defined before.\n\n if (isEmpty && !isDefined && !force) return this; // We are going to remove this value.\n\n var remove = isEmpty && isDefined;\n if (remove) delete this.style[name];else this.style[name] = newValue; // Renderable is defined if StyleSheet option `link` is true.\n\n if (this.renderable && this.renderer) {\n if (remove) this.renderer.removeProperty(this.renderable, name);else this.renderer.setProperty(this.renderable, name, newValue);\n return this;\n }\n\n var sheet = this.options.sheet;\n\n if (sheet && sheet.attached) {\n process.env.NODE_ENV !== \"production\" ? warning(false, '[JSS] Rule is not linked. Missing sheet option \"link: true\".') : void 0;\n }\n\n return this;\n };\n\n return BaseStyleRule;\n}();\n\nvar StyleRule = /*#__PURE__*/function (_BaseStyleRule) {\n _inheritsLoose(StyleRule, _BaseStyleRule);\n\n function StyleRule(key, style, options) {\n var _this;\n\n _this = _BaseStyleRule.call(this, key, style, options) || this;\n _this.selectorText = void 0;\n _this.id = void 0;\n _this.renderable = void 0;\n var selector = options.selector,\n scoped = options.scoped,\n sheet = options.sheet,\n generateId = options.generateId;\n\n if (selector) {\n _this.selectorText = selector;\n } else if (scoped !== false) {\n _this.id = generateId(_assertThisInitialized(_assertThisInitialized(_this)), sheet);\n _this.selectorText = \".\" + escape(_this.id);\n }\n\n return _this;\n }\n /**\n * Set selector string.\n * Attention: use this with caution. Most browsers didn't implement\n * selectorText setter, so this may result in rerendering of entire Style Sheet.\n */\n\n\n var _proto2 = StyleRule.prototype;\n /**\n * Apply rule to an element inline.\n */\n\n _proto2.applyTo = function applyTo(renderable) {\n var renderer = this.renderer;\n\n if (renderer) {\n var json = this.toJSON();\n\n for (var prop in json) {\n renderer.setProperty(renderable, prop, json[prop]);\n }\n }\n\n return this;\n }\n /**\n * Returns JSON representation of the rule.\n * Fallbacks are not supported.\n * Useful for inline styles.\n */\n ;\n\n _proto2.toJSON = function toJSON() {\n var json = {};\n\n for (var prop in this.style) {\n var value = this.style[prop];\n if (_typeof(value) !== 'object') json[prop] = value;else if (Array.isArray(value)) json[prop] = toCssValue(value);\n }\n\n return json;\n }\n /**\n * Generates a CSS string.\n */\n ;\n\n _proto2.toString = function toString(options) {\n var sheet = this.options.sheet;\n var link = sheet ? sheet.options.link : false;\n var opts = link ? _extends({}, options, {\n allowEmpty: true\n }) : options;\n return toCss(this.selectorText, this.style, opts);\n };\n\n _createClass(StyleRule, [{\n key: \"selector\",\n set: function set(selector) {\n if (selector === this.selectorText) return;\n this.selectorText = selector;\n var renderer = this.renderer,\n renderable = this.renderable;\n if (!renderable || !renderer) return;\n var hasChanged = renderer.setSelector(renderable, selector); // If selector setter is not implemented, rerender the rule.\n\n if (!hasChanged) {\n renderer.replaceRule(renderable, this);\n }\n }\n /**\n * Get selector string.\n */\n ,\n get: function get() {\n return this.selectorText;\n }\n }]);\n\n return StyleRule;\n}(BaseStyleRule);\n\nvar pluginStyleRule = {\n onCreateRule: function onCreateRule(name, style, options) {\n if (name[0] === '@' || options.parent && options.parent.type === 'keyframes') {\n return null;\n }\n\n return new StyleRule(name, style, options);\n }\n};\nvar defaultToStringOptions = {\n indent: 1,\n children: true\n};\nvar atRegExp = /@([\\w-]+)/;\n/**\n * Conditional rule for @media, @supports\n */\n\nvar ConditionalRule = /*#__PURE__*/function () {\n function ConditionalRule(key, styles, options) {\n this.type = 'conditional';\n this.at = void 0;\n this.key = void 0;\n this.query = void 0;\n this.rules = void 0;\n this.options = void 0;\n this.isProcessed = false;\n this.renderable = void 0;\n this.key = key;\n var atMatch = key.match(atRegExp);\n this.at = atMatch ? atMatch[1] : 'unknown'; // Key might contain a unique suffix in case the `name` passed by user was duplicate.\n\n this.query = options.name || \"@\" + this.at;\n this.options = options;\n this.rules = new RuleList(_extends({}, options, {\n parent: this\n }));\n\n for (var name in styles) {\n this.rules.add(name, styles[name]);\n }\n\n this.rules.process();\n }\n /**\n * Get a rule.\n */\n\n\n var _proto = ConditionalRule.prototype;\n\n _proto.getRule = function getRule(name) {\n return this.rules.get(name);\n }\n /**\n * Get index of a rule.\n */\n ;\n\n _proto.indexOf = function indexOf(rule) {\n return this.rules.indexOf(rule);\n }\n /**\n * Create and register rule, run plugins.\n */\n ;\n\n _proto.addRule = function addRule(name, style, options) {\n var rule = this.rules.add(name, style, options);\n if (!rule) return null;\n this.options.jss.plugins.onProcessRule(rule);\n return rule;\n }\n /**\n * Generates a CSS string.\n */\n ;\n\n _proto.toString = function toString(options) {\n if (options === void 0) {\n options = defaultToStringOptions;\n }\n\n if (options.indent == null) options.indent = defaultToStringOptions.indent;\n if (options.children == null) options.children = defaultToStringOptions.children;\n\n if (options.children === false) {\n return this.query + \" {}\";\n }\n\n var children = this.rules.toString(options);\n return children ? this.query + \" {\\n\" + children + \"\\n}\" : '';\n };\n\n return ConditionalRule;\n}();\n\nvar keyRegExp = /@media|@supports\\s+/;\nvar pluginConditionalRule = {\n onCreateRule: function onCreateRule(key, styles, options) {\n return keyRegExp.test(key) ? new ConditionalRule(key, styles, options) : null;\n }\n};\nvar defaultToStringOptions$1 = {\n indent: 1,\n children: true\n};\nvar nameRegExp = /@keyframes\\s+([\\w-]+)/;\n/**\n * Rule for @keyframes\n */\n\nvar KeyframesRule = /*#__PURE__*/function () {\n function KeyframesRule(key, frames, options) {\n this.type = 'keyframes';\n this.at = '@keyframes';\n this.key = void 0;\n this.name = void 0;\n this.id = void 0;\n this.rules = void 0;\n this.options = void 0;\n this.isProcessed = false;\n this.renderable = void 0;\n var nameMatch = key.match(nameRegExp);\n\n if (nameMatch && nameMatch[1]) {\n this.name = nameMatch[1];\n } else {\n this.name = 'noname';\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Bad keyframes name \" + key) : void 0;\n }\n\n this.key = this.type + \"-\" + this.name;\n this.options = options;\n var scoped = options.scoped,\n sheet = options.sheet,\n generateId = options.generateId;\n this.id = scoped === false ? this.name : escape(generateId(this, sheet));\n this.rules = new RuleList(_extends({}, options, {\n parent: this\n }));\n\n for (var name in frames) {\n this.rules.add(name, frames[name], _extends({}, options, {\n parent: this\n }));\n }\n\n this.rules.process();\n }\n /**\n * Generates a CSS string.\n */\n\n\n var _proto = KeyframesRule.prototype;\n\n _proto.toString = function toString(options) {\n if (options === void 0) {\n options = defaultToStringOptions$1;\n }\n\n if (options.indent == null) options.indent = defaultToStringOptions$1.indent;\n if (options.children == null) options.children = defaultToStringOptions$1.children;\n\n if (options.children === false) {\n return this.at + \" \" + this.id + \" {}\";\n }\n\n var children = this.rules.toString(options);\n if (children) children = \"\\n\" + children + \"\\n\";\n return this.at + \" \" + this.id + \" {\" + children + \"}\";\n };\n\n return KeyframesRule;\n}();\n\nvar keyRegExp$1 = /@keyframes\\s+/;\nvar refRegExp = /\\$([\\w-]+)/g;\n\nvar findReferencedKeyframe = function findReferencedKeyframe(val, keyframes) {\n if (typeof val === 'string') {\n return val.replace(refRegExp, function (match, name) {\n if (name in keyframes) {\n return keyframes[name];\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Referenced keyframes rule \\\"\" + name + \"\\\" is not defined.\") : void 0;\n return match;\n });\n }\n\n return val;\n};\n/**\n * Replace the reference for a animation name.\n */\n\n\nvar replaceRef = function replaceRef(style, prop, keyframes) {\n var value = style[prop];\n var refKeyframe = findReferencedKeyframe(value, keyframes);\n\n if (refKeyframe !== value) {\n style[prop] = refKeyframe;\n }\n};\n\nvar plugin = {\n onCreateRule: function onCreateRule(key, frames, options) {\n return typeof key === 'string' && keyRegExp$1.test(key) ? new KeyframesRule(key, frames, options) : null;\n },\n // Animation name ref replacer.\n onProcessStyle: function onProcessStyle(style, rule, sheet) {\n if (rule.type !== 'style' || !sheet) return style;\n if ('animation-name' in style) replaceRef(style, 'animation-name', sheet.keyframes);\n if ('animation' in style) replaceRef(style, 'animation', sheet.keyframes);\n return style;\n },\n onChangeValue: function onChangeValue(val, prop, rule) {\n var sheet = rule.options.sheet;\n\n if (!sheet) {\n return val;\n }\n\n switch (prop) {\n case 'animation':\n return findReferencedKeyframe(val, sheet.keyframes);\n\n case 'animation-name':\n return findReferencedKeyframe(val, sheet.keyframes);\n\n default:\n return val;\n }\n }\n};\n\nvar KeyframeRule = /*#__PURE__*/function (_BaseStyleRule) {\n _inheritsLoose(KeyframeRule, _BaseStyleRule);\n\n function KeyframeRule() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _BaseStyleRule.call.apply(_BaseStyleRule, [this].concat(args)) || this;\n _this.renderable = void 0;\n return _this;\n }\n\n var _proto = KeyframeRule.prototype;\n /**\n * Generates a CSS string.\n */\n\n _proto.toString = function toString(options) {\n var sheet = this.options.sheet;\n var link = sheet ? sheet.options.link : false;\n var opts = link ? _extends({}, options, {\n allowEmpty: true\n }) : options;\n return toCss(this.key, this.style, opts);\n };\n\n return KeyframeRule;\n}(BaseStyleRule);\n\nvar pluginKeyframeRule = {\n onCreateRule: function onCreateRule(key, style, options) {\n if (options.parent && options.parent.type === 'keyframes') {\n return new KeyframeRule(key, style, options);\n }\n\n return null;\n }\n};\n\nvar FontFaceRule = /*#__PURE__*/function () {\n function FontFaceRule(key, style, options) {\n this.type = 'font-face';\n this.at = '@font-face';\n this.key = void 0;\n this.style = void 0;\n this.options = void 0;\n this.isProcessed = false;\n this.renderable = void 0;\n this.key = key;\n this.style = style;\n this.options = options;\n }\n /**\n * Generates a CSS string.\n */\n\n\n var _proto = FontFaceRule.prototype;\n\n _proto.toString = function toString(options) {\n if (Array.isArray(this.style)) {\n var str = '';\n\n for (var index = 0; index < this.style.length; index++) {\n str += toCss(this.at, this.style[index]);\n if (this.style[index + 1]) str += '\\n';\n }\n\n return str;\n }\n\n return toCss(this.at, this.style, options);\n };\n\n return FontFaceRule;\n}();\n\nvar keyRegExp$2 = /@font-face/;\nvar pluginFontFaceRule = {\n onCreateRule: function onCreateRule(key, style, options) {\n return keyRegExp$2.test(key) ? new FontFaceRule(key, style, options) : null;\n }\n};\n\nvar ViewportRule = /*#__PURE__*/function () {\n function ViewportRule(key, style, options) {\n this.type = 'viewport';\n this.at = '@viewport';\n this.key = void 0;\n this.style = void 0;\n this.options = void 0;\n this.isProcessed = false;\n this.renderable = void 0;\n this.key = key;\n this.style = style;\n this.options = options;\n }\n /**\n * Generates a CSS string.\n */\n\n\n var _proto = ViewportRule.prototype;\n\n _proto.toString = function toString(options) {\n return toCss(this.key, this.style, options);\n };\n\n return ViewportRule;\n}();\n\nvar pluginViewportRule = {\n onCreateRule: function onCreateRule(key, style, options) {\n return key === '@viewport' || key === '@-ms-viewport' ? new ViewportRule(key, style, options) : null;\n }\n};\n\nvar SimpleRule = /*#__PURE__*/function () {\n function SimpleRule(key, value, options) {\n this.type = 'simple';\n this.key = void 0;\n this.value = void 0;\n this.options = void 0;\n this.isProcessed = false;\n this.renderable = void 0;\n this.key = key;\n this.value = value;\n this.options = options;\n }\n /**\n * Generates a CSS string.\n */\n // eslint-disable-next-line no-unused-vars\n\n\n var _proto = SimpleRule.prototype;\n\n _proto.toString = function toString(options) {\n if (Array.isArray(this.value)) {\n var str = '';\n\n for (var index = 0; index < this.value.length; index++) {\n str += this.key + \" \" + this.value[index] + \";\";\n if (this.value[index + 1]) str += '\\n';\n }\n\n return str;\n }\n\n return this.key + \" \" + this.value + \";\";\n };\n\n return SimpleRule;\n}();\n\nvar keysMap = {\n '@charset': true,\n '@import': true,\n '@namespace': true\n};\nvar pluginSimpleRule = {\n onCreateRule: function onCreateRule(key, value, options) {\n return key in keysMap ? new SimpleRule(key, value, options) : null;\n }\n};\nvar plugins = [pluginStyleRule, pluginConditionalRule, plugin, pluginKeyframeRule, pluginFontFaceRule, pluginViewportRule, pluginSimpleRule];\nvar defaultUpdateOptions = {\n process: true\n};\nvar forceUpdateOptions = {\n force: true,\n process: true\n /**\n * Contains rules objects and allows adding/removing etc.\n * Is used for e.g. by `StyleSheet` or `ConditionalRule`.\n */\n\n};\n\nvar RuleList = /*#__PURE__*/function () {\n // Rules registry for access by .get() method.\n // It contains the same rule registered by name and by selector.\n // Original styles object.\n // Used to ensure correct rules order.\n function RuleList(options) {\n this.map = {};\n this.raw = {};\n this.index = [];\n this.counter = 0;\n this.options = void 0;\n this.classes = void 0;\n this.keyframes = void 0;\n this.options = options;\n this.classes = options.classes;\n this.keyframes = options.keyframes;\n }\n /**\n * Create and register rule.\n *\n * Will not render after Style Sheet was rendered the first time.\n */\n\n\n var _proto = RuleList.prototype;\n\n _proto.add = function add(name, decl, ruleOptions) {\n var _this$options = this.options,\n parent = _this$options.parent,\n sheet = _this$options.sheet,\n jss = _this$options.jss,\n Renderer = _this$options.Renderer,\n generateId = _this$options.generateId,\n scoped = _this$options.scoped;\n\n var options = _extends({\n classes: this.classes,\n parent: parent,\n sheet: sheet,\n jss: jss,\n Renderer: Renderer,\n generateId: generateId,\n scoped: scoped,\n name: name,\n keyframes: this.keyframes,\n selector: undefined\n }, ruleOptions); // When user uses .createStyleSheet(), duplicate names are not possible, but\n // `sheet.addRule()` opens the door for any duplicate rule name. When this happens\n // we need to make the key unique within this RuleList instance scope.\n\n\n var key = name;\n\n if (name in this.raw) {\n key = name + \"-d\" + this.counter++;\n } // We need to save the original decl before creating the rule\n // because cache plugin needs to use it as a key to return a cached rule.\n\n\n this.raw[key] = decl;\n\n if (key in this.classes) {\n // E.g. rules inside of @media container\n options.selector = \".\" + escape(this.classes[key]);\n }\n\n var rule = createRule(key, decl, options);\n if (!rule) return null;\n this.register(rule);\n var index = options.index === undefined ? this.index.length : options.index;\n this.index.splice(index, 0, rule);\n return rule;\n }\n /**\n * Get a rule.\n */\n ;\n\n _proto.get = function get(name) {\n return this.map[name];\n }\n /**\n * Delete a rule.\n */\n ;\n\n _proto.remove = function remove(rule) {\n this.unregister(rule);\n delete this.raw[rule.key];\n this.index.splice(this.index.indexOf(rule), 1);\n }\n /**\n * Get index of a rule.\n */\n ;\n\n _proto.indexOf = function indexOf(rule) {\n return this.index.indexOf(rule);\n }\n /**\n * Run `onProcessRule()` plugins on every rule.\n */\n ;\n\n _proto.process = function process() {\n var plugins = this.options.jss.plugins; // We need to clone array because if we modify the index somewhere else during a loop\n // we end up with very hard-to-track-down side effects.\n\n this.index.slice(0).forEach(plugins.onProcessRule, plugins);\n }\n /**\n * Register a rule in `.map`, `.classes` and `.keyframes` maps.\n */\n ;\n\n _proto.register = function register(rule) {\n this.map[rule.key] = rule;\n\n if (rule instanceof StyleRule) {\n this.map[rule.selector] = rule;\n if (rule.id) this.classes[rule.key] = rule.id;\n } else if (rule instanceof KeyframesRule && this.keyframes) {\n this.keyframes[rule.name] = rule.id;\n }\n }\n /**\n * Unregister a rule.\n */\n ;\n\n _proto.unregister = function unregister(rule) {\n delete this.map[rule.key];\n\n if (rule instanceof StyleRule) {\n delete this.map[rule.selector];\n delete this.classes[rule.key];\n } else if (rule instanceof KeyframesRule) {\n delete this.keyframes[rule.name];\n }\n }\n /**\n * Update the function values with a new data.\n */\n ;\n\n _proto.update = function update() {\n var name;\n var data;\n var options;\n\n if (typeof (arguments.length <= 0 ? undefined : arguments[0]) === 'string') {\n name = arguments.length <= 0 ? undefined : arguments[0]; // $FlowFixMe[invalid-tuple-index]\n\n data = arguments.length <= 1 ? undefined : arguments[1]; // $FlowFixMe[invalid-tuple-index]\n\n options = arguments.length <= 2 ? undefined : arguments[2];\n } else {\n data = arguments.length <= 0 ? undefined : arguments[0]; // $FlowFixMe[invalid-tuple-index]\n\n options = arguments.length <= 1 ? undefined : arguments[1];\n name = null;\n }\n\n if (name) {\n this.updateOne(this.map[name], data, options);\n } else {\n for (var index = 0; index < this.index.length; index++) {\n this.updateOne(this.index[index], data, options);\n }\n }\n }\n /**\n * Execute plugins, update rule props.\n */\n ;\n\n _proto.updateOne = function updateOne(rule, data, options) {\n if (options === void 0) {\n options = defaultUpdateOptions;\n }\n\n var _this$options2 = this.options,\n plugins = _this$options2.jss.plugins,\n sheet = _this$options2.sheet; // It is a rules container like for e.g. ConditionalRule.\n\n if (rule.rules instanceof RuleList) {\n rule.rules.update(data, options);\n return;\n }\n\n var styleRule = rule;\n var style = styleRule.style;\n plugins.onUpdate(data, rule, sheet, options); // We rely on a new `style` ref in case it was mutated during onUpdate hook.\n\n if (options.process && style && style !== styleRule.style) {\n // We need to run the plugins in case new `style` relies on syntax plugins.\n plugins.onProcessStyle(styleRule.style, styleRule, sheet); // Update and add props.\n\n for (var prop in styleRule.style) {\n var nextValue = styleRule.style[prop];\n var prevValue = style[prop]; // We need to use `force: true` because `rule.style` has been updated during onUpdate hook, so `rule.prop()` will not update the CSSOM rule.\n // We do this comparison to avoid unneeded `rule.prop()` calls, since we have the old `style` object here.\n\n if (nextValue !== prevValue) {\n styleRule.prop(prop, nextValue, forceUpdateOptions);\n }\n } // Remove props.\n\n\n for (var _prop in style) {\n var _nextValue = styleRule.style[_prop];\n var _prevValue = style[_prop]; // We need to use `force: true` because `rule.style` has been updated during onUpdate hook, so `rule.prop()` will not update the CSSOM rule.\n // We do this comparison to avoid unneeded `rule.prop()` calls, since we have the old `style` object here.\n\n if (_nextValue == null && _nextValue !== _prevValue) {\n styleRule.prop(_prop, null, forceUpdateOptions);\n }\n }\n }\n }\n /**\n * Convert rules to a CSS string.\n */\n ;\n\n _proto.toString = function toString(options) {\n var str = '';\n var sheet = this.options.sheet;\n var link = sheet ? sheet.options.link : false;\n\n for (var index = 0; index < this.index.length; index++) {\n var rule = this.index[index];\n var css = rule.toString(options); // No need to render an empty rule.\n\n if (!css && !link) continue;\n if (str) str += '\\n';\n str += css;\n }\n\n return str;\n };\n\n return RuleList;\n}();\n\nvar StyleSheet = /*#__PURE__*/function () {\n function StyleSheet(styles, options) {\n this.options = void 0;\n this.deployed = void 0;\n this.attached = void 0;\n this.rules = void 0;\n this.renderer = void 0;\n this.classes = void 0;\n this.keyframes = void 0;\n this.queue = void 0;\n this.attached = false;\n this.deployed = false;\n this.classes = {};\n this.keyframes = {};\n this.options = _extends({}, options, {\n sheet: this,\n parent: this,\n classes: this.classes,\n keyframes: this.keyframes\n });\n\n if (options.Renderer) {\n this.renderer = new options.Renderer(this);\n }\n\n this.rules = new RuleList(this.options);\n\n for (var name in styles) {\n this.rules.add(name, styles[name]);\n }\n\n this.rules.process();\n }\n /**\n * Attach renderable to the render tree.\n */\n\n\n var _proto = StyleSheet.prototype;\n\n _proto.attach = function attach() {\n if (this.attached) return this;\n if (this.renderer) this.renderer.attach();\n this.attached = true; // Order is important, because we can't use insertRule API if style element is not attached.\n\n if (!this.deployed) this.deploy();\n return this;\n }\n /**\n * Remove renderable from render tree.\n */\n ;\n\n _proto.detach = function detach() {\n if (!this.attached) return this;\n if (this.renderer) this.renderer.detach();\n this.attached = false;\n return this;\n }\n /**\n * Add a rule to the current stylesheet.\n * Will insert a rule also after the stylesheet has been rendered first time.\n */\n ;\n\n _proto.addRule = function addRule(name, decl, options) {\n var queue = this.queue; // Plugins can create rules.\n // In order to preserve the right order, we need to queue all `.addRule` calls,\n // which happen after the first `rules.add()` call.\n\n if (this.attached && !queue) this.queue = [];\n var rule = this.rules.add(name, decl, options);\n if (!rule) return null;\n this.options.jss.plugins.onProcessRule(rule);\n\n if (this.attached) {\n if (!this.deployed) return rule; // Don't insert rule directly if there is no stringified version yet.\n // It will be inserted all together when .attach is called.\n\n if (queue) queue.push(rule);else {\n this.insertRule(rule);\n\n if (this.queue) {\n this.queue.forEach(this.insertRule, this);\n this.queue = undefined;\n }\n }\n return rule;\n } // We can't add rules to a detached style node.\n // We will redeploy the sheet once user will attach it.\n\n\n this.deployed = false;\n return rule;\n }\n /**\n * Insert rule into the StyleSheet\n */\n ;\n\n _proto.insertRule = function insertRule(rule) {\n if (this.renderer) {\n this.renderer.insertRule(rule);\n }\n }\n /**\n * Create and add rules.\n * Will render also after Style Sheet was rendered the first time.\n */\n ;\n\n _proto.addRules = function addRules(styles, options) {\n var added = [];\n\n for (var name in styles) {\n var rule = this.addRule(name, styles[name], options);\n if (rule) added.push(rule);\n }\n\n return added;\n }\n /**\n * Get a rule by name.\n */\n ;\n\n _proto.getRule = function getRule(name) {\n return this.rules.get(name);\n }\n /**\n * Delete a rule by name.\n * Returns `true`: if rule has been deleted from the DOM.\n */\n ;\n\n _proto.deleteRule = function deleteRule(name) {\n var rule = _typeof(name) === 'object' ? name : this.rules.get(name);\n\n if (!rule || // Style sheet was created without link: true and attached, in this case we\n // won't be able to remove the CSS rule from the DOM.\n this.attached && !rule.renderable) {\n return false;\n }\n\n this.rules.remove(rule);\n\n if (this.attached && rule.renderable && this.renderer) {\n return this.renderer.deleteRule(rule.renderable);\n }\n\n return true;\n }\n /**\n * Get index of a rule.\n */\n ;\n\n _proto.indexOf = function indexOf(rule) {\n return this.rules.indexOf(rule);\n }\n /**\n * Deploy pure CSS string to a renderable.\n */\n ;\n\n _proto.deploy = function deploy() {\n if (this.renderer) this.renderer.deploy();\n this.deployed = true;\n return this;\n }\n /**\n * Update the function values with a new data.\n */\n ;\n\n _proto.update = function update() {\n var _this$rules;\n\n (_this$rules = this.rules).update.apply(_this$rules, arguments);\n\n return this;\n }\n /**\n * Updates a single rule.\n */\n ;\n\n _proto.updateOne = function updateOne(rule, data, options) {\n this.rules.updateOne(rule, data, options);\n return this;\n }\n /**\n * Convert rules to a CSS string.\n */\n ;\n\n _proto.toString = function toString(options) {\n return this.rules.toString(options);\n };\n\n return StyleSheet;\n}();\n\nvar PluginsRegistry = /*#__PURE__*/function () {\n function PluginsRegistry() {\n this.plugins = {\n internal: [],\n external: []\n };\n this.registry = void 0;\n }\n\n var _proto = PluginsRegistry.prototype;\n /**\n * Call `onCreateRule` hooks and return an object if returned by a hook.\n */\n\n _proto.onCreateRule = function onCreateRule(name, decl, options) {\n for (var i = 0; i < this.registry.onCreateRule.length; i++) {\n var rule = this.registry.onCreateRule[i](name, decl, options);\n if (rule) return rule;\n }\n\n return null;\n }\n /**\n * Call `onProcessRule` hooks.\n */\n ;\n\n _proto.onProcessRule = function onProcessRule(rule) {\n if (rule.isProcessed) return;\n var sheet = rule.options.sheet;\n\n for (var i = 0; i < this.registry.onProcessRule.length; i++) {\n this.registry.onProcessRule[i](rule, sheet);\n }\n\n if (rule.style) this.onProcessStyle(rule.style, rule, sheet);\n rule.isProcessed = true;\n }\n /**\n * Call `onProcessStyle` hooks.\n */\n ;\n\n _proto.onProcessStyle = function onProcessStyle(style, rule, sheet) {\n for (var i = 0; i < this.registry.onProcessStyle.length; i++) {\n // $FlowFixMe[prop-missing]\n rule.style = this.registry.onProcessStyle[i](rule.style, rule, sheet);\n }\n }\n /**\n * Call `onProcessSheet` hooks.\n */\n ;\n\n _proto.onProcessSheet = function onProcessSheet(sheet) {\n for (var i = 0; i < this.registry.onProcessSheet.length; i++) {\n this.registry.onProcessSheet[i](sheet);\n }\n }\n /**\n * Call `onUpdate` hooks.\n */\n ;\n\n _proto.onUpdate = function onUpdate(data, rule, sheet, options) {\n for (var i = 0; i < this.registry.onUpdate.length; i++) {\n this.registry.onUpdate[i](data, rule, sheet, options);\n }\n }\n /**\n * Call `onChangeValue` hooks.\n */\n ;\n\n _proto.onChangeValue = function onChangeValue(value, prop, rule) {\n var processedValue = value;\n\n for (var i = 0; i < this.registry.onChangeValue.length; i++) {\n processedValue = this.registry.onChangeValue[i](processedValue, prop, rule);\n }\n\n return processedValue;\n }\n /**\n * Register a plugin.\n */\n ;\n\n _proto.use = function use(newPlugin, options) {\n if (options === void 0) {\n options = {\n queue: 'external'\n };\n }\n\n var plugins = this.plugins[options.queue]; // Avoids applying same plugin twice, at least based on ref.\n\n if (plugins.indexOf(newPlugin) !== -1) {\n return;\n }\n\n plugins.push(newPlugin);\n this.registry = [].concat(this.plugins.external, this.plugins.internal).reduce(function (registry, plugin) {\n for (var name in plugin) {\n if (name in registry) {\n registry[name].push(plugin[name]);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Unknown hook \\\"\" + name + \"\\\".\") : void 0;\n }\n }\n\n return registry;\n }, {\n onCreateRule: [],\n onProcessRule: [],\n onProcessStyle: [],\n onProcessSheet: [],\n onChangeValue: [],\n onUpdate: []\n });\n };\n\n return PluginsRegistry;\n}();\n/**\n * Sheets registry to access them all at one place.\n */\n\n\nvar SheetsRegistry = /*#__PURE__*/function () {\n function SheetsRegistry() {\n this.registry = [];\n }\n\n var _proto = SheetsRegistry.prototype;\n /**\n * Register a Style Sheet.\n */\n\n _proto.add = function add(sheet) {\n var registry = this.registry;\n var index = sheet.options.index;\n if (registry.indexOf(sheet) !== -1) return;\n\n if (registry.length === 0 || index >= this.index) {\n registry.push(sheet);\n return;\n } // Find a position.\n\n\n for (var i = 0; i < registry.length; i++) {\n if (registry[i].options.index > index) {\n registry.splice(i, 0, sheet);\n return;\n }\n }\n }\n /**\n * Reset the registry.\n */\n ;\n\n _proto.reset = function reset() {\n this.registry = [];\n }\n /**\n * Remove a Style Sheet.\n */\n ;\n\n _proto.remove = function remove(sheet) {\n var index = this.registry.indexOf(sheet);\n this.registry.splice(index, 1);\n }\n /**\n * Convert all attached sheets to a CSS string.\n */\n ;\n\n _proto.toString = function toString(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n attached = _ref.attached,\n options = _objectWithoutPropertiesLoose(_ref, [\"attached\"]);\n\n var css = '';\n\n for (var i = 0; i < this.registry.length; i++) {\n var sheet = this.registry[i];\n\n if (attached != null && sheet.attached !== attached) {\n continue;\n }\n\n if (css) css += '\\n';\n css += sheet.toString(options);\n }\n\n return css;\n };\n\n _createClass(SheetsRegistry, [{\n key: \"index\",\n\n /**\n * Current highest index number.\n */\n get: function get() {\n return this.registry.length === 0 ? 0 : this.registry[this.registry.length - 1].options.index;\n }\n }]);\n\n return SheetsRegistry;\n}();\n/**\n * This is a global sheets registry. Only DomRenderer will add sheets to it.\n * On the server one should use an own SheetsRegistry instance and add the\n * sheets to it, because you need to make sure to create a new registry for\n * each request in order to not leak sheets across requests.\n */\n\n\nvar registry = new SheetsRegistry();\n/* eslint-disable */\n\n/**\n * Now that `globalThis` is available on most platforms\n * (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis#browser_compatibility)\n * we check for `globalThis` first. `globalThis` is necessary for jss\n * to run in Agoric's secure version of JavaScript (SES). Under SES,\n * `globalThis` exists, but `window`, `self`, and `Function('return\n * this')()` are all undefined for security reasons.\n *\n * https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\n */\n\nvar globalThis$1 = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' && window.Math === Math ? window : typeof self !== 'undefined' && self.Math === Math ? self : Function('return this')();\nvar ns = '2f1acc6c3a606b082e5eef5e54414ffb';\nif (globalThis$1[ns] == null) globalThis$1[ns] = 0; // Bundle may contain multiple JSS versions at the same time. In order to identify\n// the current version with just one short number and use it for classes generation\n// we use a counter. Also it is more accurate, because user can manually reevaluate\n// the module.\n\nvar moduleId = globalThis$1[ns]++;\nvar maxRules = 1e10;\n/**\n * Returns a function which generates unique class names based on counters.\n * When new generator function is created, rule counter is reseted.\n * We need to reset the rule counter for SSR for each request.\n */\n\nvar createGenerateId = function createGenerateId(options) {\n if (options === void 0) {\n options = {};\n }\n\n var ruleCounter = 0;\n return function (rule, sheet) {\n ruleCounter += 1;\n\n if (ruleCounter > maxRules) {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] You might have a memory leak. Rule counter is at \" + ruleCounter + \".\") : void 0;\n }\n\n var jssId = '';\n var prefix = '';\n\n if (sheet) {\n if (sheet.options.classNamePrefix) {\n prefix = sheet.options.classNamePrefix;\n }\n\n if (sheet.options.jss.id != null) {\n jssId = String(sheet.options.jss.id);\n }\n }\n\n if (options.minify) {\n // Using \"c\" because a number can't be the first char in a class name.\n return \"\" + (prefix || 'c') + moduleId + jssId + ruleCounter;\n }\n\n return prefix + rule.key + \"-\" + moduleId + (jssId ? \"-\" + jssId : '') + \"-\" + ruleCounter;\n };\n};\n/**\n * Cache the value from the first time a function is called.\n */\n\n\nvar memoize = function memoize(fn) {\n var value;\n return function () {\n if (!value) value = fn();\n return value;\n };\n};\n/**\n * Get a style property value.\n */\n\n\nvar getPropertyValue = function getPropertyValue(cssRule, prop) {\n try {\n // Support CSSTOM.\n if (cssRule.attributeStyleMap) {\n return cssRule.attributeStyleMap.get(prop);\n }\n\n return cssRule.style.getPropertyValue(prop);\n } catch (err) {\n // IE may throw if property is unknown.\n return '';\n }\n};\n/**\n * Set a style property.\n */\n\n\nvar setProperty = function setProperty(cssRule, prop, value) {\n try {\n var cssValue = value;\n\n if (Array.isArray(value)) {\n cssValue = toCssValue(value, true);\n\n if (value[value.length - 1] === '!important') {\n cssRule.style.setProperty(prop, cssValue, 'important');\n return true;\n }\n } // Support CSSTOM.\n\n\n if (cssRule.attributeStyleMap) {\n cssRule.attributeStyleMap.set(prop, cssValue);\n } else {\n cssRule.style.setProperty(prop, cssValue);\n }\n } catch (err) {\n // IE may throw if property is unknown.\n return false;\n }\n\n return true;\n};\n/**\n * Remove a style property.\n */\n\n\nvar removeProperty = function removeProperty(cssRule, prop) {\n try {\n // Support CSSTOM.\n if (cssRule.attributeStyleMap) {\n cssRule.attributeStyleMap[\"delete\"](prop);\n } else {\n cssRule.style.removeProperty(prop);\n }\n } catch (err) {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] DOMException \\\"\" + err.message + \"\\\" was thrown. Tried to remove property \\\"\" + prop + \"\\\".\") : void 0;\n }\n};\n/**\n * Set the selector.\n */\n\n\nvar setSelector = function setSelector(cssRule, selectorText) {\n cssRule.selectorText = selectorText; // Return false if setter was not successful.\n // Currently works in chrome only.\n\n return cssRule.selectorText === selectorText;\n};\n/**\n * Gets the `head` element upon the first call and caches it.\n * We assume it can't be null.\n */\n\n\nvar getHead = memoize(function () {\n return document.querySelector('head');\n});\n/**\n * Find attached sheet with an index higher than the passed one.\n */\n\nfunction findHigherSheet(registry, options) {\n for (var i = 0; i < registry.length; i++) {\n var sheet = registry[i];\n\n if (sheet.attached && sheet.options.index > options.index && sheet.options.insertionPoint === options.insertionPoint) {\n return sheet;\n }\n }\n\n return null;\n}\n/**\n * Find attached sheet with the highest index.\n */\n\n\nfunction findHighestSheet(registry, options) {\n for (var i = registry.length - 1; i >= 0; i--) {\n var sheet = registry[i];\n\n if (sheet.attached && sheet.options.insertionPoint === options.insertionPoint) {\n return sheet;\n }\n }\n\n return null;\n}\n/**\n * Find a comment with \"jss\" inside.\n */\n\n\nfunction findCommentNode(text) {\n var head = getHead();\n\n for (var i = 0; i < head.childNodes.length; i++) {\n var node = head.childNodes[i];\n\n if (node.nodeType === 8 && node.nodeValue.trim() === text) {\n return node;\n }\n }\n\n return null;\n}\n/**\n * Find a node before which we can insert the sheet.\n */\n\n\nfunction findPrevNode(options) {\n var registry$1 = registry.registry;\n\n if (registry$1.length > 0) {\n // Try to insert before the next higher sheet.\n var sheet = findHigherSheet(registry$1, options);\n\n if (sheet && sheet.renderer) {\n return {\n parent: sheet.renderer.element.parentNode,\n node: sheet.renderer.element\n };\n } // Otherwise insert after the last attached.\n\n\n sheet = findHighestSheet(registry$1, options);\n\n if (sheet && sheet.renderer) {\n return {\n parent: sheet.renderer.element.parentNode,\n node: sheet.renderer.element.nextSibling\n };\n }\n } // Try to find a comment placeholder if registry is empty.\n\n\n var insertionPoint = options.insertionPoint;\n\n if (insertionPoint && typeof insertionPoint === 'string') {\n var comment = findCommentNode(insertionPoint);\n\n if (comment) {\n return {\n parent: comment.parentNode,\n node: comment.nextSibling\n };\n } // If user specifies an insertion point and it can't be found in the document -\n // bad specificity issues may appear.\n\n\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Insertion point \\\"\" + insertionPoint + \"\\\" not found.\") : void 0;\n }\n\n return false;\n}\n/**\n * Insert style element into the DOM.\n */\n\n\nfunction insertStyle(style, options) {\n var insertionPoint = options.insertionPoint;\n var nextNode = findPrevNode(options);\n\n if (nextNode !== false && nextNode.parent) {\n nextNode.parent.insertBefore(style, nextNode.node);\n return;\n } // Works with iframes and any node types.\n\n\n if (insertionPoint && typeof insertionPoint.nodeType === 'number') {\n // https://stackoverflow.com/questions/41328728/force-casting-in-flow\n var insertionPointElement = insertionPoint;\n var parentNode = insertionPointElement.parentNode;\n if (parentNode) parentNode.insertBefore(style, insertionPointElement.nextSibling);else process.env.NODE_ENV !== \"production\" ? warning(false, '[JSS] Insertion point is not in the DOM.') : void 0;\n return;\n }\n\n getHead().appendChild(style);\n}\n/**\n * Read jss nonce setting from the page if the user has set it.\n */\n\n\nvar getNonce = memoize(function () {\n var node = document.querySelector('meta[property=\"csp-nonce\"]');\n return node ? node.getAttribute('content') : null;\n});\n\nvar _insertRule = function insertRule(container, rule, index) {\n try {\n if ('insertRule' in container) {\n var c = container;\n c.insertRule(rule, index);\n } // Keyframes rule.\n else if ('appendRule' in container) {\n var _c = container;\n\n _c.appendRule(rule);\n }\n } catch (err) {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] \" + err.message) : void 0;\n return false;\n }\n\n return container.cssRules[index];\n};\n\nvar getValidRuleInsertionIndex = function getValidRuleInsertionIndex(container, index) {\n var maxIndex = container.cssRules.length; // In case previous insertion fails, passed index might be wrong\n\n if (index === undefined || index > maxIndex) {\n // eslint-disable-next-line no-param-reassign\n return maxIndex;\n }\n\n return index;\n};\n\nvar createStyle = function createStyle() {\n var el = document.createElement('style'); // Without it, IE will have a broken source order specificity if we\n // insert rules after we insert the style tag.\n // It seems to kick-off the source order specificity algorithm.\n\n el.textContent = '\\n';\n return el;\n};\n\nvar DomRenderer = /*#__PURE__*/function () {\n // HTMLStyleElement needs fixing https://github.com/facebook/flow/issues/2696\n // Will be empty if link: true option is not set, because\n // it is only for use together with insertRule API.\n function DomRenderer(sheet) {\n this.getPropertyValue = getPropertyValue;\n this.setProperty = setProperty;\n this.removeProperty = removeProperty;\n this.setSelector = setSelector;\n this.element = void 0;\n this.sheet = void 0;\n this.hasInsertedRules = false;\n this.cssRules = []; // There is no sheet when the renderer is used from a standalone StyleRule.\n\n if (sheet) registry.add(sheet);\n this.sheet = sheet;\n\n var _ref = this.sheet ? this.sheet.options : {},\n media = _ref.media,\n meta = _ref.meta,\n element = _ref.element;\n\n this.element = element || createStyle();\n this.element.setAttribute('data-jss', '');\n if (media) this.element.setAttribute('media', media);\n if (meta) this.element.setAttribute('data-meta', meta);\n var nonce = getNonce();\n if (nonce) this.element.setAttribute('nonce', nonce);\n }\n /**\n * Insert style element into render tree.\n */\n\n\n var _proto = DomRenderer.prototype;\n\n _proto.attach = function attach() {\n // In the case the element node is external and it is already in the DOM.\n if (this.element.parentNode || !this.sheet) return;\n insertStyle(this.element, this.sheet.options); // When rules are inserted using `insertRule` API, after `sheet.detach().attach()`\n // most browsers create a new CSSStyleSheet, except of all IEs.\n\n var deployed = Boolean(this.sheet && this.sheet.deployed);\n\n if (this.hasInsertedRules && deployed) {\n this.hasInsertedRules = false;\n this.deploy();\n }\n }\n /**\n * Remove style element from render tree.\n */\n ;\n\n _proto.detach = function detach() {\n if (!this.sheet) return;\n var parentNode = this.element.parentNode;\n if (parentNode) parentNode.removeChild(this.element); // In the most browsers, rules inserted using insertRule() API will be lost when style element is removed.\n // Though IE will keep them and we need a consistent behavior.\n\n if (this.sheet.options.link) {\n this.cssRules = [];\n this.element.textContent = '\\n';\n }\n }\n /**\n * Inject CSS string into element.\n */\n ;\n\n _proto.deploy = function deploy() {\n var sheet = this.sheet;\n if (!sheet) return;\n\n if (sheet.options.link) {\n this.insertRules(sheet.rules);\n return;\n }\n\n this.element.textContent = \"\\n\" + sheet.toString() + \"\\n\";\n }\n /**\n * Insert RuleList into an element.\n */\n ;\n\n _proto.insertRules = function insertRules(rules, nativeParent) {\n for (var i = 0; i < rules.index.length; i++) {\n this.insertRule(rules.index[i], i, nativeParent);\n }\n }\n /**\n * Insert a rule into element.\n */\n ;\n\n _proto.insertRule = function insertRule(rule, index, nativeParent) {\n if (nativeParent === void 0) {\n nativeParent = this.element.sheet;\n }\n\n if (rule.rules) {\n var parent = rule;\n var latestNativeParent = nativeParent;\n\n if (rule.type === 'conditional' || rule.type === 'keyframes') {\n var _insertionIndex = getValidRuleInsertionIndex(nativeParent, index); // We need to render the container without children first.\n\n\n latestNativeParent = _insertRule(nativeParent, parent.toString({\n children: false\n }), _insertionIndex);\n\n if (latestNativeParent === false) {\n return false;\n }\n\n this.refCssRule(rule, _insertionIndex, latestNativeParent);\n }\n\n this.insertRules(parent.rules, latestNativeParent);\n return latestNativeParent;\n }\n\n var ruleStr = rule.toString();\n if (!ruleStr) return false;\n var insertionIndex = getValidRuleInsertionIndex(nativeParent, index);\n\n var nativeRule = _insertRule(nativeParent, ruleStr, insertionIndex);\n\n if (nativeRule === false) {\n return false;\n }\n\n this.hasInsertedRules = true;\n this.refCssRule(rule, insertionIndex, nativeRule);\n return nativeRule;\n };\n\n _proto.refCssRule = function refCssRule(rule, index, cssRule) {\n rule.renderable = cssRule; // We only want to reference the top level rules, deleteRule API doesn't support removing nested rules\n // like rules inside media queries or keyframes\n\n if (rule.options.parent instanceof StyleSheet) {\n this.cssRules[index] = cssRule;\n }\n }\n /**\n * Delete a rule.\n */\n ;\n\n _proto.deleteRule = function deleteRule(cssRule) {\n var sheet = this.element.sheet;\n var index = this.indexOf(cssRule);\n if (index === -1) return false;\n sheet.deleteRule(index);\n this.cssRules.splice(index, 1);\n return true;\n }\n /**\n * Get index of a CSS Rule.\n */\n ;\n\n _proto.indexOf = function indexOf(cssRule) {\n return this.cssRules.indexOf(cssRule);\n }\n /**\n * Generate a new CSS rule and replace the existing one.\n *\n * Only used for some old browsers because they can't set a selector.\n */\n ;\n\n _proto.replaceRule = function replaceRule(cssRule, rule) {\n var index = this.indexOf(cssRule);\n if (index === -1) return false;\n this.element.sheet.deleteRule(index);\n this.cssRules.splice(index, 1);\n return this.insertRule(rule, index);\n }\n /**\n * Get all rules elements.\n */\n ;\n\n _proto.getRules = function getRules() {\n return this.element.sheet.cssRules;\n };\n\n return DomRenderer;\n}();\n\nvar instanceCounter = 0;\n\nvar Jss = /*#__PURE__*/function () {\n function Jss(options) {\n this.id = instanceCounter++;\n this.version = \"10.6.0\";\n this.plugins = new PluginsRegistry();\n this.options = {\n id: {\n minify: false\n },\n createGenerateId: createGenerateId,\n Renderer: isInBrowser ? DomRenderer : null,\n plugins: []\n };\n this.generateId = createGenerateId({\n minify: false\n });\n\n for (var i = 0; i < plugins.length; i++) {\n this.plugins.use(plugins[i], {\n queue: 'internal'\n });\n }\n\n this.setup(options);\n }\n /**\n * Prepares various options, applies plugins.\n * Should not be used twice on the same instance, because there is no plugins\n * deduplication logic.\n */\n\n\n var _proto = Jss.prototype;\n\n _proto.setup = function setup(options) {\n if (options === void 0) {\n options = {};\n }\n\n if (options.createGenerateId) {\n this.options.createGenerateId = options.createGenerateId;\n }\n\n if (options.id) {\n this.options.id = _extends({}, this.options.id, options.id);\n }\n\n if (options.createGenerateId || options.id) {\n this.generateId = this.options.createGenerateId(this.options.id);\n }\n\n if (options.insertionPoint != null) this.options.insertionPoint = options.insertionPoint;\n\n if ('Renderer' in options) {\n this.options.Renderer = options.Renderer;\n } // eslint-disable-next-line prefer-spread\n\n\n if (options.plugins) this.use.apply(this, options.plugins);\n return this;\n }\n /**\n * Create a Style Sheet.\n */\n ;\n\n _proto.createStyleSheet = function createStyleSheet(styles, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n index = _options.index;\n\n if (typeof index !== 'number') {\n index = registry.index === 0 ? 0 : registry.index + 1;\n }\n\n var sheet = new StyleSheet(styles, _extends({}, options, {\n jss: this,\n generateId: options.generateId || this.generateId,\n insertionPoint: this.options.insertionPoint,\n Renderer: this.options.Renderer,\n index: index\n }));\n this.plugins.onProcessSheet(sheet);\n return sheet;\n }\n /**\n * Detach the Style Sheet and remove it from the registry.\n */\n ;\n\n _proto.removeStyleSheet = function removeStyleSheet(sheet) {\n sheet.detach();\n registry.remove(sheet);\n return this;\n }\n /**\n * Create a rule without a Style Sheet.\n * [Deprecated] will be removed in the next major version.\n */\n ;\n\n _proto.createRule = function createRule$1(name, style, options) {\n if (style === void 0) {\n style = {};\n }\n\n if (options === void 0) {\n options = {};\n } // Enable rule without name for inline styles.\n\n\n if (_typeof(name) === 'object') {\n // $FlowFixMe[incompatible-call]\n return this.createRule(undefined, name, style);\n } // $FlowFixMe[incompatible-type]\n\n\n var ruleOptions = _extends({}, options, {\n name: name,\n jss: this,\n Renderer: this.options.Renderer\n });\n\n if (!ruleOptions.generateId) ruleOptions.generateId = this.generateId;\n if (!ruleOptions.classes) ruleOptions.classes = {};\n if (!ruleOptions.keyframes) ruleOptions.keyframes = {};\n var rule = createRule(name, style, ruleOptions);\n if (rule) this.plugins.onProcessRule(rule);\n return rule;\n }\n /**\n * Register plugin. Passed function will be invoked with a rule instance.\n */\n ;\n\n _proto.use = function use() {\n var _this = this;\n\n for (var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++) {\n plugins[_key] = arguments[_key];\n }\n\n plugins.forEach(function (plugin) {\n _this.plugins.use(plugin);\n });\n return this;\n };\n\n return Jss;\n}();\n/**\n * Extracts a styles object with only props that contain function values.\n */\n\n\nfunction getDynamicStyles(styles) {\n var to = null;\n\n for (var key in styles) {\n var value = styles[key];\n\n var type = _typeof(value);\n\n if (type === 'function') {\n if (!to) to = {};\n to[key] = value;\n } else if (type === 'object' && value !== null && !Array.isArray(value)) {\n var extracted = getDynamicStyles(value);\n\n if (extracted) {\n if (!to) to = {};\n to[key] = extracted;\n }\n }\n }\n\n return to;\n}\n/**\n * SheetsManager is like a WeakMap which is designed to count StyleSheet\n * instances and attach/detach automatically.\n */\n\n\nvar SheetsManager = /*#__PURE__*/function () {\n function SheetsManager() {\n this.length = 0;\n this.sheets = new WeakMap();\n }\n\n var _proto = SheetsManager.prototype;\n\n _proto.get = function get(key) {\n var entry = this.sheets.get(key);\n return entry && entry.sheet;\n };\n\n _proto.add = function add(key, sheet) {\n if (this.sheets.has(key)) return;\n this.length++;\n this.sheets.set(key, {\n sheet: sheet,\n refs: 0\n });\n };\n\n _proto.manage = function manage(key) {\n var entry = this.sheets.get(key);\n\n if (entry) {\n if (entry.refs === 0) {\n entry.sheet.attach();\n }\n\n entry.refs++;\n return entry.sheet;\n }\n\n warning(false, \"[JSS] SheetsManager: can't find sheet to manage\");\n return undefined;\n };\n\n _proto.unmanage = function unmanage(key) {\n var entry = this.sheets.get(key);\n\n if (entry) {\n if (entry.refs > 0) {\n entry.refs--;\n if (entry.refs === 0) entry.sheet.detach();\n }\n } else {\n warning(false, \"SheetsManager: can't find sheet to unmanage\");\n }\n };\n\n _createClass(SheetsManager, [{\n key: \"size\",\n get: function get() {\n return this.length;\n }\n }]);\n\n return SheetsManager;\n}();\n/**\n * A better abstraction over CSS.\n *\n * @copyright Oleg Isonen (Slobodskoi) / Isonen 2014-present\n * @website https://github.com/cssinjs/jss\n * @license MIT\n */\n\n/**\n * Export a constant indicating if this browser has CSSTOM support.\n * https://developers.google.com/web/updates/2018/03/cssom\n */\n\n\nvar hasCSSTOMSupport = (typeof CSS === \"undefined\" ? \"undefined\" : _typeof(CSS)) === 'object' && CSS != null && 'number' in CSS;\n/**\n * Creates a new instance of Jss.\n */\n\nvar create = function create(options) {\n return new Jss(options);\n};\n/**\n * A global Jss instance.\n */\n\n\nvar jss = create();\nexport default jss;\nexport { RuleList, SheetsManager, SheetsRegistry, create, createGenerateId, createRule, getDynamicStyles, hasCSSTOMSupport, registry as sheets, toCssValue };","import warning from 'tiny-warning';\nimport { createRule } from 'jss';\nvar now = Date.now();\nvar fnValuesNs = \"fnValues\" + now;\nvar fnRuleNs = \"fnStyle\" + ++now;\n\nvar functionPlugin = function functionPlugin() {\n return {\n onCreateRule: function onCreateRule(name, decl, options) {\n if (typeof decl !== 'function') return null;\n var rule = createRule(name, {}, options);\n rule[fnRuleNs] = decl;\n return rule;\n },\n onProcessStyle: function onProcessStyle(style, rule) {\n // We need to extract function values from the declaration, so that we can keep core unaware of them.\n // We need to do that only once.\n // We don't need to extract functions on each style update, since this can happen only once.\n // We don't support function values inside of function rules.\n if (fnValuesNs in rule || fnRuleNs in rule) return style;\n var fnValues = {};\n\n for (var prop in style) {\n var value = style[prop];\n if (typeof value !== 'function') continue;\n delete style[prop];\n fnValues[prop] = value;\n } // $FlowFixMe[prop-missing]\n\n\n rule[fnValuesNs] = fnValues;\n return style;\n },\n onUpdate: function onUpdate(data, rule, sheet, options) {\n var styleRule = rule; // $FlowFixMe[prop-missing]\n\n var fnRule = styleRule[fnRuleNs]; // If we have a style function, the entire rule is dynamic and style object\n // will be returned from that function.\n\n if (fnRule) {\n // Empty object will remove all currently defined props\n // in case function rule returns a falsy value.\n styleRule.style = fnRule(data) || {};\n\n if (process.env.NODE_ENV === 'development') {\n for (var prop in styleRule.style) {\n if (typeof styleRule.style[prop] === 'function') {\n process.env.NODE_ENV !== \"production\" ? warning(false, '[JSS] Function values inside function rules are not supported.') : void 0;\n break;\n }\n }\n }\n } // $FlowFixMe[prop-missing]\n\n\n var fnValues = styleRule[fnValuesNs]; // If we have a fn values map, it is a rule with function values.\n\n if (fnValues) {\n for (var _prop in fnValues) {\n styleRule.prop(_prop, fnValues[_prop](data), options);\n }\n }\n }\n };\n};\n\nexport default functionPlugin;","import $$observable from 'symbol-observable';\nimport { createRule } from 'jss';\n\nvar isObservable = function isObservable(value) {\n return value && value[$$observable] && value === value[$$observable]();\n};\n\nvar observablePlugin = function observablePlugin(updateOptions) {\n return {\n onCreateRule: function onCreateRule(name, decl, options) {\n if (!isObservable(decl)) return null; // Cast `decl` to `Observable`, since it passed the type guard.\n\n var style$ = decl;\n var rule = createRule(name, {}, options); // TODO\n // Call `stream.subscribe()` returns a subscription, which should be explicitly\n // unsubscribed from when we know this sheet is no longer needed.\n\n style$.subscribe(function (style) {\n for (var prop in style) {\n rule.prop(prop, style[prop], updateOptions);\n }\n });\n return rule;\n },\n onProcessRule: function onProcessRule(rule) {\n if (rule && rule.type !== 'style') return;\n var styleRule = rule;\n var style = styleRule.style;\n\n var _loop = function _loop(prop) {\n var value = style[prop];\n if (!isObservable(value)) return \"continue\";\n delete style[prop];\n value.subscribe({\n next: function next(nextValue) {\n styleRule.prop(prop, nextValue, updateOptions);\n }\n });\n };\n\n for (var prop in style) {\n var _ret = _loop(prop);\n\n if (_ret === \"continue\") continue;\n }\n }\n };\n};\n\nexport default observablePlugin;","import warning from 'tiny-warning';\nvar semiWithNl = /;\\n/;\n/**\n * Naive CSS parser.\n * - Supports only rule body (no selectors)\n * - Requires semicolon and new line after the value (except of last line)\n * - No nested rules support\n */\n\nvar parse = function parse(cssText) {\n var style = {};\n var split = cssText.split(semiWithNl);\n\n for (var i = 0; i < split.length; i++) {\n var decl = (split[i] || '').trim();\n if (!decl) continue;\n var colonIndex = decl.indexOf(':');\n\n if (colonIndex === -1) {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Malformed CSS string \\\"\" + decl + \"\\\"\") : void 0;\n continue;\n }\n\n var prop = decl.substr(0, colonIndex).trim();\n var value = decl.substr(colonIndex + 1).trim();\n style[prop] = value;\n }\n\n return style;\n};\n\nvar onProcessRule = function onProcessRule(rule) {\n if (typeof rule.style === 'string') {\n // $FlowFixMe[prop-missing] We can safely assume that rule has the style property\n rule.style = parse(rule.style);\n }\n};\n\nfunction templatePlugin() {\n return {\n onProcessRule: onProcessRule\n };\n}\n\nexport default templatePlugin;","import _extends from '@babel/runtime/helpers/esm/extends';\nimport { RuleList } from 'jss';\nvar at = '@global';\nvar atPrefix = '@global ';\n\nvar GlobalContainerRule = /*#__PURE__*/function () {\n function GlobalContainerRule(key, styles, options) {\n this.type = 'global';\n this.at = at;\n this.rules = void 0;\n this.options = void 0;\n this.key = void 0;\n this.isProcessed = false;\n this.key = key;\n this.options = options;\n this.rules = new RuleList(_extends({}, options, {\n parent: this\n }));\n\n for (var selector in styles) {\n this.rules.add(selector, styles[selector]);\n }\n\n this.rules.process();\n }\n /**\n * Get a rule.\n */\n\n\n var _proto = GlobalContainerRule.prototype;\n\n _proto.getRule = function getRule(name) {\n return this.rules.get(name);\n }\n /**\n * Create and register rule, run plugins.\n */\n ;\n\n _proto.addRule = function addRule(name, style, options) {\n var rule = this.rules.add(name, style, options);\n if (rule) this.options.jss.plugins.onProcessRule(rule);\n return rule;\n }\n /**\n * Get index of a rule.\n */\n ;\n\n _proto.indexOf = function indexOf(rule) {\n return this.rules.indexOf(rule);\n }\n /**\n * Generates a CSS string.\n */\n ;\n\n _proto.toString = function toString() {\n return this.rules.toString();\n };\n\n return GlobalContainerRule;\n}();\n\nvar GlobalPrefixedRule = /*#__PURE__*/function () {\n function GlobalPrefixedRule(key, style, options) {\n this.type = 'global';\n this.at = at;\n this.options = void 0;\n this.rule = void 0;\n this.isProcessed = false;\n this.key = void 0;\n this.key = key;\n this.options = options;\n var selector = key.substr(atPrefix.length);\n this.rule = options.jss.createRule(selector, style, _extends({}, options, {\n parent: this\n }));\n }\n\n var _proto2 = GlobalPrefixedRule.prototype;\n\n _proto2.toString = function toString(options) {\n return this.rule ? this.rule.toString(options) : '';\n };\n\n return GlobalPrefixedRule;\n}();\n\nvar separatorRegExp = /\\s*,\\s*/g;\n\nfunction addScope(selector, scope) {\n var parts = selector.split(separatorRegExp);\n var scoped = '';\n\n for (var i = 0; i < parts.length; i++) {\n scoped += scope + \" \" + parts[i].trim();\n if (parts[i + 1]) scoped += ', ';\n }\n\n return scoped;\n}\n\nfunction handleNestedGlobalContainerRule(rule, sheet) {\n var options = rule.options,\n style = rule.style;\n var rules = style ? style[at] : null;\n if (!rules) return;\n\n for (var name in rules) {\n sheet.addRule(name, rules[name], _extends({}, options, {\n selector: addScope(name, rule.selector)\n }));\n }\n\n delete style[at];\n}\n\nfunction handlePrefixedGlobalRule(rule, sheet) {\n var options = rule.options,\n style = rule.style;\n\n for (var prop in style) {\n if (prop[0] !== '@' || prop.substr(0, at.length) !== at) continue;\n var selector = addScope(prop.substr(at.length), rule.selector);\n sheet.addRule(selector, style[prop], _extends({}, options, {\n selector: selector\n }));\n delete style[prop];\n }\n}\n/**\n * Convert nested rules to separate, remove them from original styles.\n *\n * @param {Rule} rule\n * @api public\n */\n\n\nfunction jssGlobal() {\n function onCreateRule(name, styles, options) {\n if (!name) return null;\n\n if (name === at) {\n return new GlobalContainerRule(name, styles, options);\n }\n\n if (name[0] === '@' && name.substr(0, atPrefix.length) === atPrefix) {\n return new GlobalPrefixedRule(name, styles, options);\n }\n\n var parent = options.parent;\n\n if (parent) {\n if (parent.type === 'global' || parent.options.parent && parent.options.parent.type === 'global') {\n options.scoped = false;\n }\n }\n\n if (options.scoped === false) {\n options.selector = name;\n }\n\n return null;\n }\n\n function onProcessRule(rule, sheet) {\n if (rule.type !== 'style' || !sheet) return;\n handleNestedGlobalContainerRule(rule, sheet);\n handlePrefixedGlobalRule(rule, sheet);\n }\n\n return {\n onCreateRule: onCreateRule,\n onProcessRule: onProcessRule\n };\n}\n\nexport default jssGlobal;","import _typeof from \"/app/scripts/smweb-scripts/node_modules/@babel/runtime/helpers/typeof\";\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport warning from 'tiny-warning';\n\nvar isObject = function isObject(obj) {\n return obj && _typeof(obj) === 'object' && !Array.isArray(obj);\n};\n\nvar valueNs = \"extendCurrValue\" + Date.now();\n\nfunction mergeExtend(style, rule, sheet, newStyle) {\n var extendType = _typeof(style.extend); // Extend using a rule name.\n\n\n if (extendType === 'string') {\n if (!sheet) return;\n var refRule = sheet.getRule(style.extend);\n if (!refRule) return;\n\n if (refRule === rule) {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] A rule tries to extend itself \\n\" + rule.toString()) : void 0;\n return;\n }\n\n var parent = refRule.options.parent;\n\n if (parent) {\n var originalStyle = parent.rules.raw[style.extend];\n extend(originalStyle, rule, sheet, newStyle);\n }\n\n return;\n } // Extend using an array.\n\n\n if (Array.isArray(style.extend)) {\n for (var index = 0; index < style.extend.length; index++) {\n var singleExtend = style.extend[index];\n var singleStyle = typeof singleExtend === 'string' ? _extends({}, style, {\n extend: singleExtend\n }) : style.extend[index];\n extend(singleStyle, rule, sheet, newStyle);\n }\n\n return;\n } // Extend is a style object.\n\n\n for (var prop in style.extend) {\n if (prop === 'extend') {\n extend(style.extend.extend, rule, sheet, newStyle);\n continue;\n }\n\n if (isObject(style.extend[prop])) {\n if (!(prop in newStyle)) newStyle[prop] = {};\n extend(style.extend[prop], rule, sheet, newStyle[prop]);\n continue;\n }\n\n newStyle[prop] = style.extend[prop];\n }\n}\n\nfunction mergeRest(style, rule, sheet, newStyle) {\n // Copy base style.\n for (var prop in style) {\n if (prop === 'extend') continue;\n\n if (isObject(newStyle[prop]) && isObject(style[prop])) {\n extend(style[prop], rule, sheet, newStyle[prop]);\n continue;\n }\n\n if (isObject(style[prop])) {\n newStyle[prop] = extend(style[prop], rule, sheet);\n continue;\n }\n\n newStyle[prop] = style[prop];\n }\n}\n/**\n * Recursively extend styles.\n */\n\n\nfunction extend(style, rule, sheet, newStyle) {\n if (newStyle === void 0) {\n newStyle = {};\n }\n\n mergeExtend(style, rule, sheet, newStyle);\n mergeRest(style, rule, sheet, newStyle);\n return newStyle;\n}\n/**\n * Handle `extend` property.\n *\n * @param {Rule} rule\n * @api public\n */\n\n\nfunction jssExtend() {\n function onProcessStyle(style, rule, sheet) {\n if ('extend' in style) return extend(style, rule, sheet);\n return style;\n }\n\n function onChangeValue(value, prop, rule) {\n if (prop !== 'extend') return value; // Value is empty, remove properties set previously.\n\n if (value == null || value === false) {\n // $FlowFixMe[prop-missing]\n for (var key in rule[valueNs]) {\n rule.prop(key, null);\n } // $FlowFixMe[prop-missing] Flow complains because there is no indexer property in StyleRule\n\n\n rule[valueNs] = null;\n return null;\n }\n\n if (_typeof(value) === 'object') {\n // $FlowFixMe[invalid-in-rhs] This will be an object\n for (var _key in value) {\n // $FlowFixMe[incompatible-use] This will be an object\n rule.prop(_key, value[_key]);\n } // $FlowFixMe[prop-missing] Flow complains because there is no indexer property in StyleRule\n\n\n rule[valueNs] = value;\n } // Make sure we don't set the value in the core.\n\n\n return null;\n }\n\n return {\n onProcessStyle: onProcessStyle,\n onChangeValue: onChangeValue\n };\n}\n\nexport default jssExtend;","import _extends from '@babel/runtime/helpers/esm/extends';\nimport warning from 'tiny-warning';\nvar separatorRegExp = /\\s*,\\s*/g;\nvar parentRegExp = /&/g;\nvar refRegExp = /\\$([\\w-]+)/g;\n/**\n * Convert nested rules to separate, remove them from original styles.\n *\n * @param {Rule} rule\n * @api public\n */\n\nfunction jssNested() {\n // Get a function to be used for $ref replacement.\n function getReplaceRef(container, sheet) {\n return function (match, key) {\n var rule = container.getRule(key) || sheet && sheet.getRule(key);\n\n if (rule) {\n rule = rule;\n return rule.selector;\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Could not find the referenced rule \\\"\" + key + \"\\\" in \\\"\" + (container.options.meta || container.toString()) + \"\\\".\") : void 0;\n return key;\n };\n }\n\n function replaceParentRefs(nestedProp, parentProp) {\n var parentSelectors = parentProp.split(separatorRegExp);\n var nestedSelectors = nestedProp.split(separatorRegExp);\n var result = '';\n\n for (var i = 0; i < parentSelectors.length; i++) {\n var parent = parentSelectors[i];\n\n for (var j = 0; j < nestedSelectors.length; j++) {\n var nested = nestedSelectors[j];\n if (result) result += ', '; // Replace all & by the parent or prefix & with the parent.\n\n result += nested.indexOf('&') !== -1 ? nested.replace(parentRegExp, parent) : parent + \" \" + nested;\n }\n }\n\n return result;\n }\n\n function getOptions(rule, container, prevOptions) {\n // Options has been already created, now we only increase index.\n if (prevOptions) return _extends({}, prevOptions, {\n index: prevOptions.index + 1 // $FlowFixMe[prop-missing]\n\n });\n var nestingLevel = rule.options.nestingLevel;\n nestingLevel = nestingLevel === undefined ? 1 : nestingLevel + 1;\n\n var options = _extends({}, rule.options, {\n nestingLevel: nestingLevel,\n index: container.indexOf(rule) + 1 // We don't need the parent name to be set options for chlid.\n\n });\n\n delete options.name;\n return options;\n }\n\n function onProcessStyle(style, rule, sheet) {\n if (rule.type !== 'style') return style;\n var styleRule = rule;\n var container = styleRule.options.parent;\n var options;\n var replaceRef;\n\n for (var prop in style) {\n var isNested = prop.indexOf('&') !== -1;\n var isNestedConditional = prop[0] === '@';\n if (!isNested && !isNestedConditional) continue;\n options = getOptions(styleRule, container, options);\n\n if (isNested) {\n var selector = replaceParentRefs(prop, styleRule.selector); // Lazily create the ref replacer function just once for\n // all nested rules within the sheet.\n\n if (!replaceRef) replaceRef = getReplaceRef(container, sheet); // Replace all $refs.\n\n selector = selector.replace(refRegExp, replaceRef);\n container.addRule(selector, style[prop], _extends({}, options, {\n selector: selector\n }));\n } else if (isNestedConditional) {\n // Place conditional right after the parent rule to ensure right ordering.\n container.addRule(prop, {}, options) // Flow expects more options but they aren't required\n // And flow doesn't know this will always be a StyleRule which has the addRule method\n // $FlowFixMe[incompatible-use]\n // $FlowFixMe[prop-missing]\n .addRule(styleRule.key, style[prop], {\n selector: styleRule.selector\n });\n }\n\n delete style[prop];\n }\n\n return style;\n }\n\n return {\n onProcessStyle: onProcessStyle\n };\n}\n\nexport default jssNested;","import warning from 'tiny-warning';\n/**\n * Set selector.\n *\n * @param {Object} original rule\n * @param {String} className class string\n * @return {Boolean} flag, indicating function was successfull or not\n */\n\nfunction registerClass(rule, className) {\n // Skip falsy values\n if (!className) return true; // Support array of class names `{composes: ['foo', 'bar']}`\n\n if (Array.isArray(className)) {\n for (var index = 0; index < className.length; index++) {\n var isSetted = registerClass(rule, className[index]);\n if (!isSetted) return false;\n }\n\n return true;\n } // Support space separated class names `{composes: 'foo bar'}`\n\n\n if (className.indexOf(' ') > -1) {\n return registerClass(rule, className.split(' '));\n }\n\n var _ref = rule.options,\n parent = _ref.parent; // It is a ref to a local rule.\n\n if (className[0] === '$') {\n var refRule = parent.getRule(className.substr(1));\n\n if (!refRule) {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Referenced rule is not defined. \\n\" + rule.toString()) : void 0;\n return false;\n }\n\n if (refRule === rule) {\n process.env.NODE_ENV !== \"production\" ? warning(false, \"[JSS] Cyclic composition detected. \\n\" + rule.toString()) : void 0;\n return false;\n }\n\n parent.classes[rule.key] += \" \" + parent.classes[refRule.key];\n return true;\n }\n\n parent.classes[rule.key] += \" \" + className;\n return true;\n}\n/**\n * Convert compose property to additional class, remove property from original styles.\n *\n * @param {Rule} rule\n * @api public\n */\n\n\nfunction jssCompose() {\n function onProcessStyle(style, rule) {\n if (!('composes' in style)) return style;\n registerClass(rule, style.composes); // Remove composes property to prevent infinite loop.\n\n delete style.composes;\n return style;\n }\n\n return {\n onProcessStyle: onProcessStyle\n };\n}\n\nexport default jssCompose;","/* eslint-disable no-var, prefer-template */\nvar uppercasePattern = /[A-Z]/g;\nvar msPattern = /^ms-/;\nvar cache = {};\n\nfunction toHyphenLower(match) {\n return '-' + match.toLowerCase();\n}\n\nfunction hyphenateStyleName(name) {\n if (cache.hasOwnProperty(name)) {\n return cache[name];\n }\n\n var hName = name.replace(uppercasePattern, toHyphenLower);\n return cache[name] = msPattern.test(hName) ? '-' + hName : hName;\n}\n\nexport default hyphenateStyleName;","import hyphenate from 'hyphenate-style-name';\n/**\n * Convert camel cased property names to dash separated.\n *\n * @param {Object} style\n * @return {Object}\n */\n\nfunction convertCase(style) {\n var converted = {};\n\n for (var prop in style) {\n var key = prop.indexOf('--') === 0 ? prop : hyphenate(prop);\n converted[key] = style[prop];\n }\n\n if (style.fallbacks) {\n if (Array.isArray(style.fallbacks)) converted.fallbacks = style.fallbacks.map(convertCase);else converted.fallbacks = convertCase(style.fallbacks);\n }\n\n return converted;\n}\n/**\n * Allow camel cased property names by converting them back to dasherized.\n *\n * @param {Rule} rule\n */\n\n\nfunction camelCase() {\n function onProcessStyle(style) {\n if (Array.isArray(style)) {\n // Handle rules like @font-face, which can have multiple styles in an array\n for (var index = 0; index < style.length; index++) {\n style[index] = convertCase(style[index]);\n }\n\n return style;\n }\n\n return convertCase(style);\n }\n\n function onChangeValue(value, prop, rule) {\n if (prop.indexOf('--') === 0) {\n return value;\n }\n\n var hyphenatedProp = hyphenate(prop); // There was no camel case in place\n\n if (prop === hyphenatedProp) return value;\n rule.prop(hyphenatedProp, value); // Core will ignore that property value we set the proper one above.\n\n return null;\n }\n\n return {\n onProcessStyle: onProcessStyle,\n onChangeValue: onChangeValue\n };\n}\n\nexport default camelCase;","import _typeof from \"/app/scripts/smweb-scripts/node_modules/@babel/runtime/helpers/typeof\";\nimport { hasCSSTOMSupport } from 'jss';\nvar px = hasCSSTOMSupport && CSS ? CSS.px : 'px';\nvar ms = hasCSSTOMSupport && CSS ? CSS.ms : 'ms';\nvar percent = hasCSSTOMSupport && CSS ? CSS.percent : '%';\n/**\n * Generated jss-plugin-default-unit CSS property units\n *\n * @type object\n */\n\nvar defaultUnits = {\n // Animation properties\n 'animation-delay': ms,\n 'animation-duration': ms,\n // Background properties\n 'background-position': px,\n 'background-position-x': px,\n 'background-position-y': px,\n 'background-size': px,\n // Border Properties\n border: px,\n 'border-bottom': px,\n 'border-bottom-left-radius': px,\n 'border-bottom-right-radius': px,\n 'border-bottom-width': px,\n 'border-left': px,\n 'border-left-width': px,\n 'border-radius': px,\n 'border-right': px,\n 'border-right-width': px,\n 'border-top': px,\n 'border-top-left-radius': px,\n 'border-top-right-radius': px,\n 'border-top-width': px,\n 'border-width': px,\n 'border-block': px,\n 'border-block-end': px,\n 'border-block-end-width': px,\n 'border-block-start': px,\n 'border-block-start-width': px,\n 'border-block-width': px,\n 'border-inline': px,\n 'border-inline-end': px,\n 'border-inline-end-width': px,\n 'border-inline-start': px,\n 'border-inline-start-width': px,\n 'border-inline-width': px,\n 'border-start-start-radius': px,\n 'border-start-end-radius': px,\n 'border-end-start-radius': px,\n 'border-end-end-radius': px,\n // Margin properties\n margin: px,\n 'margin-bottom': px,\n 'margin-left': px,\n 'margin-right': px,\n 'margin-top': px,\n 'margin-block': px,\n 'margin-block-end': px,\n 'margin-block-start': px,\n 'margin-inline': px,\n 'margin-inline-end': px,\n 'margin-inline-start': px,\n // Padding properties\n padding: px,\n 'padding-bottom': px,\n 'padding-left': px,\n 'padding-right': px,\n 'padding-top': px,\n 'padding-block': px,\n 'padding-block-end': px,\n 'padding-block-start': px,\n 'padding-inline': px,\n 'padding-inline-end': px,\n 'padding-inline-start': px,\n // Mask properties\n 'mask-position-x': px,\n 'mask-position-y': px,\n 'mask-size': px,\n // Width and height properties\n height: px,\n width: px,\n 'min-height': px,\n 'max-height': px,\n 'min-width': px,\n 'max-width': px,\n // Position properties\n bottom: px,\n left: px,\n top: px,\n right: px,\n inset: px,\n 'inset-block': px,\n 'inset-block-end': px,\n 'inset-block-start': px,\n 'inset-inline': px,\n 'inset-inline-end': px,\n 'inset-inline-start': px,\n // Shadow properties\n 'box-shadow': px,\n 'text-shadow': px,\n // Column properties\n 'column-gap': px,\n 'column-rule': px,\n 'column-rule-width': px,\n 'column-width': px,\n // Font and text properties\n 'font-size': px,\n 'font-size-delta': px,\n 'letter-spacing': px,\n 'text-decoration-thickness': px,\n 'text-indent': px,\n 'text-stroke': px,\n 'text-stroke-width': px,\n 'word-spacing': px,\n // Motion properties\n motion: px,\n 'motion-offset': px,\n // Outline properties\n outline: px,\n 'outline-offset': px,\n 'outline-width': px,\n // Perspective properties\n perspective: px,\n 'perspective-origin-x': percent,\n 'perspective-origin-y': percent,\n // Transform properties\n 'transform-origin': percent,\n 'transform-origin-x': percent,\n 'transform-origin-y': percent,\n 'transform-origin-z': percent,\n // Transition properties\n 'transition-delay': ms,\n 'transition-duration': ms,\n // Alignment properties\n 'vertical-align': px,\n 'flex-basis': px,\n // Some random properties\n 'shape-margin': px,\n size: px,\n gap: px,\n // Grid properties\n grid: px,\n 'grid-gap': px,\n 'row-gap': px,\n 'grid-row-gap': px,\n 'grid-column-gap': px,\n 'grid-template-rows': px,\n 'grid-template-columns': px,\n 'grid-auto-rows': px,\n 'grid-auto-columns': px,\n // Not existing properties.\n // Used to avoid issues with jss-plugin-expand integration.\n 'box-shadow-x': px,\n 'box-shadow-y': px,\n 'box-shadow-blur': px,\n 'box-shadow-spread': px,\n 'font-line-height': px,\n 'text-shadow-x': px,\n 'text-shadow-y': px,\n 'text-shadow-blur': px\n};\n/**\n * Clones the object and adds a camel cased property version.\n */\n\nfunction addCamelCasedVersion(obj) {\n var regExp = /(-[a-z])/g;\n\n var replace = function replace(str) {\n return str[1].toUpperCase();\n };\n\n var newObj = {};\n\n for (var _key in obj) {\n newObj[_key] = obj[_key];\n newObj[_key.replace(regExp, replace)] = obj[_key];\n }\n\n return newObj;\n}\n\nvar units = addCamelCasedVersion(defaultUnits);\n/**\n * Recursive deep style passing function\n */\n\nfunction iterate(prop, value, options) {\n if (value == null) return value;\n\n if (Array.isArray(value)) {\n for (var i = 0; i < value.length; i++) {\n value[i] = iterate(prop, value[i], options);\n }\n } else if (_typeof(value) === 'object') {\n if (prop === 'fallbacks') {\n for (var innerProp in value) {\n value[innerProp] = iterate(innerProp, value[innerProp], options);\n }\n } else {\n for (var _innerProp in value) {\n value[_innerProp] = iterate(prop + \"-\" + _innerProp, value[_innerProp], options);\n }\n } // eslint-disable-next-line no-restricted-globals\n\n } else if (typeof value === 'number' && isNaN(value) === false) {\n var unit = options[prop] || units[prop]; // Add the unit if available, except for the special case of 0px.\n\n if (unit && !(value === 0 && unit === px)) {\n return typeof unit === 'function' ? unit(value).toString() : \"\" + value + unit;\n }\n\n return value.toString();\n }\n\n return value;\n}\n/**\n * Add unit to numeric values.\n */\n\n\nfunction defaultUnit(options) {\n if (options === void 0) {\n options = {};\n }\n\n var camelCasedOptions = addCamelCasedVersion(options);\n\n function onProcessStyle(style, rule) {\n if (rule.type !== 'style') return style;\n\n for (var prop in style) {\n style[prop] = iterate(prop, style[prop], camelCasedOptions);\n }\n\n return style;\n }\n\n function onChangeValue(value, prop) {\n return iterate(prop, value, camelCasedOptions);\n }\n\n return {\n onProcessStyle: onProcessStyle,\n onChangeValue: onChangeValue\n };\n}\n\nexport default defaultUnit;","import _typeof from \"/app/scripts/smweb-scripts/node_modules/@babel/runtime/helpers/typeof\";\n\n/**\n * A scheme for converting properties from array to regular style.\n * All properties listed below will be transformed to a string separated by space.\n */\nvar propArray = {\n 'background-size': true,\n 'background-position': true,\n border: true,\n 'border-bottom': true,\n 'border-left': true,\n 'border-top': true,\n 'border-right': true,\n 'border-radius': true,\n 'border-image': true,\n 'border-width': true,\n 'border-style': true,\n 'border-color': true,\n 'box-shadow': true,\n flex: true,\n margin: true,\n padding: true,\n outline: true,\n 'transform-origin': true,\n transform: true,\n transition: true\n /**\n * A scheme for converting arrays to regular styles inside of objects.\n * For e.g.: \"{position: [0, 0]}\" => \"background-position: 0 0;\".\n */\n\n};\nvar propArrayInObj = {\n position: true,\n // background-position\n size: true // background-size\n\n /**\n * A scheme for parsing and building correct styles from passed objects.\n */\n\n};\nvar propObj = {\n padding: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n },\n margin: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n },\n background: {\n attachment: null,\n color: null,\n image: null,\n position: null,\n repeat: null\n },\n border: {\n width: null,\n style: null,\n color: null\n },\n 'border-top': {\n width: null,\n style: null,\n color: null\n },\n 'border-right': {\n width: null,\n style: null,\n color: null\n },\n 'border-bottom': {\n width: null,\n style: null,\n color: null\n },\n 'border-left': {\n width: null,\n style: null,\n color: null\n },\n outline: {\n width: null,\n style: null,\n color: null\n },\n 'list-style': {\n type: null,\n position: null,\n image: null\n },\n transition: {\n property: null,\n duration: null,\n 'timing-function': null,\n timingFunction: null,\n // Needed for avoiding comilation issues with jss-plugin-camel-case\n delay: null\n },\n animation: {\n name: null,\n duration: null,\n 'timing-function': null,\n timingFunction: null,\n // Needed to avoid compilation issues with jss-plugin-camel-case\n delay: null,\n 'iteration-count': null,\n iterationCount: null,\n // Needed to avoid compilation issues with jss-plugin-camel-case\n direction: null,\n 'fill-mode': null,\n fillMode: null,\n // Needed to avoid compilation issues with jss-plugin-camel-case\n 'play-state': null,\n playState: null // Needed to avoid compilation issues with jss-plugin-camel-case\n\n },\n 'box-shadow': {\n x: 0,\n y: 0,\n blur: 0,\n spread: 0,\n color: null,\n inset: null\n },\n 'text-shadow': {\n x: 0,\n y: 0,\n blur: null,\n color: null\n }\n /**\n * A scheme for converting non-standart properties inside object.\n * For e.g.: include 'border-radius' property inside 'border' object.\n */\n\n};\nvar customPropObj = {\n border: {\n radius: 'border-radius',\n image: 'border-image',\n width: 'border-width',\n style: 'border-style',\n color: 'border-color'\n },\n 'border-bottom': {\n width: 'border-bottom-width',\n style: 'border-bottom-style',\n color: 'border-bottom-color'\n },\n 'border-top': {\n width: 'border-top-width',\n style: 'border-top-style',\n color: 'border-top-color'\n },\n 'border-left': {\n width: 'border-left-width',\n style: 'border-left-style',\n color: 'border-left-color'\n },\n 'border-right': {\n width: 'border-right-width',\n style: 'border-right-style',\n color: 'border-right-color'\n },\n background: {\n size: 'background-size',\n image: 'background-image'\n },\n font: {\n style: 'font-style',\n variant: 'font-variant',\n weight: 'font-weight',\n stretch: 'font-stretch',\n size: 'font-size',\n family: 'font-family',\n lineHeight: 'line-height',\n // Needed to avoid compilation issues with jss-plugin-camel-case\n 'line-height': 'line-height'\n },\n flex: {\n grow: 'flex-grow',\n basis: 'flex-basis',\n direction: 'flex-direction',\n wrap: 'flex-wrap',\n flow: 'flex-flow',\n shrink: 'flex-shrink'\n },\n align: {\n self: 'align-self',\n items: 'align-items',\n content: 'align-content'\n },\n grid: {\n 'template-columns': 'grid-template-columns',\n templateColumns: 'grid-template-columns',\n 'template-rows': 'grid-template-rows',\n templateRows: 'grid-template-rows',\n 'template-areas': 'grid-template-areas',\n templateAreas: 'grid-template-areas',\n template: 'grid-template',\n 'auto-columns': 'grid-auto-columns',\n autoColumns: 'grid-auto-columns',\n 'auto-rows': 'grid-auto-rows',\n autoRows: 'grid-auto-rows',\n 'auto-flow': 'grid-auto-flow',\n autoFlow: 'grid-auto-flow',\n row: 'grid-row',\n column: 'grid-column',\n 'row-start': 'grid-row-start',\n rowStart: 'grid-row-start',\n 'row-end': 'grid-row-end',\n rowEnd: 'grid-row-end',\n 'column-start': 'grid-column-start',\n columnStart: 'grid-column-start',\n 'column-end': 'grid-column-end',\n columnEnd: 'grid-column-end',\n area: 'grid-area',\n gap: 'grid-gap',\n 'row-gap': 'grid-row-gap',\n rowGap: 'grid-row-gap',\n 'column-gap': 'grid-column-gap',\n columnGap: 'grid-column-gap'\n }\n};\n/* eslint-disable no-use-before-define */\n\n/**\n * Map values by given prop.\n *\n * @param {Array} array of values\n * @param {String} original property\n * @param {String} original rule\n * @return {String} mapped values\n */\n\nfunction mapValuesByProp(value, prop, rule) {\n return value.map(function (item) {\n return objectToArray(item, prop, rule, false, true);\n });\n}\n/**\n * Convert array to nested array, if needed\n */\n\n\nfunction processArray(value, prop, scheme, rule) {\n if (scheme[prop] == null) return value;\n if (value.length === 0) return [];\n if (Array.isArray(value[0])) return processArray(value[0], prop, scheme, rule);\n\n if (_typeof(value[0]) === 'object') {\n return mapValuesByProp(value, prop, rule);\n }\n\n return [value];\n}\n/**\n * Convert object to array.\n */\n\n\nfunction objectToArray(value, prop, rule, isFallback, isInArray) {\n if (!(propObj[prop] || customPropObj[prop])) return [];\n var result = []; // Check if exists any non-standard property\n\n if (customPropObj[prop]) {\n // eslint-disable-next-line no-param-reassign\n value = customPropsToStyle(value, rule, customPropObj[prop], isFallback);\n } // Pass throught all standart props\n\n\n if (Object.keys(value).length) {\n for (var baseProp in propObj[prop]) {\n if (value[baseProp]) {\n if (Array.isArray(value[baseProp])) {\n result.push(propArrayInObj[baseProp] === null ? value[baseProp] : value[baseProp].join(' '));\n } else result.push(value[baseProp]);\n\n continue;\n } // Add default value from props config.\n\n\n if (propObj[prop][baseProp] != null) {\n result.push(propObj[prop][baseProp]);\n }\n }\n }\n\n if (!result.length || isInArray) return result;\n return [result];\n}\n/**\n * Convert custom properties values to styles adding them to rule directly\n */\n\n\nfunction customPropsToStyle(value, rule, customProps, isFallback) {\n for (var prop in customProps) {\n var propName = customProps[prop]; // If current property doesn't exist already in rule - add new one\n\n if (typeof value[prop] !== 'undefined' && (isFallback || !rule.prop(propName))) {\n var _styleDetector;\n\n var appendedValue = styleDetector((_styleDetector = {}, _styleDetector[propName] = value[prop], _styleDetector), rule)[propName]; // Add style directly in rule\n\n if (isFallback) rule.style.fallbacks[propName] = appendedValue;else rule.style[propName] = appendedValue;\n } // Delete converted property to avoid double converting\n\n\n delete value[prop];\n }\n\n return value;\n}\n/**\n * Detect if a style needs to be converted.\n */\n\n\nfunction styleDetector(style, rule, isFallback) {\n for (var prop in style) {\n var value = style[prop];\n\n if (Array.isArray(value)) {\n // Check double arrays to avoid recursion.\n if (!Array.isArray(value[0])) {\n if (prop === 'fallbacks') {\n for (var index = 0; index < style.fallbacks.length; index++) {\n style.fallbacks[index] = styleDetector(style.fallbacks[index], rule, true);\n }\n\n continue;\n }\n\n style[prop] = processArray(value, prop, propArray, rule); // Avoid creating properties with empty values\n\n if (!style[prop].length) delete style[prop];\n }\n } else if (_typeof(value) === 'object') {\n if (prop === 'fallbacks') {\n style.fallbacks = styleDetector(style.fallbacks, rule, true);\n continue;\n }\n\n style[prop] = objectToArray(value, prop, rule, isFallback); // Avoid creating properties with empty values\n\n if (!style[prop].length) delete style[prop];\n } // Maybe a computed value resulting in an empty string\n else if (style[prop] === '') delete style[prop];\n }\n\n return style;\n}\n/**\n * Adds possibility to write expanded styles.\n */\n\n\nfunction jssExpand() {\n function onProcessStyle(style, rule) {\n if (!style || rule.type !== 'style') return style;\n\n if (Array.isArray(style)) {\n // Pass rules one by one and reformat them\n for (var index = 0; index < style.length; index++) {\n style[index] = styleDetector(style[index], rule);\n }\n\n return style;\n }\n\n return styleDetector(style, rule);\n }\n\n return {\n onProcessStyle: onProcessStyle\n };\n}\n\nexport default jssExpand;","import isInBrowser from 'is-in-browser';\nimport _toConsumableArray from '@babel/runtime/helpers/esm/toConsumableArray'; // Export javascript style and css style vendor prefixes.\n\nvar js = '';\nvar css = '';\nvar vendor = '';\nvar browser = '';\nvar isTouch = isInBrowser && 'ontouchstart' in document.documentElement; // We should not do anything if required serverside.\n\nif (isInBrowser) {\n // Order matters. We need to check Webkit the last one because\n // other vendors use to add Webkit prefixes to some properties\n var jsCssMap = {\n Moz: '-moz-',\n ms: '-ms-',\n O: '-o-',\n Webkit: '-webkit-'\n };\n\n var _document$createEleme = document.createElement('p'),\n style = _document$createEleme.style;\n\n var testProp = 'Transform';\n\n for (var key in jsCssMap) {\n if (key + testProp in style) {\n js = key;\n css = jsCssMap[key];\n break;\n }\n } // Correctly detect the Edge browser.\n\n\n if (js === 'Webkit' && 'msHyphens' in style) {\n js = 'ms';\n css = jsCssMap.ms;\n browser = 'edge';\n } // Correctly detect the Safari browser.\n\n\n if (js === 'Webkit' && '-apple-trailing-word' in style) {\n vendor = 'apple';\n }\n}\n/**\n * Vendor prefix string for the current browser.\n *\n * @type {{js: String, css: String, vendor: String, browser: String}}\n * @api public\n */\n\n\nvar prefix = {\n js: js,\n css: css,\n vendor: vendor,\n browser: browser,\n isTouch: isTouch\n};\n/**\n * Test if a keyframe at-rule should be prefixed or not\n *\n * @param {String} vendor prefix string for the current browser.\n * @return {String}\n * @api public\n */\n\nfunction supportedKeyframes(key) {\n // Keyframes is already prefixed. e.g. key = '@-webkit-keyframes a'\n if (key[1] === '-') return key; // No need to prefix IE/Edge. Older browsers will ignore unsupported rules.\n // https://caniuse.com/#search=keyframes\n\n if (prefix.js === 'ms') return key;\n return \"@\" + prefix.css + \"keyframes\" + key.substr(10);\n} // https://caniuse.com/#search=appearance\n\n\nvar appearence = {\n noPrefill: ['appearance'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'appearance') return false;\n if (prefix.js === 'ms') return \"-webkit-\" + prop;\n return prefix.css + prop;\n }\n}; // https://caniuse.com/#search=color-adjust\n\nvar colorAdjust = {\n noPrefill: ['color-adjust'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'color-adjust') return false;\n if (prefix.js === 'Webkit') return prefix.css + \"print-\" + prop;\n return prop;\n }\n};\nvar regExp = /[-\\s]+(.)?/g;\n/**\n * Replaces the letter with the capital letter\n *\n * @param {String} match\n * @param {String} c\n * @return {String}\n * @api private\n */\n\nfunction toUpper(match, c) {\n return c ? c.toUpperCase() : '';\n}\n/**\n * Convert dash separated strings to camel-cased.\n *\n * @param {String} str\n * @return {String}\n * @api private\n */\n\n\nfunction camelize(str) {\n return str.replace(regExp, toUpper);\n}\n/**\n * Convert dash separated strings to pascal cased.\n *\n * @param {String} str\n * @return {String}\n * @api private\n */\n\n\nfunction pascalize(str) {\n return camelize(\"-\" + str);\n} // but we can use a longhand property instead.\n// https://caniuse.com/#search=mask\n\n\nvar mask = {\n noPrefill: ['mask'],\n supportedProperty: function supportedProperty(prop, style) {\n if (!/^mask/.test(prop)) return false;\n\n if (prefix.js === 'Webkit') {\n var longhand = 'mask-image';\n\n if (camelize(longhand) in style) {\n return prop;\n }\n\n if (prefix.js + pascalize(longhand) in style) {\n return prefix.css + prop;\n }\n }\n\n return prop;\n }\n}; // https://caniuse.com/#search=text-orientation\n\nvar textOrientation = {\n noPrefill: ['text-orientation'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'text-orientation') return false;\n\n if (prefix.vendor === 'apple' && !prefix.isTouch) {\n return prefix.css + prop;\n }\n\n return prop;\n }\n}; // https://caniuse.com/#search=transform\n\nvar transform = {\n noPrefill: ['transform'],\n supportedProperty: function supportedProperty(prop, style, options) {\n if (prop !== 'transform') return false;\n\n if (options.transform) {\n return prop;\n }\n\n return prefix.css + prop;\n }\n}; // https://caniuse.com/#search=transition\n\nvar transition = {\n noPrefill: ['transition'],\n supportedProperty: function supportedProperty(prop, style, options) {\n if (prop !== 'transition') return false;\n\n if (options.transition) {\n return prop;\n }\n\n return prefix.css + prop;\n }\n}; // https://caniuse.com/#search=writing-mode\n\nvar writingMode = {\n noPrefill: ['writing-mode'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'writing-mode') return false;\n\n if (prefix.js === 'Webkit' || prefix.js === 'ms' && prefix.browser !== 'edge') {\n return prefix.css + prop;\n }\n\n return prop;\n }\n}; // https://caniuse.com/#search=user-select\n\nvar userSelect = {\n noPrefill: ['user-select'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'user-select') return false;\n\n if (prefix.js === 'Moz' || prefix.js === 'ms' || prefix.vendor === 'apple') {\n return prefix.css + prop;\n }\n\n return prop;\n }\n}; // https://caniuse.com/#search=multicolumn\n// https://github.com/postcss/autoprefixer/issues/491\n// https://github.com/postcss/autoprefixer/issues/177\n\nvar breakPropsOld = {\n supportedProperty: function supportedProperty(prop, style) {\n if (!/^break-/.test(prop)) return false;\n\n if (prefix.js === 'Webkit') {\n var jsProp = \"WebkitColumn\" + pascalize(prop);\n return jsProp in style ? prefix.css + \"column-\" + prop : false;\n }\n\n if (prefix.js === 'Moz') {\n var _jsProp = \"page\" + pascalize(prop);\n\n return _jsProp in style ? \"page-\" + prop : false;\n }\n\n return false;\n }\n}; // See https://github.com/postcss/autoprefixer/issues/324.\n\nvar inlineLogicalOld = {\n supportedProperty: function supportedProperty(prop, style) {\n if (!/^(border|margin|padding)-inline/.test(prop)) return false;\n if (prefix.js === 'Moz') return prop;\n var newProp = prop.replace('-inline', '');\n return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;\n }\n}; // Camelization is required because we can't test using.\n// CSS syntax for e.g. in FF.\n\nvar unprefixed = {\n supportedProperty: function supportedProperty(prop, style) {\n return camelize(prop) in style ? prop : false;\n }\n};\nvar prefixed = {\n supportedProperty: function supportedProperty(prop, style) {\n var pascalized = pascalize(prop); // Return custom CSS variable without prefixing.\n\n if (prop[0] === '-') return prop; // Return already prefixed value without prefixing.\n\n if (prop[0] === '-' && prop[1] === '-') return prop;\n if (prefix.js + pascalized in style) return prefix.css + prop; // Try webkit fallback.\n\n if (prefix.js !== 'Webkit' && \"Webkit\" + pascalized in style) return \"-webkit-\" + prop;\n return false;\n }\n}; // https://caniuse.com/#search=scroll-snap\n\nvar scrollSnap = {\n supportedProperty: function supportedProperty(prop) {\n if (prop.substring(0, 11) !== 'scroll-snap') return false;\n\n if (prefix.js === 'ms') {\n return \"\" + prefix.css + prop;\n }\n\n return prop;\n }\n}; // https://caniuse.com/#search=overscroll-behavior\n\nvar overscrollBehavior = {\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'overscroll-behavior') return false;\n\n if (prefix.js === 'ms') {\n return prefix.css + \"scroll-chaining\";\n }\n\n return prop;\n }\n};\nvar propMap = {\n 'flex-grow': 'flex-positive',\n 'flex-shrink': 'flex-negative',\n 'flex-basis': 'flex-preferred-size',\n 'justify-content': 'flex-pack',\n order: 'flex-order',\n 'align-items': 'flex-align',\n 'align-content': 'flex-line-pack' // 'align-self' is handled by 'align-self' plugin.\n\n}; // Support old flex spec from 2012.\n\nvar flex2012 = {\n supportedProperty: function supportedProperty(prop, style) {\n var newProp = propMap[prop];\n if (!newProp) return false;\n return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;\n }\n};\nvar propMap$1 = {\n flex: 'box-flex',\n 'flex-grow': 'box-flex',\n 'flex-direction': ['box-orient', 'box-direction'],\n order: 'box-ordinal-group',\n 'align-items': 'box-align',\n 'flex-flow': ['box-orient', 'box-direction'],\n 'justify-content': 'box-pack'\n};\nvar propKeys = Object.keys(propMap$1);\n\nvar prefixCss = function prefixCss(p) {\n return prefix.css + p;\n}; // Support old flex spec from 2009.\n\n\nvar flex2009 = {\n supportedProperty: function supportedProperty(prop, style, _ref) {\n var multiple = _ref.multiple;\n\n if (propKeys.indexOf(prop) > -1) {\n var newProp = propMap$1[prop];\n\n if (!Array.isArray(newProp)) {\n return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;\n }\n\n if (!multiple) return false;\n\n for (var i = 0; i < newProp.length; i++) {\n if (!(prefix.js + pascalize(newProp[0]) in style)) {\n return false;\n }\n }\n\n return newProp.map(prefixCss);\n }\n\n return false;\n }\n}; // plugins = [\n// ...plugins,\n// breakPropsOld,\n// inlineLogicalOld,\n// unprefixed,\n// prefixed,\n// scrollSnap,\n// flex2012,\n// flex2009\n// ]\n// Plugins without 'noPrefill' value, going last.\n// 'flex-*' plugins should be at the bottom.\n// 'flex2009' going after 'flex2012'.\n// 'prefixed' going after 'unprefixed'\n\nvar plugins = [appearence, colorAdjust, mask, textOrientation, transform, transition, writingMode, userSelect, breakPropsOld, inlineLogicalOld, unprefixed, prefixed, scrollSnap, overscrollBehavior, flex2012, flex2009];\nvar propertyDetectors = plugins.filter(function (p) {\n return p.supportedProperty;\n}).map(function (p) {\n return p.supportedProperty;\n});\nvar noPrefill = plugins.filter(function (p) {\n return p.noPrefill;\n}).reduce(function (a, p) {\n a.push.apply(a, _toConsumableArray(p.noPrefill));\n return a;\n}, []);\nvar el;\nvar cache = {};\n\nif (isInBrowser) {\n el = document.createElement('p'); // We test every property on vendor prefix requirement.\n // Once tested, result is cached. It gives us up to 70% perf boost.\n // http://jsperf.com/element-style-object-access-vs-plain-object\n //\n // Prefill cache with known css properties to reduce amount of\n // properties we need to feature test at runtime.\n // http://davidwalsh.name/vendor-prefix\n\n var computed = window.getComputedStyle(document.documentElement, '');\n\n for (var key$1 in computed) {\n // eslint-disable-next-line no-restricted-globals\n if (!isNaN(key$1)) cache[computed[key$1]] = computed[key$1];\n } // Properties that cannot be correctly detected using the\n // cache prefill method.\n\n\n noPrefill.forEach(function (x) {\n return delete cache[x];\n });\n}\n/**\n * Test if a property is supported, returns supported property with vendor\n * prefix if required. Returns `false` if not supported.\n *\n * @param {String} prop dash separated\n * @param {Object} [options]\n * @return {String|Boolean}\n * @api public\n */\n\n\nfunction supportedProperty(prop, options) {\n if (options === void 0) {\n options = {};\n } // For server-side rendering.\n\n\n if (!el) return prop; // Remove cache for benchmark tests or return property from the cache.\n\n if (process.env.NODE_ENV !== 'benchmark' && cache[prop] != null) {\n return cache[prop];\n } // Check if 'transition' or 'transform' natively supported in browser.\n\n\n if (prop === 'transition' || prop === 'transform') {\n options[prop] = prop in el.style;\n } // Find a plugin for current prefix property.\n\n\n for (var i = 0; i < propertyDetectors.length; i++) {\n cache[prop] = propertyDetectors[i](prop, el.style, options); // Break loop, if value found.\n\n if (cache[prop]) break;\n } // Reset styles for current property.\n // Firefox can even throw an error for invalid properties, e.g., \"0\".\n\n\n try {\n el.style[prop] = '';\n } catch (err) {\n return false;\n }\n\n return cache[prop];\n}\n\nvar cache$1 = {};\nvar transitionProperties = {\n transition: 1,\n 'transition-property': 1,\n '-webkit-transition': 1,\n '-webkit-transition-property': 1\n};\nvar transPropsRegExp = /(^\\s*[\\w-]+)|, (\\s*[\\w-]+)(?![^()]*\\))/g;\nvar el$1;\n/**\n * Returns prefixed value transition/transform if needed.\n *\n * @param {String} match\n * @param {String} p1\n * @param {String} p2\n * @return {String}\n * @api private\n */\n\nfunction prefixTransitionCallback(match, p1, p2) {\n if (p1 === 'var') return 'var';\n if (p1 === 'all') return 'all';\n if (p2 === 'all') return ', all';\n var prefixedValue = p1 ? supportedProperty(p1) : \", \" + supportedProperty(p2);\n if (!prefixedValue) return p1 || p2;\n return prefixedValue;\n}\n\nif (isInBrowser) el$1 = document.createElement('p');\n/**\n * Returns prefixed value if needed. Returns `false` if value is not supported.\n *\n * @param {String} property\n * @param {String} value\n * @return {String|Boolean}\n * @api public\n */\n\nfunction supportedValue(property, value) {\n // For server-side rendering.\n var prefixedValue = value;\n if (!el$1 || property === 'content') return value; // It is a string or a number as a string like '1'.\n // We want only prefixable values here.\n // eslint-disable-next-line no-restricted-globals\n\n if (typeof prefixedValue !== 'string' || !isNaN(parseInt(prefixedValue, 10))) {\n return prefixedValue;\n } // Create cache key for current value.\n\n\n var cacheKey = property + prefixedValue; // Remove cache for benchmark tests or return value from cache.\n\n if (process.env.NODE_ENV !== 'benchmark' && cache$1[cacheKey] != null) {\n return cache$1[cacheKey];\n } // IE can even throw an error in some cases, for e.g. style.content = 'bar'.\n\n\n try {\n // Test value as it is.\n el$1.style[property] = prefixedValue;\n } catch (err) {\n // Return false if value not supported.\n cache$1[cacheKey] = false;\n return false;\n } // If 'transition' or 'transition-property' property.\n\n\n if (transitionProperties[property]) {\n prefixedValue = prefixedValue.replace(transPropsRegExp, prefixTransitionCallback);\n } else if (el$1.style[property] === '') {\n // Value with a vendor prefix.\n prefixedValue = prefix.css + prefixedValue; // Hardcode test to convert \"flex\" to \"-ms-flexbox\" for IE10.\n\n if (prefixedValue === '-ms-flex') el$1.style[property] = '-ms-flexbox'; // Test prefixed value.\n\n el$1.style[property] = prefixedValue; // Return false if value not supported.\n\n if (el$1.style[property] === '') {\n cache$1[cacheKey] = false;\n return false;\n }\n } // Reset styles for current property.\n\n\n el$1.style[property] = ''; // Write current value to cache.\n\n cache$1[cacheKey] = prefixedValue;\n return cache$1[cacheKey];\n}\n\nexport { prefix, supportedKeyframes, supportedProperty, supportedValue };","import { supportedKeyframes, supportedValue, supportedProperty } from 'css-vendor';\nimport { toCssValue } from 'jss';\n/**\n * Add vendor prefix to a property name when needed.\n *\n * @api public\n */\n\nfunction jssVendorPrefixer() {\n function onProcessRule(rule) {\n if (rule.type === 'keyframes') {\n var atRule = rule;\n atRule.at = supportedKeyframes(atRule.at);\n }\n }\n\n function prefixStyle(style) {\n for (var prop in style) {\n var value = style[prop];\n\n if (prop === 'fallbacks' && Array.isArray(value)) {\n style[prop] = value.map(prefixStyle);\n continue;\n }\n\n var changeProp = false;\n var supportedProp = supportedProperty(prop);\n if (supportedProp && supportedProp !== prop) changeProp = true;\n var changeValue = false;\n var supportedValue$1 = supportedValue(supportedProp, toCssValue(value));\n if (supportedValue$1 && supportedValue$1 !== value) changeValue = true;\n\n if (changeProp || changeValue) {\n if (changeProp) delete style[prop];\n style[supportedProp || prop] = supportedValue$1 || value;\n }\n }\n\n return style;\n }\n\n function onProcessStyle(style, rule) {\n if (rule.type !== 'style') return style;\n return prefixStyle(style);\n }\n\n function onChangeValue(value, prop) {\n return supportedValue(prop, toCssValue(value)) || value;\n }\n\n return {\n onProcessRule: onProcessRule,\n onProcessStyle: onProcessStyle,\n onChangeValue: onChangeValue\n };\n}\n\nexport default jssVendorPrefixer;","/**\n * Sort props by length.\n */\nfunction jssPropsSort() {\n var sort = function sort(prop0, prop1) {\n if (prop0.length === prop1.length) {\n return prop0 > prop1 ? 1 : -1;\n }\n\n return prop0.length - prop1.length;\n };\n\n return {\n onProcessStyle: function onProcessStyle(style, rule) {\n if (rule.type !== 'style') return style;\n var newStyle = {};\n var props = Object.keys(style).sort(sort);\n\n for (var i = 0; i < props.length; i++) {\n newStyle[props[i]] = style[props[i]];\n }\n\n return newStyle;\n }\n };\n}\n\nexport default jssPropsSort;","import functions from 'jss-plugin-rule-value-function';\nimport observable from 'jss-plugin-rule-value-observable';\nimport template from 'jss-plugin-template';\nimport global from 'jss-plugin-global';\nimport extend from 'jss-plugin-extend';\nimport nested from 'jss-plugin-nested';\nimport compose from 'jss-plugin-compose';\nimport camelCase from 'jss-plugin-camel-case';\nimport defaultUnit from 'jss-plugin-default-unit';\nimport expand from 'jss-plugin-expand';\nimport vendorPrefixer from 'jss-plugin-vendor-prefixer';\nimport propsSort from 'jss-plugin-props-sort';\n\nvar create = function create(options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n plugins: [functions(), observable(options.observable), template(), global(), extend(), nested(), compose(), camelCase(), defaultUnit(options.defaultUnit), expand(), vendorPrefixer(), propsSort()]\n };\n};\n\nexport default create;","function shallowEqualObjects(objA, objB) {\n if (objA === objB) {\n return true;\n }\n\n if (!objA || !objB) {\n return false;\n }\n\n var aKeys = Object.keys(objA);\n var bKeys = Object.keys(objB);\n var len = aKeys.length;\n\n if (bKeys.length !== len) {\n return false;\n }\n\n for (var i = 0; i < len; i++) {\n var key = aKeys[i];\n\n if (objA[key] !== objB[key] || !Object.prototype.hasOwnProperty.call(objB, key)) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction shallowEqualArrays(arrA, arrB) {\n if (arrA === arrB) {\n return true;\n }\n\n if (!arrA || !arrB) {\n return false;\n }\n\n var len = arrA.length;\n\n if (arrB.length !== len) {\n return false;\n }\n\n for (var i = 0; i < len; i++) {\n if (arrA[i] !== arrB[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nexport { shallowEqualArrays, shallowEqualObjects };","function memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;","import memoize from '@emotion/memoize';\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|default|defer|dir|disabled|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|itemProp|itemScope|itemType|itemID|itemRef|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar index = memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\nexport default index;","import { create } from 'jss';\nimport preset from 'jss-preset-default'; // I have been trying to benchmark and I have seen a slow down after about 10k rules.\n// Since we are in a single sheet mode, user shouldn't care about this.\n\nvar MAX_RULES_PER_SHEET = 10000;\nvar defaultJss = create(preset());\n\nvar createCss = function createCss(jss) {\n if (jss === void 0) {\n jss = defaultJss;\n }\n\n var cache = new Map();\n var ruleIndex = 0;\n var sheet;\n\n var getSheet = function getSheet() {\n if (!sheet || sheet.rules.index.length > MAX_RULES_PER_SHEET) {\n sheet = jss.createStyleSheet().attach();\n }\n\n return sheet;\n };\n\n function css() {\n // eslint-disable-next-line prefer-rest-params\n var args = arguments; // We can avoid the need for stringification with a babel plugin,\n // which could generate a hash at build time and add it to the object.\n\n var argsStr = JSON.stringify(args);\n var cached = cache.get(argsStr);\n if (cached) return cached.className;\n var flatArgs = []; // Flatten arguments which can be\n // - style objects\n // - array of style objects\n // - arrays of style objects\n\n for (var argIndex in args) {\n var arg = args[argIndex];\n\n if (!Array.isArray(arg)) {\n flatArgs.push(arg);\n continue;\n }\n\n for (var innerArgIndex = 0; innerArgIndex < arg.length; innerArgIndex++) {\n flatArgs.push(arg[innerArgIndex]);\n }\n }\n\n var mergedStyle = {};\n var labels = [];\n\n for (var i = 0; i < flatArgs.length; i++) {\n var style = flatArgs[i];\n if (!style) continue;\n var styleObject = style; // It can be a class name that css() has previously generated.\n\n if (typeof style === 'string') {\n // eslint-disable-next-line no-shadow\n var _cached = cache.get(style);\n\n if (_cached) {\n // eslint-disable-next-line prefer-spread\n if (_cached.labels.length) labels.push.apply(labels, _cached.labels);\n styleObject = _cached.style;\n }\n }\n\n if (styleObject.label && labels.indexOf(styleObject.label) === -1) labels.push(styleObject.label);\n Object.assign(mergedStyle, styleObject);\n }\n\n delete mergedStyle.label;\n var label = labels.length === 0 ? 'css' : labels.join('-');\n var key = label + \"-\" + ruleIndex++;\n getSheet().addRule(key, mergedStyle);\n var className = getSheet().classes[key];\n var cacheValue = {\n style: mergedStyle,\n labels: labels,\n className: className\n };\n cache.set(argsStr, cacheValue);\n cache.set(className, cacheValue);\n return className;\n } // For testing only.\n\n\n css.getSheet = getSheet;\n return css;\n};\n\nvar css = createCss();\nexport default css;\nexport { createCss as create };","import _extends from '@babel/runtime/helpers/esm/extends';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport { createContext, forwardRef, createElement as createElement$1, Component, useRef, useContext, useMemo, useDebugValue, useEffect, useLayoutEffect } from 'react';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport { ThemeContext } from 'theming';\nexport { ThemeProvider, createTheming, useTheme, withTheme } from 'theming';\nimport warning from 'tiny-warning';\nimport defaultJss, { SheetsManager, create as create$1, getDynamicStyles, createGenerateId, SheetsRegistry } from 'jss';\nexport { SheetsRegistry, createGenerateId } from 'jss';\nimport preset from 'jss-preset-default';\nimport isInBrowser from 'is-in-browser';\nimport PropTypes from 'prop-types';\nimport { shallowEqualObjects } from 'shallow-equal';\nimport isPropValid from '@emotion/is-prop-valid';\nimport defaultCss from 'css-jss'; // eslint-disable-next-line no-unused-vars\n\nvar getDisplayName = function getDisplayName(Component) {\n return Component.displayName || Component.name || 'Component';\n};\n\nvar memoize = function memoize(fn) {\n var lastArgs;\n var lastResult;\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (Array.isArray(lastArgs) && args.length === lastArgs.length) {\n var isSame = true;\n\n for (var i = 0; i < args.length; i++) {\n if (args[i] !== lastArgs[i]) {\n isSame = false;\n }\n }\n\n if (isSame) {\n return lastResult;\n }\n }\n\n lastArgs = args;\n lastResult = fn.apply(void 0, args);\n return lastResult;\n };\n};\n\nvar mergeClasses = function mergeClasses(baseClasses, additionalClasses) {\n var combinedClasses = _extends({}, baseClasses);\n\n for (var name in additionalClasses) {\n combinedClasses[name] = name in combinedClasses ? combinedClasses[name] + \" \" + additionalClasses[name] : additionalClasses[name];\n }\n\n return combinedClasses;\n};\n\nvar JssContext = createContext({\n classNamePrefix: '',\n disableStylesGeneration: false\n});\n/**\n * Global index counter to preserve source order.\n * As we create the style sheet during componentWillMount lifecycle,\n * children are handled after the parents, so the order of style elements would\n * be parent->child. It is a problem though when a parent passes a className\n * which needs to override any childs styles. StyleSheet of the child has a higher\n * specificity, because of the source order.\n * So our solution is to render sheets them in the reverse order child->sheet, so\n * that parent has a higher specificity.\n *\n * We start at [Number.MIN_SAFE_INTEGER] to always insert sheets from react-jss first before any\n * sheet which might be inserted manually by the user.\n */\n\nvar index = Number.MIN_SAFE_INTEGER || -1e9;\n\nvar getSheetIndex = function getSheetIndex() {\n return index++;\n};\n\nvar defaultManagers = new Map();\n\nvar getManager = function getManager(context, managerId) {\n // If `managers` map is present in the context, we use it in order to\n // let JssProvider reset them when new response has to render server-side.\n if (context.managers) {\n if (!context.managers[managerId]) {\n context.managers[managerId] = new SheetsManager();\n }\n\n return context.managers[managerId];\n }\n\n var manager = defaultManagers.get(managerId);\n\n if (!manager) {\n manager = new SheetsManager();\n defaultManagers.set(managerId, manager);\n }\n\n return manager;\n};\n\nvar manageSheet = function manageSheet(options) {\n var sheet = options.sheet,\n context = options.context,\n index = options.index,\n theme = options.theme;\n\n if (!sheet) {\n return;\n }\n\n var manager = getManager(context, index);\n manager.manage(theme);\n\n if (context.registry) {\n context.registry.add(sheet);\n }\n};\n\nvar unmanageSheet = function unmanageSheet(options) {\n if (!options.sheet) {\n return;\n }\n\n var manager = getManager(options.context, options.index);\n manager.unmanage(options.theme);\n};\n\nvar jss = create$1(preset());\nvar sheetsMeta = new WeakMap();\n\nvar getMeta = function getMeta(sheet) {\n return sheetsMeta.get(sheet);\n};\n\nvar addMeta = function addMeta(sheet, meta) {\n sheetsMeta.set(sheet, meta);\n}; // eslint-disable-next-line no-unused-vars\n\n\nvar getStyles = function getStyles(options) {\n var styles = options.styles;\n\n if (typeof styles !== 'function') {\n return styles;\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(styles.length !== 0, \"[JSS] <\" + (options.name || 'Hook') + \" />'s styles function doesn't rely on the \\\"theme\\\" argument. We recommend declaring styles as an object instead.\") : void 0;\n return styles(options.theme);\n};\n\nfunction getSheetOptions(options, link) {\n var minify;\n\n if (options.context.id && options.context.id.minify != null) {\n minify = options.context.id.minify;\n }\n\n var classNamePrefix = options.context.classNamePrefix || '';\n\n if (options.name && !minify) {\n classNamePrefix += options.name.replace(/\\s/g, '-') + \"-\";\n }\n\n var meta = '';\n if (options.name) meta = options.name + \", \";\n meta += typeof options.styles === 'function' ? 'Themed' : 'Unthemed';\n return _extends({}, options.sheetOptions, {\n index: options.index,\n meta: meta,\n classNamePrefix: classNamePrefix,\n link: link,\n generateId: options.sheetOptions.generateId || options.context.generateId\n });\n} // eslint-disable-next-line no-unused-vars\n\n\nvar createStyleSheet = function createStyleSheet(options) {\n if (options.context.disableStylesGeneration) {\n return undefined;\n }\n\n var manager = getManager(options.context, options.index);\n var existingSheet = manager.get(options.theme);\n\n if (existingSheet) {\n return existingSheet;\n }\n\n var jss$1 = options.context.jss || jss;\n var styles = getStyles(options);\n var dynamicStyles = getDynamicStyles(styles);\n var sheet = jss$1.createStyleSheet(styles, getSheetOptions(options, dynamicStyles !== null));\n addMeta(sheet, {\n dynamicStyles: dynamicStyles,\n styles: styles\n });\n manager.add(options.theme, sheet);\n return sheet;\n};\n\nvar removeDynamicRules = function removeDynamicRules(sheet, rules) {\n // Loop over each dynamic rule and remove the dynamic rule\n // We can't just remove the whole sheet as this has all of the rules for every component instance\n for (var key in rules) {\n sheet.deleteRule(rules[key]);\n }\n};\n\nvar updateDynamicRules = function updateDynamicRules(data, sheet, rules) {\n // Loop over each dynamic rule and update it\n // We can't just update the whole sheet as this has all of the rules for every component instance\n for (var key in rules) {\n sheet.updateOne(rules[key], data);\n }\n};\n\nvar addDynamicRules = function addDynamicRules(sheet, data) {\n var meta = getMeta(sheet);\n\n if (!meta) {\n return undefined;\n }\n\n var rules = {}; // Loop over each dynamic rule and add it to the stylesheet\n\n for (var key in meta.dynamicStyles) {\n var initialRuleCount = sheet.rules.index.length;\n var originalRule = sheet.addRule(key, meta.dynamicStyles[key]); // Loop through all created rules, fixes updating dynamic rules\n\n for (var i = initialRuleCount; i < sheet.rules.index.length; i++) {\n var rule = sheet.rules.index[i];\n sheet.updateOne(rule, data); // If it's the original rule, we need to add it by the correct key so the hook and hoc\n // can correctly concat the dynamic class with the static one\n\n rules[originalRule === rule ? key : rule.key] = rule;\n }\n }\n\n return rules;\n};\n\nvar getSheetClasses = function getSheetClasses(sheet, dynamicRules) {\n if (!dynamicRules) {\n return sheet.classes;\n }\n\n var classes = {};\n var meta = getMeta(sheet);\n\n if (!meta) {\n return sheet.classes;\n }\n\n for (var key in meta.styles) {\n classes[key] = sheet.classes[key];\n\n if (key in dynamicRules) {\n classes[key] += \" \" + sheet.classes[dynamicRules[key].key];\n }\n }\n\n return classes;\n};\n\nvar NoRenderer = function NoRenderer(props) {\n return props.children || null;\n};\n\nvar noTheme = {};\n/**\n * HOC creator function that wrapps the user component.\n *\n * `withStyles(styles, [options])(Component)`\n */\n\nvar createWithStyles = function createWithStyles(styles, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$index = _options.index,\n index = _options$index === void 0 ? getSheetIndex() : _options$index,\n theming = _options.theming,\n injectTheme = _options.injectTheme,\n sheetOptions = _objectWithoutPropertiesLoose(_options, [\"index\", \"theming\", \"injectTheme\"]);\n\n var isThemingEnabled = typeof styles === 'function';\n var ThemeConsumer = theming && theming.context.Consumer || ThemeContext.Consumer;\n return function (InnerComponent) {\n if (InnerComponent === void 0) {\n InnerComponent = NoRenderer;\n }\n\n var displayName = getDisplayName(InnerComponent);\n\n var getTheme = function getTheme(props) {\n return isThemingEnabled ? props.theme : noTheme;\n };\n\n var WithStyles = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(WithStyles, _React$Component); // $FlowFixMe[prop-missing]\n\n\n WithStyles.createState = function createState(props) {\n var sheet = createStyleSheet({\n styles: styles,\n theme: getTheme(props),\n index: index,\n name: displayName,\n context: props.jssContext,\n sheetOptions: sheetOptions\n });\n\n if (!sheet) {\n return {\n classes: {},\n dynamicRules: undefined,\n sheet: undefined\n };\n }\n\n var dynamicRules = addDynamicRules(sheet, props);\n return {\n sheet: sheet,\n dynamicRules: dynamicRules,\n classes: getSheetClasses(sheet, dynamicRules)\n };\n };\n\n WithStyles.manage = function manage(props, state) {\n var sheet = state.sheet;\n\n if (sheet) {\n manageSheet({\n sheet: sheet,\n index: index,\n context: props.jssContext,\n theme: getTheme(props)\n });\n }\n };\n\n WithStyles.unmanage = function unmanage(props, state) {\n var sheet = state.sheet,\n dynamicRules = state.dynamicRules;\n\n if (sheet) {\n unmanageSheet({\n context: props.jssContext,\n index: index,\n sheet: sheet,\n theme: getTheme(props)\n });\n\n if (dynamicRules) {\n removeDynamicRules(sheet, dynamicRules);\n }\n }\n };\n\n function WithStyles(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.mergeClassesProp = memoize(function (sheetClasses, classesProp) {\n return classesProp ? mergeClasses(sheetClasses, classesProp) : sheetClasses;\n });\n _this.state = WithStyles.createState(props);\n var registry = props.jssContext.registry;\n var sheet = _this.state.sheet;\n\n if (sheet && registry) {\n registry.add(sheet);\n }\n\n return _this;\n }\n\n var _proto = WithStyles.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n var props = this.props,\n state = this.state;\n\n if (props && state) {\n WithStyles.manage(props, state);\n }\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (isThemingEnabled && this.props.theme !== prevProps.theme) {\n var newState = WithStyles.createState(this.props);\n WithStyles.manage(this.props, newState);\n WithStyles.unmanage(prevProps, prevState); // eslint-disable-next-line react/no-did-update-set-state\n\n this.setState(newState);\n } else if (this.state.sheet && this.state.dynamicRules) {\n // Only update the rules when we don't generate a new sheet\n updateDynamicRules(this.props, this.state.sheet, this.state.dynamicRules);\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n WithStyles.unmanage(this.props, this.state);\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n innerRef = _this$props.innerRef,\n jssContext = _this$props.jssContext,\n theme = _this$props.theme,\n classes = _this$props.classes,\n rest = _objectWithoutPropertiesLoose(_this$props, [\"innerRef\", \"jssContext\", \"theme\", \"classes\"]);\n\n var sheetClasses = this.state.classes;\n\n var props = _extends({}, rest, {\n classes: this.mergeClassesProp(sheetClasses, classes)\n });\n\n if (innerRef) props.ref = innerRef;\n if (injectTheme) props.theme = theme;\n return createElement$1(InnerComponent, props);\n };\n\n return WithStyles;\n }(Component);\n\n WithStyles.displayName = \"WithStyles(\" + displayName + \")\";\n WithStyles.defaultProps = _extends({}, InnerComponent.defaultProps);\n var JssContextSubscriber = forwardRef(function (props, ref) {\n return createElement$1(JssContext.Consumer, null, function (context) {\n if (isThemingEnabled || injectTheme) {\n return createElement$1(ThemeConsumer, null, function (theme) {\n return createElement$1(WithStyles, _extends({\n innerRef: ref,\n theme: theme\n }, props, {\n jssContext: context\n }));\n });\n }\n\n return createElement$1(WithStyles, _extends({\n innerRef: ref\n }, props, {\n jssContext: context,\n theme: noTheme\n }));\n });\n });\n JssContextSubscriber.displayName = \"JssContextSubscriber(\" + displayName + \")\"; // $FlowFixMe[prop-missing] - React's types should allow custom static properties on component.\n\n JssContextSubscriber.InnerComponent = InnerComponent;\n return hoistNonReactStatics(JssContextSubscriber, InnerComponent);\n };\n};\n\nvar useEffectOrLayoutEffect = isInBrowser ? useLayoutEffect : useEffect;\nvar noTheme$1 = {};\n\nvar createUseStyles = function createUseStyles(styles, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$index = _options.index,\n index = _options$index === void 0 ? getSheetIndex() : _options$index,\n theming = _options.theming,\n name = _options.name,\n sheetOptions = _objectWithoutPropertiesLoose(_options, [\"index\", \"theming\", \"name\"]);\n\n var ThemeContext$1 = theming && theming.context || ThemeContext;\n var useTheme = typeof styles === 'function' ? // $FlowFixMe[incompatible-return]\n function () {\n return useContext(ThemeContext$1) || noTheme$1;\n } : // $FlowFixMe[incompatible-return]\n function () {\n return noTheme$1;\n };\n return function useStyles(data) {\n var isFirstMount = useRef(true);\n var context = useContext(JssContext);\n var theme = useTheme();\n\n var _React$useMemo = useMemo(function () {\n var newSheet = createStyleSheet({\n context: context,\n styles: styles,\n name: name,\n theme: theme,\n index: index,\n sheetOptions: sheetOptions\n });\n var newDynamicRules = newSheet ? addDynamicRules(newSheet, data) : null;\n\n if (newSheet) {\n manageSheet({\n index: index,\n context: context,\n sheet: newSheet,\n theme: theme\n });\n }\n\n return [newSheet, newDynamicRules];\n }, [context, theme]),\n sheet = _React$useMemo[0],\n dynamicRules = _React$useMemo[1];\n\n useEffectOrLayoutEffect(function () {\n // We only need to update the rules on a subsequent update and not in the first mount\n if (sheet && dynamicRules && !isFirstMount.current) {\n updateDynamicRules(data, sheet, dynamicRules);\n }\n }, [data]);\n useEffectOrLayoutEffect(function () {\n return (// cleanup only\n function () {\n if (sheet) {\n unmanageSheet({\n index: index,\n context: context,\n sheet: sheet,\n theme: theme\n });\n }\n\n if (sheet && dynamicRules) {\n removeDynamicRules(sheet, dynamicRules);\n }\n }\n );\n }, [sheet]);\n var classes = sheet && dynamicRules ? getSheetClasses(sheet, dynamicRules) : {};\n useDebugValue(classes);\n useDebugValue(theme === noTheme$1 ? 'No theme' : theme);\n useEffect(function () {\n isFirstMount.current = false;\n });\n return classes;\n };\n};\n\nvar initialContext = {};\n\nvar JssProvider = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(JssProvider, _React$Component);\n\n function JssProvider() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.managers = {};\n\n _this.createContext = function (parentContext, prevContext) {\n if (prevContext === void 0) {\n prevContext = initialContext;\n }\n\n var _this$props = _this.props,\n registry = _this$props.registry,\n classNamePrefix = _this$props.classNamePrefix,\n jss = _this$props.jss,\n generateId = _this$props.generateId,\n disableStylesGeneration = _this$props.disableStylesGeneration,\n media = _this$props.media,\n id = _this$props.id;\n\n var context = _extends({}, parentContext);\n\n if (registry) {\n context.registry = registry; // This way we identify a new request on the server, because user will create\n // a new Registry instance for each.\n\n if (registry !== _this.registry) {\n // We reset managers because we have to regenerate all sheets for the new request.\n _this.managers = {};\n _this.registry = registry;\n }\n }\n\n context.managers = _this.managers;\n\n if (id !== undefined) {\n context.id = id;\n }\n\n if (generateId !== undefined) {\n context.generateId = generateId;\n } else if (!context.generateId || !prevContext || context.id !== prevContext.id) {\n context.generateId = createGenerateId(context.id);\n }\n\n if (classNamePrefix) {\n context.classNamePrefix = (context.classNamePrefix || '') + classNamePrefix;\n }\n\n if (media !== undefined) {\n context.media = media;\n }\n\n if (jss) {\n context.jss = jss;\n }\n\n if (disableStylesGeneration !== undefined) {\n context.disableStylesGeneration = disableStylesGeneration;\n }\n\n if (prevContext && shallowEqualObjects(prevContext, context)) {\n return prevContext;\n }\n\n return context;\n };\n\n _this.prevContext = void 0;\n _this.generateId = void 0;\n _this.registry = void 0;\n\n _this.renderProvider = function (parentContext) {\n var children = _this.props.children;\n\n var context = _this.createContext(parentContext, _this.prevContext);\n\n _this.prevContext = context;\n return createElement$1(JssContext.Provider, {\n value: context\n }, children);\n };\n\n return _this;\n }\n\n var _proto = JssProvider.prototype;\n\n _proto.render = function render() {\n return createElement$1(JssContext.Consumer, null, this.renderProvider);\n };\n\n return JssProvider;\n}(Component);\n\nJssProvider.propTypes = {\n registry: PropTypes.instanceOf(SheetsRegistry),\n jss: PropTypes.instanceOf(defaultJss.constructor),\n generateId: PropTypes.func,\n classNamePrefix: PropTypes.string,\n disableStylesGeneration: PropTypes.bool,\n children: PropTypes.node.isRequired,\n media: PropTypes.string,\n id: PropTypes.shape({\n minify: PropTypes.bool\n })\n}; // eslint-disable-next-line no-unused-vars\n\nvar parseStyles = function parseStyles(args) {\n var dynamicStyles = [];\n var staticStyle;\n var labels = []; // Not using ...rest to optimize perf.\n\n for (var key in args) {\n var style = args[key];\n if (!style) continue;\n\n if (typeof style === 'function') {\n dynamicStyles.push(style);\n } else {\n if (!staticStyle) staticStyle = {};\n Object.assign(staticStyle, style);\n\n if (staticStyle.label) {\n if (labels.indexOf(staticStyle.label) === -1) labels.push(staticStyle.label);\n }\n }\n }\n\n var styles = {};\n var label = labels.length === 0 ? 'sc' : labels.join('-');\n\n if (staticStyle) {\n // Label should not leak to the core.\n if ('label' in staticStyle) delete staticStyle.label;\n styles[label] = staticStyle;\n } // When there is only one function rule, we don't need to wrap it.\n\n\n if (dynamicStyles.length === 1) {\n styles['scd'] = dynamicStyles[0];\n } // We create a new function rule which will call all other function rules\n // and merge the styles they return.\n\n\n if (dynamicStyles.length > 1) {\n styles['scd'] = function (props) {\n var merged = {};\n\n for (var i = 0; i < dynamicStyles.length; i++) {\n var dynamicStyle = dynamicStyles[i](props);\n if (dynamicStyle) Object.assign(merged, dynamicStyle);\n }\n\n return merged;\n };\n }\n\n return {\n styles: styles,\n label: label\n };\n};\n\nvar shouldForwardPropSymbol = Symbol('react-jss-styled');\n\nvar getShouldForwardProp = function getShouldForwardProp(tagOrComponent, options) {\n var shouldForwardProp = options.shouldForwardProp; // $FlowFixMe[invalid-computed-prop]\n // $FlowFixMe[incompatible-type]\n\n var childShouldForwardProp = tagOrComponent[shouldForwardPropSymbol];\n var finalShouldForwardProp = shouldForwardProp || childShouldForwardProp;\n\n if (shouldForwardProp && childShouldForwardProp) {\n finalShouldForwardProp = function finalShouldForwardProp(prop) {\n return childShouldForwardProp(prop) && shouldForwardProp(prop);\n };\n }\n\n return finalShouldForwardProp;\n};\n\nvar getChildProps = function getChildProps(props, shouldForwardProp, isTag) {\n var childProps = {};\n\n for (var prop in props) {\n if (shouldForwardProp) {\n if (shouldForwardProp(prop) === true) {\n childProps[prop] = props[prop];\n }\n\n continue;\n } // We don't want to pass non-dom props to the DOM.\n\n\n if (isTag) {\n if (isPropValid(prop)) {\n childProps[prop] = props[prop];\n }\n\n continue;\n }\n\n childProps[prop] = props[prop];\n }\n\n return childProps;\n}; // eslint-disable-next-line no-unused-vars\n\n\nvar configureStyled = function configureStyled(tagOrComponent, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n theming = _options.theming;\n var isTag = typeof tagOrComponent === 'string';\n var ThemeContext$1 = theming ? theming.context : ThemeContext;\n var shouldForwardProp = getShouldForwardProp(tagOrComponent, options);\n\n var _options2 = options,\n _ = _options2.shouldForwardProp,\n hookOptions = _objectWithoutPropertiesLoose(_options2, [\"shouldForwardProp\"]);\n\n return function createStyledComponent() {\n // eslint-disable-next-line prefer-rest-params\n var _parseStyles = parseStyles(arguments),\n styles = _parseStyles.styles,\n label = _parseStyles.label;\n\n var useStyles = createUseStyles(styles, hookOptions);\n\n var Styled = function Styled(props) {\n var as = props.as,\n className = props.className;\n var theme = useContext(ThemeContext$1);\n var propsWithTheme = Object.assign({\n theme: theme\n }, props);\n var classes = useStyles(propsWithTheme);\n var childProps = getChildProps(props, shouldForwardProp, isTag);\n var classNames = ((classes[label] || classes.sc || '') + \" \" + (classes.scd || '')).trim();\n childProps.className = className ? className + \" \" + classNames : classNames;\n\n if (!isTag && shouldForwardProp) {\n // $FlowFixMe[invalid-computed-prop] we are not supposed to attach random properties to component functions.\n // $FlowFixMe[incompatible-use]\n tagOrComponent[shouldForwardPropSymbol] = shouldForwardProp;\n }\n\n if (isTag && as) {\n return createElement$1(as, childProps);\n }\n\n return createElement$1(tagOrComponent, childProps);\n };\n\n return Styled;\n };\n};\n/* eslint-disable prefer-rest-params, prefer-spread */\n\n\nvar create = function create(css) {\n if (css === void 0) {\n css = defaultCss;\n }\n\n return function createElement(type, props\n /* :: , ..._args: any */\n ) {\n var args = arguments;\n\n if (props && props.css) {\n var className = css(props.css);\n var newProps = Object.assign({}, props);\n newProps.className = props.className ? props.className + \" \" + className : className;\n delete newProps.css;\n args[1] = newProps;\n } // $FlowFixMe[missing-arg]\n\n\n return createElement$1.apply(undefined, args);\n };\n};\n\nvar createElement = create();\nexport default createWithStyles;\nexport { JssContext, JssProvider, create as createJsx, createUseStyles, jss, createElement as jsx, configureStyled as styled, createWithStyles as withStyles };","import _typeof from \"/app/scripts/smweb-scripts/node_modules/@babel/runtime/helpers/typeof\";\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport invariant from 'invariant';\nimport json2mq from 'json2mq';\n\nvar MediaQueryListener = /*#__PURE__*/function () {\n function MediaQueryListener(targetWindow, query, listener) {\n var _this = this;\n\n this.nativeMediaQueryList = targetWindow.matchMedia(query);\n this.active = true; // Safari doesn't clear up listener with removeListener\n // when the listener is already waiting in the event queue.\n // Having an active flag to make sure the listener is not called\n // after we removeListener.\n\n this.cancellableListener = function () {\n _this.matches = _this.nativeMediaQueryList.matches;\n\n if (_this.active) {\n listener.apply(void 0, arguments);\n }\n };\n\n this.nativeMediaQueryList.addListener(this.cancellableListener);\n this.matches = this.nativeMediaQueryList.matches;\n }\n\n var _proto = MediaQueryListener.prototype;\n\n _proto.cancel = function cancel() {\n this.active = false;\n this.nativeMediaQueryList.removeListener(this.cancellableListener);\n };\n\n return MediaQueryListener;\n}();\n\nvar queryType = PropTypes.oneOfType([PropTypes.string, PropTypes.object, PropTypes.arrayOf(PropTypes.object.isRequired)]);\n/**\n * Conditionally renders based on whether or not a media query matches.\n */\n\nvar Media = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Media, _React$Component);\n\n function Media(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"queries\", []);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getMatches\", function () {\n var result = _this.queries.reduce(function (acc, _ref) {\n var _extends2;\n\n var name = _ref.name,\n mqListener = _ref.mqListener;\n return _extends({}, acc, (_extends2 = {}, _extends2[name] = mqListener.matches, _extends2));\n }, {}); // return result;\n\n\n return unwrapSingleQuery(result);\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"updateMatches\", function () {\n var newMatches = _this.getMatches();\n\n _this.setState(function () {\n return {\n matches: newMatches\n };\n }, _this.onChange);\n });\n\n !(!(!props.query && !props.queries) || props.query && props.queries) ? process.env.NODE_ENV !== \"production\" ? invariant(false, ' must be supplied with either \"query\" or \"queries\"') : invariant(false) : void 0;\n !(props.defaultMatches === undefined || !props.query || typeof props.defaultMatches === \"boolean\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" when query is set, defaultMatches must be a boolean, received \" + _typeof(props.defaultMatches)) : invariant(false) : void 0;\n !(props.defaultMatches === undefined || !props.queries || _typeof(props.defaultMatches) === \"object\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" when queries is set, defaultMatches must be a object of booleans, received \" + _typeof(props.defaultMatches)) : invariant(false) : void 0;\n\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) !== \"object\") {\n // In case we're rendering on the server, apply the default matches\n var matches;\n\n if (props.defaultMatches !== undefined) {\n matches = props.defaultMatches;\n } else if (props.query) {\n matches = true;\n }\n /* if (props.queries) */\n else {\n matches = Object.keys(_this.props.queries).reduce(function (acc, key) {\n var _extends3;\n\n return _extends({}, acc, (_extends3 = {}, _extends3[key] = true, _extends3));\n }, {});\n }\n\n _this.state = {\n matches: matches\n };\n return _assertThisInitialized(_this);\n }\n\n _this.initialize(); // Instead of calling this.updateMatches, we manually set the initial state to prevent\n // calling setState, which could trigger an unnecessary second render\n\n\n _this.state = {\n matches: _this.props.defaultMatches !== undefined ? _this.props.defaultMatches : _this.getMatches()\n };\n\n _this.onChange();\n\n return _this;\n }\n\n var _proto = Media.prototype;\n\n _proto.initialize = function initialize() {\n var _this2 = this;\n\n var targetWindow = this.props.targetWindow || window;\n !(typeof targetWindow.matchMedia === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" does not support `matchMedia`.\") : invariant(false) : void 0;\n var queries = this.props.queries || wrapInQueryObject(this.props.query);\n this.queries = Object.keys(queries).map(function (name) {\n var query = queries[name];\n var qs = typeof query !== \"string\" ? json2mq(query) : query;\n var mqListener = new MediaQueryListener(targetWindow, qs, _this2.updateMatches);\n return {\n name: name,\n mqListener: mqListener\n };\n });\n };\n\n _proto.componentDidMount = function componentDidMount() {\n this.initialize(); // If props.defaultMatches has been set, ensure we trigger a two-pass render.\n // This is useful for SSR with mismatching defaultMatches vs actual matches from window.matchMedia\n // Details: https://github.com/ReactTraining/react-media/issues/81\n\n if (this.props.defaultMatches !== undefined) {\n this.updateMatches();\n }\n };\n\n _proto.onChange = function onChange() {\n var onChange = this.props.onChange;\n\n if (onChange) {\n onChange(this.state.matches);\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.queries.forEach(function (_ref2) {\n var mqListener = _ref2.mqListener;\n return mqListener.cancel();\n });\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n children = _this$props.children,\n render = _this$props.render;\n var matches = this.state.matches;\n var isAnyMatches = _typeof(matches) === \"object\" ? Object.keys(matches).some(function (key) {\n return matches[key];\n }) : matches;\n return render ? isAnyMatches ? render(matches) : null : children ? typeof children === \"function\" ? children(matches) : !Array.isArray(children) || children.length // Preact defaults to empty children array\n ? isAnyMatches ? // We have to check whether child is a composite component or not to decide should we\n // provide `matches` as a prop or not\n React.Children.only(children) && typeof React.Children.only(children).type === \"string\" ? React.Children.only(children) : React.cloneElement(React.Children.only(children), {\n matches: matches\n }) : null : null : null;\n };\n\n return Media;\n}(React.Component);\n/**\n * Wraps a single query in an object. This is used to provide backward compatibility with\n * the old `query` prop (as opposed to `queries`). If only a single query is passed, the object\n * will be unpacked down the line, but this allows our internals to assume an object of queries\n * at all times.\n */\n\n\n_defineProperty(Media, \"propTypes\", {\n defaultMatches: PropTypes.oneOfType([PropTypes.bool, PropTypes.objectOf(PropTypes.bool)]),\n query: queryType,\n queries: PropTypes.objectOf(queryType),\n render: PropTypes.func,\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n targetWindow: PropTypes.object,\n onChange: PropTypes.func\n});\n\nfunction wrapInQueryObject(query) {\n return {\n __DEFAULT__: query\n };\n}\n/**\n * Unwraps an object of queries, if it was originally passed as a single query.\n */\n\n\nfunction unwrapSingleQuery(queryObject) {\n var queryNames = Object.keys(queryObject);\n\n if (queryNames.length === 1 && queryNames[0] === \"__DEFAULT__\") {\n return queryObject.__DEFAULT__;\n }\n\n return queryObject;\n}\n\nexport default Media;","import _typeof from \"/app/scripts/smweb-scripts/node_modules/@babel/runtime/helpers/typeof\";\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 };","import React, { Component } from 'react';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport warning from 'tiny-warning';\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {};\n\nfunction getUniqueId() {\n var key = '__global_unique_id__';\n return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1;\n}\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + getUniqueId() + '__';\n\n var Provider = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Provider, _Component);\n\n function Provider() {\n var _this;\n\n _this = _Component.apply(this, arguments) || this;\n _this.emitter = createEventEmitter(_this.props.value);\n return _this;\n }\n\n var _proto = Provider.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0;\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (process.env.NODE_ENV !== 'production') {\n warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: ' + changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes.object.isRequired, _Provider$childContex);\n\n var Consumer = /*#__PURE__*/function (_Component2) {\n _inheritsLoose(Consumer, _Component2);\n\n function Consumer() {\n var _this2;\n\n _this2 = _Component2.apply(this, arguments) || this;\n _this2.state = {\n value: _this2.getValue()\n };\n\n _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n };\n\n return _this2;\n }\n\n var _proto2 = Consumer.prototype;\n\n _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n _proto2.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n _proto2.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = PropTypes.object, _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nvar index = React.createContext || createReactContext;\nexport default index;","import _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { createMemoryHistory, createLocation, locationsAreEqual, createPath } from 'history';\nimport warning from 'tiny-warning';\nimport createContext from 'mini-create-react-context';\nimport invariant from 'tiny-invariant';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport pathToRegexp from 'path-to-regexp';\nimport { isValidElementType } from 'react-is';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport hoistStatics from 'hoist-non-react-statics'; // TODO: Replace with React.createContext once we can assume React 16+\n\nvar createNamedContext = function createNamedContext(name) {\n var context = createContext();\n context.displayName = name;\n return context;\n};\n\nvar historyContext = /*#__PURE__*/createNamedContext(\"Router-History\"); // TODO: Replace with React.createContext once we can assume React 16+\n\nvar createNamedContext$1 = function createNamedContext(name) {\n var context = createContext();\n context.displayName = name;\n return context;\n};\n\nvar context = /*#__PURE__*/createNamedContext$1(\"Router\");\n/**\n * The public API for putting history on context.\n */\n\nvar Router = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Router, _React$Component);\n\n Router.computeRootMatch = function computeRootMatch(pathname) {\n return {\n path: \"/\",\n url: \"/\",\n params: {},\n isExact: pathname === \"/\"\n };\n };\n\n function Router(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.state = {\n location: props.history.location\n }; // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n\n _this._isMounted = false;\n _this._pendingLocation = null;\n\n if (!props.staticContext) {\n _this.unlisten = props.history.listen(function (location) {\n if (_this._isMounted) {\n _this.setState({\n location: location\n });\n } else {\n _this._pendingLocation = location;\n }\n });\n }\n\n return _this;\n }\n\n var _proto = Router.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({\n location: this._pendingLocation\n });\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.unlisten) this.unlisten();\n };\n\n _proto.render = function render() {\n return React.createElement(context.Provider, {\n value: {\n history: this.props.history,\n location: this.state.location,\n match: Router.computeRootMatch(this.state.location.pathname),\n staticContext: this.props.staticContext\n }\n }, React.createElement(historyContext.Provider, {\n children: this.props.children || null,\n value: this.props.history\n }));\n };\n\n return Router;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function (prevProps) {\n process.env.NODE_ENV !== \"production\" ? warning(prevProps.history === this.props.history, \"You cannot change \") : void 0;\n };\n}\n/**\n * The public API for a that stores location in memory.\n */\n\n\nvar MemoryRouter = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(MemoryRouter, _React$Component);\n\n function MemoryRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.history = createMemoryHistory(_this.props);\n return _this;\n }\n\n var _proto = MemoryRouter.prototype;\n\n _proto.render = function render() {\n return React.createElement(Router, {\n history: this.history,\n children: this.props.children\n });\n };\n\n return MemoryRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \" ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\") : void 0;\n };\n}\n\nvar Lifecycle = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Lifecycle, _React$Component);\n\n function Lifecycle() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Lifecycle.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n };\n\n _proto.render = function render() {\n return null;\n };\n\n return Lifecycle;\n}(React.Component);\n/**\n * The public API for prompting the user before navigating away from a screen.\n */\n\n\nfunction Prompt(_ref) {\n var message = _ref.message,\n _ref$when = _ref.when,\n when = _ref$when === void 0 ? true : _ref$when;\n return React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n if (!when || context.staticContext) return null;\n var method = context.history.block;\n return React.createElement(Lifecycle, {\n onMount: function onMount(self) {\n self.release = method(message);\n },\n onUpdate: function onUpdate(self, prevProps) {\n if (prevProps.message !== message) {\n self.release();\n self.release = method(message);\n }\n },\n onUnmount: function onUnmount(self) {\n self.release();\n },\n message: message\n });\n });\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n var messageType = PropTypes.oneOfType([PropTypes.func, PropTypes.string]);\n Prompt.propTypes = {\n when: PropTypes.bool,\n message: messageType.isRequired\n };\n}\n\nvar cache = {};\nvar cacheLimit = 10000;\nvar cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n var generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\n\n\nfunction generatePath(path, params) {\n if (path === void 0) {\n path = \"/\";\n }\n\n if (params === void 0) {\n params = {};\n }\n\n return path === \"/\" ? path : compilePath(path)(params, {\n pretty: true\n });\n}\n/**\n * The public API for navigating programmatically with a component.\n */\n\n\nfunction Redirect(_ref) {\n var computedMatch = _ref.computedMatch,\n to = _ref.to,\n _ref$push = _ref.push,\n push = _ref$push === void 0 ? false : _ref$push;\n return React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var history = context.history,\n staticContext = context.staticContext;\n var method = push ? history.push : history.replace;\n var location = createLocation(computedMatch ? typeof to === \"string\" ? generatePath(to, computedMatch.params) : _extends({}, to, {\n pathname: generatePath(to.pathname, computedMatch.params)\n }) : to); // When rendering in a static context,\n // set the new location immediately.\n\n if (staticContext) {\n method(location);\n return null;\n }\n\n return React.createElement(Lifecycle, {\n onMount: function onMount() {\n method(location);\n },\n onUpdate: function onUpdate(self, prevProps) {\n var prevLocation = createLocation(prevProps.to);\n\n if (!locationsAreEqual(prevLocation, _extends({}, location, {\n key: prevLocation.key\n }))) {\n method(location);\n }\n },\n to: to\n });\n });\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nvar cache$1 = {};\nvar cacheLimit$1 = 10000;\nvar cacheCount$1 = 0;\n\nfunction compilePath$1(path, options) {\n var cacheKey = \"\" + options.end + options.strict + options.sensitive;\n var pathCache = cache$1[cacheKey] || (cache$1[cacheKey] = {});\n if (pathCache[path]) return pathCache[path];\n var keys = [];\n var regexp = pathToRegexp(path, keys, options);\n var result = {\n regexp: regexp,\n keys: keys\n };\n\n if (cacheCount$1 < cacheLimit$1) {\n pathCache[path] = result;\n cacheCount$1++;\n }\n\n return result;\n}\n/**\n * Public API for matching a URL pathname to a path.\n */\n\n\nfunction matchPath(pathname, options) {\n if (options === void 0) {\n options = {};\n }\n\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = {\n path: options\n };\n }\n\n var _options = options,\n path = _options.path,\n _options$exact = _options.exact,\n exact = _options$exact === void 0 ? false : _options$exact,\n _options$strict = _options.strict,\n strict = _options$strict === void 0 ? false : _options$strict,\n _options$sensitive = _options.sensitive,\n sensitive = _options$sensitive === void 0 ? false : _options$sensitive;\n var paths = [].concat(path);\n return paths.reduce(function (matched, path) {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n var _compilePath = compilePath$1(path, {\n end: exact,\n strict: strict,\n sensitive: sensitive\n }),\n regexp = _compilePath.regexp,\n keys = _compilePath.keys;\n\n var match = regexp.exec(pathname);\n if (!match) return null;\n var url = match[0],\n values = match.slice(1);\n var isExact = pathname === url;\n if (exact && !isExact) return null;\n return {\n path: path,\n // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url,\n // the matched portion of the URL\n isExact: isExact,\n // whether or not we matched exactly\n params: keys.reduce(function (memo, key, index) {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n var value = children(props);\n process.env.NODE_ENV !== \"production\" ? warning(value !== undefined, \"You returned `undefined` from the `children` function of \" + (\", but you \") + \"should have returned a React element or `null`\") : void 0;\n return value || null;\n}\n/**\n * The public API for matching a single path and rendering.\n */\n\n\nvar Route = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Route, _React$Component);\n\n function Route() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Route.prototype;\n\n _proto.render = function render() {\n var _this = this;\n\n return React.createElement(context.Consumer, null, function (context$1) {\n !context$1 ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var location = _this.props.location || context$1.location;\n var match = _this.props.computedMatch ? _this.props.computedMatch // already computed the match for us\n : _this.props.path ? matchPath(location.pathname, _this.props) : context$1.match;\n\n var props = _extends({}, context$1, {\n location: location,\n match: match\n });\n\n var _this$props = _this.props,\n children = _this$props.children,\n component = _this$props.component,\n render = _this$props.render; // Preact uses an empty array as children by\n // default, so use null if that's the case.\n\n if (Array.isArray(children) && children.length === 0) {\n children = null;\n }\n\n return React.createElement(context.Provider, {\n value: props\n }, props.match ? children ? typeof children === \"function\" ? process.env.NODE_ENV !== \"production\" ? evalChildrenDev(children, props, _this.props.path) : children(props) : children : component ? React.createElement(component, props) : render ? render(props) : null : typeof children === \"function\" ? process.env.NODE_ENV !== \"production\" ? evalChildrenDev(children, props, _this.props.path) : children(props) : null);\n });\n };\n\n return Route;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: function component(props, propName) {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\"Invalid prop 'component' supplied to 'Route': the prop is not a valid React component\");\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.component), \"You should not use and in the same route; will be ignored\") : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.render), \"You should not use and in the same route; will be ignored\") : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.component && this.props.render), \"You should not use and in the same route; will be ignored\") : void 0;\n };\n\n Route.prototype.componentDidUpdate = function (prevProps) {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.location && !prevProps.location), ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(!this.props.location && prevProps.location), ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.') : void 0;\n };\n}\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n return _extends({}, location, {\n pathname: addLeadingSlash(basename) + location.pathname\n });\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n var base = addLeadingSlash(basename);\n if (location.pathname.indexOf(base) !== 0) return location;\n return _extends({}, location, {\n pathname: location.pathname.substr(base.length)\n });\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return function () {\n process.env.NODE_ENV !== \"production\" ? invariant(false, \"You cannot %s with \", methodName) : invariant(false);\n };\n}\n\nfunction noop() {}\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\n\n\nvar StaticRouter = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(StaticRouter, _React$Component);\n\n function StaticRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _this.handlePush = function (location) {\n return _this.navigateTo(location, \"PUSH\");\n };\n\n _this.handleReplace = function (location) {\n return _this.navigateTo(location, \"REPLACE\");\n };\n\n _this.handleListen = function () {\n return noop;\n };\n\n _this.handleBlock = function () {\n return noop;\n };\n\n return _this;\n }\n\n var _proto = StaticRouter.prototype;\n\n _proto.navigateTo = function navigateTo(location, action) {\n var _this$props = this.props,\n _this$props$basename = _this$props.basename,\n basename = _this$props$basename === void 0 ? \"\" : _this$props$basename,\n _this$props$context = _this$props.context,\n context = _this$props$context === void 0 ? {} : _this$props$context;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n };\n\n _proto.render = function render() {\n var _this$props2 = this.props,\n _this$props2$basename = _this$props2.basename,\n basename = _this$props2$basename === void 0 ? \"\" : _this$props2$basename,\n _this$props2$context = _this$props2.context,\n context = _this$props2$context === void 0 ? {} : _this$props2$context,\n _this$props2$location = _this$props2.location,\n location = _this$props2$location === void 0 ? \"/\" : _this$props2$location,\n rest = _objectWithoutPropertiesLoose(_this$props2, [\"basename\", \"context\", \"location\"]);\n\n var history = {\n createHref: function createHref(path) {\n return addLeadingSlash(basename + createURL(path));\n },\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n return React.createElement(Router, _extends({}, rest, {\n history: history,\n staticContext: context\n }));\n };\n\n return StaticRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \" ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { StaticRouter as Router }`.\") : void 0;\n };\n}\n/**\n * The public API for rendering the first that matches.\n */\n\n\nvar Switch = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Switch, _React$Component);\n\n function Switch() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Switch.prototype;\n\n _proto.render = function render() {\n var _this = this;\n\n return React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var location = _this.props.location || context.location;\n var element, match; // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n\n React.Children.forEach(_this.props.children, function (child) {\n if (match == null && React.isValidElement(child)) {\n element = child;\n var path = child.props.path || child.props.from;\n match = path ? matchPath(location.pathname, _extends({}, child.props, {\n path: path\n })) : context.match;\n }\n });\n return match ? React.cloneElement(element, {\n location: location,\n computedMatch: match\n }) : null;\n });\n };\n\n return Switch;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function (prevProps) {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.location && !prevProps.location), ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(!this.props.location && prevProps.location), ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.') : void 0;\n };\n}\n/**\n * A public higher-order component to access the imperative API\n */\n\n\nfunction withRouter(Component) {\n var displayName = \"withRouter(\" + (Component.displayName || Component.name) + \")\";\n\n var C = function C(props) {\n var wrappedComponentRef = props.wrappedComponentRef,\n remainingProps = _objectWithoutPropertiesLoose(props, [\"wrappedComponentRef\"]);\n\n return React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use <\" + displayName + \" /> outside a \") : invariant(false) : void 0;\n return 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 };","/**\n * Taken, CommonJS-ified, and heavily modified from:\n * https://github.com/flyingsparx/NodeDirectUploader\n */\nS3Upload.prototype.server = '';\nS3Upload.prototype.signingUrl = '/sign-s3';\nS3Upload.prototype.signingUrlMethod = 'GET';\nS3Upload.prototype.successResponses = [200, 201];\nS3Upload.prototype.fileElement = null;\nS3Upload.prototype.files = null;\n\nS3Upload.prototype.onFinishS3Put = function (signResult, file) {\n return console.log('base.onFinishS3Put()', signResult.publicUrl);\n};\n\nS3Upload.prototype.preprocess = function (file, next) {\n console.log('base.preprocess()', file);\n return next(file);\n};\n\nS3Upload.prototype.onProgress = function (percent, status, file) {\n return console.log('base.onProgress()', percent, status);\n};\n\nS3Upload.prototype.onError = function (status, file) {\n return console.log('base.onError()', status);\n};\n\nS3Upload.prototype.onSignedUrl = function (result) {};\n\nS3Upload.prototype.scrubFilename = function (filename) {\n return filename.replace(/[^\\w\\d_\\-\\.]+/ig, '');\n};\n\nfunction S3Upload(options) {\n if (options == null) {\n options = {};\n }\n\n for (var option in options) {\n if (options.hasOwnProperty(option)) {\n this[option] = options[option];\n }\n }\n\n var files = this.fileElement ? this.fileElement.files : this.files || [];\n this.handleFileSelect(files);\n}\n\nS3Upload.prototype.handleFileSelect = function (files) {\n var result = [];\n\n for (var i = 0; i < files.length; i++) {\n var file = files[i];\n this.preprocess(file, function (processedFile) {\n this.onProgress(0, 'Waiting', processedFile);\n result.push(this.uploadFile(processedFile));\n return result;\n }.bind(this));\n }\n};\n\nS3Upload.prototype.createCORSRequest = function (method, url, opts) {\n var opts = opts || {};\n var xhr = new XMLHttpRequest();\n\n if (xhr.withCredentials != null) {\n xhr.open(method, url, true);\n\n if (opts.withCredentials != null) {\n xhr.withCredentials = opts.withCredentials;\n }\n } else if (typeof XDomainRequest !== \"undefined\") {\n xhr = new XDomainRequest();\n xhr.open(method, url);\n } else {\n xhr = null;\n }\n\n return xhr;\n};\n\nS3Upload.prototype._getErrorRequestContext = function (xhr) {\n return {\n response: xhr.responseText,\n status: xhr.status,\n statusText: xhr.statusText,\n readyState: xhr.readyState\n };\n};\n\nS3Upload.prototype.executeOnSignedUrl = function (file, callback) {\n var fileName = this.scrubFilename(file.name);\n var queryString = '?objectName=' + fileName + '&contentType=' + encodeURIComponent(file.type);\n\n if (this.s3path) {\n queryString += '&path=' + encodeURIComponent(this.s3path);\n }\n\n if (this.signingUrlQueryParams) {\n var signingUrlQueryParams = typeof this.signingUrlQueryParams === 'function' ? this.signingUrlQueryParams() : this.signingUrlQueryParams;\n Object.keys(signingUrlQueryParams).forEach(function (key) {\n var val = signingUrlQueryParams[key];\n queryString += '&' + key + '=' + val;\n });\n }\n\n var xhr = this.createCORSRequest(this.signingUrlMethod, this.server + this.signingUrl + queryString, {\n withCredentials: this.signingUrlWithCredentials\n });\n\n if (this.signingUrlHeaders) {\n var signingUrlHeaders = typeof this.signingUrlHeaders === 'function' ? this.signingUrlHeaders() : this.signingUrlHeaders;\n Object.keys(signingUrlHeaders).forEach(function (key) {\n var val = signingUrlHeaders[key];\n xhr.setRequestHeader(key, val);\n });\n }\n\n xhr.overrideMimeType && xhr.overrideMimeType('text/plain; charset=x-user-defined');\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4 && this.successResponses.indexOf(xhr.status) >= 0) {\n var result;\n\n try {\n result = JSON.parse(xhr.responseText);\n this.onSignedUrl(result);\n } catch (error) {\n this.onError('Invalid response from server', file, this._getErrorRequestContext(xhr));\n return false;\n }\n\n return callback(result);\n } else if (xhr.readyState === 4 && this.successResponses.indexOf(xhr.status) < 0) {\n return this.onError('Could not contact request signing server. Status = ' + xhr.status, file, this._getErrorRequestContext(xhr));\n }\n }.bind(this);\n\n return xhr.send();\n};\n\nS3Upload.prototype.uploadToS3 = function (file, signResult) {\n var xhr = this.createCORSRequest('PUT', signResult.signedUrl);\n\n if (!xhr) {\n this.onError('CORS not supported', file, {});\n } else {\n xhr.onload = function () {\n if (this.successResponses.indexOf(xhr.status) >= 0) {\n this.onProgress(100, 'Upload completed', file);\n return this.onFinishS3Put(signResult, file);\n } else {\n return this.onError('Upload error: ' + xhr.status, file, this._getErrorRequestContext(xhr));\n }\n }.bind(this);\n\n xhr.onerror = function () {\n return this.onError('XHR error', file, this._getErrorRequestContext(xhr));\n }.bind(this);\n\n xhr.upload.onprogress = function (e) {\n var percentLoaded;\n\n if (e.lengthComputable) {\n percentLoaded = Math.round(e.loaded / e.total * 100);\n return this.onProgress(percentLoaded, percentLoaded === 100 ? 'Finalizing' : 'Uploading', file);\n }\n }.bind(this);\n }\n\n xhr.setRequestHeader('Content-Type', file.type);\n\n if (this.contentDisposition) {\n var disposition = this.contentDisposition;\n\n if (disposition === 'auto') {\n if (file.type.substr(0, 6) === 'image/') {\n disposition = 'inline';\n } else {\n disposition = 'attachment';\n }\n }\n\n var fileName = this.scrubFilename(file.name);\n xhr.setRequestHeader('Content-Disposition', disposition + '; filename=\"' + fileName + '\"');\n }\n\n if (signResult.headers) {\n var signResultHeaders = signResult.headers;\n Object.keys(signResultHeaders).forEach(function (key) {\n var val = signResultHeaders[key];\n xhr.setRequestHeader(key, val);\n });\n }\n\n if (this.uploadRequestHeaders) {\n var uploadRequestHeaders = this.uploadRequestHeaders;\n Object.keys(uploadRequestHeaders).forEach(function (key) {\n var val = uploadRequestHeaders[key];\n xhr.setRequestHeader(key, val);\n });\n } else {\n xhr.setRequestHeader('x-amz-acl', 'public-read');\n }\n\n this.httprequest = xhr;\n return xhr.send(file);\n};\n\nS3Upload.prototype.uploadFile = function (file) {\n var uploadToS3Callback = this.uploadToS3.bind(this, file);\n if (this.getSignedUrl) return this.getSignedUrl(file, uploadToS3Callback);\n return this.executeOnSignedUrl(file, uploadToS3Callback);\n};\n\nS3Upload.prototype.abortUpload = function () {\n this.httprequest && this.httprequest.abort();\n};\n\nmodule.exports = S3Upload;","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;","var _typeof = require(\"/app/scripts/smweb-scripts/node_modules/@babel/runtime/helpers/typeof\");\n\n//\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (_typeof(objA) !== \"object\" || !objA || _typeof(objB) !== \"object\" || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB); // Test for A's keys different from B.\n\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || ret === void 0 && valueA !== valueB) {\n return false;\n }\n }\n\n return true;\n};","var camel2hyphen = function camel2hyphen(str) {\n return str.replace(/[A-Z]/g, function (match) {\n return '-' + match.toLowerCase();\n }).toLowerCase();\n};\n\nmodule.exports = camel2hyphen;","/* global window */\nimport ponyfill from './ponyfill.js';\nvar root;\n\nif (typeof self !== 'undefined') {\n root = self;\n} else if (typeof window !== 'undefined') {\n root = window;\n} else if (typeof global !== 'undefined') {\n root = global;\n} else if (typeof module !== 'undefined') {\n root = module;\n} else {\n root = Function('return this')();\n}\n\nvar result = ponyfill(root);\nexport default result;","export default function symbolObservablePonyfill(root) {\n var result;\n var _Symbol = root.Symbol;\n\n if (typeof _Symbol === 'function') {\n if (_Symbol.observable) {\n result = _Symbol.observable;\n } else {\n result = _Symbol('observable');\n _Symbol.observable = result;\n }\n } else {\n result = '@@observable';\n }\n\n return result;\n}\n;","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 throw new Error(prefix + \": \" + (message || ''));\n}\n\nexport default invariant;","import _typeof from \"/app/scripts/smweb-scripts/node_modules/@babel/runtime/helpers/typeof\";\nimport { __extends } from 'tslib';\nvar genericMessage = \"Invariant Violation\";\nvar _a = Object.setPrototypeOf,\n setPrototypeOf = _a === void 0 ? function (obj, proto) {\n obj.__proto__ = proto;\n return obj;\n} : _a;\n\nvar InvariantError =\n/** @class */\nfunction (_super) {\n __extends(InvariantError, _super);\n\n function InvariantError(message) {\n if (message === void 0) {\n message = genericMessage;\n }\n\n var _this = _super.call(this, typeof message === \"number\" ? genericMessage + \": \" + message + \" (see https://github.com/apollographql/invariant-packages)\" : message) || this;\n\n _this.framesToPop = 1;\n _this.name = genericMessage;\n setPrototypeOf(_this, InvariantError.prototype);\n return _this;\n }\n\n return InvariantError;\n}(Error);\n\nfunction invariant(condition, message) {\n if (!condition) {\n throw new InvariantError(message);\n }\n}\n\nfunction wrapConsoleMethod(method) {\n return function () {\n return console[method].apply(console, arguments);\n };\n}\n\n(function (invariant) {\n invariant.warn = wrapConsoleMethod(\"warn\");\n invariant.error = wrapConsoleMethod(\"error\");\n})(invariant || (invariant = {})); // Code that uses ts-invariant with rollup-plugin-invariant may want to\n// import this process stub to avoid errors evaluating process.env.NODE_ENV.\n// However, because most ESM-to-CJS compilers will rewrite the process import\n// as tsInvariant.process, which prevents proper replacement by minifiers, we\n// also attempt to define the stub globally when it is not already defined.\n\n\nvar processStub = {\n env: {}\n};\n\nif ((typeof process === \"undefined\" ? \"undefined\" : _typeof(process)) === \"object\") {\n processStub = process;\n} else try {\n // Using Function to evaluate this assignment in global scope also escapes\n // the strict mode of the current module, thereby allowing the assignment.\n // Inspired by https://github.com/facebook/regenerator/pull/369.\n Function(\"stub\", \"process = stub\")(processStub);\n} catch (atLeastWeTried) {// The assignment can fail if a Content Security Policy heavy-handedly\n // forbids Function usage. In those environments, developers should take\n // extra care to replace process.env.NODE_ENV in their production builds,\n // or define an appropriate global.process polyfill.\n}\n\nvar invariant$1 = invariant;\nexport default invariant$1;\nexport { InvariantError, invariant, processStub as process };","import _typeof from \"/app/scripts/smweb-scripts/node_modules/@babel/runtime/helpers/typeof\";\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;","import zenObservable from 'zen-observable';\nvar Observable = zenObservable;\nexport default Observable;\nexport { Observable };","module.exports = require('./lib/Observable.js').Observable;","\"use strict\";\n\nvar _typeof = require(\"/app/scripts/smweb-scripts/node_modules/@babel/runtime/helpers/typeof\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Observable = void 0;\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 _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\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n} // === Symbol Support ===\n\n\nvar hasSymbols = function hasSymbols() {\n return typeof Symbol === 'function';\n};\n\nvar hasSymbol = function hasSymbol(name) {\n return hasSymbols() && Boolean(Symbol[name]);\n};\n\nvar getSymbol = function getSymbol(name) {\n return hasSymbol(name) ? Symbol[name] : '@@' + name;\n};\n\nif (hasSymbols() && !hasSymbol('observable')) {\n Symbol.observable = Symbol('observable');\n}\n\nvar SymbolIterator = getSymbol('iterator');\nvar SymbolObservable = getSymbol('observable');\nvar SymbolSpecies = getSymbol('species'); // === Abstract Operations ===\n\nfunction getMethod(obj, key) {\n var value = obj[key];\n if (value == null) return undefined;\n if (typeof value !== 'function') throw new TypeError(value + ' is not a function');\n return value;\n}\n\nfunction getSpecies(obj) {\n var ctor = obj.constructor;\n\n if (ctor !== undefined) {\n ctor = ctor[SymbolSpecies];\n\n if (ctor === null) {\n ctor = undefined;\n }\n }\n\n return ctor !== undefined ? ctor : Observable;\n}\n\nfunction isObservable(x) {\n return x instanceof Observable; // SPEC: Brand check\n}\n\nfunction hostReportError(e) {\n if (hostReportError.log) {\n hostReportError.log(e);\n } else {\n setTimeout(function () {\n throw e;\n });\n }\n}\n\nfunction enqueue(fn) {\n Promise.resolve().then(function () {\n try {\n fn();\n } catch (e) {\n hostReportError(e);\n }\n });\n}\n\nfunction cleanupSubscription(subscription) {\n var cleanup = subscription._cleanup;\n if (cleanup === undefined) return;\n subscription._cleanup = undefined;\n\n if (!cleanup) {\n return;\n }\n\n try {\n if (typeof cleanup === 'function') {\n cleanup();\n } else {\n var unsubscribe = getMethod(cleanup, 'unsubscribe');\n\n if (unsubscribe) {\n unsubscribe.call(cleanup);\n }\n }\n } catch (e) {\n hostReportError(e);\n }\n}\n\nfunction closeSubscription(subscription) {\n subscription._observer = undefined;\n subscription._queue = undefined;\n subscription._state = 'closed';\n}\n\nfunction flushSubscription(subscription) {\n var queue = subscription._queue;\n\n if (!queue) {\n return;\n }\n\n subscription._queue = undefined;\n subscription._state = 'ready';\n\n for (var i = 0; i < queue.length; ++i) {\n notifySubscription(subscription, queue[i].type, queue[i].value);\n if (subscription._state === 'closed') break;\n }\n}\n\nfunction notifySubscription(subscription, type, value) {\n subscription._state = 'running';\n var observer = subscription._observer;\n\n try {\n var m = getMethod(observer, type);\n\n switch (type) {\n case 'next':\n if (m) m.call(observer, value);\n break;\n\n case 'error':\n closeSubscription(subscription);\n if (m) m.call(observer, value);else throw value;\n break;\n\n case 'complete':\n closeSubscription(subscription);\n if (m) m.call(observer);\n break;\n }\n } catch (e) {\n hostReportError(e);\n }\n\n if (subscription._state === 'closed') cleanupSubscription(subscription);else if (subscription._state === 'running') subscription._state = 'ready';\n}\n\nfunction onNotify(subscription, type, value) {\n if (subscription._state === 'closed') return;\n\n if (subscription._state === 'buffering') {\n subscription._queue.push({\n type: type,\n value: value\n });\n\n return;\n }\n\n if (subscription._state !== 'ready') {\n subscription._state = 'buffering';\n subscription._queue = [{\n type: type,\n value: value\n }];\n enqueue(function () {\n return flushSubscription(subscription);\n });\n return;\n }\n\n notifySubscription(subscription, type, value);\n}\n\nvar Subscription = /*#__PURE__*/function () {\n function Subscription(observer, subscriber) {\n _classCallCheck(this, Subscription); // ASSERT: observer is an object\n // ASSERT: subscriber is callable\n\n\n this._cleanup = undefined;\n this._observer = observer;\n this._queue = undefined;\n this._state = 'initializing';\n var subscriptionObserver = new SubscriptionObserver(this);\n\n try {\n this._cleanup = subscriber.call(undefined, subscriptionObserver);\n } catch (e) {\n subscriptionObserver.error(e);\n }\n\n if (this._state === 'initializing') this._state = 'ready';\n }\n\n _createClass(Subscription, [{\n key: \"unsubscribe\",\n value: function unsubscribe() {\n if (this._state !== 'closed') {\n closeSubscription(this);\n cleanupSubscription(this);\n }\n }\n }, {\n key: \"closed\",\n get: function get() {\n return this._state === 'closed';\n }\n }]);\n\n return Subscription;\n}();\n\nvar SubscriptionObserver = /*#__PURE__*/function () {\n function SubscriptionObserver(subscription) {\n _classCallCheck(this, SubscriptionObserver);\n\n this._subscription = subscription;\n }\n\n _createClass(SubscriptionObserver, [{\n key: \"next\",\n value: function next(value) {\n onNotify(this._subscription, 'next', value);\n }\n }, {\n key: \"error\",\n value: function error(value) {\n onNotify(this._subscription, 'error', value);\n }\n }, {\n key: \"complete\",\n value: function complete() {\n onNotify(this._subscription, 'complete');\n }\n }, {\n key: \"closed\",\n get: function get() {\n return this._subscription._state === 'closed';\n }\n }]);\n\n return SubscriptionObserver;\n}();\n\nvar Observable = /*#__PURE__*/function () {\n function Observable(subscriber) {\n _classCallCheck(this, Observable);\n\n if (!(this instanceof Observable)) throw new TypeError('Observable cannot be called as a function');\n if (typeof subscriber !== 'function') throw new TypeError('Observable initializer must be a function');\n this._subscriber = subscriber;\n }\n\n _createClass(Observable, [{\n key: \"subscribe\",\n value: function subscribe(observer) {\n if (_typeof(observer) !== 'object' || observer === null) {\n observer = {\n next: observer,\n error: arguments[1],\n complete: arguments[2]\n };\n }\n\n return new Subscription(observer, this._subscriber);\n }\n }, {\n key: \"forEach\",\n value: function forEach(fn) {\n var _this = this;\n\n return new Promise(function (resolve, reject) {\n if (typeof fn !== 'function') {\n reject(new TypeError(fn + ' is not a function'));\n return;\n }\n\n function done() {\n subscription.unsubscribe();\n resolve();\n }\n\n var subscription = _this.subscribe({\n next: function next(value) {\n try {\n fn(value, done);\n } catch (e) {\n reject(e);\n subscription.unsubscribe();\n }\n },\n error: reject,\n complete: resolve\n });\n });\n }\n }, {\n key: \"map\",\n value: function map(fn) {\n var _this2 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n return new C(function (observer) {\n return _this2.subscribe({\n next: function next(value) {\n try {\n value = fn(value);\n } catch (e) {\n return observer.error(e);\n }\n\n observer.next(value);\n },\n error: function error(e) {\n observer.error(e);\n },\n complete: function complete() {\n observer.complete();\n }\n });\n });\n }\n }, {\n key: \"filter\",\n value: function filter(fn) {\n var _this3 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n return new C(function (observer) {\n return _this3.subscribe({\n next: function next(value) {\n try {\n if (!fn(value)) return;\n } catch (e) {\n return observer.error(e);\n }\n\n observer.next(value);\n },\n error: function error(e) {\n observer.error(e);\n },\n complete: function complete() {\n observer.complete();\n }\n });\n });\n }\n }, {\n key: \"reduce\",\n value: function reduce(fn) {\n var _this4 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n var hasSeed = arguments.length > 1;\n var hasValue = false;\n var seed = arguments[1];\n var acc = seed;\n return new C(function (observer) {\n return _this4.subscribe({\n next: function next(value) {\n var first = !hasValue;\n hasValue = true;\n\n if (!first || hasSeed) {\n try {\n acc = fn(acc, value);\n } catch (e) {\n return observer.error(e);\n }\n } else {\n acc = value;\n }\n },\n error: function error(e) {\n observer.error(e);\n },\n complete: function complete() {\n if (!hasValue && !hasSeed) return observer.error(new TypeError('Cannot reduce an empty sequence'));\n observer.next(acc);\n observer.complete();\n }\n });\n });\n }\n }, {\n key: \"concat\",\n value: function concat() {\n var _this5 = this;\n\n for (var _len = arguments.length, sources = new Array(_len), _key = 0; _key < _len; _key++) {\n sources[_key] = arguments[_key];\n }\n\n var C = getSpecies(this);\n return new C(function (observer) {\n var subscription;\n var index = 0;\n\n function startNext(next) {\n subscription = next.subscribe({\n next: function next(v) {\n observer.next(v);\n },\n error: function error(e) {\n observer.error(e);\n },\n complete: function complete() {\n if (index === sources.length) {\n subscription = undefined;\n observer.complete();\n } else {\n startNext(C.from(sources[index++]));\n }\n }\n });\n }\n\n startNext(_this5);\n return function () {\n if (subscription) {\n subscription.unsubscribe();\n subscription = undefined;\n }\n };\n });\n }\n }, {\n key: \"flatMap\",\n value: function flatMap(fn) {\n var _this6 = this;\n\n if (typeof fn !== 'function') throw new TypeError(fn + ' is not a function');\n var C = getSpecies(this);\n return new C(function (observer) {\n var subscriptions = [];\n\n var outer = _this6.subscribe({\n next: function next(value) {\n if (fn) {\n try {\n value = fn(value);\n } catch (e) {\n return observer.error(e);\n }\n }\n\n var inner = C.from(value).subscribe({\n next: function next(value) {\n observer.next(value);\n },\n error: function error(e) {\n observer.error(e);\n },\n complete: function complete() {\n var i = subscriptions.indexOf(inner);\n if (i >= 0) subscriptions.splice(i, 1);\n completeIfDone();\n }\n });\n subscriptions.push(inner);\n },\n error: function error(e) {\n observer.error(e);\n },\n complete: function complete() {\n completeIfDone();\n }\n });\n\n function completeIfDone() {\n if (outer.closed && subscriptions.length === 0) observer.complete();\n }\n\n return function () {\n subscriptions.forEach(function (s) {\n return s.unsubscribe();\n });\n outer.unsubscribe();\n };\n });\n }\n }, {\n key: SymbolObservable,\n value: function value() {\n return this;\n }\n }], [{\n key: \"from\",\n value: function from(x) {\n var C = typeof this === 'function' ? this : Observable;\n if (x == null) throw new TypeError(x + ' is not an object');\n var method = getMethod(x, SymbolObservable);\n\n if (method) {\n var observable = method.call(x);\n if (Object(observable) !== observable) throw new TypeError(observable + ' is not an object');\n if (isObservable(observable) && observable.constructor === C) return observable;\n return new C(function (observer) {\n return observable.subscribe(observer);\n });\n }\n\n if (hasSymbol('iterator')) {\n method = getMethod(x, SymbolIterator);\n\n if (method) {\n return new C(function (observer) {\n enqueue(function () {\n if (observer.closed) return;\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = method.call(x)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var _item = _step.value;\n observer.next(_item);\n if (observer.closed) return;\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator[\"return\"] != null) {\n _iterator[\"return\"]();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n observer.complete();\n });\n });\n }\n }\n\n if (Array.isArray(x)) {\n return new C(function (observer) {\n enqueue(function () {\n if (observer.closed) return;\n\n for (var i = 0; i < x.length; ++i) {\n observer.next(x[i]);\n if (observer.closed) return;\n }\n\n observer.complete();\n });\n });\n }\n\n throw new TypeError(x + ' is not observable');\n }\n }, {\n key: \"of\",\n value: function of() {\n for (var _len2 = arguments.length, items = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n items[_key2] = arguments[_key2];\n }\n\n var C = typeof this === 'function' ? this : Observable;\n return new C(function (observer) {\n enqueue(function () {\n if (observer.closed) return;\n\n for (var i = 0; i < items.length; ++i) {\n observer.next(items[i]);\n if (observer.closed) return;\n }\n\n observer.complete();\n });\n });\n }\n }, {\n key: SymbolSpecies,\n get: function get() {\n return this;\n }\n }]);\n\n return Observable;\n}();\n\nexports.Observable = Observable;\n\nif (hasSymbols()) {\n Object.defineProperty(Observable, Symbol('extensions'), {\n value: {\n symbol: SymbolObservable,\n hostReportError: hostReportError\n },\n configurable: true\n });\n}"],"names":["_a","Object","prototype","toString","hasOwnProperty","previousComparisons","Map","equal","a","b","check","clear","aTag","call","length","previouslyCompared","aKeys","keys","bKeys","keyCount","k","key","name","message","size","aIterator","entries","isMap","info","next","done","value","aKey","aValue","has","get","bSet","set","Set","add","Promise","allSettled","promises","all","map","p","then","v","status","e","reason","queryFromPojo","obj","kind","definitions","operation","selectionSet","selectionSetFromObj","Array","isArray","selections","forEach","field","undefined","push","Cache","justTypenameQuery","variableDefinitions","directives","alias","arguments","ApolloCache","transformDocument","document","transformForLink","readQuery","options","optimistic","this","read","query","variables","readFragment","fragment","fragmentName","rootId","id","writeQuery","write","dataId","result","data","writeFragment","writeData","typename","typenameResult","__typename","dataToWrite","assign","typeCondition","currentContext","MISSING_VALUE","idCounter","globalKey","host","Slot","makeSlotClass","Date","now","Math","random","slice","join","hasValue","context_1","parent","slots","getValue","withValue","callback","args","thisArg","__proto__","apply","bind","context","saved","noContext","defineProperty","enumerable","writable","configurable","defaultDispose","max","dispose","Infinity","newest","oldest","entry","getEntry","older","newer","clean","parentEntrySlot","reusableEmptyArray","emptySetPool","assert","condition","optionalMessage","Error","valueGet","Entry","fn","parents","childValues","dirtyChildren","dirty","recomputing","count","recompute","rememberParent","child","mightBeDirty","reportDirtyChild","reportCleanChild","maybeReportOrphan","reallyRecompute","originalChildren","forgetChildren","recomputeNewValue","maybeSubscribe","subscribe","maybeUnsubscribe","unsubscribe","setDirty","setClean","reportClean","reportDirty","_this","forgetChild","pop","childValue","valueCopy","valueIs","len","removeDirtyChild","dc","reportOrphan","children","_value","KeyTrie","weakness","lookup","array","_i","lookupArray","node","getChildTrie","create","isObjRef","weak","WeakMap","strong","keyTrie","defaultMakeCacheKey","caches","wrap","originalFunction","cache","pow","disposable","makeCacheKey","haveWarned","shouldWarn","answer","HeuristicFragmentMatcher","ensureReady","resolve","canBypassInit","match","idValue","store","isRootQuery","IntrospectionFragmentMatcher","introspectionQueryResultData","possibleTypesMap","parseIntrospectionResult","isReady","implementingTypes","indexOf","introspectionResultData","typeMap","__schema","types","type","possibleTypes","implementingType","hasOwn","DepTrackingCache","depend","toObject","replace","newData","defaultNormalizedCacheFactory","seed","StoreReader","_b","_c","cacheKeyRoot","_d","freezeResults","_e","executeStoreQuery","executeSelectionSet","executeSubSelectedArray","rootValue","contextValue","variableValues","fragmentMatcher","JSON","stringify","execContext","readQueryFromStore","diffQueryAgainstStore","returnPartialData","previousResult","fragmentMatcherFunction","config","queryDefinition","dataIdFromObject","cacheRedirects","execResult","generated","hasMissingFields","missing","tolerable","complete","defaultFragmentMatcher","mainDefinition","fragments","fragmentMap","finalResult","objectsToMerge","object","handleMissing","selection","fieldResult","executeField","fragmentExecResult","readStoreResult","readStoreResolver","fieldName","resultKey","storeKeyName","fieldValue","resolver","getCacheKey","storeObj","json","combineExecResults","assertSelectionSetForIdValue","execResults","childResult","item","assertIdValue","ObjectCache","defaultNormalizedCacheFactory$1","WriteError","_super","enhanceErrorWithDocument","error","enhancedError","stack","StoreWriter","writeQueryToStore","writeResultToStore","operationDefinition","writeSelectionSetToStore","processedData","resultFieldKey","writeFieldToStore","isDefered","isClient","some","directive","matches","fakeContext","storeValue","storeObject","storeFieldName","generatedId","processArrayValue","valueDataId","isGeneratedId","semanticId","isDataProcessed","escapedId","hadTypename","hasTypename","typenameChanged","mergeWithGenerated","index","itemDataId","generatedKey","realKey","real","madeChanges","realValue","newRealValue","defaultConfig","defaultDataIdFromObject","addTypename","resultCaching","_id","hasOwn$1","OptimisticCacheLayer","optimisticId","transaction","InMemoryCache","watches","typenameDocumentCache","silenceBroadcast","customResolvers","cacheResolvers","optimisticData","storeWriter","storeReader","maybeBroadcastWatch","c","restore","extract","broadcastWatches","diff","watch","evict","reset","removeOptimistic","idToRemove","toReapply","removedCount","layer","layer_1","performTransaction","recordOptimisticTransaction","NetworkStatus","isNetworkRequestInFlight","networkStatus","Observable","isNonEmptyArray","isApolloError","err","FetchType","ApolloError","graphQLErrors","networkError","errorMessage","extraInfo","generateErrorMessage","graphQLError","ObservableQuery","queryManager","shouldSubscribe","observer","onSubscribe","observers","subscriptions","isTornDown","queryId","generateQueryId","opDef","queryName","reject","removeQuery","setTimeout","subscription","currentResult","getCurrentResult","lastResult","lastError","loading","getCurrentQueryResult","partial","queryStoreValue","queryStore","fetchPolicy","isNetworkFetchPolicy","hasError","policy","errorPolicy","errors","ready","updateLastResult","stale","isDifferentFromLastResult","newResult","snapshot","lastResultSnapshot","getLastResult","getLastError","resetLastResults","resetQueryStoreErrors","refetch","fetchQuery","fetchMore","fetchMoreOptions","updateQuery","combinedOptions","qid","normal","fetchMoreResult","stopQuery","subscribeToMore","startGraphQLSubscription","subscriptionData","previous","onError","setOptions","opts","oldFetchPolicy","pollInterval","startPolling","stopPolling","setVariables","fetchResults","tryFetch","mapFn","getQueryWithPreviousResult","dataStore","markUpdateQueryResult","broadcastQueries","stopPollingQuery","assertNotCacheFirstOrOnly","startPollingQuery","assumeImmutableResults","subObserver","_subscription","_observer","defaultSubscriptionObserverErrorCallback","first","setUpQuery","tearDownQuery","addObservableQuery","iterateObserversSafely","observeQuery","previousResult_1","query_1","fetchPolicy_1","transform","hasClientExports","getLocalState","addExportedVariables","previousVariables","serverQuery","sub","removeObservableQuery","method","argument","observersWithMethod","obs","obsQuery","MutationStore","getStore","mutationId","initMutation","mutation","markMutationError","markMutationResult","QueryStore","initQuery","previousQuery","isSetVariables","storePreviousVariables","isPoll","poll","isRefetch","metadata","fetchMoreForQueryId","markQueryResult","markQueryError","markQueryResultClient","observableQueryIds","LocalState","client","resolvers","addResolvers","setFragmentMatcher","resolverGroup","setResolvers","getResolvers","runResolvers","remoteResult","onlyRunForcedResolvers","resolveDocument","localResult","getFragmentMatcher","clientQuery","prepareContext","buildRootValueFromCache","exportedVariables","shouldForceResolvers","forceResolvers","visit","Directive","enter","arg","BREAK","definitionOperation","defaultOperationType","capitalizeFirstLetter","str","charAt","toUpperCase","resolveSelectionSet","resultsToMerge","execute","resolveField","fragmentResult","aliasedFieldName","aliasUsed","defaultResult","resultPromise","resolverType","resolverMap","resolveSubSelectedArray","multiplex","inner","_error","QueryManager","link","queryDeduplication","onBroadcast","ssrMode","clientAwareness","localState","mutationStore","queries","fetchQueryRejectFns","transformCache","inFlightLinkObservables","pollingInfoByQueryId","getCache","stop","_info","stopQueryNoBroadcast","mutate","optimisticResponse","updateQueriesByName","updateQueries","refetchQueries","awaitRefetchQueries","updateWithProxyFn","update","generateUpdateQueriesInfo","self","_f","label","setQuery","getVariables","sent","ret","observableQuery","updater","markMutationInit","storeResult","getObservableFromLink","markMutationComplete","refetchQueryPromises","refetchQuery","queryOptions","fetchType","isNetworkOnly","needToFetch","shouldFetch","requestId","cancel","networkResult","updateQueryWatch","lastRequestId","invalidated","invalidate","fetchRequest","getQuery","hasForcedResolvers","queryListenerForObserver","invoke","networkStatusChanged","shouldNotifyIfLoading","notifyOnNetworkStatusChange","hasGraphQLErrors","isMissing","errorStatusChanged","diffResult","resultFromStore","transformed","forLink","cacheEntry_1","defaultVars","doc","watchQuery","transformedOptions","watchedQuery","String","stopQueryInStore","stopQueryInStoreNoBroadcast","addQueryListener","listener","listeners","clearStore","resetIds","resetStore","reFetchObservableQueries","includeStandby","observableQueryPromises","startQuery","makeObservable","markSubscriptionResult","observablePromise_1","observable","x","queryIdOrObservable","foundObserveableQuery","deduplication","inFlightLinkObservables_1","operationName","forceFetch","byVariables_1","varJson_1","cleanup","cleanupSub_1","of","asyncMap","_next","_error2","_complete","activeNextCount","completed","handler","errorsFromStore","fqrfId","result_1","_error3","prev","newInfo","newContext","checkInFlight","interval","maybeFetch_1","poll_1","clearTimeout","timeout","DataStore","initialCache","ignoreErrors","writeWithErrors","optimistic_1","orig","cacheWrites_1","updateQueries_1","currentQueryResult","nextQueryResult","mutationResult","queryVariables","ApolloClient","defaultOptions","resetStoreCallbacks","clearStoreCallbacks","ssrForceFetchDelay","connectToDevTools","typeDefs","clientAwarenessName","clientAwarenessVersion","version","ApolloLink","disableNetworkFetches","window","__APOLLO_CLIENT__","devToolsHookCb","action","state","mutations","dataWithOptimisticResults","__actionHookForDevTools","cb","__requestRaw","payload","initQueryManager","onResetStore","filter","onClearStore","serializedState","setLocalStateFragmentMatcher","fallbackHttpConfig","http","includeQuery","includeExtensions","headers","accept","throwServerError","response","statusCode","selectURI","fallbackURI","contextURI","getContext","uri","OperationBatcher","batchInterval","batchMax","batchHandler","batchKey","queuedRequests","enqueueRequest","request","requestCopy","queued","scheduleQueueConsumption","consumeQueue","requestKey","requests","queuedRequest","forwards","forward","observables","nexts","completes","batchableRequest","batchedObservable","rejecters","results","BatchLink","fetchParams","batcher","BatchHttpLink","fetcher","fetch","requestOptions","checkFetcher","linkConfig","fetchOptions","credentials","contextConfig","operations","chosenURI","clientAwarenessHeaders","name_1","controller","optsAndBody","selectHttpOptionsAndBody","fallbackConfig","configs","extensions","body","loadedBody","fromError","serializeFetchParameter","serialized","parseError","signal","createSignalIfSupported","AbortController","_controller","setContext","parseAndCheckHttpResponse","text","bodyText","parse","op","abort","valueToObjectRepresentation","argObj","isIntValue","isFloatValue","Number","isBooleanValue","isStringValue","isObjectValue","nestedArgObj_1","fields","isVariable","variableValue","isListValue","values","listValue","nestedArgArrayObj","isEnumValue","isNullValue","storeKeyNameFromField","directivesObj","getStoreKeyName","KNOWN_DIRECTIVES","filterKeys","sort","queryArgs_1","filteredArgs_1","completeFieldName","stringifiedArgs","argumentsObjectFromField","argObj_1","resultKeyNameFromField","isField","isInlineFragment","isIdValue","idObject","toIdValue","idConfig","isJsonValue","jsonObject","getDirectiveInfoFromField","directiveObj_1","shouldInclude","getInclusionDirectives","isInclusionDirective","directiveArguments","ifArgument","ifValue","every","evaledValue","hasDirectives","names","getDirectiveNames","getFragmentQueryDocument","actualFragmentName","definition","target","sources","source","checkDocument","d","getOperationDefinition","getOperationName","getFragmentDefinitions","getQueryDefinition","queryDef","getMainDefinition","queryDoc","fragmentDefinition","createFragmentMap","symTable","getDefaultValues","defaultValues","defaultValue","variable","defaultValueObj","filterInPlace","test","elem","i","TYPENAME_FIELD","isEmpty","nullIfDocIsEmpty","getFragmentDefinition","fragmentDef","getDirectiveMatcher","directiveMatcher","dir","removeDirectivesFromDocument","variablesInUse","variablesToRemove","fragmentSpreadsInUse","fragmentSpreadsToRemove","modifiedDoc","Variable","_key","Field","remove","getAllFragmentSpreadsFromSelectionSet","frag","FragmentSpread","removeArgumentsFromDocument","argMatcher","getArgumentMatcher","argumentMatcher","aConfig","OperationDefinition","varDef","argConfig","argMatchCount_1","Argument","fs","removeFragmentSpreadFromDocument","def","FragmentDefinition","addTypenameToDocument","SelectionSet","lastIndexOf","connectionRemoveConfig","willRemove","removeConnectionDirectiveFromDocument","allFragments","buildQueryFromSelectionSet","removeClientSetsFromDocument","canUseWeakMap","navigator","product","cloneDeep","cloneDeepHelper","val","seen","copy_1","copy_2","getPrototypeOf","isEnv","env","getEnv","process","isProduction","isTest","tryFunctionOrLogError","f","console","graphQLResultHasError","deepFreeze","o","freeze","getOwnPropertyNames","prop","isFrozen","maybeDeepFreeze","isDevelopment","Symbol","mergeDeep","mergeDeepArray","pastCopies","shallowCopyForMerge","mergeHelper","isObject","isExtensible","sourceKey","sourceValue","targetValue","t","r","n","exports","l","m","toStringTag","_typeof","__esModule","s","_","getFirstMatch","getSecondMatch","matchAndReturnConst","getWindowsVersionName","getMacOSVersionName","split","splice","parseInt","getAndroidVersionName","getVersionPrecision","compareVersions","u","reverse","min","find","concat","getBrowserAlias","BROWSER_ALIASES_MAP","getBrowserTypeByAlias","BROWSER_MAP","ENGINE_MAP","OS_MAP","PLATFORMS_MAP","Bada","BlackBerry","Chrome","Chromium","Electron","Epiphany","Firefox","Focus","Generic","Googlebot","Maxthon","Opera","PhantomJS","Puffin","QupZilla","QQ","QQLite","Safari","Sailfish","SeaMonkey","Sleipnir","Swing","Tizen","Vivaldi","WeChat","Roku","amazon_silk","android","bada","blackberry","chrome","chromium","electron","epiphany","firefox","focus","generic","googlebot","google_search","ie","k_meleon","maxthon","edge","mz","naver","opera","opera_coast","phantomjs","puffin","qupzilla","qq","qqlite","safari","sailfish","samsung_internet","seamonkey","sleipnir","swing","tizen","uc","vivaldi","webos","wechat","yandex","tablet","mobile","desktop","tv","WindowsPhone","Windows","MacOS","iOS","Android","WebOS","Linux","ChromeOS","PlayStation4","EdgeHTML","Blink","Trident","Presto","Gecko","WebKit","getParser","getResult","_ua","parsedResult","getUA","parseBrowser","browser","describe","getBrowser","getBrowserName","toLowerCase","getBrowserVersion","getOS","os","parseOS","getOSName","getOSVersion","getPlatform","platform","parsePlatform","getPlatformType","getEngine","engine","parseEngine","getEngineName","satisfies","isOS","isPlatform","h","isBrowser","compareVersion","substr","isEngine","is","search","versionName","vendor","model","module","classNames","classes","argType","_defineProperties","props","descriptor","CookieStorage","format_cookie_1","parse_cookies_1","_classCallCheck","instance","Constructor","TypeError","_defaultOptions","domain","expires","path","secure","Proxy","cookieStorageHandler","_createClass","protoProps","staticProps","parsed","parseCookies","_getCookie","removeItem","getItem","sortedKeys","cookieOptions","formatted","formatCookie","_setCookie","setItem","cookie","attributes","deleteProperty","_receiver","getOwnPropertyDescriptor","ownKeys","preventExtensions","formatOptions","sameSiteValue","getSameSiteValue","sameSite","toUTCString","encodeURIComponent","cookie_storage_1","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","iterator","_arr","_n","_s","_unsupportedIterableToArray","minLen","_arrayLikeToArray","constructor","from","_nonIterableRest","arr2","pattern","RegExp","_i$split2","encodedKey","encodedValue","decodeURIComponent","SelectorSet","uid","selectors","selectorObjects","indexes","activeIndexes","docElem","documentElement","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","matchesSelector","el","selector","querySelectorAll","idRe","matchIdSelector","sel","element","getElementId","classRe","matchClassSelector","getElementClassNames","className","baseVal","tagRe","matchTagSelector","getElementTagName","nodeName","chunker","parseSelectorIndexes","allIndexes","j","dup","allIndexesLen","rest","exec","findByPrototype","ary","proto","isPrototypeOf","sortById","logDefaultIndexUsed","indexProto","objs","selectorIndexes","selectorIndex","selIndex","removedIds","removeAll","queryAll","len2","els","elements","len3","matchedIds","bubbleEvents","captureEvents","propagationStopped","immediatePropagationStopped","currentTargets","currentTargetDesc","Event","before","subject","verb","trackPropagation","trackImmediate","getCurrentTarget","defineCurrentTarget","event","getter","dispatch","canDispatch","eventPhase","queue","nodeType","_matches","matched","unshift","parentElement","len1","on","capture","events","addEventListener","off","removeEventListener","fire","detail","dispatchEvent","CustomEvent","bubbles","cancelable","factory","setPrototypeOf","seal","_ref","Reflect","construct","fun","thisValue","Func","Function","_toConsumableArray","arrayForEach","unapply","arrayPop","arrayPush","stringToLowerCase","stringMatch","stringReplace","stringIndexOf","stringTrim","trim","regExpTest","typeErrorCreate","unconstruct","func","_len2","_key2","_len","addToSet","lcElement","clone","newObject","property","lookupGetter","desc","fallbackValue","warn","html","svg","svgFilters","svgDisallowed","mathMl","mathMlDisallowed","html$1","svg$1","mathMl$1","xml","MUSTACHE_EXPR","ERB_EXPR","DATA_ATTR","ARIA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","_typeof2","_toConsumableArray$1","getGlobal","_createTrustedTypesPolicy","trustedTypes","createPolicy","suffix","ATTR_NAME","currentScript","hasAttribute","getAttribute","policyName","createHTML","html$$1","createDOMPurify","DOMPurify","root","removed","isSupported","originalDocument","DocumentFragment","HTMLTemplateElement","Node","Element","NodeFilter","_window$NamedNodeMap","NamedNodeMap","MozNamedAttrMap","Text","Comment","DOMParser","ElementPrototype","cloneNode","getNextSibling","getChildNodes","getParentNode","template","createElement","content","ownerDocument","trustedTypesPolicy","emptyHTML","RETURN_TRUSTED_TYPE","_document","implementation","createNodeIterator","createDocumentFragment","getElementsByTagName","importNode","documentMode","hooks","createHTMLDocument","MUSTACHE_EXPR$$1","ERB_EXPR$$1","DATA_ATTR$$1","ARIA_ATTR$$1","IS_SCRIPT_OR_DATA$$1","ATTR_WHITESPACE$$1","IS_ALLOWED_URI$$1","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","ALLOWED_ATTR","DEFAULT_ALLOWED_ATTR","FORBID_TAGS","FORBID_ATTR","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","SAFE_FOR_TEMPLATES","WHOLE_DOCUMENT","SET_CONFIG","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_DOM_IMPORT","SANITIZE_DOM","KEEP_CONTENT","IN_PLACE","USE_PROFILES","FORBID_CONTENTS","DEFAULT_FORBID_CONTENTS","DATA_URI_TAGS","DEFAULT_DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DEFAULT_URI_SAFE_ATTRIBUTES","MATHML_NAMESPACE","SVG_NAMESPACE","HTML_NAMESPACE","NAMESPACE","IS_EMPTY_INPUT","CONFIG","formElement","_parseConfig","cfg","ADD_URI_SAFE_ATTR","ADD_DATA_URI_TAGS","ALLOWED_URI_REGEXP","ADD_TAGS","ADD_ATTR","table","tbody","MATHML_TEXT_INTEGRATION_POINTS","HTML_INTEGRATION_POINTS","ALL_SVG_TAGS","ALL_MATHML_TAGS","_checkValidNamespace","tagName","namespaceURI","parentTagName","Boolean","commonSvgAndHTMLElements","_forceRemove","parentNode","removeChild","outerHTML","_removeAttribute","attribute","getAttributeNode","removeAttribute","setAttribute","_initDocument","leadingWhitespace","dirtyPayload","parseFromString","createDocument","innerHTML","insertBefore","createTextNode","childNodes","_createIterator","SHOW_ELEMENT","SHOW_COMMENT","SHOW_TEXT","_isClobbered","elm","textContent","_isNode","_executeHook","entryPoint","currentNode","hook","_sanitizeElements","allowedTags","firstElementChild","_isValidAttribute","lcTag","lcName","_sanitizeAttributes","attr","hookEvent","attrName","attrValue","keepAttr","allowedAttributes","_attr","forceKeepAttr","setAttributeNS","_sanitizeShadowDOM","shadowNode","shadowIterator","nextNode","sanitize","importedNode","oldNode","returnNode","toStaticHTML","appendChild","firstChild","nodeIterator","serializedHTML","setConfig","clearConfig","isValidAttribute","tag","addHook","hookFunction","removeHook","removeHooks","removeAllHooks","inspect","formatValue","_nodejsCustomInspectSymbol","_interopRequireDefault","seenValues","formatObjectValue","previouslySeenValues","customInspectFn","getCustomFn","customValue","formatArray","remaining","items","formatObject","getObjectTag","_default","getBlockStringIndentation","lines","commonIndent","line","indent","isBlank","dedentBlockStringValue","rawString","shift","printBlockString","indentation","preferMultipleLines","isSingleLine","hasLeadingSpace","hasTrailingQuote","printAsMultipleLines","print","ast","_visitor","leave","printDocASTReducer","_blockString","Name","Document","varDefs","VariableDefinition","_ref2","block","_ref3","_ref4","_ref5","InlineFragment","_ref6","_ref7","IntValue","_ref8","FloatValue","_ref9","StringValue","_ref10","BooleanValue","_ref11","NullValue","EnumValue","_ref12","ListValue","_ref13","ObjectValue","_ref14","ObjectField","_ref15","_ref16","NamedType","_ref17","ListType","_ref18","NonNullType","_ref19","SchemaDefinition","_ref20","operationTypes","OperationTypeDefinition","_ref21","ScalarTypeDefinition","addDescription","_ref22","ObjectTypeDefinition","_ref23","interfaces","FieldDefinition","_ref24","hasMultilineItems","InputValueDefinition","_ref25","InterfaceTypeDefinition","_ref26","UnionTypeDefinition","_ref27","EnumTypeDefinition","_ref28","EnumValueDefinition","_ref29","InputObjectTypeDefinition","_ref30","DirectiveDefinition","_ref31","repeatable","locations","SchemaExtension","_ref32","ScalarTypeExtension","_ref33","ObjectTypeExtension","_ref34","InterfaceTypeExtension","_ref35","UnionTypeExtension","_ref36","EnumTypeExtension","_ref37","InputObjectTypeExtension","_ref38","description","maybeArray","separator","start","maybeString","end","isMultiline","string","visitor","visitorKeys","QueryDocumentKeys","inArray","edits","ancestors","newRoot","isLeaving","isEdited","_i2","_Object$keys2","editOffset","ii","editKey","editValue","isNode","_inspect","visitFn","getVisitFn","visitInParallel","visitors","skipping","visitWithTypeInfo","typeInfo","maybeNode","kindVisitor","kindSpecificVisitor","specificVisitor","specificKindVisitor","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","defaultProps","displayName","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","component","isMemo","ForwardRef","render","Memo","getOwnPropertySymbols","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","IntlMessageFormat","Compiler","locales","formats","pluralFn","StringFormat","PluralFormat","useOrdinal","offset","PluralOffsetString","numberFormat","SelectFormat","compile","pluralStack","currentPlural","pluralNumberFormat","compileMessage","compileMessageText","compileArgument","Intl","NumberFormat","format","number","style","date","DateTimeFormat","time","compileOptions","ordinal","option","optionsHash","getOption","other","src$utils$$","src$es5$$","src$compiler$$","intl$messageformat$parser$$","MessageFormat","__parse","_mergeFormats","_resolveLocale","_findPluralRuleFunction","_locale","_compilePattern","messageFormat","_format","variableId","month","day","year","weekday","hour","minute","second","timeZoneName","objCreate","locale","__localeData__","resolvedOptions","localeData","pluralRuleFunction","parentLocale","part","hop","defaults","mergedType","mergedFormats","extend","defaultLocale","localeParts","ord","v0","t0","n10","n100","realDefineProp","__defineGetter__","F","src$core$$","src$en$$","__addLocaleData","IntlRelativeFormat","intl_messageformat_1","diff_1","es5_1","RelativeFormat","FIELDS","STYLES","_resolveStyle","units","_isValidUnits","_findFields","relativeFormat","datum","_options","_compileMessage","_locales","relativeTime","_fields","future","past","_getMessage","messages","_messages","_getRelativeUnits","relative","dateNow","isFinite","RangeError","diffReport","_selectUnits","diffInUnits","relativeUnits","abs","when","arrIndexOf","suggestion","thresholds","round","startOfDay","dirtyDate","setHours","default_1","to","millisecond","differenceInCalendarDays","dirtyDateLeft","dirtyDateRight","startOfDayLeft","startOfDayRight","timestampLeft","getTime","getTimezoneOffset","timestampRight","week","rawYears","daysToYears","days","fromIndex","core_1","en_1","ipRegex","isIp","exact","v4","v6","registeredInModuleLoader","OldCookies","Cookies","api","noConflict","decode","init","converter","escape","stringifiedAttributes","attributeName","jar","cookies","parts","getJSON","withConverter","camel2hyphen","obj2mq","mq","features","feature","isDimension","json2mq","q","HASH_UNDEFINED","MAX_SAFE_INTEGER","argsTag","funcTag","objectTag","reIsHostCtor","reIsUint","typedArrayTags","freeGlobal","g","freeSelf","freeExports","freeModule","moduleExports","freeProcess","nodeUtil","require","binding","nodeIsTypedArray","isTypedArray","arrayProto","funcProto","objectProto","coreJsData","funcToString","maskSrcKey","IE_PROTO","nativeObjectToString","objectCtorString","reIsNative","Buffer","_Symbol","Uint8Array","allocUnsafe","getPrototype","overArg","objectCreate","propertyIsEnumerable","symToStringTag","getNative","nativeIsBuffer","isBuffer","nativeMax","nativeNow","nativeCreate","baseCreate","Hash","ListCache","MapCache","Stack","__data__","arrayLikeKeys","inherited","isArr","isArg","isArguments","isBuff","isType","skipIndexes","baseTimes","iteratee","isIndex","assignMergeValue","eq","baseAssignValue","assignValue","objValue","assocIndexOf","hashClear","hashDelete","hashGet","hashHas","hashSet","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","mapCacheClear","mapCacheDelete","getMapData","mapCacheGet","mapCacheHas","mapCacheSet","stackClear","stackDelete","stackGet","stackHas","stackSet","pairs","LARGE_ARRAY_SIZE","baseFor","createBaseFor","fromRight","keysFunc","iterable","baseGetTag","getRawTag","isOwn","unmasked","objectToString","baseIsArguments","isObjectLike","baseIsNative","isMasked","isFunction","toSource","baseKeysIn","nativeKeysIn","isProto","isPrototype","baseMerge","srcIndex","customizer","srcValue","baseMergeDeep","mergeFunc","safeGet","stacked","newValue","isCommon","isTyped","isArrayLikeObject","isArrayLike","cloneBuffer","buffer","isDeep","copy","cloneTypedArray","typedArray","cloneArrayBuffer","arrayBuffer","byteLength","byteOffset","copyArray","isPlainObject","Ctor","toPlainObject","copyObject","isNew","keysIn","initCloneObject","baseRest","setToString","overRest","otherArgs","identity","isKeyable","shortOut","lastCalled","stamp","isLength","stubFalse","baseUnary","baseIsTypedArray","merge","createAssigner","assigner","guard","isIterateeCall","symbolTag","reEscapedHtml","reHasEscapedHtml","unescapeHtmlChar","basePropertyOf","symbolProto","symbolToString","baseToString","isSymbol","unescape","window$1","Config","DEBUG","LIB_VERSION","loc","hostname","userAgent","location","referrer","screen","width","height","at","ch","escapee","white","T","ArrayProto","FuncProto","ObjProto","windowConsole","navigator$1","document$1","windowOpera","nativeBind","nativeForEach","nativeIndexOf","nativeMap","nativeIsArray","breaker","log","isUndefined","each","toArray","critical","log_func_with_prefix","prefix","console_with_prefix","_bound","bound","ctor","bind_instance_methods","escapeHTML","escaped","isString","include","found","includes","needle","inherit","subclass","superclass","isEmptyObject","isDate","isNumber","isElement","encodeDates","formatDate","timestamp","pad","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","safewrap","safewrap_class","klass","functions","safewrap_instance_methods","strip_empty_properties","truncate","JSONEncode","mixed_val","quote","escapable","meta","lastIndex","charCodeAt","holder","gap","mind","toJSON","JSONDecode","SyntaxError","hex","uffff","fromCharCode","word","base64Encode","h1","h2","h3","h4","bits","b64","ac","enc","tmp_arr","utf8Encode","stringl","utftext","c1","substring","UUID","se","R","UA","ua","xor","byte_array","tmp","BLOCKED_UA_STRS","isBlockedUA","HTTPBuildQuery","formdata","arg_separator","use_val","use_key","getQueryParam","url","param","nameEQ","ca","set_seconds","seconds","is_cross_subdomain","is_secure","is_cross_site","domain_override","cdomain","extract_domain","setTime","toGMTString","new_cookie_val","_localStorageSupported","localStorageSupported","storage","forceCheck","supported","localStorage","cheap_guid","is_supported","force_check","msg","register_event","fixEvent","preventDefault","stopPropagation","returnValue","cancelBubble","oldSchool","useCapture","ontype","old_handler","makeHandler","new_handler","old_handlers","old_result","new_result","TOKEN_MATCH_REGEX","dom_query","getAllChildren","bad_whitespace","hasClass","getElementsBySelector","token","foundCount","currentContextIndex","tokens","getElementById","token_match","checkFunction","attrOperator","campaignParams","campaign_keywords","kw","params","kwkey","URL","searchEngine","searchInfo","keyword","user_agent","browserVersion","regex","parseFloat","device","referringDomain","properties","href","people_properties","pageviewInfo","page","maxlen","guid","determine_eligibility","percent_allowed","hash","SIMPLE_DOMAIN_MATCH_REGEX","DOMAIN_MATCH_REGEX","domain_regex","tld","JSONStringify","JSONParse","DomTracker","create_properties","event_handler","after_track_handler","mixpanel_instance","mp","track","event_name","user_callback","that","override_event","get_config","track_callback","timeout_occured","callback_fired","LinkTracker","evt","new_tab","which","metaKey","ctrlKey","FormTracker","submit","logger$2","SharedLock","storageKey","pollIntervalMS","timeoutMS","withLock","lockedCB","errorCB","pid","startTime","keyX","keyY","keyZ","reportError","delay","loop","waitFor","predicate","getSetY","valY","criticalSection","logger$1","RequestQueue","lock","memQueue","enqueue","flushInterval","queueEntry","lockAcquired","succeeded","storedQueue","readFromStorage","saveToStorage","lockFailure","fillBatch","batchSize","batch","idsInBatch","orphaned","filterOutIDsAndInvalid","idSet","filteredItems","removeItemsByID","ids","updatePayloads","existingItems","itemsToUpdate","newItems","newPayload","storageEntry","logger","RequestBatcher","libConfig","sendRequest","sendRequestFunc","beforeSendHook","stopped","flush","timeoutID","resetBatchSize","resetFlush","scheduleFlush","flushMS","requestInProgress","currentBatchSize","dataForRequest","transformedItems","batchSendCallback","res","removeItemsFromQueue","unloading","xhr_req","retryMS","retryAfter","halvedBatchSize","floor","verbose","ignore_json_errors","timeout_ms","transport","optIn","_optInOut","optOut","hasOptedIn","_getStorageValue","hasOptedOut","_hasDoNotTrackFlagOn","ignoreDnt","win","nav","hasDntOn","dntValue","optedOut","addOptOutCheckMixpanelLib","_addOptOutCheck","addOptOutCheckMixpanelPeople","_get_config","addOptOutCheckMixpanelGroup","clearOptInOut","_getStorage","_getStorageKey","crossSubdomainCookie","cookieDomain","persistenceType","persistencePrefix","optValue","cookieExpiration","secureCookie","crossSiteCookie","trackEventName","trackProperties","getConfigValue","SET_ACTION","SET_ONCE_ACTION","UNSET_ACTION","ADD_ACTION","APPEND_ACTION","UNION_ACTION","REMOVE_ACTION","apiActions","set_action","$set","_is_reserved_property","unset_action","$unset","set_once_action","$set_once","union_action","list_name","$union","append_action","$append","remove_action","$remove","delete_action","MixpanelGroup","_init","group_key","group_id","_mixpanel","_group_key","_group_id","_send_request","set_once","unset","union","date_encoded_data","_track_or_batch","endpoint","request_batchers","groups","conf","SET_QUEUE_KEY","SET_ONCE_QUEUE_KEY","UNSET_QUEUE_KEY","ADD_QUEUE_KEY","APPEND_QUEUE_KEY","REMOVE_QUEUE_KEY","UNION_QUEUE_KEY","PEOPLE_DISTINCT_ID_KEY","ALIAS_ID_KEY","CAMPAIGN_IDS_KEY","EVENT_TIMERS_KEY","RESERVED_PROPERTIES","MixpanelPersistence","campaign_params_saved","storage_type","load","update_config","upgrade","save","disabled","old_cookie_name","old_cookie","upgrade_from_old_lib","register_once","_expire_notification_campaigns","expire_days","cross_subdomain","cross_site","cookie_domain","default_value","default_expiry","register","unregister","campaigns_shown","EXPIRY_TIME","campaign_id","update_campaign_params","update_search_keyword","update_referrer_info","get_referrer_info","safe_merge","set_disabled","set_cookie_domain","set_cross_site","set_cross_subdomain","set_secure","get_cross_subdomain","_add_to_people_queue","q_key","_get_queue_key","q_data","set_q","_get_or_create_queue","set_once_q","unset_q","add_q","union_q","remove_q","append_q","_pop_from_people_queue","enqueued_obj","append_obj","_get_queue","queued_action","default_val","set_event_timer","timers","remove_event_timer","IN_OPERATOR","NOT_IN_OPERATOR","MINUS_OPERATOR","MUL_OPERATOR","DIV_OPERATOR","MOD_OPERATOR","EQUALS_OPERATOR","NOT_EQUALS_OPERATOR","GREATER_OPERATOR","LESS_OPERATOR","GREATER_EQUAL_OPERATOR","LESS_EQUAL_OPERATOR","BOOLEAN_OPERATOR","DATETIME_OPERATOR","LIST_OPERATOR","NUMBER_OPERATOR","STRING_OPERATOR","DEFINED_OPERATOR","NOT_DEFINED_OPERATOR","toNumber","isNaN","toBoolean","evaluateEquality","_isEqual","_isArrayEqual","evaluateSelector","evaluateOperator","evaluateAnd","evaluateOr","evaluateIn","leftValue","rightValue","evaluatePlus","evaluateArithmetic","evaluateComparison","localeCompare","evaluateBoolean","evaluateDateTime","evaluateList","evaluateNumber","evaluateString","evaluateDefined","evaluateNot","evaluateOperand","evaluateWindow","out","filters","MixpanelNotification","notif_data","mixpanel","persistence","resource_protocol","cdn_host","message_id","cta","notif_type","title","video_width","VIDEO_WIDTH","video_height","VIDEO_HEIGHT","display_triggers","dest_url","image_url","thumb_image_url","video_url","clickthrough","mini","notif_width","NOTIF_WIDTH_MINI","NOTIF_WIDTH","_set_client_config","imgs_to_preload","_init_image_html","_init_video","ANIM_TIME","MARKUP_PREFIX","BG_OPACITY","NOTIF_TOP","NOTIF_START_TOP","NOTIF_HEIGHT_MINI","THUMB_BORDER_SIZE","THUMB_IMG_SIZE","THUMB_OFFSET","show","body_el","_init_styles","_init_notification_el","_preload_images","_attach_and_animate","dismiss","marked_as_shown","_mark_delivery","notif_attr","notif_start","notif_goal","exiting_el","showing_video","_get_el","_get_notification_display_el","use_transitions","_remove_class","_add_class","_remove_notification_el","_animate_els","goal","class_name","anims","mss","done_cb","start_time","ai","anim","time_diff","in_progress","cur_time","anim_diff","anim_dir","shown","_get_shown_campaigns","notification_el","notif_el","_mark_as_shown","click_el","show_video","_track_event","_switch_to_video","tracking_cb","open","_matches_event_data","event_data","display_trigger","_browser_lte","browser_versions","img_html","thumb_img_html","notification_html","video_src","video_html","cancel_html","close_html","play_html","youtube_video","yt_custom","vimeo_video","video_iframe","flip_animate","main_html","style_vals","bg","bg_actions","bg_hover","bg_light","border_gray","cancel_opacity","mini_hover","text_title","text_main","text_tagline","text_hover","shadow","video_shadow","mini_shadow","thumb_total_size","anim_seconds","notif_media_queries","notif_styles","doc_width","doc_height","VENDOR_STYLES","VENDOR_PREFIXES","si","pi","inject_styles","styles","media_queries","create_style_text","style_defs","st","style_text","create_media_query_text","mq_defs","mqt","head_el","head","style_el","styleSheet","cssText","youtube_match","vimeo_match","_yt_video_ready","src","firstScriptTag","get_style","style_name","defaultView","getComputedStyle","currentStyle","extra_props","all_loaded_cb","preloaded_imgs","img_objs","onload","img","Image","imgs_loaded","clearInterval","_video_progress_checker","visibility","get_browser_version","browser_ex","ActiveXObject","scrollWidth","offsetWidth","clientWidth","scrollHeight","offsetHeight","clientHeight","ie_ver","sample_styles","is_css_compatible","rule","overlay","video_ready","video_inited","progress_bar","progress_time","progress_el","onReady","ytplayer","video_duration","update_video_time","current_time","secs","mins","hours","setInterval","clickx","pageX","getBoundingClientRect","left","init_type","mixpanel_master","MixpanelPeople","increment","by","$add","append","track_charge","amount","clear_charges","delete_user","_identify_called","get_distinct_id","device_id","get_property","user_id","had_persisted_distinct_id","people","_enqueue","conf_var","_flags","identify_called","_flush_one_queue","action_method","queue_to_params_fn","queued_data","action_params","_flush","_set_callback","_add_callback","_append_callback","_set_once_callback","_union_callback","_unset_callback","_remove_callback","$append_queue","$remove_queue","$append_item","append_callback","$remove_item","remove_callback","IDENTITY_FUNC","NOOP_FUNC","PRIMARY_INSTANCE_NAME","USE_XHR","XMLHttpRequest","ENQUEUE_REQUESTS","sendBeacon","DEFAULT_CONFIG","DOM_LOADED","MixpanelLib","create_mplib","_cached_groups","_user_decide_check_complete","_events_tracked_before_user_decide_check_complete","_execute_array","encode_data_for_request","json_data","_loaded","variable_features","api_host","is_custom_api","set_config","__dom_loaded_queue","__request_queue","__disabled_events","_batch_requests","init_batchers","unpersisted_superprops","_gdpr_init","uuid","_set_default_superprops","_dom_loaded","_track_dom","has_opted_out_tracking","DomClass","dt","_prepare_callback","callback_function","jsc","randomized_cb","callback_string","DEFAULT_OPTIONS","body_data","use_post","use_sendBeacon","verbose_mode","req","headerValue","headerName","setRequestHeader","withCredentials","onreadystatechange","readyState","responseText","statusText","send","script","async","defer","fn_name","alias_calls","other_calls","tracking_calls","calls","are_batchers_initialized","batcher_for","attrs","queue_suffix","_run_hook","start_batch_senders","stop_batch_senders","disable","disable_all_events","truncated_data","should_send_immediately","send_request_options","request_enqueued_or_initiated","send_request_immediately","skip_hooks","_event_is_disabled","start_timestamp","duration_in_ms","toFixed","property_blacklist","blacklisted_prop","_check_and_handle_triggered_notifications","set_group","group_ids","add_group","old_values","remove_group","old_value","idx","track_with_groups","tracking_props","_create_map_key","_remove_group_from_cache","get_group","map_key","group","track_pageview","track_links","track_forms","time_event","REGISTER_DEFAULTS","options_for_register","days_or_options","_register_single","identify","new_distinct_id","previous_distinct_id","_check_and_handle_notifications","original","name_tag","prop_name","hook_name","property_name","_show_notification","distinct_id","notifications","notif","_handle_user_decide_check_complete","has_opted_in_tracking","opt_in_tracking","opt_out_tracking","clear_opt_in_out_tracking","_gdpr_update_persistence","_gdpr_call_func","instances","override_mp_init_func","extend_mp","init_as_module","add_dom_loaded_handler","dom_loaded_handler","inst","attachEvent","toplevel","frameElement","doScroll","do_scroll_check","urlPattern","NO_HOSTNAME","fromUrl","urlLike","startsWith","parse_domain_1","parseDomain","ParseResultType","from_url_1","sanitize_1","ValidationErrorType","serialized_tries_1","look_up_1","parse_trie_1","RESERVED_TOP_LEVEL_DOMAINS","parsedIcannTrie","parsedPrivateTrie","getAtIndex","splitLabelsIntoDomains","labels","subDomains","topLevelDomains","sanitizationResult","SanitizationResultType","Invalid","ValidIp","Ip","ip","ipVersion","Reserved","parseTrie","icannTrie","privateTrie","icannTlds","lookUpTldsInTrie","privateTlds","NotListed","indexOfPublicSuffixDomain","indexOfIcannDomain","Listed","icann","_createForOfIteratorHelper","allowArrayLike","it","normalCompletion","didErr","step","_e2","__importDefault","mod","is_ip_1","createNoHostnameError","input","NoHostname","column","createDomainMaxLengthError","DomainMaxLength","createLabelMinLengthError","LabelMinLength","createLabelMaxLengthError","LabelMaxLength","createLabelInvalidCharacterError","invalidCharacter","LabelInvalidCharacter","inputTrimmed","inputTrimmedAsIp","_step","labelValidationErrors","_iterator","ValidDomain","icann_json_1","private_json_1","UP","SAME","DOWN","RESET","WILDCARD","EXCEPTION","__importStar","characters","trie","labelsToCheck","tlds","labelLowerCase","NODE_TYPE_ROOT","NODE_TYPE_CHILD","createRootNode","createOrGetChild","nodes_1","serializedTrie","rootNode","addDomain","_char","last","PolishedError","_Error","code","colorToInt","color","convertToInt","red","green","blue","hslToRgb","hue","saturation","lightness","convert","huePrime","chroma","secondComponent","lightnessModification","namedColorMap","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","whitesmoke","yellow","yellowgreen","hexRegex","hexRgbaRegex","reducedHexRegex","reducedRgbaHexRegex","rgbRegex","rgbaRegex","hslRegex","hslaRegex","parseToRgb","normalizedColor","nameToHex","normalizedColorName","alpha","_alpha","rgbMatched","rgbaMatched","hslMatched","rgbColorString","hslRgbMatched","hslaMatched","_rgbColorString","_hslRgbMatched","getLuminance","rgbColor","_Object$keys$map","channel","_assign","__assign","SVG","animate","backgroundColor","backgroundOpacity","baseUrl","foregroundColor","foregroundOpacity","gradientRatio","uniqueKey","rtl","speed","__rest","fixedId","idClip","idGradient","idAria","rtlStyle","keyTimes","dur","role","y","clipPath","fill","stopColor","stopOpacity","repeatCount","ContentLoader","ReactContentLoaderFacebook","viewBox","rx","cx","cy","fbq","autoConfig","debug","callMethod","_fbq","loaded","pageView","trackSingle","trackCustom","trackSingleCustom","grantConsent","revokeConsent","hasElementType","hasMap","hasSet","hasArrayBuffer","ArrayBuffer","isView","flags","valueOf","$$typeof","isEqual","BASE","BODY","HEAD","HTML","LINK","META","NOSCRIPT","SCRIPT","STYLE","TITLE","FRAGMENT","accesskey","charset","contenteditable","contextmenu","itemprop","tabindex","reduce","A","C","O","E","toComponent","titleAttributes","dangerouslySetInnerHTML","__html","S","bodyAttributes","encode","htmlAttributes","linkTags","metaTags","noscriptTags","scriptTags","styleTags","base","baseTag","noscript","I","P","setHelmet","helmetInstances","L","helmet","canUseDOM","encodeSpecialCharacters","Provider","querySelector","isEqualNode","oldTags","newTags","w","H","onChangeClientState","M","rendered","shouldComponentUpdate","componentDidUpdate","emitChange","componentWillUnmount","cancelAnimationFrame","requestAnimationFrame","isRequired","N","mapNestedChildrenToProps","flattenArrayTypeChildren","arrayTypeChildren","newChildProps","nestedChildren","mapObjectTypeChildren","newProps","mapArrayTypeChildrenToProps","warnOnInvalidChildren","mapChildrenToProps","Consumer","defaultTitle","titleTemplate","_defineProperty","_assertThisInitialized","ReferenceError","createThemeProvider","_React$Component","ThemeProvider","outerTheme","getTheme","subClass","superClass","_proto","theme","lastTheme","lastOuterTheme","cachedTheme","_theme","renderProvider","createWithTheme","hoc","Component","withTheme","ref","createUseTheme","useTheme","createTheming","createContext","_createTheming","warning","plainObjectConstrurctor","cloneStyle","newStyle","createRule","decl","jss","declCopy","plugins","onCreateRule","toCssValue","ignoreImportant","cssValue","indentStr","toCss","_options$indent","fallbacks","fallback","_prop","_prop2","_value2","allowEmpty","escapeRegex","nativeEscape","CSS","BaseStyleRule","isProcessed","renderer","renderable","sheet","Renderer","force","onChangeValue","isDefined","removeProperty","setProperty","attached","StyleRule","_BaseStyleRule","selectorText","scoped","generateId","_proto2","applyTo","setSelector","replaceRule","pluginStyleRule","defaultToStringOptions","atRegExp","ConditionalRule","rules","atMatch","RuleList","getRule","addRule","onProcessRule","keyRegExp","pluginConditionalRule","defaultToStringOptions$1","nameRegExp","KeyframesRule","frames","nameMatch","keyRegExp$1","refRegExp","findReferencedKeyframe","keyframes","replaceRef","refKeyframe","onProcessStyle","KeyframeRule","pluginKeyframeRule","FontFaceRule","keyRegExp$2","pluginFontFaceRule","ViewportRule","pluginViewportRule","SimpleRule","keysMap","defaultUpdateOptions","forceUpdateOptions","raw","counter","ruleOptions","_this$options","updateOne","_this$options2","styleRule","onUpdate","nextValue","_nextValue","_prevValue","css","StyleSheet","deployed","attach","deploy","detach","insertRule","addRules","added","deleteRule","_this$rules","PluginsRegistry","internal","external","registry","onProcessSheet","processedValue","use","newPlugin","plugin","SheetsRegistry","_temp","globalThis$1","globalThis","ns","moduleId","createGenerateId","ruleCounter","jssId","classNamePrefix","minify","memoize","getPropertyValue","cssRule","attributeStyleMap","getHead","findPrevNode","registry$1","findHigherSheet","insertionPoint","findHighestSheet","nextSibling","comment","findCommentNode","nodeValue","getNonce","_insertRule","container","appendRule","cssRules","getValidRuleInsertionIndex","maxIndex","DomRenderer","hasInsertedRules","media","createStyle","nonce","insertStyle","insertionPointElement","insertRules","nativeParent","latestNativeParent","_insertionIndex","refCssRule","ruleStr","insertionIndex","nativeRule","getRules","instanceCounter","Jss","setup","createStyleSheet","removeStyleSheet","createRule$1","getDynamicStyles","extracted","SheetsManager","sheets","refs","manage","unmanage","hasCSSTOMSupport","fnValuesNs","fnRuleNs","functionPlugin","fnValues","fnRule","isObservable","observablePlugin","updateOptions","style$","_loop","semiWithNl","colonIndex","templatePlugin","atPrefix","GlobalContainerRule","GlobalPrefixedRule","separatorRegExp","addScope","scope","jssGlobal","handleNestedGlobalContainerRule","handlePrefixedGlobalRule","valueNs","mergeExtend","singleExtend","refRule","mergeRest","jssExtend","parentRegExp","jssNested","getReplaceRef","replaceParentRefs","nestedProp","parentProp","parentSelectors","nestedSelectors","nested","getOptions","prevOptions","nestingLevel","isNested","isNestedConditional","registerClass","jssCompose","composes","uppercasePattern","msPattern","toHyphenLower","hyphenateStyleName","hName","convertCase","converted","camelCase","hyphenatedProp","px","ms","percent","addCamelCasedVersion","regExp","newObj","border","margin","padding","bottom","top","right","inset","motion","outline","perspective","grid","iterate","innerProp","_innerProp","unit","defaultUnit","camelCasedOptions","propArray","flex","transition","propArrayInObj","position","propObj","background","attachment","image","repeat","duration","timingFunction","animation","iterationCount","direction","fillMode","playState","blur","spread","customPropObj","radius","font","variant","weight","stretch","family","lineHeight","grow","basis","flow","shrink","align","templateColumns","templateRows","templateAreas","autoColumns","autoRows","autoFlow","row","rowStart","rowEnd","columnStart","columnEnd","area","rowGap","columnGap","processArray","scheme","mapValuesByProp","objectToArray","isFallback","isInArray","customPropsToStyle","customProps","propName","_styleDetector","appendedValue","styleDetector","baseProp","jssExpand","js","isTouch","jsCssMap","Moz","Webkit","appearence","noPrefill","supportedProperty","colorAdjust","toUpper","camelize","pascalize","mask","longhand","textOrientation","writingMode","userSelect","breakPropsOld","inlineLogicalOld","newProp","unprefixed","prefixed","pascalized","scrollSnap","overscrollBehavior","propMap","order","flex2012","propMap$1","propKeys","prefixCss","multiple","propertyDetectors","computed","key$1","el$1","cache$1","transitionProperties","transPropsRegExp","prefixTransitionCallback","p1","p2","prefixedValue","supportedValue","cacheKey","jssVendorPrefixer","prefixStyle","changeProp","supportedProp","changeValue","supportedValue$1","atRule","supportedKeyframes","jssPropsSort","prop0","prop1","shallowEqualObjects","objA","objB","reactPropsRegex","defaultJss","createCss","ruleIndex","getSheet","argsStr","cached","flatArgs","argIndex","innerArgIndex","mergedStyle","styleObject","_cached","cacheValue","JssContext","disableStylesGeneration","MIN_SAFE_INTEGER","getSheetIndex","defaultManagers","getManager","managerId","managers","manager","manageSheet","unmanageSheet","sheetsMeta","getMeta","existingSheet","jss$1","getStyles","dynamicStyles","getSheetOptions","sheetOptions","addMeta","removeDynamicRules","updateDynamicRules","addDynamicRules","initialRuleCount","originalRule","getSheetClasses","dynamicRules","useEffectOrLayoutEffect","useLayoutEffect","useEffect","noTheme$1","createUseStyles","_options$index","theming","ThemeContext$1","useContext","useStyles","isFirstMount","useRef","_React$useMemo","useMemo","newSheet","newDynamicRules","current","useDebugValue","initialContext","JssProvider","parentContext","prevContext","_this$props","MediaQueryListener","targetWindow","nativeMediaQueryList","matchMedia","active","cancellableListener","addListener","removeListener","queryType","Media","unwrapSingleQuery","queryObject","queryNames","__DEFAULT__","acc","_extends2","mqListener","newMatches","getMatches","setState","onChange","defaultMatches","_extends3","initialize","_this2","wrapInQueryObject","qs","updateMatches","componentDidMount","isAnyMatches","createPath","pathname","createLocation","currentLocation","parsePath","hashIndex","searchIndex","decodeURI","URIError","createTransitionManager","prompt","setPrompt","nextPrompt","confirmTransitionTo","getUserConfirmation","appendListener","isActive","notifyListeners","clamp","lowerBound","upperBound","createMemoryHistory","_props","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","_props$keyLength","keyLength","transitionManager","nextState","history","createKey","createHref","go","nextIndex","ok","nextEntries","goBack","goForward","canGo","listen","MAX_SIGNED_31_BIT_INT","commonjsGlobal","createEventEmitter","handlers","changedBits","createReactContext","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","getUniqueId","_Component","emitter","getChildContext","componentWillReceiveProps","nextProps","oldValue","objectIs","_Component2","observedBits","onlyChild","historyContext","createNamedContext","createNamedContext$1","Router","_isMounted","_pendingLocation","staticContext","unlisten","computeRootMatch","isExact","Lifecycle","onMount","prevProps","onUnmount","cacheCount","generatePath","compilePath","generator","pretty","Redirect","computedMatch","_ref$push","prevLocation","locationsAreEqual","cacheCount$1","matchPath","_options$exact","_options$strict","strict","_options$sensitive","sensitive","_compilePath","compilePath$1","pathCache","regexp","memo","Route","context$1","basename","createURL","staticHandler","methodName","noop","Switch","useLocation","useParams","S3Upload","files","fileElement","handleFileSelect","server","signingUrl","signingUrlMethod","successResponses","onFinishS3Put","signResult","file","publicUrl","preprocess","onProgress","onSignedUrl","scrubFilename","filename","processedFile","uploadFile","createCORSRequest","xhr","XDomainRequest","_getErrorRequestContext","executeOnSignedUrl","queryString","s3path","signingUrlQueryParams","signingUrlWithCredentials","signingUrlHeaders","overrideMimeType","uploadToS3","signedUrl","onerror","upload","onprogress","percentLoaded","lengthComputable","total","contentDisposition","disposition","fileName","signResultHeaders","uploadRequestHeaders","httprequest","uploadToS3Callback","getSignedUrl","abortUpload","isAbsolute","spliceOne","list","resolvePathname","hasTrailingSlash","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","up","shallowEqual","compareContext","keysA","keysB","bHasOwnProperty","valueA","valueB","symbolObservablePonyfill","invariant","genericMessage","InvariantError","framesToPop","wrapConsoleMethod","processStub","atLeastWeTried","valueEqual","bValue","hasSymbols","hasSymbol","getSymbol","SymbolIterator","SymbolObservable","SymbolSpecies","getMethod","getSpecies","hostReportError","cleanupSubscription","_cleanup","closeSubscription","_queue","_state","notifySubscription","onNotify","flushSubscription","Subscription","subscriber","subscriptionObserver","SubscriptionObserver","_subscriber","_this3","_this4","hasSeed","_this5","startNext","flatMap","_this6","outer","completeIfDone","closed","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_item","symbol"],"sourceRoot":""}